CV. ZENTRONIC - Perusahaan Jasa Listrik dan Elektronika

Tampilkan postingan dengan label Control. Tampilkan semua postingan
Tampilkan postingan dengan label Control. Tampilkan semua postingan

Jumat, 07 April 2023

Kontrol Motor Stepper dengan Driver Motor L298N dan Arduino


 

Dalam panduan pengguna ini, kita akan mempelajari cara mengontrol motor stepper menggunakan Driver Motor L298N dengan Arduino. Ini adalah panduan cepat di mana kita akan belajar bagaimana menghubungkan driver motor L298N dengan papan Arduino dan akhirnya belajar bagaimana mengendalikan motor stepper bipolar dalam kasus NEMA 17 kita dengannya. Kami akan menunjukkan kepada Anda sketsa Arduino yang akan mengontrol kecepatan dan arah motor stepper bipolar (NEMA 17) dengan mudah.

Pendahuluan Stepper Motor

Motor stepper adalah motor DC brushless dan sinkron. Mereka berputar dalam langkah-langkah terpisah dari nilai yang telah ditentukan dan dapat berputar searah jarum jam dan berlawanan arah jarum jam. Tidak seperti motor DC lainnya, motor ini memberikan kontrol posisi yang presisi sesuai dengan jumlah langkah per revolusi yang dirancang untuk motor tersebut. Itu berarti revolusi lengkap motor stepper dibagi menjadi beberapa langkah terpisah. Mereka umumnya digunakan dalam mesin CNC, Robotika, printer 2D dan 3D.

L298N Motor Driver Module

Modul driver motor L298N sangat mudah digunakan dengan Arduino dan juga relatif murah. Ini banyak digunakan dalam mengendalikan robot karena kita dapat menghubungkan hingga empat motor sekaligus tetapi jika kita ingin mengontrol kecepatan dan arah juga maka memungkinkan dua motor dc atau satu motor stepper untuk dihubungkan. Jadi, sangat cocok untuk robot roda dua. Modul ini terutama digunakan dalam robotika dan dalam mengendalikan motor dc dan stepping.

Modul driver motor L298N terdiri dari IC driver motor L298N, regulator 78M05 5V, pengaktif jumper 5V, LED daya, heat sink, resistor, dan kapasitor yang semuanya digabungkan dalam sirkuit terpadu. Diagram di bawah ini menunjukkan semua komponen yang terdapat di dalam modul.

 IC driver Motor L298N dibangun dengan kuat dengan heat sink yang besar. Ini adalah driver motor jembatan H saluran ganda yang dapat dengan mudah digunakan untuk menggerakkan satu motor stepper tunggal.

Modul ini juga memiliki regulator 78M05 5V yang diaktifkan melalui jumper. Menjaga jumper tetap utuh, berarti regulator 5V diaktifkan. Jika catu daya motor kurang dari 12V maka kami akan memberi daya pada modul melalui pengatur tegangan. Pin 5V dalam hal ini bertindak sebagai output untuk menyalakan mikrokontroler. Jika catu daya lebih dari 12V, pastikan jumper tidak utuh dan catu daya 5V melalui pin secara terpisah.

Antarmuka Driver Motor DC L298N dengan Arduino dan NEMA 17 Stepper Motor

Peralatan yang Dibutuhkan

    Arduino UNO

    L289N Modul driver motor

    Motor stepper NEMA 17

    Catu daya eksternal 12 V

    Menghubungkan Kabel

Rakit sirkuit seperti yang ditunjukkan pada diagram koneksi di bawah ini.

 

Untuk motor stepper mana pun yang Anda gunakan, lihat lembar datanya untuk menemukan kabel berwarna yang benar untuk membedakan kabel A+, A-, B+, dan B-. Ini akan memungkinkan kita untuk menghubungkan motor dengan benar dengan pin OUT1, OUT2, OUT3 dan OUT4 dari modul driver. Hubungkan kabel berwarna motor stepper dengan pin output yang benar dari modul driver. Dalam kasus kami, kabel hitam adalah A+ dan kabel hijau adalah A- maka mereka akan terhubung masing-masing dengan OUT1 dan OUT2. Demikian juga, kabel merah adalah B+ dan kabel biru adalah B- maka mereka akan terhubung masing-masing dengan OUT3 dan OUT4.

Hubungkan terminal positif catu daya 12V dengan terminal 12V dan terminal negatif catu daya dengan ground yang sama.

Kami menjaga jumper 5V Enable di tempatnya karena akan menyalakan driver motor L298N. Kemudian kita hubungkan pin input IN1, IN2, IN3 dan IN4 dengan pin digital Arduino UNO. Kami telah menggunakan masing-masing GPIO9, GPIO8, GPIO7 dan GPIO6 untuk terhubung dengan masing-masing pin input driver motor.

Pin pengaktifan jumper ENA dan ENB tidak dilepas. Ini akan memastikan bahwa motor stepper tetap diaktifkan.

Arduino Sketch: Kontrol Stepper Motor menggunakan L298N Motor Driver

Buka Arduino IDE Anda dan buka File> New. File baru akan terbuka. Salin kode yang diberikan di bawah ini dalam file itu dan simpan.

Sketsa dasar ini akan menunjukkan kepada kita bagaimana mengendalikan kecepatan dan arah putaran motor stepper menggunakan driver motor L298N.

#include <Stepper.h>

const int steps_per_rev = 200; //Set to 200 for NIMA 17

#define IN1 9

#define IN2 8

#define IN3 7

#define IN4 6

Stepper motor(steps_per_rev, IN1, IN2, IN3, IN4);

void setup()

{

  motor.setSpeed(60);

  Serial.begin(115200);

}

void loop()

{

  Serial.println("Rotating Clockwise...");

  motor.step(steps_per_rev);

  delay(500);

  Serial.println("Rotating Anti-clockwise...");

  motor.step(-steps_per_rev);

  delay(500);

}

 

Demontrasi

Untuk melihat demonstrasi kode di atas, unggah kode ke Arduino. Sebelum mengunggah kode, pastikan untuk memilih Arduino UNO dari Tools > Board.

 

Juga, pilih port COM yang benar yang terhubung dengan papan Arduino dari Tools > Port.

Setelah kode diunggah ke papan Anda, motor akan mulai berputar.

Motor stepper akan mulai berputar searah jarum jam dan kemudian berlawanan arah jarum jam berulang kali.

Di Arduino IDE Anda, buka monitor serial dan Anda juga dapat melihat status putaran motor.


 


Video




Minggu, 26 Maret 2023

Arduino Ethernet Shield W5100 untuk Kendali LED dan mengirim data suhu/lembab ke browser

 

Introduction :

Arduino Ethernet Shield V1 menghubungkan Arduino Anda ke internet hanya dalam hitungan menit. Cukup colokkan modul ini ke papan Arduino Anda, sambungkan ke jaringan Anda dengan kabel RJ45 (tidak disertakan) dan ikuti beberapa petunjuk sederhana untuk mulai mengendalikan dunia Anda melalui internet.

 

Arduino Ethernet Shield V1 memungkinkan papan Arduino untuk terhubung ke internet. Ini didasarkan pada chip Wiznet W5100ethernet. Wiznet W5100 menyediakan tumpukan jaringan (IP) yang mampu TCP dan UDP. Ini mendukung hingga empat koneksi soket simultan. Gunakan Library  Ethernet untuk menulis sketsa yang terhubung ke internet menggunakan Arduino IDE.

 

Arduino berkomunikasi dengan W5100 dan kartu SD menggunakan bus SPI (melalui header ICSP). Ini ada di pin digital 10, 11, 12, dan 13 di Uno dan pin 50, 51, dan 52 di Mega. Di kedua papan, pin 10 digunakan untuk memilih W5100 dan pin 4 untuk kartu SD. Pin ini tidak dapat digunakan untuk I/O umum. Pada Mega, pin SS perangkat keras, 53, tidak digunakan untuk memilih W5100 atau kartu SD, tetapi harus disimpan sebagai keluaran atau antarmuka SPI tidak akan berfungsi.

Perhatikan bahwa karena W5100 dan kartu SD berbagi bus SPI, hanya satu yang dapat aktif pada satu waktu. Jika Anda menggunakan kedua periferal dalam program Anda, hal ini harus ditangani oleh pustaka terkait. Namun, jika Anda tidak menggunakan salah satu periferal dalam program, Anda harus membatalkan pilihannya secara eksplisit. Untuk melakukan ini dengan kartu SD, atur pin 4 sebagai output dan tulis tinggi ke sana. Untuk W5100, atur pin digital 10 sebagai output tinggi.

 About this project :

Dalam pelajaran ini, kami akan menunjukkan cara menggunakan W5100 Ethernet Shield dan papan Arduino UNO untuk berfungsi sebagai Server Web untuk mendapatkan suhu/kelembaban jarak jauh dari sensor DHT11 dan mengontrol browser mengendalikan LED (atau aplikasi seluler).

Preparation

Hardware:

Software:

Schematic Diagram :


 
Coding

#include <SPI.h>
#include <Ethernet.h>
#include <dht.h>
#define DHT11_PIN 7
dht DHT;

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
IPAddress ip(192, 168, 0, 141); //uncomment this line if you want define static IP instead of dynamic IP from DHCP server
EthernetServer server(80); //server port

String readString;
int ledPin = 8;

void setup(){
Serial.begin(9600);
Serial.println("connect DHCP server");
    pinMode(ledPin, OUTPUT); //pin selected to control
    // Test LED
    digitalWrite(ledPin, HIGH); // set pin high
    delay(500);
    digitalWrite(ledPin, LOW); // set pin low
    
    //start Ethernet
     Ethernet.begin(mac,ip); // if you defined static ip in line 28, change this line to   Ethernet.begin(mac,ip);
     server.begin();
     Serial.print("Please use your browser to visit http://");
  Serial.println(Ethernet.localIP());
}

void loop(){
    
    EthernetClient client = server.available();
    if (client) {
        while (client.connected()) {
            if (client.available()) {
                char c = client.read();
               
                //read char by char HTTP request
                while (readString.length() < 100 && c != 0x0D  ) {
                    //store characters to string
                    readString += c;
                    c = client.read();
                }
            
                Serial.println(readString);
          int chk = DHT.read11(DHT11_PIN);
            String msg="HTTP/1.1 200 OK\n\rContent-Type: text/html\n\r\n\r";
     msg +="<HTML><BODY><H1 style=\"color:green;\">Test W5100 ETHERNET SHIELD</H1><br>";
     msg +="<HTML><BODY><H1 style=\"color:red;\">By ZENTRONIC.CO.ID</H1><br>";
     msg +="<H2><a href=\"/?LEDON\"\">Turn On LED</a><br></H2>";
 
     msg +="<H2><a href=\"/?LEDOFF\"\">Turn Off LED</a><br></H2>";
        msg +="<p>Real time temperature: ";
   msg +=  DHT.temperature;
    msg +=  " C ; Real time Humidity: " ;
    msg += DHT.humidity ;
     msg += "%</p></BODY></HTML>";
 
                    client.println(msg);

                    delay(10);
                    //stopping client
                    client.stop();

                    // control arduino pin
                    if(readString.indexOf("?LEDON") > -1) //checks for LEDON
                    {
                        digitalWrite(ledPin, HIGH); // set pin high
                    }
                    else{
                        if(readString.indexOf("?LEDOFF") > -1) //checks for LEDOFF
                        {
                            digitalWrite(ledPin, LOW); // set pin low
                        }
                    }
                    //clearing string for next read
                    readString="";

            }
        }
    }
}

Catatan : IP Address disesuaikan dengan IP address di LAN Router anda.

Blok Diagram :


 

Running Result

Ketika kode berjalan di papan Arduino, buka Serial Monitor (atur baud rate ke 9600 di sudut kanan bawah), Anda akan melihat monitor serial menampilkan IP perangkat Anda di halaman berikut:

 


 

Kunjungi alamat IP di atas dari browser, Anda dapat melihat data suhu dan kelembaban di browser yang dikumpulkan oleh sensor DHT11 yang terhubung ke pin D8 sebagai berikut:

Test W5100 ETHERNET SHIELD

By ZENTRONIC.CO.ID

Turn On LED

Turn Off LED

Real time temperature: 0.00 C ;real time Humidity: 0.00%

Sekarang di monitor serial Arduino IDE Anda, Anda akan melihat sesuatu seperti GET /…… , ini adalah pesan yang berasal dari browser jarak jauh.

Saat Anda mengklik tombol Nyalakan LED di halaman ini, LED yang terhubung ke D7 akan menyala. Serial monitor akan menampilkan GET /?LEDON HTTP/1.1 , ini adalah pesan dari browser yang menyuruh Arduino untuk menyalakan LED.

 



Sekarang Ketika Anda mengklik Matikan tombol LED di halaman browser, LED yang terhubung ke D7 akan mati. Serial monitor akan menampilkan GET /?LEDOFF HTTP/1.1 , ini adalah pesan dari browser yang menyuruh Arduino untuk mematikan LED.

 Video :


 

Arduino – LM35 Temperature Sensor

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