Skocz do zawartości

Czujnik ultradźwiękowy i robot.


michaciu96

Pomocna odpowiedź

Witam. Zająłem się budową robota. Posiadam motor shield i ultradźwiękowy czujnik odległości hc sr04. Czy ktoś mógł by mi sprawdzić kod ponieważ nie działa tak jak należy.

#include <AFMotor.h>

AF_DCMotor tyl(4, MOTOR34_1KHZ); // create motor #2, 64KHz pwm
AF_DCMotor przod(1, MOTOR12_64KHZ);

int impuls = 13;
int sonar = 12;
long czas, cm;



void setup() {
 Serial.begin(9600);           // set up Serial library at 9600 bps
 Serial.println("Motor test!");
 pinMode(impuls, OUTPUT);
 pinMode(sonar, INPUT);
 tyl.setSpeed(240);     // set the speed to 200/255
 przod.setSpeed(255);

}

void loop() 

{
 digitalWrite(impuls, LOW);
 delayMicroseconds(2);
 digitalWrite(impuls, HIGH);
 delayMicroseconds(10);
 digitalWrite(impuls, LOW);
 czas = pulseIn(sonar, HIGH);
 cm = microsecondsToCentimeters(czas);
     tyl.run(FORWARD);
if (cm < 20)
{ tyl.run(RELEASE);
  delay(500);
  tyl.run(BACKWARD);
  delay(500);
  tyl.run(RELEASE);
  delay(200);
  przod.run(FORWARD);
  delay(500);
  tyl.run(FORWARD);
  przod.run(BACKWARD);
  delay(500);
  przod.run(RELEASE);
  }


 Serial.print("Distance: [");
 Serial.print(cm);
 Serial.print("]cm\n");
 delay(100);



}


 long microsecondsToCentimeters(long microseconds)
{return microseconds / 29 / 2;}


Link do komentarza
Share on other sites

Czy ktoś mógł by mi sprawdzić kod ponieważ nie działa tak jak należy.

A jak należy? Napisz, co chciałeś osiągnąć, a co udało Ci się zrobić.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Skoro czujnik działa to sprawdź silniki. Nie znam bibliotek, której stosujesz, ale wygląda na to, że silniki powinny być podłączone do ściśle określonych pinów. Jesteś pewien, że podłączyłeś do właściwych?

Napisz krótki program, który będzie w pętli przez 1s kręcił silnikami w przód i przez 1s w tył. Napisz, czy działa.

Link do komentarza
Share on other sites

Sprawdzzłem to juz wczesniej. Działa prawidłowo wszystko ale akurat ten kod nie działa a powinien moim zdaniem i jeśli by była taka możliwość to chcę żeby ktoś sprawdził czy jest poprawny. Ponieważ jak zauważyłem nie wykonuje się dalej funkcja. A jak dodam po if ( cm < 20 ) {tyl.run(RELEASE);} np to jest git. Nie działa wtedy jak jest kilka funkcji w {} po if.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.