myilmazlar

Yeni Üye
Katılım
12 Kasım 2024
Mesajlar
6
Merhaba arduino uno, l298n motor sürücü kartı ve hc-05 bluetooth modülü kullanarak araba yapmaya çalışıyorum fakat ne yaparsam yapayım bir türlü motorları döndüremedim. Motorların hepsi sorunsuz çalışıyor. Bağlantı şemasını ve kodu aşağıya bırakıyorum.

Ekran görüntüsü 2024-11-12 132359.png


Kod:
//L298N Bağlantısı   
  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 değişken
  int j=0; //Döngüler için atanan rastgele bir değişken
  int state; //Bluetooth cihazından gelecek sinyalin değişkeni
  int vSpeed=255;     // Standart Hız, 0-255 arası bir değer alabilir
void setup() {
    // Pinlerimizi belirleyelim
    pinMode(motorA1, OUTPUT);
    pinMode(motorA2, OUTPUT);
    pinMode(motorB1, OUTPUT);
    pinMode(motorB2, OUTPUT);   
    // 9600 baud hızında bir seri port açalım
    Serial.begin(9600);
}
 
void loop() {
  /*Bluetooth bağlantısı koptuğunda veya kesildiğinde arabayı durdur.
 (Aktif etmek için alt satırın "//" larını kaldırın.)*/
//     if(digitalRead(BTState)==LOW) { state='S'; }
  //Gelen veriyi 'state' değişkenine kaydet
    if(Serial.available() > 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 (state == '2'){
      vSpeed=180;}
    else if (state == '3'){
      vSpeed=200;}
    else if (state == '4'){
      vSpeed=255;}
    
  /***********************İleri****************************/
  //Gelen veri 'F' ise araba ileri gider.
    if (state == '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 (state == '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 (state == 'I') {
        analogWrite(motorA1, 100); analogWrite(motorA2, 0);
        analogWrite(motorB1, vSpeed);      analogWrite(motorB2, 0);
    }
  /***********************Geri****************************/
  //Gelen veri 'B' ise araba geri gider.
      if (state == '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 (state == 'H') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, 100);
        analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
    }
  /**********************Geri Sağ************************/
  //Gelen veri 'J' ise araba geri sağ(çapraz) gider
    else if (state == 'J') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, vSpeed);
        analogWrite(motorB1, 0);   analogWrite(motorB2, 100);
    }
  /***************************Sol*****************************/
  //Gelen veri 'L' ise araba sola gider.
    else if (state == 'L') {
      analogWrite(motorA1, vSpeed);   analogWrite(motorA2, 150);
        analogWrite(motorB1, 0); analogWrite(motorB2, 0);
    }
  /***************************Sağ*****************************/
  //Gelen veri 'R' ise araba sağa gider
    else if (state == 'R') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, 0);
        analogWrite(motorB1, vSpeed);   analogWrite(motorB2, 150);     
    }
 
  /************************Stop*****************************/
  //Gelen veri 'S' ise arabayı durdur.
    else if (state == 'S'){
        analogWrite(motorA1, 0);  analogWrite(motorA2, 0);
        analogWrite(motorB1, 0);  analogWrite(motorB2, 0);
    } 
}
 
1- Motor döndürme komutunu nereden gönderiyorsun?
2- Tüm devreyi 9V pil ile mi besliyorsun?
3- Devreyi simulasyonda mı çalıştırmaya çalışıyorsun yoksa fiziken kurulu mu?
 
1- Motor döndürme komutunu nereden gönderiyorsun?
2- Tüm devreyi 9V pil ile mi besliyorsun?
3- Devreyi simulasyonda mı çalıştırmaya çalışıyorsun yoksa fiziken kurulu mu?
1- Telefonda bulunan uygulamadan gönderiyorum.
2- Evet. 9V pilin artı ucu l298n 12V pinine bağlı.
3- Fiziken kurulu.
 
1- Bluetooth'u devre dışı bırak, öncelikle arduinonun kendisine kod yazarak motorların döndüğünü garantile. Böylece bluetooth kaynaklı bir problem varsa anlamış olursun.
2- 9V pil 4 motor, bir sürücü ve bir arduinoya yeterli gücü sağlayamıyor olabilir. Harici bir adaptör yada ayarlı güç kaynağı var ise onunla dene. Bu sayede pil yetiyor mu, yetmiyor mu onuda anlamış olursun.
3- Bluetooth tan gelen verileri işlerken büyük harf kullanmışsın (İleri, geri vs.) Bunlar buluetooth tan büyük harf olarak mı geliyor? Küçük harf geliyorsa motorlar çalışmayabilir.
4-Bluetooth tan veya arduinodan aldığın kodları Serial Monitöre yazdır. Serial.print() Bu sayede nereden veri geliyor, nereden gelmiyor, büyük harf mi geliyor, küçük mü geliyor, hepsini tespit edebilirsin.
 
1- Bluetooth'u devre dışı bırak, öncelikle arduinonun kendisine kod yazarak motorların döndüğünü garantile. Böylece bluetooth kaynaklı bir problem varsa anlamış olursun.
2- 9V pil 4 motor, bir sürücü ve bir arduinoya yeterli gücü sağlayamıyor olabilir. Harici bir adaptör yada ayarlı güç kaynağı var ise onunla dene. Bu sayede pil yetiyor mu, yetmiyor mu onuda anlamış olursun.
3- Bluetooth tan gelen verileri işlerken büyük harf kullanmışsın (İleri, geri vs.) Bunlar buluetooth tan büyük harf olarak mı geliyor? Küçük harf geliyorsa motorlar çalışmayabilir.
4-Bluetooth tan veya arduinodan aldığın kodları Serial Monitöre yazdır. Serial.print() Bu sayede nereden veri geliyor, nereden gelmiyor, büyük harf mi geliyor, küçük mü geliyor, hepsini tespit edebilirsin.
1- Bluetooth'u çıkardıktan sonra arduinoya kod yazarak motorları döndüreceğimi bilmiyorum.
2- Şuan sadece 1 motor takılı, harici adaptörüm yok.
3- Evet gelen verilerde F, B, L, R diye büyük harfler.
 
1- Bluetooth'u çıkardıktan sonra arduinoya kod yazarak motorları döndüreceğimi bilmiyorum.
2- Şuan sadece 1 motor takılı, harici adaptörüm yok.
3- Evet gelen verilerde F, B, L, R diye büyük harfler.
galiba pil yetmiyordu. 6 tane aa pil kullandım motorlar dönmeye başladı.
ama şimdi ileri yöne basınca sadece sol taraftaki motorlar çalışıyor. geri basınca sadece sağ taraftaki ön motor çalışıyor. sol yöne basınca hiçbir motor çalışmıyor. sağ yöne basınca soldaki tüm motorlar ve sağdaki ön motor çalışıyor. hangi yöne basarsam basayım sağ ön motor diğerlerine göre çok daha hızlı dönüyor.

Ekran görüntüsü 2024-11-12 164303.png


Kod:
//L298N Bağlantısı   
  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 değişken
  int j=0; //Döngüler için atanan rastgele bir değişken
  int state; //Bluetooth cihazından gelecek sinyalin değişkeni
  int vSpeed=255;     // Standart Hız, 0-255 arası bir değer alabilir
void setup() {
    // Pinlerimizi belirleyelim
    pinMode(motorA1, OUTPUT);
    pinMode(motorA2, OUTPUT);
    pinMode(motorB1, OUTPUT);
    pinMode(motorB2, OUTPUT);   
    // 9600 baud hızında bir seri port açalım
    Serial.begin(9600);
}
 
void loop() {
  /*Bluetooth bağlantısı koptuğunda veya kesildiğinde arabayı durdur.
 (Aktif etmek için alt satırın "//" larını kaldırın.)*/
//     if(digitalRead(BTState)==LOW) { state='S'; }
  //Gelen veriyi 'state' değişkenine kaydet
    if(Serial.available() > 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 (state == '2'){
      vSpeed=180;}
    else if (state == '3'){
      vSpeed=200;}
    else if (state == '4'){
      vSpeed=255;}
    
  /***********************İleri****************************/
  //Gelen veri 'F' ise araba ileri gider.
    if (state == '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 (state == '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 (state == 'I') {
        analogWrite(motorA1, 100); analogWrite(motorA2, 0);
        analogWrite(motorB1, vSpeed);      analogWrite(motorB2, 0);
    }
  /***********************Geri****************************/
  //Gelen veri 'B' ise araba geri gider.
      if (state == '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 (state == 'H') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, 100);
        analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
    }
  /**********************Geri Sağ************************/
  //Gelen veri 'J' ise araba geri sağ(çapraz) gider
    else if (state == 'J') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, vSpeed);
        analogWrite(motorB1, 0);   analogWrite(motorB2, 100);
    }
  /***************************Sol*****************************/
  //Gelen veri 'L' ise araba sola gider.
    else if (state == 'L') {
      analogWrite(motorA1, vSpeed);   analogWrite(motorA2, 150);
        analogWrite(motorB1, 0); analogWrite(motorB2, 0);
    }
  /***************************Sağ*****************************/
  //Gelen veri 'R' ise araba sağa gider
    else if (state == 'R') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, 0);
        analogWrite(motorB1, vSpeed);   analogWrite(motorB2, 150);     
    }
 
  /************************Stop*****************************/
  //Gelen veri 'S' ise arabayı durdur.
    else if (state == 'S'){
        analogWrite(motorA1, 0);  analogWrite(motorA2, 0);
        analogWrite(motorB1, 0);  analogWrite(motorB2, 0);
    } 
}
 
Şimdi bu yapıyı anlamak için üzerine kafa yormak lazım. Direk şöyle yap olur diyebilecek kadar ezbere bilmiyorum.
4 tane motorun var. 2'şer seri bağlamışsın. Dolayısıyla 2'şer seri bağladıklarında biri ileri diğeri geri dönme ihtimali yok. Ya ikisi de ileri dönecek, ya ikisi de geri dönecek.
A1, A2,B1,B2 eğer motor numaraları ise iki tanesi boşa tanımlı şuanda.

Uygulamadan "F" gönderince araba ileri gider demişsin.
Arabanın ileri gitmesi için 4 motorun da ileri dönmesi lazım. Senin motorlar ikişer seri bağlı olduğundan 2 tane komut göndermen lazım. Biri sağa diğeri sola.
Misal: A1 ileri, B1 ileri. Ama işte oradaki A2, B2 ne işe yarıyor onu bilmiyorum. Daha iyi anlamak için Motor sürücüyü tanımak lazım.
 
Kod olması gerekenden çok daha karmaşık yazılmış. Sol motoru kontrol etmek için IN1 IN2 kullanılıyor, sağ motoru kontrol etmek için de IN3 IN4. Ama sen hangi mantıkla bilmiyorum, A1 ve A2 yi IN1 IN3 olarak tanımlamışsın ... Bunu mantıklı hale getir. Mesela:

C++:
const int motorA1  = 6;  // L298N'in IN1 Girişi
const int motorA2  = 10; // L298N'in IN2 Girişi
const int motorB1  = 5;  // L298N'in IN3 Girişi
const int motorB2  = 9;  // L298N'in IN4 Girişi

Böyle yapınca, artık biliyorsun ki A1/A2 sol motor, B1/B2 sağ motor.

Yapman gereken şey, bir fonksiyon yazacaksın. Bu fonksiyona motorun numarasını vereceksin (0 sol, 1 sağ mesela) ve motorun dönüş yönünü vereceksin (0 ileri, 1 geri mesela) ve motorun hızını vereceksin (0 - 255). Bir kere o fonksiyonu yazdıktan sonra, artık gelen text komutlara göre istediğin şeyi yaptırırsın motorlara.
 
Kod olması gerekenden çok daha karmaşık yazılmış. Sol motoru kontrol etmek için IN1 IN2 kullanılıyor, sağ motoru kontrol etmek için de IN3 IN4. Ama sen hangi mantıkla bilmiyorum, A1 ve A2 yi IN1 IN3 olarak tanımlamışsın ... Bunu mantıklı hale getir. Mesela:

C++:
const int motorA1  = 6;  // L298N'in IN1 Girişi
const int motorA2  = 10; // L298N'in IN2 Girişi
const int motorB1  = 5;  // L298N'in IN3 Girişi
const int motorB2  = 9;  // L298N'in IN4 Girişi

Böyle yapınca, artık biliyorsun ki A1/A2 sol motor, B1/B2 sağ motor.

Yapman gereken şey, bir fonksiyon yazacaksın. Bu fonksiyona motorun numarasını vereceksin (0 sol, 1 sağ mesela) ve motorun dönüş yönünü vereceksin (0 ileri, 1 geri mesela) ve motorun hızını vereceksin (0 - 255). Bir kere o fonksiyonu yazdıktan sonra, artık gelen text komutlara göre istediğin şeyi yaptırırsın motorlara.
şuan kod böyle

Kod:
//L298N Bağlantısı    
  const int motorA1  = 6;  // L298N'in IN1 Girişi
  const int motorA2  = 10; // L298N'in IN2 Girişi
  const int motorB1  = 5;  // L298N'in IN3 Girişi
  const int motorB2  = 9;  // L298N'in IN4 Girişi
  int i=0; //Döngüler için atanan rastgele bir değişken
  int j=0; //Döngüler için atanan rastgele bir değişken
  int state; //Bluetooth cihazından gelecek sinyalin değişkeni
  int vSpeed=255;     // Standart Hız, 0-255 arası bir değer alabilir
void setup() {
    // Pinlerimizi belirleyelim
    pinMode(motorA1, OUTPUT);
    pinMode(motorA2, OUTPUT);
    pinMode(motorB1, OUTPUT);
    pinMode(motorB2, OUTPUT);  
    // 9600 baud hızında bir seri port açalım
    Serial.begin(9600);
}
 
void loop() {
  /*Bluetooth bağlantısı koptuğunda veya kesildiğinde arabayı durdur.
 (Aktif etmek için alt satırın "//" larını kaldırın.)*/
//     if(digitalRead(BTState)==LOW) { state='S'; }
  //Gelen veriyi 'state' değişkenine kaydet
    if(Serial.available() > 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 (state == '2'){
      vSpeed=180;}
    else if (state == '3'){
      vSpeed=200;}
    else if (state == '4'){
      vSpeed=255;}
   
  /***********************İleri****************************/
  //Gelen veri 'F' ise araba ileri gider.
    if (state == 'F') {
      analogWrite(motorA1, 150);   analogWrite(motorA2, 0);
        analogWrite(motorB1, 150); analogWrite(motorB2, 0);
   
    }
  /**********************İleri Sol************************/
  //Gelen veri 'G' ise araba ileri sol(çapraz) gider.
    else if (state == '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 (state == 'I') {
        analogWrite(motorA1, 100); analogWrite(motorA2, 0);
        analogWrite(motorB1, vSpeed);      analogWrite(motorB2, 0);
    }
  /***********************Geri****************************/
  //Gelen veri 'B' ise araba geri gider.
      if (state == 'B') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, 150);
        analogWrite(motorB1, 0);   analogWrite(motorB2, 150);
    }
  /**********************Geri Sol************************/
  //Gelen veri 'H' ise araba geri sol(çapraz) gider
    else if (state == 'H') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, 100);
        analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
    }
  /**********************Geri Sağ************************/
  //Gelen veri 'J' ise araba geri sağ(çapraz) gider
    else if (state == 'J') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, vSpeed);
        analogWrite(motorB1, 0);   analogWrite(motorB2, 100);
    }
  /***************************Sol*****************************/
  //Gelen veri 'L' ise araba sola gider.
    else if (state == 'L') {
      analogWrite(motorA1, 250);   analogWrite(motorA2, 0);
        analogWrite(motorB1, 0); analogWrite(motorB2, 0);
    }
  /***************************Sağ*****************************/
  //Gelen veri 'R' ise araba sağa gider
    else if (state == 'R') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, 0);
        analogWrite(motorB1, 250);   analogWrite(motorB2, 0);    
    }
 
  /************************Stop*****************************/
  //Gelen veri 'S' ise arabayı durdur.
    else if (state == 'S'){
        analogWrite(motorA1, 0);  analogWrite(motorA2, 0);
        analogWrite(motorB1, 0);  analogWrite(motorB2, 0);
    }
}

ileri basınca 3 tekerlek aynı anda aynı hızda dönerken sağ ön tekerlik daha geç ve daha yavaş dönüyor. geri basıncada aynı şekilde dönüyor. sol yöne basınca soldaki motorlar çalışırken sağ basınca sağdaki motorlar dönmüyor.
 
şuan kod böyle

Kod:
//L298N Bağlantısı   
  const int motorA1  = 6;  // L298N'in IN1 Girişi
  const int motorA2  = 10; // L298N'in IN2 Girişi
  const int motorB1  = 5;  // L298N'in IN3 Girişi
  const int motorB2  = 9;  // L298N'in IN4 Girişi
  int i=0; //Döngüler için atanan rastgele bir değişken
  int j=0; //Döngüler için atanan rastgele bir değişken
  int state; //Bluetooth cihazından gelecek sinyalin değişkeni
  int vSpeed=255;     // Standart Hız, 0-255 arası bir değer alabilir
void setup() {
    // Pinlerimizi belirleyelim
    pinMode(motorA1, OUTPUT);
    pinMode(motorA2, OUTPUT);
    pinMode(motorB1, OUTPUT);
    pinMode(motorB2, OUTPUT); 
    // 9600 baud hızında bir seri port açalım
    Serial.begin(9600);
}
 
void loop() {
  /*Bluetooth bağlantısı koptuğunda veya kesildiğinde arabayı durdur.
 (Aktif etmek için alt satırın "//" larını kaldırın.)*/
//     if(digitalRead(BTState)==LOW) { state='S'; }
  //Gelen veriyi 'state' değişkenine kaydet
    if(Serial.available() > 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 (state == '2'){
      vSpeed=180;}
    else if (state == '3'){
      vSpeed=200;}
    else if (state == '4'){
      vSpeed=255;}
  
  /***********************İleri****************************/
  //Gelen veri 'F' ise araba ileri gider.
    if (state == 'F') {
      analogWrite(motorA1, 150);   analogWrite(motorA2, 0);
        analogWrite(motorB1, 150); analogWrite(motorB2, 0);
  
    }
  /**********************İleri Sol************************/
  //Gelen veri 'G' ise araba ileri sol(çapraz) gider.
    else if (state == '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 (state == 'I') {
        analogWrite(motorA1, 100); analogWrite(motorA2, 0);
        analogWrite(motorB1, vSpeed);      analogWrite(motorB2, 0);
    }
  /***********************Geri****************************/
  //Gelen veri 'B' ise araba geri gider.
      if (state == 'B') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, 150);
        analogWrite(motorB1, 0);   analogWrite(motorB2, 150);
    }
  /**********************Geri Sol************************/
  //Gelen veri 'H' ise araba geri sol(çapraz) gider
    else if (state == 'H') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, 100);
        analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
    }
  /**********************Geri Sağ************************/
  //Gelen veri 'J' ise araba geri sağ(çapraz) gider
    else if (state == 'J') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, vSpeed);
        analogWrite(motorB1, 0);   analogWrite(motorB2, 100);
    }
  /***************************Sol*****************************/
  //Gelen veri 'L' ise araba sola gider.
    else if (state == 'L') {
      analogWrite(motorA1, 250);   analogWrite(motorA2, 0);
        analogWrite(motorB1, 0); analogWrite(motorB2, 0);
    }
  /***************************Sağ*****************************/
  //Gelen veri 'R' ise araba sağa gider
    else if (state == 'R') {
      analogWrite(motorA1, 0);   analogWrite(motorA2, 0);
        analogWrite(motorB1, 250);   analogWrite(motorB2, 0);   
    }
 
  /************************Stop*****************************/
  //Gelen veri 'S' ise arabayı durdur.
    else if (state == 'S'){
        analogWrite(motorA1, 0);  analogWrite(motorA2, 0);
        analogWrite(motorB1, 0);  analogWrite(motorB2, 0);
    }
}

ileri basınca 3 tekerlek aynı anda aynı hızda dönerken sağ ön tekerlik daha geç ve daha yavaş dönüyor. geri basıncada aynı şekilde dönüyor. sol yöne basınca soldaki motorlar çalışırken sağ basınca sağdaki motorlar dönmüyor.
Motorlar aynı mı?
Sağ ön motorun özellikleri farklı olabilir.
Aynı özelliklere sahip motor yapmak imkansız zaten.
Bağımsız olarak saniyede ki devirleri ölçülüp geri besleme deviri sabitlenmeli hepsinin.
O zamanda devre çok karışık olur.
Arabayı sadece iki motor ile çalıştır.
 
ENA ve ENB pinlerinden pwm verin. INx pinlerini dijital olarak, sadece yön belirlemek için kullanın.
 

Çevrimiçi personel

Forum istatistikleri

Konular
6,955
Mesajlar
118,797
Üyeler
2,824
Son üye
selocan32

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
Back
Top