Merhaba,
Hızlı çizgi izleyen bir robot için aşağıdaki kodları kullanıyorum. Ancak kodu çalıştırırken şu hatayı alıyorum:
Kodun tam hali:
Kodda ‘frenle’ fonksiyonunun tanımlı olduğunu görebiliyorum:
Bu hatayı nasıl çözebilirim? Yardımcı olabilir misiniz?
Hızlı çizgi izleyen bir robot için aşağıdaki kodları kullanıyorum. Ancak kodu çalıştırırken şu hatayı alıyorum:
Kod:
‘frenle’ was not declared in this scope
Kodun tam hali:
Kod:
#include <QTRSensors.h>
#define tabanhiz 150
#define sagmotor1 10
#define sagmotor2 9
#define sagmotorpwmpin 11
#define solmotor1 6
#define solmotor2 7
#define solmotorpwmpin 5
#define MZ80 8
#define taktik 12
#define LED 13
QTRSensorsAnalog qtra((unsigned char[]) { A0, A1, A2, A3, A4, A5, A6, A7} , 8);
unsigned int sensors[8];
float Kp = 0.04; float Kd = 0.6; float Ki = 0.0001; int integral = 0;
int ekhiz = 0; int sonhata = 0; int hata = 0; byte K=0;
int sagmotorpwm = 0; int solmotorpwm = 0; unsigned char zemin = 1;
int cizgisay=0; long baslamazamani=0; long doksanzamani=50000;
void setup()
{
pinMode(sagmotor1, OUTPUT);
pinMode(sagmotor2, OUTPUT);
pinMode(sagmotorpwmpin, OUTPUT);
pinMode(solmotor1, OUTPUT);
pinMode(solmotor2, OUTPUT);
pinMode(solmotorpwmpin, OUTPUT);
pinMode(MZ80, INPUT);
pinMode(taktik, INPUT_PULLUP);
delay(1000);
digitalWrite(LED, HIGH);
for (int i = 0; i< 150; i++)
{
if (0 <= i && i < 5) hafifsagadon();
if (5 <= i && i < 15) hafifsoladon();
if (15 <= i && i < 25) hafifsagadon();
if (25 <= i && i < 35) hafifsoladon();
if (35 <= i && i < 40) hafifsagadon();
if (45 <= i && i < 50) hafifsoladon();
if (i >= 50) {
frenle(1);
delay(3);
}
qtra.calibrate();
delay(1);
}
flashyap();
while (digitalRead(MZ80) == LOW) {frenle(1);}
}
Kodda ‘frenle’ fonksiyonunun tanımlı olduğunu görebiliyorum:
C++:
void frenle(int bekle){motorkontrol(0,0); delay(bekle);}
Bu hatayı nasıl çözebilirim? Yardımcı olabilir misiniz?