Pembaruan: Saat ini saya sedang mengubah beberapa hal dengan proyek. Saya mengambil beberapa dari Anda saran. Saya telah berubah dari motor stepper ke servo RC (dikontrol melalui PWM) dan jika saya mengalami masalah dan tidak bisa mengatasinya saya akan bertanya. Terima kasih untuk bantuannya!
Saya sedang mengerjakan sebuah proyek dengan seorang teman dan ini adalah pertama kalinya kami menggunakan Arduino. Kami menggunakan Arduino untuk mengambil data dari sensor (akselerometer) dan kemudian menghidupkan motor (6V, DC).
Saya telah melakukan penggalian dan sepertinya daya yang keluar dari Arduino mungkin tidak cukup untuk motor dan sensor pada saat yang bersamaan. Mungkin penundaan jenis bisa berhasil (apakah ini mungkin?).
Saya sedang mempertimbangkan menggunakan pelindung motor . Apakah saya masih dapat mengontrol accelerometer bersama dengan motor?
Saya mencoba menggunakan sumber daya eksternal tunggal (maks: 6 baterai AA; Saya mencoba membatasi jumlah baterai karena kami mencoba untuk tetap portabel) jadi apakah ada cara untuk menggunakan satu sumber sejak Arduino dan pelindung motor membutuhkan dua catu daya yang berbeda (dari pemahaman saya).
Jawaban:
Edisi 1 : Mengemudi motor langsung dari Arduino
Mengemudi motor langsung dari pin Arduino tidak disarankan karena beberapa alasan:
Sementara setiap pin Arduino untuk Arduino berbasis ATmega diberi peringkat untuk 40 mA, saya pribadi lebih suka untuk menjaga pemuatan berkelanjutan hingga di bawah 30 mA, selera risiko Anda mungkin berbeda. Tanpa melihat lembar data motor yang dimaksud, tidak mungkin untuk memperkirakan berapa banyak arus yang dibutuhkan motor
Kembali EMF pada dasarnya adalah tegangan balik yang dihasilkan oleh kumparan motor (atau beban induktif saat mematikan), transien (paku) yang sebentar dapat jauh melebihi kisaran tegangan yang dapat diterima yang dapat ditoleransi oleh pin mikrokontroler.
Kembali EMF tetap merupakan risiko, meskipun berkurang, bahkan jika dioda cepat terhubung dalam bias balik melintasi motor, praktik yang sangat dianjurkan.
Jika Anda nyaman dengan elektronik dasar, ini juga dapat dicapai dengan langsung memasang IC driver motor yang sesuai dan dioda flyback. ( Sunting : Ini dijelaskan dengan sangat baik dalam jawaban oleh Manishearth )
Pengemudi motor, apakah perisai atau IC, harus diberdayakan secara independen dari Arduino, tetapi dengan dua jalur ground sumber daya dihubungkan bersama. Lihat lebih jauh ke bawah.
Masalah 2 : Mengontrol accelerometer dan pelindung motor secara bersamaan
Untuk kenyamanan, cari pelindung motor dengan header yang dapat ditumpuk, yaitu dengan pin header Arduino yang direplikasi pada pelindung motor untuk memasang perangkat keras tambahan, dalam kasus Anda accelerometer. Tidak semua perisai memberikan header yang bisa ditumpuk. Dengan demikian menyulitkan menggunakan pin yang tidak digunakan oleh perisai, membutuhkan kabel untuk disolder ke bantalan header yang relevan pada PCB, atau pengaturan semacam itu.
Jika pelindung motor yang Anda pilih menggunakan semua pin GPIO, seperti halnya pelindung untuk mengendarai beberapa motor, Anda mungkin memiliki masalah. Karena hanya 1 motor yang akan digerakkan, hindari perisai multi-motor yang tidak meninggalkan cukup pin GPIO yang tidak digunakan.
Edisi 3 : Distribusi daya antara Arduino dan pelindung motor
sumber
Kebanyakan perisai mengambil beberapa pin dan meninggalkan sisanya untuk Anda (itu sebabnya banyak yang memiliki replika sistem pin Arduino di atasnya menggunakan header stackable). Mereka dirancang untuk menjadi tanpa kerumitan mungkin, jadi mendapatkan perisai adalah cara termudah untuk berkeliling ini.
Saya pribadi tidak menyalakan motor dari papan langsung; alih-alih saya menggunakan driver motor seperti L293D untuk ini. Pin tidak benar-benar baik untuk mengekstraksi arus, dan umumnya lebih baik untuk menyalakan sensor langsung daripada melalui pin Arduino. Ingat, pin memiliki batas saat ini, dan jika Anda membebani mereka, pin tersebut akan terbakar.
Menggunakan L293D itu mudah:
Hubungkan pin 1,9,16 ke sumber Vcc Anda (terminal positif dari sumber 5V apa pun yang Anda gunakan untuk Arduino. Bagi saya ini umumnya berupa garis yang ditarik dari LM7805). Sekarang hubungkan pin 4,5,13,12 ke GND Anda (terminal negatif). Sekarang, hubungkan pin 8 ke sumber tegangan tinggi (6V, 12V, atau apa pun yang ingin Anda makan ke motor Anda). Perhatikan bahwa terminal negatif semua sumber tegangan harus disingkat menjadi GND.
Sekarang, hubungkan motor Anda di dua pin output di satu situs (3,4 di sebelah kiri). Hubungkan pin input (2,7) ke dua pin yang berbeda di Arduino. Ketika Anda memberikan sinyal yang sama (TINGGI atau RENDAH) ke kedua pin, maka motor berhenti. Jika Anda memberikan TINGGI dari satu pin dan RENDAH dari yang lain, motor akan bergerak searah jarum jam atau berlawanan arah jarum jam, tergantung pada pin mana yang mendapatkan sinyal.
Jika Anda ingin motor searah dan ingin menyimpan pin, pendekkan salah satu pin input ke GND. Sekarang, ketika pin input lainnya RENDAH, motor akan mati, dan ketika TINGGI, motor akan hidup.
Anda dapat memasang motor lain menggunakan prosedur yang sama di ujung chip jika diinginkan.
L293D menarik sejumlah kecil arus dari Arduino, dan memberi daya motor dari arus yang ditarik melalui pin 8, dan biasanya ideal untuk situasi seperti itu.
sumber