Arduino Polska Forum
Czujnik ultradzwiekowy w samochodziku - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Instalacja i rozwiązywanie problemów (https://forum.arduinopolska.pl/dzial-instalacja-i-rozwi%C4%85zywanie-problem%C3%B3w)
+--- Wątek: Czujnik ultradzwiekowy w samochodziku (/watek-czujnik-ultradzwiekowy-w-samochodziku)



Czujnik ultradzwiekowy w samochodziku - mrpablosek12 - 21-02-2017

Czemu na monitorze portu szeregowego wyswietla mi sie 0 lub 1149?
Ale gdy usune:
Kod:
do_przodu();
 delay(50);

 if (odleglosc <= 20) {
   wycofaj();
   delay(500);
 }

To wszystko dziala.
Kod programu:
Kod:
/*
  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);
 }







}