logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Arduino + przekaźnik 2 kanałowy + silnik dwubiegunowy

BusyBoy 26 Lut 2023 18:47 1593 19
  • #1 20460022
    BusyBoy
    Poziom 9  
    Posty: 124
    Ocena: 15
    Witam,

    Stworzyłem sobie sterownik do brały radiowy na pilota. Ogólnie wszystko śmiga i jest to tylko problem z podłączeniem silnika (dwubiegunowego) do przekaźnika 2 kanałowego.

    Schemat wygląda następująco :

    Arduino + przekaźnik 2 kanałowy + silnik dwubiegunowy

    Kod programu :

    #include <RCSwitch.h>
    
    RCSwitch mySwitch = RCSwitch();
    
    void setup() {
      pinMode(8, OUTPUT);
      digitalWrite(8,HIGH);
    
      pinMode(9, OUTPUT);
      digitalWrite(9,HIGH);
    
      mySwitch.enableReceive(0);
    }
    
    void loop() {
      if (mySwitch.available()) {
        unsigned long value = mySwitch.getReceivedValue();
        if ((14093571 == value) || (7717123 == value) || (6233347 == value) || (5299459 == value) || (5058563 == value)) {
          digitalWrite(8,LOW);
          digitalWrite(9,HIGH);
        }
        if ((6233536 == value) || (7717312 == value) || (14093760 == value) || (5299648 == value) || (5058752 == value)) {
          digitalWrite(9,LOW);
          digitalWrite(8,HIGH);
        }
        mySwitch.resetAvailable();
      }
    }




    Jak mam podłączyć silnik dwubiegunowy (przy zmianie biegunowości zmienia się kierunek obrotu silnika) do przekaźnika 2 kanałowego ?
  • #2 20460044
    zdenek_zdenek
    Poziom 27  
    Posty: 819
    Pomógł: 62
    Ocena: 325
    W przypadku przekaźników które zaprezentowałeś potrzebujesz dwóch takich modułów lub jednego poczwórnego.
  • #3 20460100
    BusyBoy
    Poziom 9  
    Posty: 124
    Ocena: 15
    Dziękuje za szybką odpowiedz hmm rozumiem że w żadne sposób tego nie można zrobić na 2 kanałowym przekaźniku ?

    A w jaki sposób mam podłączyć ten silnik do przekaźnika 2 kanałowego ? Może jakiś przykład, podpowiedz ?
  • #4 20460126
    zdenek_zdenek
    Poziom 27  
    Posty: 819
    Pomógł: 62
    Ocena: 325
    Jeżeli chcesz uzyskać prawe i lewe obroty musisz sterować oboma biegunami, aby to zrobić musisz mieć albo dwa przekaźniki
    dwoma parami styków lub cztery takie jak twoje z jedną parą. Jedna para przekaźników steruje tylko jednym kierunkiem obrotów.
  • #5 20460238
    karwo
    Poziom 31  
    Posty: 1549
    Pomógł: 151
    Ocena: 360
    Pola COM obu przekaznikow do wyprowadzeń silnika, pola NC do minusa napiecia zasilania silnika, pola NO do plusa napiecia zasilania silnika.
    Każdy z przekaznikow steruje swoim kierunkiem obrotów. Wyłączając przekaznik hamujesz silnik.
    Link
  • #6 20460262
    gps79
    Poziom 37  
    Posty: 2190
    Pomógł: 495
    Ocena: 792
    Silnik należy podłączyć w sposób następujący:
    Arduino + przekaźnik 2 kanałowy + silnik dwubiegunowy
    Wtedy sterujesz następująco:
    HIGH, LOW => obrót w jedną stronę
    LOW, HIGH => obrót w drugą stronę
    HIGH, HIGH => silnik hamuje
    LOW, LOW => silnik hamuje
  • #7 20460791
    BusyBoy
    Poziom 9  
    Posty: 124
    Ocena: 15
    Dziękuje za odpowiedź, szczególnie za rozrysowanie przykładu przez kolegę @gps79 - dzisiaj będę testował. Dodam jeszcze że to jest silnik od siłownika do bramy (ale chyba nie ma to znaczenia - podłączony siłownik bezpośrednio do zasilacza działa poprawnie przy zmianie biegunów)
  • #8 20466207
    BusyBoy
    Poziom 9  
    Posty: 124
    Ocena: 15
    Witam ponownie

    Pojawił się mały problem, po podłączeniu silnika do przekaźnika - tak jak na rysunku powyżej -przekaźnik "przeskakuje" :( nie wiem co jest tego przyczyną.

    Kod programu

    #include <RCSwitch.h>
    
    RCSwitch mySwitch = RCSwitch();
    
    void setup() {
      pinMode(8, OUTPUT);
      digitalWrite(8,HIGH);
    
      pinMode(9, OUTPUT);
      digitalWrite(9,HIGH);
    
      mySwitch.enableReceive(0);
    }
    
    void loop() {
      if (mySwitch.available()) {
        unsigned long value = mySwitch.getReceivedValue();
        if (1064981 == value) {
          digitalWrite(8,LOW);
          digitalWrite(9,HIGH);
        }
        if (1064980 == value) {
          digitalWrite(9,LOW);
          digitalWrite(8,HIGH);
        }
        mySwitch.resetAvailable();
      }
    }






    Widać to na filmie, przekaźnik włącza się (zapala się dioda kontrolna) i zaraz się wyłącza.
  • #9 20466737
    Konto nie istnieje
    Poziom 1  
  • #10 20466776
    BusyBoy
    Poziom 9  
    Posty: 124
    Ocena: 15
    Hmm byłem przekonany że można to zrobić bez problemu na przekaźnikach :( a tu widzę że pojawiły się problemy...

    Czyli co ? rozumiem że na przekaźnikach tego nie da się zrobić tak aby wykorzystać do tego arduino i przekaźniki ?
  • #11 20466952
    Konto nie istnieje
    Poziom 1  
  • #12 20466960
    gps79
    Poziom 37  
    Posty: 2190
    Pomógł: 495
    Ocena: 792
    1) Może arduino się restartuje? Dopisz odpowiednie komendy (Serial.println(...);) do programu i prześledź, czy arduino działa stabilnie.
    2) rozłącz zworkę zasilania i zasil przekaźnik z baterii (RY-VCC), a VCC zasil z tego samego źródła, co arduino
    3) Zrób tak, jak pisał kolega wyżej z diodami.
    Jakim napięciem zasilasz całość? Jaka jest wydajność prądowa Twojego zasilania? Masz miernik uniwersalny?
  • #13 20466964
    BusyBoy
    Poziom 9  
    Posty: 124
    Ocena: 15
    A bez tranzystora się nie obejdzie ? Tzn na samym przekaźniku ? Jeden z kolegów wcześniej pisał że można to zrobić na 4 kanałowym przekaźniku ?

    Dodano po 3 [minuty]:

    @gps79 Tak mam miernik, zasilacz układ zasilaczem 12v ponieważ silnik jest również 12v i idzie z jednego zasilacze - schemat na pierwszym poście.
    Co do ewentualnego resetowania - jeżeli nie podłącze silnika po przekaźnik - wg Twojego przykładu - wszystko działa poprawnie - przekaźnik przełącza sie prawidlowo i nie ma problemu żadnego. Dopiero po podlączenia silnika zaczynają się schody.

    Dodano po 4 [minuty]:

    Dodam jeszcze że przedtem był używany jakiś chiński sterownik i działa on na przekaźnikach (praktycznie nie było zasięgu dlatego jest zmiana na coś innego
    Arduino + przekaźnik 2 kanałowy + silnik dwubiegunowy )
  • #14 20467230
    zdenek_zdenek
    Poziom 27  
    Posty: 819
    Pomógł: 62
    Ocena: 325
    jaką wydajność prądową ma zasilacz?
    Może po prostu jest za "słaby" i wyłącza się w momencie załączenia obciążenia resetując arduino.
  • #15 20467236
    BusyBoy
    Poziom 9  
    Posty: 124
    Ocena: 15
    Zasilacz jest ok... przy podłączeniu "na krótko" wszystko działa poprawnie. Tylko w momencie uruchomienia przekaźnika jest problem.

    Dodano po 5 [minuty]:

    Może to jest rozwiązanie - to co napisał @emarcus : Dokładniej: możesz zastosować przekaźniki jako pasywny (!) układ zmiany kierunku obrotów, a samo załączenie prądu dokonać (po nie wielkiej zwłoce czasowej),
  • #16 20467282
    zdenek_zdenek
    Poziom 27  
    Posty: 819
    Pomógł: 62
    Ocena: 325
    Jeżeli chcesz wykluczyć problemy z zasilaniem to zasil arduino z osobnego zasilacza i zrób próbę. Drugie rozwiązanie z tranzystorem też może stwarzać problemy przy zasilaczu o zbyt małej wydajności.
  • #17 20467288
    BusyBoy
    Poziom 9  
    Posty: 124
    Ocena: 15
    @zdenek_zdenek a powiedz mi proszę, bo już gdybam na różne sposoby - czy nie powinno być opóźnienie na tych przekaźnikach ? Jest to przekaźnik 2 kanałowy i może to jest problem przy przełączaniu tego przekaźnika ? Czy przekaźnik 4 kanałowy w tej sytuacji rozwiąże problem ?
  • #18 20467309
    zdenek_zdenek
    Poziom 27  
    Posty: 819
    Pomógł: 62
    Ocena: 325
    Zakładam że oscyloskopu nie posiadasz, wiec wyklucz najpierw problemy z zasilaniem, np. ze spadkami napięcia przy starcie silnika, dopiero później kombinuj dalej. Na pewno wszystko dobrze podłączyłeś, może robisz zwarcie przekaźnikami i zanika zasilanie. Zamiast silnika podłącz żarówkę i sprawdź co się dzieje.

    Załączanie po chwili zasilania przez mosfeta może pomóc jeśli problemem byłoby chwilowe zwarcie w momencie przełączania przekaźników, wtedy też pomoże moduł czterokanałowy, który zaproponowałem na początku aby uniknąć części problemów.
  • #19 20467320
    BusyBoy
    Poziom 9  
    Posty: 124
    Ocena: 15
    @zdenek_zdenek Załączanie po chwili zasilania przez mosfeta może pomóc jeśli problemem byłoby chwilowe zwarcie w momencie przełączania przekaźników.

    I właśnie taką ewentualność biorę pod uwagę, bo jak pierwszy raz włączę przekaźnik (1 kanał) to silnik pracuje a jak chce przełączyć na 2 przekaźnik (wyłączyć 1) to wtedy zaczynają się cyrki.
  • #20 20467329
    zdenek_zdenek
    Poziom 27  
    Posty: 819
    Pomógł: 62
    Ocena: 325
    Zastosuj drugi zasilacz do arduino i sprawdź co się dzieje, to prościej wykonać.

Podsumowanie tematu

✨ Użytkownik stworzył sterownik do silnika dwubiegunowego z użyciem Arduino i przekaźnika 2-kanałowego, napotykając problemy z podłączeniem silnika. W odpowiedziach zasugerowano, że do uzyskania obrotów w obie strony potrzebne są dwa przekaźniki lub przekaźnik czterokanałowy. Podano różne schematy podłączenia oraz wskazówki dotyczące zasilania i użycia tranzystora do stabilizacji działania. Użytkownik zauważył, że przekaźnik "przeskakuje" po podłączeniu silnika, co może być spowodowane zbyt małą wydajnością prądową zasilacza lub chwilowym zwarciem. Rekomendowano testowanie zasilania oraz użycie diod do diagnozy problemu.
Wygenerowane przez model językowy.
REKLAMA