Skocz do zawartości

Kurs Arduino - #8 - Sterowanie silnikami DC, pętla for


Komentator

Pomocna odpowiedź

udało i się naprawić ten błąd ale teraz chciałbym zrobić przycisk który odpala program arduino który włącza silniczek raz w jedną a raz w drugą stronę i kąpletnie nie wiem jak to zrobić. A arduino kupiłem jakieś tydzień temu

 

Link do komentarza
Share on other sites

Wszystko masz ładnie pokazane w kursie, jedyne co musisz zrobić to podpiąć silnik , przycisk i dodać prostą pętlę.

Załóżmy że przycisk jest podłączony do pinu 2 i masy:

void setup() { 
  pinMode(6, OUTPUT); //Sygnał PWM silnika nr 1
  digitalWrite(6, HIGH); //Ustawiamy (na stałe) stan wysoki na pinie 6
  
  pinMode(7, OUTPUT); //Sygnały sterujące kierunkiem obrotów silnika nr 1
  pinMode(8, OUTPUT);
  pinMode(2,INPUT_PULLUP);//ustawiamy przycisk jako wejście z rezystorem podciągającym
} 

}
void loop()  {  
  if(digitalRead(2)){// jeśli wartość odczytana z pinu 2 jest różna od 0 (w tym przypadku jedyna możliwa wartość inna niż 0 to 1 - stan wysoki) to:
    digitalWrite(7, LOW);//wyłączamy silnik
    digitalWrite(8, LOW);// 
  }else{//w przeciwnym przypadku(jedyny inny przypadek  to 0 - stan niski): 
  digitalWrite(7, LOW); //Silnik nr 1 - obroty w lewo
  digitalWrite(8, HIGH); 
  delay(3000);

  digitalWrite(7, HIGH); //Silnik nr 1 - obroty w prawo
  digitalWrite(8, LOW); 

  delay(3000);   

  }                     
}

Gdy puścisz przycisk to program zatrzyma się dopiero po wykonaniu całej  pętli. Jeśli chcesz żeby zatrzymał się od razu to trzeba wprowadzić przerwania (jeśli się mylę to mnie poprawcie).

Edytowano przez jas123
  • Pomogłeś! 1
Link do komentarza
Share on other sites

Nie znalazłem w opisie wartości kondensatorów. Przypuszczam (patrząc na ich wygląd), że jeden z nich to elektrolit, a drugi ceramik. Czy mógłby mi ktoś odpisać jakie ich wartości byłyby najlepsze? Podobnie jak w lekcjach wcześniejszych nie wypatrzyłem wartości potencometrów.

Edytowano przez edurobokids
  • Lubię! 1
Link do komentarza
Share on other sites

@edurobokids witam na forum 🙂 W zestawach do tych kursów są tylko jedne kondensatory, więc na pewno masz właściwe elementy. Te wartości nie są też kluczowe - w przypadku kondensatorów może to być 100 nF i 100 uF, ale inne wariacje też się sprawdzą 🙂

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

Podłączyłem wszystko zgodnie ze schematem i działa, natomiast nie do końca rozumiem efekty pewnych modyfikacji:

  1. W momencie jak odłączam zasilania zewnętrzne (arduino nadal podłączone do USB) to diody nadal świecą, natomiast nie tak jasno. Moje rozumienie jest takie, że nawet jak mam tylko zasilanie poprzez USB to na VIN będę miał takie napięcie jak na wejściu czyli 5V, dobrze rozumiem? Czy gdybym miał zamiast diod silnik to czy byłoby ryzyko zniszczenia układu za dużym prądem pobieranym przez silnik?
  2. Dodatkowo odłączam przewód od pinu VIN i nic się nie zmienia. Skąd się bierze napięcie zasilające diody? Czy jest ono brane +5V podłączonego do zasilania części logicznej?
Link do komentarza
Share on other sites

@TomekTarczynski

1 godzinę temu, TomekTarczynski napisał:

W momencie jak odłączam zasilania zewnętrzne (arduino nadal podłączone do USB) to diody nadal świecą, natomiast nie tak jasno. Moje rozumienie jest takie, że nawet jak mam tylko zasilanie poprzez USB to na VIN będę miał takie napięcie jak na wejściu czyli 5V, dobrze rozumiem?

Jeżeli podłączysz zewnętrzne zasilanie to na pinie Vin powinno pojawić się napięcie takie samo jakie daje zewnętrzne zasilanie. Jeżeli natomiast odłączysz zewnętrzne zasilanie to na pinie Vin będzie napięcie trochę niższe niż 5V ( w moim uno mam 4,42V).  Czyli diody świecą nieco słabiej bo po prostu napięcie jest niższe. Nie będziesz miał 5V bo napięcie przechodzi przez kilka elementów po drodze co można zobaczyć na schemacie w lewym górnym rogu. 

1 godzinę temu, TomekTarczynski napisał:

Czy gdybym miał zamiast diod silnik to czy byłoby ryzyko zniszczenia układu za dużym prądem pobieranym przez silnik?

Jeśli będziesz zasilał silnik przez Vin ( i masz podłączone zewnętrzne zasilanie) to nie, zakładam też że chodzi Ci o silnik typu 6V 200mAh a nie typu 11V 30A.

1 godzinę temu, TomekTarczynski napisał:

Dodatkowo odłączam przewód od pinu VIN i nic się nie zmienia. Skąd się bierze napięcie zasilające diody? Czy jest ono brane +5V podłączonego do zasilania części logicznej?

Zauważ, że po odpięciu przewodu od pinu Vin, część logiczna nadal jest zasilana czyli nadal wysyła sygnał dlatego diody nadal będą działać . Jednak zmniejszyła się wydajność prądowa i napięcie do tej jaką mamy na pinie 5V co za tym idzie - gdybyś spróbował podpiąć silnik nie będzie on już działał ponieważ potrzebuje więcej prądu ( będzie słychać jak próbuje się ruszyć).

Link do komentarza
Share on other sites

@jas123 

  Dzięki za odpowiedzi, ale jeszcze nie wszystko mi się w głowie ułożyło jeżeli chodzi o działania tego mostku H.

3 godziny temu, jas123 napisał:

Jeśli będziesz zasilał silnik przez Vin ( i masz podłączone zewnętrzne zasilanie) to nie, zakładam też że chodzi Ci o silnik typu 6V 200mAh a nie typu 11V 30A.

Chodziło mi o sytuację, w której zasilam silnik przez VIN i odłączam zewnętrzne zasilanie. Przykład z diodami pokazał, że będą wtedy zasilane z 'części logicznej', która jest zasilana bezpośrednio przez arduino. Moja obawa była taka czy silnik nie będzie próbował pobrać za dużo prądu poprzez 'część logiczną' (PIN 5V na arduino) co mogłoby uszkodzić układ.

 

3 godziny temu, jas123 napisał:

Zauważ, że po odpięciu przewodu od pinu Vin, część logiczna nadal jest zasilana czyli nadal wysyła sygnał dlatego diody nadal będą działać . Jednak zmniejszyła się wydajność prądowa i napięcie do tej jaką mamy na pinie 5V co za tym idzie - gdybyś spróbował podpiąć silnik nie będzie on już działał ponieważ potrzebuje więcej prądu ( będzie słychać jak próbuje się ruszyć).

Część logiczna jest dalej zasilana, natomiast część dotycząca zasilania samego silnika już nie. Diody zasilane są z wyjścia 3 i 6, które według mojego rozumienia powinny być zasilane zasilaniem przeznaczonym do silnika, a nie do części logicznej i to jest ta rzecz, której nie rozumiem. Moje rozumienie jest takie, że napięcie do części logicznej wykorzystywane jest do tego żeby poprzez tranzystory odpowiednio zamykać/otwierać obwód tak żeby prąd przeznaczony do zasilania silnika płynął w tę stronę, w którą chcemy.

Link do komentarza
Share on other sites

11 minut temu, TomekTarczynski napisał:

Moja obawa była taka czy silnik nie będzie próbował pobrać za dużo prądu poprzez 'część logiczną' (PIN 5V na arduino) co mogłoby uszkodzić układ.

Wydajność prądowa pinu 5V zależy od wydajności wbudowanego stabilizatora (nie będę pisał ile mAh bo dokładnie nie wiem). Ale ogólnie urządzenia pobierające stosunkowo duży prąd - m.in. silnik - powinno się zasilać z pinu Vin. Jeśli jednak podłączysz silnik do pinu 5V (cały czas mówię o silnikach podobnych do tego pokazanego w kursie) to pewnie nawet ruszy ale stabilizator może zacząć się nieprzyjemnie grzać dlatego jeszcze raz powiem że do silników służy pin Vin. Inna sprawa jest z pinami I/O które mają maksymalną wydajność prądową około 40mAh. Podłączenie silnika do jednego z pinów I/O może skutkować już poważniejszymi konsekwencjami np. uszkodzenie mikrokontrolera. 

Jeśli zaś chodzi o mostek H to nie wiem co tam się dokładnie dzieje. Jeśli masz silnik to możesz spróbować go podłączyć podczas gdy jest dostarczane napięcie z Vin - powinien zacząć się kręcić, i wtedy gdy odepniesz zasilanie od Vin - powinien tylko wydawać dźwięk. W tym drugim teście daj jakiś rezystor żeby nie spalić mostka i nie rób tego zbyt długo. 

 

  • Lubię! 1
Link do komentarza
Share on other sites

Witam,

Kupiłem na botlandzie takie podwozie robota w zestawie z silnikami:

https://botland.com.pl/podwozia-robotow/7243-chassis-round-2wd-2-kolowe-podwozie-robota-z-napedem.html

Kupiłem również takie przewody: 

https://botland.com.pl/przewody-jednozylowe/12584-przewod-druciany-pcv-025mm-8-kolorow-rolka-250m.html

Chcę je przylutować do wyjść silników a następnie na mostek sterujący silnikami.

Wydają się one jednak bardzo cienkie.

Dlatego mam pytanie:

Czy te przewody poradzą sobie z prądem płynącym w trakcie pracy tych silników (a zwłaszcza w trakcie rozruchu silnika)?

Link do komentarza
Share on other sites

@MateoS07 te silniki nie pobierają dużego prądu więc te kabelki powinny się nadać, zwłaszcza że pewnie połączenie będzie miało z 10 cm długości. Zawsze możesz wziąć 2 kabelki i połączyć je równolegle.

Link do komentarza
Share on other sites

@Treker, chyba jest późno, bo mi się coś nie zgadza (znaczy na pewno jest późno :))

ten diagram: https://forbot.pl/blog/kurs-arduino-sterowanie-silnikami-dc-petla-for-id8311#gallery-12

wprowadza w błąd, bo później na płytce jest na odwrót, no i nie ma nigdzie wejść "Motor IN1".

Znaczy jak się poczyta, i weźmie pod uwagę, ze kolejność podłączenia rezystora nie ma znaczenia w podłączeniu szeregowym, i się domyśli, ze "Motor IN" to to samo co "OUTPUT",  to w sumie na jedno wychodzi.

Ale dla początkujących, to jednak proponuję nie komplikować i umieścić diagram zgodny z płytką poniżej, czyli (przerysowałem, żeby sobie kabelków na płytce nie pomieszać):

565045209_UntitledDiagram.thumb.png.9d655458417715b145e4e19bb9075e47.png

  • Lubię! 1
Link do komentarza
Share on other sites

@Frankko można by coś wyznaczyć, ale w tym przypadku jest to rezystor dobrany na oko. Te diody służą jedynie jako wskaźnik czy silnik działa i nie ma potrzeby przepuszczać możliwie dużego prądu np. 20mA. 

Link do komentarza
Share on other sites

mam pytanie dlaczego po podlaczeniu wyjscia nr 7 do inputu nr 1 w mostku nic sie nie dzieje dopiero podlaczenie bezposrednio wyjscia 7 do rezystora skutkuje oczekiwanym efektem (wszystko podlaczone jak na schemacie i program takze ten sam)

 

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.