CV. ZENTRONIC - Perusahaan Jasa Listrik dan Elektronika

Tampilkan postingan dengan label Servo. Tampilkan semua postingan
Tampilkan postingan dengan label Servo. Tampilkan semua postingan

Minggu, 30 April 2023

Dasar Servo Motor dengan Arduino UNO

Contoh pertama mengontrol posisi motor servo RC (hobi) dengan Arduino dan potensiometer Anda. Contoh kedua menyapu (sweep) poros motor servo RC bolak-balik 180 derajat.

Hardware yang Diperlukan

  • Arduino Board
  • Servo Motor
  • 10k ohm potentiometer
  • hook-up wires

Rangkaian

Motor servo memiliki tiga kabel: daya, arde, dan sinyal. Kabel daya biasanya berwarna merah, dan harus dihubungkan ke pin 5V di papan Arduino. Kabel arde biasanya berwarna hitam atau cokelat dan harus dihubungkan ke pin arde di papan Arduino. Pin sinyal biasanya berwarna kuning atau oranye dan harus dihubungkan ke pin PWM di papan Arduino. Dalam contoh ini, itu adalah pin nomor 9.

Rangkaian Knob

Untuk contoh Knob, sambungkan potensiometer sehingga dua pin terluarnya terhubung ke daya (+5V) dan arde, dan pin tengahnya terhubung ke  A0, di papan Arduino. Kemudian, sambungkan motor servo ke +5V, GND dan pin 9.

 


Rangkaian Sweep

Untuk contoh Sweep, hubungkan motor servo ke +5V, GND dan pin 9.

 

Knob

Mengontrol posisi servo menggunakan potensiometer (resistor variabel).

#include <Servo.h>

 

Servo myservo;  // create servo object to control a servo

 

int potpin = 0;  // analog pin used to connect the potentiometer

int val;    // variable to read the value from the analog pin

 

void setup() {

  myservo.attach(9);  // attaches the servo on pin 9 to the servo object

}

 

void loop() {

  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023)

  val = map(val, 0, 1023, 0, 180);     // scale it to use it with the servo (value between 0 and 180)

  myservo.write(val);                  // sets the servo position according to the scaled value

  delay(15);                           // waits for the servo to get there

}

 

Sweep

Menyapu (sweep) poros motor servo RC bolak-balik sepanjang 180 derajat.

#include <Servo.h>

 

Servo myservo;  // create servo object to control a servo

// twelve servo objects can be created on most boards

 

int pos = 0;    // variable to store the servo position

 

void setup() {

  myservo.attach(9);  // attaches the servo on pin 9 to the servo object

}

 

void loop() {

  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees

    // in steps of 1 degree

    myservo.write(pos);              // tell servo to go to position in variable 'pos'

    delay(15);                       // waits 15ms for the servo to reach the position

  }

  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees

    myservo.write(pos);              // tell servo to go to position in variable 'pos'

    delay(15);                       // waits 15ms for the servo to reach the position

  }

}

Implementasi

Sabtu, 01 April 2023

Arduino – Webserver dengan Arduino + Ethernet Shield


 

Proyek ini adalah tentang menggunakan Arduino dengan Ethernet Shield. Saya akan mengontrol satu LED dan servo, tetapi Anda dapat menerapkan metode ini untuk mengontrol perangkat elektronik apa pun yang Anda inginkan. (seperti motor DC, buzzer, relay, motor stepper, dll..)

 

Pendahuluan.

Kode yang diberikan saat diunggah dan terhubung ke internet itu membuat server web di LAN Anda dan Anda cukup menggunakan IP untuk mengakses server web itu melalui browser Anda. Setelah itu muncul halaman web yang mirip dengan yang di bawah ini. Saat Anda menekan tombol "Aktifkan LED", url Anda akan berubah menjadi: "http://192.168.0.142/?button1on" arduino akan membaca informasi itu dan menyalakan LED.

Secara default IP-nya adalah “192.168.0.142”. Itu juga dapat ditemukan pada kode arduino yang disediakan.

Part yang diperlukan.

Schematics.

 


Unggah kode di bawah ini.

#include <SPI.h>
#include <Ethernet.h>
#include <Servo.h>
int led = 4;
Servo microservo;
int pos = 0;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };   //physical mac address
byte ip[] = { 192, 168, 0, 142 };                      // ip in lan that's what you need to use in your browser. EthernetServer server(80);                             //server port     
String readString;

void setup() {
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  pinMode(led, OUTPUT);
  microservo.attach(7);
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}


void loop() {
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {   
      if (client.available()) {
        char c = client.read();
     
        //read char by char HTTP request
        if (readString.length() < 100) {
          //store characters to string
          readString += c;
          //Serial.print(c);
         }

         //if HTTP request has ended
         if (c == '\n') {          
           Serial.println(readString); //print to serial monitor for debuging
     
           client.println("HTTP/1.1 200 OK"); //send new page
           client.println("Content-Type: text/html");
           client.println();     
           client.println("<HTML>");
           client.println("<HEAD>");
           client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");
           client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
           client.println("<link rel='stylesheet' type='text/css' href='https://randomnerdtutorials.com/ethernetcss.css' />");
           client.println("<TITLE>ZENTRONIC Tutorials Project</TITLE>");
           client.println("</HEAD>");
           client.println("<BODY>");
           client.println("<H1>Zentronic.co.id Tutorials Project</H1>");
           client.println("<hr />");
           client.println("<br />");  
           client.println("<H2>Arduino with Ethernet Shield</H2>");
           client.println("<br />");  
           client.println("<a href=\"/?button1on\"\">Turn On LED</a>");
           client.println("<a href=\"/?button1off\"\">Turn Off LED</a><br />");   
           client.println("<br />");     
           client.println("<br />");
           client.println("<a href=\"/?button2on\"\">Rotate Left</a>");
           client.println("<a href=\"/?button2off\"\">Rotate Right</a><br />");
           client.println("<p>Created by Lucky Mdot. Visit https://zentronic.co.id for more projects!</p>");  
           client.println("<br />");
           client.println("</BODY>");
           client.println("</HTML>");
     
           delay(1);
           //stopping client
           client.stop();
           //controls the Arduino if you press the buttons
           if (readString.indexOf("?button1on") >0){
               digitalWrite(led, HIGH);
           }
           if (readString.indexOf("?button1off") >0){
               digitalWrite(led, LOW);
           }
           if (readString.indexOf("?button2on") >0){
                for(pos = 0; pos < 180; pos += 3)  // goes from 0 degrees to 180 degrees
                {                                  // in steps of 1 degree
                  microservo.write(pos);              // tell servo to go to position in variable 'pos'
                  delay(15);                       // waits 15ms for the servo to reach the position
                }
           }
           if (readString.indexOf("?button2off") >0){
                for(pos = 180; pos>=1; pos-=3)     // goes from 180 degrees to 0 degrees
                {                                
                  microservo.write(pos);              // tell servo to go to position in variable 'pos'
                  delay(15);                       // waits 15ms for the servo to reach the position
                }
           }
            //clearing string for next read
            readString="";  
           
         }
       }
    }
}
}

Implementasi.

 



Catatan: Jika Anda mencoba proyek ini. Anda hanya dapat mengakses alamat IP itu dari rumah Anda. Ini berarti Anda harus terhubung ke router yang sama dengan yang terhubung dengan Ethernet shield anda.

 

 Video.


 

Arduino – LM35 Temperature Sensor

  Sensor Suhu seri LM35 adalah perangkat suhu sirkuit terpadu presisi dengan tegangan keluaran yang berbanding lurus dengan suhu Celcius. ...