Ada banyak modul untuk Arduino atau untuk digunakan dalam proyek DIY oleh pembuatnya. Dalam kasus L298N adalah modul untuk mengontrol motor. Dengan mereka Anda dapat menggunakan kode sederhana untuk memprogram papan Arduino kami dan mampu mengendalikan motor DC dengan cara yang sederhana dan terkontrol. Umumnya, jenis modul ini lebih banyak digunakan dalam robotika atau aktuator bermotor, meskipun dapat digunakan untuk banyak aplikasi.
Kami telah memasukkan semua yang Anda butuhkan modul ESP, dengan chip ESP8266sebuah modul yang memungkinkan untuk menambah kapasitas Papan Arduino dan proyek lainnya sehingga memiliki konektivitas WiFi. Modul-modul ini tidak hanya dapat digunakan secara terpisah, hal baiknya adalah dapat digabungkan. Misalnya, ESP8266 dapat digunakan untuk prototipe kami dan L298N, yang dengannya kami akan mendapatkan motor yang dapat dikontrol melalui Internet atau nirkabel.
Pengantar L298N dan lembar data:
Walaupun dengan Arduino anda juga bisa bekerja dengan motor stepper yang sudah terkenal di dunia robotika, dalam hal ini biasanya lebih umum menggunakan controller atau pengemudi untuk motor DC. Anda bisa mendapatkan informasi tentang chip L298 dan modul di lembar data pabrikan, seperti STMicroelectronics dari tautan ini. Jika Anda ingin melihat lembar data dari modul tertentu, dan bukan hanya chipnya, Anda dapat mengunduh PDF lain dari Handsontec L298N.
Namun secara garis besar, L298N adalah driver tipe H-bridge yang memungkinkan kecepatan dan arah putaran motor DC dapat dikontrol. Ini juga dapat digunakan dengan motor stepper dengan mudah berkat 2 Jembatan-H yang mengimplementasikan. Artinya, jembatan di H, yang berarti dibentuk oleh 4 transistor yang akan memungkinkan untuk membalikkan arah arus sehingga rotor motor dapat berputar ke satu arah atau yang lain sesuai keinginan kita. Ini adalah keunggulan dibandingkan pengontrol yang hanya memungkinkan Anda mengontrol kecepatan rotasi (RPM) dengan hanya mengontrol nilai tegangan suplai.
L298N dapat bekerja dengan berbagai tegangan, dari 3v hingga 35v, dan pada intensitas 2A. Hal inilah yang nantinya sangat menentukan performa atau kecepatan putar dari motor tersebut. Harus diperhatikan bahwa elektronik yang digunakan modul biasanya mengkonsumsi sekitar 3v, sehingga motor akan selalu menerima 3v lebih sedikit dari daya yang kita berikan. Ini adalah konsumsi yang agak tinggi, sebenarnya ia memiliki elemen daya tinggi yang membutuhkan heatsink seperti yang Anda lihat di gambar.
Untuk mengontrol kecepatan, Anda dapat melakukan sesuatu yang berlawanan dengan apa yang kami lakukan dengan LM35, dalam hal ini, alih-alih mendapatkan tegangan tertentu pada output dan harus mengubahnya menjadi derajat, ini sebaliknya. Kami memberi makan pengemudi dengan tegangan yang lebih rendah atau lebih tinggi untuk mendapatkan belokan yang lebih cepat atau lebih lambat. Selain itu, modul L298N juga memungkinkan papan Arduino diberi daya pada 5v selama kita memberi daya pada pengemudi dengan tegangan setidaknya 12v.
Integrasi dengan Arduino
di sana banyak proyek yang dapat Anda gunakan untuk menggunakan modul ini L298N. Nyatanya, Anda bisa membayangkan semua yang bisa Anda lakukan dengannya dan mulai bekerja. Misalnya, contoh sederhananya adalah kontrol dua motor arus searah seperti yang dapat dilihat pada diagram sebelumnya yang dibuat dengan Fritzing.
Sebelum bekerja dengan L298N kita harus memperhitungkan bahwa input modul atau Vin mendukung tegangan antara 3v dan 35v dan kita juga harus menghubungkannya ke ground atau GND, seperti dapat dilihat pada gambar dengan kabel merah dan hitam masing-masing. Setelah terhubung ke daya, hal berikutnya adalah menghubungkan motor atau dua motor yang diterima untuk dikendalikan secara bersamaan. Ini sederhana, Anda hanya perlu menghubungkan dua terminal motor ke tab koneksi yang memiliki modul di setiap sisinya.
Dan sekarang mungkin yang paling rumit, dan menghubungkan koneksi modul atau pin ke Arduino dengan benar. Ingatlah bahwa jika jumper atau bridge regulator modul ditutup, yaitu aktif, regulator tegangan modul diaktifkan dan ada output 5v yang dapat Anda gunakan untuk menyalakan papan Arduino. Di sisi lain, jika Anda melepas jumper, Anda menonaktifkan regulator dan Anda perlu menyalakan Arduino secara mandiri. mata! Karena jumper hanya bisa disetting sampai tegangan 12v, untuk lebih dari itu anda harus melepasnya agar tidak merusak modul ...
Anda bisa menghargai itu ada 3 koneksi untuk setiap motor. Yang ditandai sebagai IN1 hingga IN4 adalah yang mengontrol motor A dan B. Jika Anda tidak memiliki salah satu motor yang terhubung karena Anda hanya membutuhkan satu, maka Anda tidak perlu menempatkan semuanya. Jumper pada setiap sisi sambungan ini untuk masing-masing motor adalah ENA dan ENB, yaitu untuk mengaktifkan motor A dan B, yang harus ada jika kita ingin kedua motor tersebut bekerja.
untuk motor A (Ini akan sama untuk B), kita harus menghubungkan IN1 dan IN2 yang akan mengontrol arah rotasi. Jika IN1 TINGGI dan IN2 RENDAH, motor berbelok ke satu arah, dan jika RENDAH dan TINGGI, motor berbelok ke arah lain. Untuk mengontrol kecepatan putaran Anda harus melepaskan jumper INA atau INB dan menggunakan pin yang muncul untuk menghubungkannya ke Arduino PWM, sehingga jika kami memberikan nilai dari 0 hingga 255 kami memperoleh kecepatan rendah atau lebih tinggi masing-masing.
Dalam hal pemrograman juga mudah di Arduino IDE. Misalnya, kodenya adalah:
<pre>// Motor A int ENA = 10; int IN1 = 9; int IN2 = 8; // Motor B int ENB = 5; int IN3 = 7; int IN4 = 6; void setup () { // Declaramos todos los pines como salidas pinMode (ENA, OUTPUT); pinMode (ENB, OUTPUT); pinMode (IN1, OUTPUT); pinMode (IN2, OUTPUT); pinMode (IN3, OUTPUT); pinMode (IN4, OUTPUT); } //Mover los motores a pleno rendimiento (255), si quieres bajar la velocidad puedes reducir el valor hasta la mínima que son 0 (parados)</pre> <pre>//Para mover los motores en sentido de giro contrario, cambia IN1 a LOW e IN2 a HIGH void Adelante () { //Direccion motor A digitalWrite (IN1, HIGH); digitalWrite (IN2, LOW); analogWrite (ENA, 255); //Velocidad motor A //Direccion motor B digitalWrite (IN3, HIGH); digitalWrite (IN4, LOW); analogWrite (ENB, 255); //Velocidad motor B }</pre>