Dlaczego po wgraniu tego programu do plytki to w monitorze portu szeregowego wyswietla mi sie 0 lub 1149?
Gdy usune
do_przodu();
delay(50);
i
if'a
to wszystko dziala poprawnie
/* kierunek11 = do tylu kierunek21 = do przodu kierunek12 = do tylu kierunek22 = do przodu */ #include <NewPing.h> #define TRIGGER_PIN 3 #define ECHO_PIN 2 #define MAX_DISTANCE 200 NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); const int moc1 = 5; //moc silnika pierwszego const int moc2 = 6; //moc silnika drugiego const int kierunek11 = 8; //pierwszy kierunek silnika pierwszego const int kierunek21 = 9; //drugi kierunek silnika pierwszego const int kierunek12 = 10; //pierwszy kierunek silnika drugiego const int kierunek22 = 11; //drugi kierunek silnika drugiego void setup() { for (int i = 5; i < 12; i++) { pinMode(i, OUTPUT); } Serial.begin(9600); } void do_przodu() { digitalWrite(moc1, HIGH); digitalWrite(kierunek11, LOW); digitalWrite(kierunek21, HIGH); digitalWrite(moc2, HIGH); digitalWrite(kierunek12, LOW); digitalWrite(kierunek22, HIGH); } void wycofaj() { digitalWrite(moc1, HIGH); digitalWrite(kierunek11, HIGH); digitalWrite(kierunek21, LOW); digitalWrite(moc2, HIGH); digitalWrite(kierunek12, LOW); digitalWrite(kierunek22, HIGH); } void loop() { unsigned int uS = sonar.ping(); unsigned int odleglosc = (uS / US_ROUNDTRIP_CM); // przeliczanie czasu na cm Serial.print(odleglosc); Serial.println(); do_przodu(); delay(50); if (odleglosc <= 20) { wycofaj(); delay(500); } }