Bluetooth HC-05 ile ve Arduino ile 2 DC Motor kontrol
Burada DC motorun hızını ve yönünü kontrol etmek için Arduino ve Bluetooth modülünü kullandığımızla aynıdır . Bu projede DC motorun nasıl kontrol edileceğini, motorların yönünü, motorlar arasındaki haberleşmeyi ve Akıllı Telefon'u nasıl kontrol edeceğimizi öğrendiğimiz bu projede Arduino UNO'ya takılı Bluetooth modülü HC-05 kullanılarak yapıldı.
Gerekli Bileşenler:
- Arduino Uno: Dijital pinleri sayesinde kullanımı kolay ve farklı cihazlarla arayüz oluşturmak kolaydır. Burada Bluetooth modülünü ve DC motoru aynı anda arayüzledik.
- 2 DC Motor
- L293D Motor Sürücüsü : Motoru doğrudan Arduino'ya bağlamak iyi değildir çünkü motor Arduino'nun sağladığı daha az akım gerektirir. Bu problemi çözmek için DC motor ile Arduino arasına bağlanan bir motor sürücüsü kullanılır.
- Bluetooth Modülü HC-05
Bağlantılar:
- 5V ve IC'nin topraklaması 5V'a ve Arduino'nun toprağı.
- Motor 1 pinleri IC pinleri 3 ve 6'yı bağlar.
- Motor 2 pimleri, IC pimleri 11 ve 13'ü bağlar.
- IC'nin Input1 ve input2 pinleri sırasıyla Arduino'nun 3 ve 4 pinlerini bağlar.
- IC'nin input3 ve input4 pinleri sırasıyla Arduino'nun 8 ve 9 pinlerini bağlar
- Enable1 ve Enable2, 2 ve 11 pinlerini bağlayın.
- Bluetooth pin Vcc ve GND, Arduino'nun Vcc ve GND'sine doğrudan bağlanır ve sırasıyla Arduino'nun TX ve RX'ine bağlı RX ve TX pinleri.
Çalışma Şekli
Öncelikle Bluetooth modülünü Akıllı Telefonumuza bağlarız. Daha sonra kodlama talimatına göre mesajı gönderdik. 1 st sonra 1 mesaj motoru ileriye gidiyor edilir mesaj göndermek; Motorun dönmesini istiyorsak motoru durdurmak istiyorsak 3 motora dur mesajı gönderelim. Motoru sola veya ters çevirmek istersek 2 ve 5 numaralı mesajlar gönderilirse sırasıyla motor sola ve tersine çevrilir.
Kod
int motor1Pin1 = 3; // pin 2 on IC int motor1Pin2 = 4; // pin 7 on IC int enable1Pin = 2; // pin 1 on IC int motor2Pin1 = 8; // pin 10 on IC int motor2Pin2 = 9; // pin 15 on IC int enable2Pin = 11; // pin 9 on IC int state; int flag=0; int stateStop=0; void setup() { // sets the pins as outputs: pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(enable1Pin, OUTPUT); pinMode(motor2Pin1, OUTPUT); pinMode(motor2Pin2, OUTPUT); pinMode(enable2Pin, OUTPUT); // sets enable1Pin and enable2Pin high so that motor can turn on: digitalWrite(enable1Pin, HIGH); digitalWrite(enable2Pin, HIGH); // initialize serial communication at 9600 bits per second: Serial.begin(9600); } void loop() { //Start Serial Communication if(Serial.available() > 0){ state = Serial.read(); flag=0; } // if the state is '1' the DC motor will go forward if (state == '1') { digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, HIGH); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, HIGH); if(flag == 0){ Serial.println("Go Forward!"); flag=1; } delay(3000); state=3; stateStop=1; } // if the state is '2' the motor will turn left else if (state == '2') { digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, LOW); if(flag == 0){ Serial.println("Turn LEFT"); flag=1; } delay(3000); state=3; stateStop=1; } // if the state is '3' the motor will Stop else if (state == '3' || stateStop == 1) { digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, LOW); if(flag == 0){ Serial.println("STOP!"); flag=1; } stateStop=0; } // if the state is '4' the motor will turn right else if (state == '4') { digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, HIGH); if(flag == 0){ Serial.println("Turn RIGHT"); flag=1; } delay(3000); state=3; stateStop=1; } // if the state is '5' the motor will Reverse else if (state == '5') { digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH); digitalWrite(motor2Pin1, HIGH); digitalWrite(motor2Pin2, LOW); if(flag == 0){ Serial.println("Reverse!"); flag=1; } delay(3000); state=3; stateStop=1; }} }
Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook robotic.code
instagram @roboticcode
Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.