• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem ze sterowaniem silników DC
#1
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);
      }
  }
 
Odpowiedź
#2
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);
      }
  }
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#3
Taki kod, żeby ułatwić silnikom ruszenie z miejsca, dając im full moc na start.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości