Skocz do zawartości

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


Komentator

Pomocna odpowiedź

Mam kilka pytań, dotyczących tematów, przedstawionych w tym odcinku kursu:

1. Jak oznacza się silniki na schematach ideowych?

2. Dlaczego zmienna licznikowa jest nazywana "i"?

3. Czy to płynne rozpędzanie silnika ma jakieś praktyczne zastosowanie?

Link do komentarza
Share on other sites

@StefanekP

  1. zależy od rodzaju, prosty szczotkowy silnik DC wygląda jak woltomierz z M zamiast V, M od Motor,
  2. i od iterations, ale możesz używać inne nazwy, ja np gdy iteruję po tablicach które reprezentują 2 wymiarową strukurę używam iy i ix,
  3. tak, silniki lepiej rozpędzać stopniowo, żeby nie uzyskać skoku napięcia - jest to widoczne zwłaszcza w dużych silnikach. Są nawet specjalne układy do tzw. soft startu.
  • Pomogłeś! 1
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

Witam szanowne grono. Po dłuższej przerwie moje rozwiązanie zadania 8.1

void setup() {
  pinMode(6, OUTPUT); // Sygnal PWM 1 silnika
  pinMode(3, OUTPUT); //Sygnal PWM 2 silnika
  digitalWrite(6, HIGH); //Ustawiamy na stale stan wysoki na sterowaniu predkosciami
  digitalWrite(3, HIGH);

  pinMode(7, OUTPUT); //Sygnaly sterujace kirunkiem obotow  1 silnika
  pinMode(8, OUTPUT);
  pinMode(2, OUTPUT); //Sygnaly sterujace kirunkiem 2 silnika
  pinMode(4, OUTPUT);
}

void loop() {
  digitalWrite(7, LOW); //Silnik 1 i 2 obroty w lewo przez 2 sek
  digitalWrite(2, LOW);
  digitalWrite(8, HIGH);
  digitalWrite(4, HIGH);
  delay(2000);

  digitalWrite(7, HIGH); //Silniki 1 i 2 obroty w przeciwna strone przez 2 sek
  digitalWrite(2, LOW);
  digitalWrite(8, LOW);
  digitalWrite(4, HIGH);
  delay(2000);

  digitalWrite(7, LOW); //Zmiana kerunkow silnikow 1 i 2 w przeciwna strone przez 2 sek
  digitalWrite(2, HIGH);
  digitalWrite(8, HIGH);
  digitalWrite(4, LOW);
  delay(2000);

  digitalWrite(7, HIGH); //Silnik 1 i 2 obroty w prawo przez 2 sek
  digitalWrite(2, HIGH);
  digitalWrite(8, LOW);
  digitalWrite(4, LOW);
  delay(2000);
}

 

Link do komentarza
Share on other sites

Dnia 21.10.2021 o 07:18, Gieneq napisał:

@Vova fajnie, tak trzymaj 🙂 w ramach zadnaia dodatkowego do zadania dodatkowego spójrz na ten temat, jest tam specjalnie przygotowany fragment o tym jak ulepszyć powtarzalny kod:

 

 

@Gieneq To pytanie było w nawiązaniu do twojego postu, chyba czegoś tu nie ogarniam🤔

Link do komentarza
Share on other sites

Cześć. Mam problem z podłączeniem silników do mostka H. Otóż kiedy mam podłączone Arduino przez USB do komputera wszystko działa. Kiedy Arduino jest podłączone przez USB oraz dodatkowo ma wpiętą baterię 9V też wszystko działa (silniki kręcą się szybciej). Kiedy jednak odepnę USB zostawiając podpiętą baterię to program nie chce działać choć Arduino jest włączone (na płytce świeci się dioda on oraz miga dioda L).

Będę wdzięczna za odpowiedź co robię nie tak.

Poniżej przedstawiam schemat połączeń.

Pozdrawiam

18042465_UntitledSketch_bb.thumb.png.6819d9c87c957ad1cfb020e6531b964d.png

Link do komentarza
Share on other sites

@emiemi8 zobacz czy bateria jest sprawna, czy nie jest mocno rozładowana, bo jeżeli jest różnica przy podłączeniu USB a Vin to coś jest nie tak. Domyślnie Vin wywłaszcza USB gdy poziom zasilania jest dostatecznie duży.

Inna sprawa to dioda przy złaczu koncentrycznym która trochęmarnuje napięcie, z tym mostkiem każdy volt jest cenny wiec lepiej daj baterię na Vin Arduino - to jest bardziej ryzykowne bo nie ma tam zabezpieczeń ale będzie mniej problemów z napięciem. 

Link do komentarza
Share on other sites

@Gieneq testowałam na kilku różnych bateriach i było to samo. Ostatecznie baterii nie podłączałam bezpośrednio do Arduino ale przez płytkę stykową a potem do pinu Vin. 

Jednak obecnie mam problem, że w momencie obciążenia silników cały program się zawiesza (kiedy silniki kręcą się swobodnie wszystko jest ok) - czy to przez zbyt małą wydajność prądową takiej baterii i czy w takim razie muszę zmienić ją na jakieś akumulatory?

Link do komentarza
Share on other sites

1 godzinę temu, emiemi8 napisał:

czy to przez zbyt małą wydajność prądową takiej baterii i czy w takim razie muszę zmienić ją na jakieś akumulatory?

Najprawdopodobniej tak...lepiej uzyc akumulatorow li ion np. lub innych...z regoly rowniez lepiej zasilac ardu z osobnego zrodla zeby te silniki np. nie zaklucaly pracy ardu...

Link do komentarza
Share on other sites

Cześć, podłączyłem układ z diodami bez silnika i akurat jedna dioda tylko miga. Jak zaminie jej bieguny to inna się pali. Czy mogłby ktos pokazac jak te diody mają być dobrze podłączone, bo zrobilem tak jak na zdjęciu i tylko jedna się pali. Z góry dziekuję 😃

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.