Skocz do zawartości

Błąd lewego silnika podczas zadawania poszczególnych komend


mateusz797

Pomocna odpowiedź

Dzień dobry,

 

Poniższy program służył mi do nadawania poszczególnych stanów dla silników, stosowałem go podczas budowy robotów.

Program ten poprawnie mi działał do dzisiejszego dnia, czyli - po podłączeniu do mostka silnika L298N, arduino oraz platformy robota .

Zasada działania programu : robot na poczatku przez 6 sek jedzie prosto, potem do tyłu następnie skręca w prawo oraz w lewo. Dzisiaj zaczalem program testowac na innym podwoziu. Lewy nie chce kręcic się do przodu, tylko do tyłu się kręci, czyli poprawnie działają teraz komendy :

a) Jazda do tyłu (bo lewy silnik się kreci do tyłu)

b) skręt w lewo (bo lewy kręci sie o tyłu a prawy do przodu)

 

Nie działają komendy:

c) Jazda o przodu (kręci sie tylko prawy silnik, lewy się nie rusza)

d) Skręt w prawo (kręci sie prawy silnik o tyłu, lewy sie nie rusza)

 

Rozebrałem podwozie, Pojedynczo podlaczylem silniki do małej baterii, jak zmienilem biegunowość to po podłączeniu do baterii, kazdy silnik sie krecil w lewo lub w prawo (Tak jak bylo na poczatku ),

Przekladnie sprawdzalem, nigdzie nie ma połamanych zębów, smarowanie jest. Problem tkwi w tym że po podłączeniu sterownika silnikow i arduino działają mi tylko teraz dwa kanały.

Ja mam wrazenie ze musze nowy mostek H kupic, bo za lewy silnik jest odpowiedzialny jest ENA. Czy mieli Państwo podobny problem? Program mi działał dobrze całe dwa miesiace spr. na tym silniki. Dzisiaj sie coś stało, ze lewy silnik tylko o tyłu sie kręci

const int IN1 = 7;
const int IN2 = 6;
const int IN3 = 4;
const int IN4 = 5;

const int ENA = 11;
const int ENB = 3;


void setup() {

  pinMode (IN1, OUTPUT);
  pinMode (IN2, OUTPUT);
  pinMode (IN3, OUTPUT);
  pinMode (IN4, OUTPUT);
  pinMode (ENA, OUTPUT);
  pinMode (ENB, OUTPUT);
  // put your setup code here, to run once:

}

void loop() {

  delay(4000);

  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);

  
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH);

  analogWrite(ENA, 80);   // 80/256 predkosc
  analogWrite(ENB, 80);    // Syt. 1 - Prosto

  
  delay(6000);

  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);

  
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);   // Syt. 2 - Jazda do tyłu

  analogWrite(ENA, 80);   // 80/256 predkosc
  analogWrite(ENB, 80);
  delay(6000);           

  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);

  
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);

  analogWrite(ENA, 105);   // skret w prawo
  analogWrite(ENB, 105);
  delay(6000);


  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);

  
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH);

  analogWrite(ENA, 105);   // lewo
  analogWrite(ENB, 105);
  delay(6000);
}


 

Edytowano przez Gieneq
Zachęcam do używania bloku kodu
Link do komentarza
Share on other sites

Szkoda ze nie dałeś schematu by ułatwiło... Albo nie opisałeś dokładniej programu co robi...

 

A z tego co opisujesz wynika że nie łączy któryś :

IN2 = 6;  IN4 = 5;

 

Tylko nie wiem który pin  jest odpowiedzialny do tego silniczka 

ale ta tabela ci podpowie

Screenshot_4.jpg

Edytowano przez Jarewa
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.