Soru & Cevap

Arduino komut hatası ...

30.11.2020 - 10:39

Merhabalar 

Aşağıda paylaşmış olduğum kod ayrı ayrı çalışırken birleştirdiğimde çalışmamaktadır. Projede led lambalar, sd kart modülü motor sürücü ve butonlar var. Rc kumandadan gelen frekanslara göre çeşitli işlemler yapmakta ve uygun sesleri çalması gerekmekte. kodları birleştirdiğimde hiç bir şey çalışmadığını gördüm bunu nasıl birleştirebilirim ?


k#include <SD.h>
#include <TMRpcm.h>
#include <SPI.h>
#define SD_ChipSelectPin 10
TMRpcm tmrpcm;
int eski_durum=0;
int yeni_durum=0;
int simdi_cal=0;
int kanal_1; // ileri geri
int kanal_2; // sağ - sol
int durum;
byte led_no=0;
const int kanal_p1 = A1;
const int kanal_p2 = A2;
//////
const int firen = 4;
const int geri_lamba = 5;
const int sag_sinyal = 2;
const int sol_sinyal = 8;
const int on_far = 7;
const int sis_far = 3;
const int ara_lamba = 6;
const int buzzer=A0;
///////
const int sw_b = A3;
const int sw_1 = A5;
const int sw_2 = A4;
////
const int vinc_a = A6;
const int vinc_b = A7;


void setup()
{
  pinMode(kanal_p1, INPUT);
  pinMode(kanal_p2, INPUT);
  ////
  pinMode(firen, OUTPUT);
  pinMode(geri_lamba, OUTPUT);
  pinMode(sag_sinyal, OUTPUT);
  pinMode(sol_sinyal, INPUT);
  pinMode(on_far, OUTPUT);
  pinMode(sis_far, OUTPUT);
  pinMode(ara_lamba, OUTPUT);
  pinMode(buzzer, OUTPUT);
  //////
  pinMode(sw_b, INPUT_PULLUP);
  pinMode(sw_1, INPUT_PULLUP);
  pinMode(sw_2, INPUT_PULLUP);
  //////
  pinMode(vinc_a,OUTPUT);
  pinMode(vinc_a,OUTPUT);
  //////
  tmrpcm.speakerPin = 9;
  if (!SD.begin(SD_ChipSelectPin))
  { 
      Serial.println("kart hatası"); 
      return;
    }
    else{  
      Serial.println("kart okundu");  
    }
    Serial.println("mm.wav"); // Başladığını gösteren küçük bir dıt sesi yada hidayet yeniaydın projesi gibi bir ses
    tmrpcm.play("mm.wav");
    while(tmrpcm.isPlaying()){
    delay(2000);
  };
 
  Serial.begin(9600);
}
void loop() {
 kanal_1 = pulseIn(kanal_p1, HIGH, 25000); // ileri geri
 kanal_2 = pulseIn(kanal_p2, HIGH, 25000); // sağ - sol
 Serial.print("kanal_1 ");
 Serial.println(kanal_1);
 delay(500);
 Serial.print("kanal_2 ");
 Serial.println(kanal_2);
 delay(500);
sd_module();
if(kanal_1>=1350 && kanal_1<=1600) // araç duruyorsa
{
  digitalWrite(firen, HIGH);
  digitalWrite(geri_lamba, LOW);
  digitalWrite(buzzer,LOW);
 
}
else if(kanal_1>=1610) // araç ileri hareket ediyorsa
{
  digitalWrite(firen, LOW);
  digitalWrite(geri_lamba, LOW);
  digitalWrite(buzzer,LOW);
 
}
else if(kanal_1<=1300) // araç geri hareket ediyorsa
{
  digitalWrite(firen, LOW);
  digitalWrite(geri_lamba, HIGH);
  digitalWrite(buzzer,HIGH);
  delay(1000);
  digitalWrite(buzzer,LOW);
  delay(1000);
 
}
if(kanal_2>=1350 && kanal_2<=1600) // direksiyon sabit
{
  analogWrite(sol_sinyal,0);
  delay(250);
  analogWrite(sol_sinyal,0);
  delay(250);
}
else if(kanal_2<=1300) // sağa hareket
{
  analogWrite(sol_sinyal,0);
  delay(250);
  analogWrite(sol_sinyal,255);
  delay(250);
}
else if(kanal_2>=1610) // sola hareket
{
  analogWrite(sol_sinyal,255);
  delay(250);
  analogWrite(sol_sinyal,0);
  delay(250);
}
int sensor1 = digitalRead(sw_1);
int sensor2 = digitalRead(sw_2);
if (sensor1==LOW&&sensor2==HIGH)
{
  digitalWrite(vinc_a, HIGH);
  digitalWrite(vinc_b, LOW); 
}
else if (sensor1==HIGH&&sensor2==LOW)
{
  digitalWrite(vinc_a, LOW);
  digitalWrite(vinc_b, HIGH);
}
else if (sensor1==HIGH&&sensor2==HIGH)
{
  digitalWrite(vinc_a, LOW);
  digitalWrite(vinc_b, LOW);
}
int sensorsw = digitalRead(sw_b);
if(sensorsw==LOW)
{
 if(led_no<7)
{
  led_no++;
 
  delay(800);

else if(led_no=7)
  {
   led_no=0;
  }
}
else
digitalWrite(led_no, HIGH);
switch(led_no)
 {
  case 0:
  digitalWrite(on_far, LOW);
  digitalWrite(sis_far, LOW);
  digitalWrite(ara_lamba, LOW);
  break;
 
  case 1:
  digitalWrite(on_far, HIGH);
  digitalWrite(sis_far, LOW);
  digitalWrite(ara_lamba, LOW);
  break;
  case 2:
  digitalWrite(on_far, HIGH);
  digitalWrite(sis_far, LOW);
  digitalWrite(ara_lamba, HIGH);
  break;
  case 3:
  digitalWrite(on_far, HIGH);
  digitalWrite(sis_far, HIGH);
  digitalWrite(ara_lamba, HIGH);
  break;
  case 4:
  digitalWrite(on_far, HIGH);
  digitalWrite(sis_far, LOW);
  digitalWrite(ara_lamba, LOW);
  break;
  case 5:
  digitalWrite(on_far, LOW);
  digitalWrite(sis_far, LOW);
  digitalWrite(ara_lamba, HIGH);
  break;
  case 6:
  digitalWrite(on_far, LOW);
  digitalWrite(sis_far, HIGH);
  digitalWrite(ara_lamba, LOW);
  break;
  case 7:
  digitalWrite(on_far, LOW);
  digitalWrite(sis_far, LOW);
  digitalWrite(ara_lamba, LOW);
  break;
 
 }
}
void sd_module()
{
  if(kanal_1<=1300)
{
  yeni_durum=0;
};
  if(kanal_1>1300 && kanal_1<=1490)
{
  yeni_durum=1;
};
  if(kanal_1>1490 && kanal_1<=1565)
{
  yeni_durum=2;
};
  if(kanal_1>1565 && kanal_1<=1640)
{
  yeni_durum=3;
};
  if(kanal_1>1640 && kanal_1<=1715)
{
  yeni_durum=4;
};
  if(kanal_1>1715 && kanal_1<=1790)
{
  yeni_durum=5;
};
  if(kanal_1>1790 && kanal_1<=1860)
{
  yeni_durum=6;
};
  if(kanal_1>1860)
{
  yeni_durum=7;
};
if(yeni_durum != eski_durum)
{
  if((yeni_durum==0)&&(eski_durum>0))
  {
    tmrpcm.play("2.wav");
    while(tmrpcm.isPlaying()){}
    eski_durum = yeni_durum;   
  }
  if(yeni_durum==1)
  {
    if(yeni_durum > eski_durum)
    {
      tmrpcm.play("start.wav");
      while(tmrpcm.isPlaying()){}
    }
      simdi_cal = 1;
      eski_durum = yeni_durum;
  }
    if(yeni_durum==2)
  {
    tmrpcm.play("1.wav");
    eski_durum = yeni_durum;
    simdi_cal = 1;
  }
    if(yeni_durum==3)
  {
    tmrpcm.play("2.wav");
    eski_durum = yeni_durum;
    simdi_cal = 2;
  }
    if(yeni_durum==4)
  {
    tmrpcm.play("3.wav");
    eski_durum = yeni_durum;
    simdi_cal = 3;
  }
    if(yeni_durum==5)
  {
    tmrpcm.play("4.wav");
    eski_durum = yeni_durum;
    simdi_cal = 4;
  }
    if(yeni_durum==6)
  {
    tmrpcm.play("5.wav");
    eski_durum = yeni_durum;
    simdi_cal = 5;
  }
    if(yeni_durum==7)
  {
    tmrpcm.play("6.wav");
    eski_durum = yeni_durum;
    simdi_cal = 6;
  }
}
if((yeni_durum=eski_durum) && (tmrpcm.isPlaying() == 0))
{
  if(simdi_cal == 1)
  {
  tmrpcm.play("1.wav");
  eski_durum = yeni_durum;
  }
  if(simdi_cal == 2)
  {
  tmrpcm.play("2.wav");
  eski_durum = yeni_durum;
  }
  if(simdi_cal == 3)
  {
  tmrpcm.play("3.wav");
  eski_durum = yeni_durum;
  }
  if(simdi_cal == 4)
  {
  tmrpcm.play("4.wav");
  eski_durum = yeni_durum;
  }
  if(simdi_cal == 5)
  {
  tmrpcm.play("5.wav");
  eski_durum = yeni_durum;
  }
  if(simdi_cal == 6)
  {
  tmrpcm.play("6.wav");
  eski_durum = yeni_durum;
  } 
}
}
 

93 Görüntülenme

0 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.