Arduino Polska Forum

Pełna wersja: Problem ze sterowaniem silników DC
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam, buduje sobie model czołgu zdalnie sterowany, jednak mam problem ze sterowaniem mocą silników. Do sterowania wykorzystuje "LoLin NodeMCU V2" razem z "L293D Shield for NodeMCU V2"( https://www.cytron.io/p-l293d-shield-for-nodemcu-v2 ) jednak gdy daje pod D1 lub D2 nawet maksymalne PWM silniki ledwo ruszają bez obciążenia, na zasilanie silnikami daje 18V co powinno zdecydowanie wystarczać, biorąc pod uwagę, że gdy daje do silników na sztywno 3V dają radę ruszyć całym modelem. Nie wiem co może być przyczyną. Wcześniej używałem zwykłych sterowników L293D, gdzie był podobny efekt. Uznałem, że płytka działa na zbyt niskim napięciu (3.3V) i nie daje rady do sterownika wysłać sygnału PWM o wystarczającej mocy, ale wydaje mi się, że dedykowana płytka sterująca powinna ten problem rozwiązywać. Dodam, że zmiana mocy działa, tylko zawsze jest to niska moc. Ktoś może jest w stanie mi pomóc ? Huh

Przykład kodu:
void startRMotor (boolean dir, uint8_t _speed) {
    if(dir) {
      digitalWrite(D4, HIGH);
      analogWrite(D2, 1023);
      delay(50);
      digitalWrite(D4, HIGH);
      analogWrite(D2, _speed);
      }
    else {
      digitalWrite(D4, LOW);
      analogWrite(D2, 1023);
      delay(50);
      digitalWrite(D4, LOW);
      analogWrite(D2, _speed);
      }
  }
Skąd masz ten kod?
Według mnie on nie ma sensu.
Spróbuj tak:

Kod:
void startRMotor (boolean dir, uint8_t _speed) {
    if(dir) {
      digitalWrite(D4, HIGH);
      analogWrite(D2, _speed);
      }
    else {
      digitalWrite(D4, LOW);
      analogWrite(D2, _speed);
      }
  }
Taki kod, żeby ułatwić silnikom ruszenie z miejsca, dając im full moc na start.