İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Adım 1: Malzemeler
1- Robot Mio
2- L298N Voltaj Regülatörü Çift Motor Sürücü Kartı
3- Arduino Nano
4- HC06 Bluetooth-Seri Modül Kartı
5- (2x) 9 V Pil Başlığı
Adım 2: Parçaları Birleştirme
Önce motor sürücü bağlantılarından başlayalım. Jumper kablolarını motor sürücüsünün in1, in2, in3, in4 pinlerinin altına lehimleyelim. (pic1 olarak) Ardından kabloyu in1'den nano'nun d6 pinine, in2 ila d10 pinine, in3 ila d5 pinine ve son olarak da kabloyu in4 ila d9 pinine bağlayalım. (2. resimdeki gibi) Şimdi HC06 modülümüzün bağlantılarını yapalım, RXD pinini nano'nun TXD pinine, TXD pinini RXD pinine, VCC ve GND pinlerini nano'nun herhangi bir 5v ve GND pinine bağlayalım. (pic3 olarak) Ve son olarak motor bağlantılarını yapalım. Mio bize dönükken sağ motor kablolarını motor sürücüsünün çıkış 3, 4 pinine, sol motor kablolarını çıkış1, 2 pinine bağlayalım. 9v pil kapağının kırmızı kablosunu VIN pinine bağlayalım. nano ve siyah kabloyu GND pinine bağlayın. (resim4 olarak) Ve ortasından bir jumper teli keselim, ucunu soyup nanonun GND pinine, motor sürücüsünün GND pinine bağlayalım. (resim5, 6) Başka bir 9v pil kafasının kırmızı kablosunu 12v pinine siyah kabloyu motor sürücü güç pinleri üzerindeki gnd pinine bağlayalım. (resim7'deki gibi)
Adım 3: Nano'yu Kodlamak
const int motorA1 = 5; // L298N'in IN3 Girişi
const int motorA2 = 6; // L298N'in IN1 Girişi const int motorB1 = 10; // L298N'in IN2 Girişi const int motorB2 = 9; // L298N'in IN4 Girişi
int i=0; //Döngüler için atanan rastgele bir uyum int j=0; //Döngüler için atanan rastgele bir uyum durumu int; //Bluetooth hakkından gelecek sinyallerin alabileceğini int vSpeed=255; // Standart Hız, 0-255 arası bir değer alabilir
void setup() { // Pinlerimizi belirleyelim pinMode(motorA1, OUTPUT); pinMode(motorA2, ÇIKIŞ); pinMode(motorB1, ÇIKIŞ); pinMode(motorB2, ÇIKIŞ); // 9600 baud hızında bir seri port açalım Serial.begin(9600); } void loop() { //Bluetooth bağlantısı koptuğunda veya kes aracını durdur. //(Aktif etmek için alt bilgin "//" larını.) // if(digitalRead(BTState)=LOW) { state='S'; }
//Gelen veriyi 'durum' durumuna uygun durumda if(Serial.read() > 0){ state = Serial.read(); } // Uygulamadan ayarlanabilen 4 hız seviyesi.(Değerler 0-255 arasında olmalı) if (state == '0'){ vSpeed=0;} else if (state == '1'){ vSpeed=100;} else if (durum == '2'){ vSpeed=180;} else if (durum == '3'){ vSpeed=200;} else if (durum == '4'){ vSpeed=255;} /*** ********************İleri******************************/ //Gelen veri 'F' ise araba ileri gider. if (durum == 'F') { analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0); analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0); } /*************************İleri Sol************************** //Gelen veri 'G' ise araba ileri sol(çapraz) gider. else if (durum == 'G') { analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0); analogWrite(motorB1, 100); analogWrite(motorB2, 0); } /*************************İleri Sağ************************** //Gelen veri 'I' ise araba ileri sağ(çapraz) gider. else if (durum == 'I') { analogWrite(motorA1, 100); analogWrite(motorA2, 0); analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0); } /*************************Geri************************** ****/ //Gelen veri 'B' ise araba geri gider. else if (durum == 'B') { analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed); analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed); } /***********************Geri Sol************************ //Gelen veri 'H' ise araba geri sol(çapraz) gider else if (durum == 'H') { } /********************* *Geri Sağ************************/ //Gelen veri 'J' ise araba geri sağ(çapraz) gider else if (durum == ' J') { analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed); analogWrite(motorB1, 0); analogWrite(motorB2, 100); } /********************************Sol******************** *********/ //Gelen veri 'L' ise araba sola gider. else if (durum == 'L') { analogWrite(motorA1, vSpeed); analogWrite(motorA2, 150); analogWrite(motorB1, 0); analogWrite(motorB2, 0); } /******************************Sağ******************** *********/ //Gelen veri 'R' ise araba parkına gider else if (durum == 'R') { analogWrite(motorA1, 0); analogWrite(motorA2, 0); analogWrite(motorB1, vSpeed); analogWrite(motorB2, 150); } /************************Durmak*********************** ******/ //Gelen veri 'S' ise arabayı durdur. else if (durum == 'S'){ analogWrite(motorA1, 0); analogWrite(motorA2, 0); analogWrite(motorB1, 0); analogWrite(motorB2, 0); } } analogWrite(motorA1, 0); analogWrite(motorA2, 100); analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
Adım 4: Parçaları Mio'ya Yükleme
Artık robot mio'yu birleştirmek için son aşamadayız.