int ileri[4]={50,50,1,1}; int hafif[4]={60,40,1,1}; int orta[4]={50,20,1,1}; int sert[4]={60,20,1,1}; int coksert[4]={90,20,1,1}; int terss[4]={45,45,1,0}; int dur[4]={0,0,1,1}; void setup() { pinMode(trig_on,OUTPUT); pinMode(echo_on,INPUT); pinMode(yon_sol,OUTPUT); //Bu ayarlar motor shield için sabit pinMode(pwm_sol,OUTPUT); pinMode(yon_sag,OUTPUT); pinMode(pwm_sag,OUTPUT); pinMode(fren_sag,OUTPUT); pinMode(fren_sol,OUTPUT); Serial.begin(9600); analogWrite(pwm_sag,70); //motor ve hızı (max hız değeri 255) analogWrite(pwm_sol,70); //motor ve hızı (max hız değeri 255) digitalWrite(yon_sol,HIGH); // motor yönü digitalWrite(yon_sag,HIGH); // (High + yön, Low – yön) } void loop() { qtra.read(sensorValues); /*Serial.print(sensorValues[0]); Serial.print(" “); Serial.print(sensorValues[1]);Serial.print(” “); Serial.print(sensorValues[2]);Serial.print(” “); Serial.print(sensorValues[3]);Serial.print(” “); Serial.print(sensorValues[4]);Serial.print(” "); Serial.print(sensorValues[5]); Serial.println(); */ //on_goz(); ileri_kontrol(); engel_kontrol(); } ///////// MOTORLARIN KONTROLÜ ///////////////////////////// /* void on_goz() { digitalWrite(trig_on,LOW); delayMicroseconds(2); digitalWrite(trig_on,HIGH); delayMicroseconds(10); digitalWrite(trig_on,LOW); sure_on=pulseIn(echo_on,HIGH); mesafe_on=sure_on/58.2; }*/ void sag_motor(int hiz1,int yon1) { boolean x; if(yon1==1) {x=HIGH;} else {x=LOW;} analogWrite(pwm_sag,hiz1); digitalWrite(yon_sag,x); } void sol_motor(int hiz2,int yon2) { boolean y; if(yon2==1) {y=HIGH;} else {y=LOW;} analogWrite(pwm_sol,hiz2); digitalWrite(yon_sol,y); } /* void engel_kontrol() { if(mesafe_on>15) ileri_kontrol(); else { sag_motor(dur[1],dur[3]); sol_motor(dur[0],dur[2]); } }*/ void ileri_kontrol() { if((sensorValues[2]>esik) && (sensorValues[3]>esik)) { sag_motor(ileri[0],ileri[2]); sol_motor(ileri[1],ileri[3]); aaa=1; Serial.println(“İLERİ”); } else hafif_kontrol(); } void hafif_kontrol() { if((sensorValues[1]esik))
{
sag_motor(hafif[0],hafif[2]);
sol_motor(hafif[1],hafif[3]);
aaa=1;
Serial.println(“HAFİF SOL”);
}
else if((sensorValues[4]esik))
{
sag_motor(hafif[1],hafif[2]);
sol_motor(hafif[0],hafif[3]);
aaa=1;
Serial.println(“HAFİF SAG”);
}
else orta_kontrol();
}
void orta_kontrol()
{
if((sensorValues[1]>esik)&& (sensorValues[0]<esik sag_motor sol_motor aaa="1;" serial.println sol else if>esik)&& (sensorValues[5]<esik sag_motor sol_motor aaa="1;" serial.println sag else sert_kontrol void if>esik)&&(sensorValues[1]>esik))
{
sag_motor(sert[0],sert[2]);
sol_motor(sert[1],sert[3]);
aaa=1;
}
else if((sensorValues[5]>esik)&& (sensorValues[4]>esik))
{
sag_motor(sert[1],sert[3]);
sol_motor(sert[0],sert[2]);
aaa=1;
}
else
coksert_kontrol();
}
void coksert_kontrol()
{
if((sensorValues[0]>esik))
{
sag_motor(coksert[0],coksert[2]);
sol_motor(coksert[1],coksert[3]);
aaa=0;
}
else if((sensorValues[5]>esik))
{
sag_motor(coksert[1],coksert[3]);
sol_motor(coksert[0],coksert[2]);
aaa=5;
}
else ters();
}
void ters()
{
if(aaa==0)
{
sag_motor(terss[1],terss[2]);
sol_motor(terss[0],terss[3]);
}
else if(aaa==5)
{
sag_motor(terss[1],terss[3]);
sol_motor(terss[0],terss[2]);
}
else
{
sag_motor(dur[1],dur[3]);
sol_motor(dur[0],dur[2]);
}
}
Bu kodda kapatılan kısımlar açıldığında çizgi izlemiyor alet sapıtıyor ileri ve coksert calısıyor ama kapatınca çizgiyi miss gibi izliyor bir yardım edin düzeltmeye …