Skocz do zawartości

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


Komentator

Pomocna odpowiedź

@Treker zrobiłem już jakiś czas temu szybki przegląd tego kursu. Na pewno go nie ominę, jednak na tą chwilę chciałbym wykorzystać czujnik zbliżeniowy HC-SR04 do tego SHIELD z L293D lub wykorzystać sterownik z L298N. Do tego dwa proste silniki i jedno serwo. Taki naprawdę najprostszy. Ma mieć po prostu korpus wykonany z tektury (pracuję w firmie produkującej tekturę) oraz nadruk z logiem firmy. Zastanawiam się jeszcze nad źródłem zasilania, czy wykorzystać LiPO czy może jakiś zestaw baterii AA. Mam też możliwość bezkosztowo spróbować wykorzystać ogniwa 18650, ponieważ mam w szafce koszyk na dwa takie akumulatory oraz kilka wysokoprądowych akumulatorów. Czy ich wysoki maksymalny amperaż (30A) nie będzie problemem? Układ i tak powinien pobrać sobie tylko taki prąd jak potrzebuje. 

Link do komentarza
Share on other sites

Dlaczego L298 a nie coś, co powstało już po wyginięciu dinozaurów?

Co do zasilania: 2x18650 to bardzo fajny wybór. Problem może być z serwem (nie każde wytrzyma ponad 8V przy w pełni naładowanych akumulatorach). Jakaś tania przetwornica?

Link do komentarza
Share on other sites

A co proponujesz w zamian za L298? Większość poradników i tutoriali w internecie wspomina właśnie taki sterownik. Jakaś przetwornica stepdown może być też dobrym pomysłem. Polecasz jakąś konkretną czy to w zasadzie wszystko będzie to samo? 

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

Teraz siedzę z telefonem i nie bardzo mogę pomóc, ale zobacz sobie w Botlandzie jakie są sterowniki (DRV cośtam).

Co do przetwornicy - jakaś najtańsza jednoamperowa, na Allegro chodzą poniżej 5PLN za sztukę.

Link do komentarza
Share on other sites

@MisterPablo uproszczając - tak. Jeden z pinów wyjściowych mostka będzie równy napięciu zasilania, a drugi będzie masą. Po odwróceniu sterowania będzie odwrotnie. Dzięki temu silnik może kręcić się w dwie strony (a tutaj mogą się świecić dwa diody).

Link do komentarza
Share on other sites

Cześć wszystkim, mam takie małe pytanko. Niestety nie mam możliwości podłączenia baterii do Arduino. Czy będę w stanie bezpiecznie wykonać symulację silnika (na diodach) opisaną w tej części kursu podłączając Arduino przez kabel USB do komputera tak jak w poprzednich częściach?

Z góry dziękuję za każdą pomoc! :)

Link do komentarza
Share on other sites

@MateuszB witam na forum 🙂 Możesz próbować, raczej nic nie uszkodzisz. Pamiętaj tylko, że na mostku jest spadek napięcia, więc do diod dotrze mniej niż 5V - nie dawaj tam więc zbyt dużych rezystorów.

Link do komentarza
Share on other sites

Zadanie 8.1

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,OUTPUT);//Sygnały sterujące kierunkiem obrotów silnika nr 2
pinMode(3,OUTPUT);
}

void loop() {
digitalWrite(7,LOW);//Silniki nr 1 i 2 - obroty w lewo
digitalWrite(8,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
delay(2000);

digitalWrite(7,HIGH);//Silnik nr 1 - obroty w prawo
digitalWrite(8,LOW);
digitalWrite(2,LOW);//Silnik nr 2 - obroty w lewo
digitalWrite(3,HIGH);
delay(2000);

digitalWrite(7,HIGH);//Silniki nr 1 i 2 - obroty w prawo
digitalWrite(8,LOW);
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
delay(2000);
}

 

Link do komentarza
Share on other sites

@Vova Fajnie że dzielisz się kodem do kolejnego zadania 🙂 sterowanie silnikami wygląda dobrze, acz zastanawiam się co tu robi ten pin 6 i czemu ma napisane coś o PWM 😉 

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

(edytowany)

@Gieneq Z  tym 6 pinem jest tak że ten fragment kodu skopiowałem i nie usunąłem tego a tylko dopisałem część do sterowania drugim silnikiem🙃 Wiem że tak nie można...

A tym czasem zadanie 8.4 (tak może trochę z drugiej strony zacznę) Dale popracuje nad 8.2 i 8.3...

void setup() {
  pinMode(6, OUTPUT); //Sygnał PWM silnika nr 1

  pinMode(7, OUTPUT); //Sygnały sterujące kierunkiem obrotów silnika nr 1
  pinMode(8, OUTPUT);

  digitalWrite(7, LOW);//Silnik nr 1 obroty w lewo
  digitalWrite(8, HIGH);
}

void loop()  {
  for (int i = 0; i <= 255; i++) {
    analogWrite(6, i);// Spokojne rozpedzanie silnika
    delay(25);
  }
  for (int i = 255; i >= 0; i--) {
    analogWrite(6, i); // Spokojne zatrzymywanie silnika
    delay(25);
  }
}

Jest i 8.2

void setup() {
  pinMode(7, OUTPUT);//Pin 7 jako wyjscie
  digitalWrite(7, LOW);//Nisk początkowy stan pinu 7
}
void loop() {
  for (int d = 0; d <= 4; d++) {
    digitalWrite(7, HIGH);//Zaswiec diode 5 razy na 20 ms
    delay(200);
    digitalWrite(7, LOW);
    delay(200);
  }
  delay(3000);//Odczekaj 3 sek
}

 

Edytowano przez Vova
Link do komentarza
Share on other sites

@Vova Kody wyglądają na poprawne, mam tylko uwagę co do komentarza z 2 kodu //Zaswiec diode 5 razy na 20 ms. Chyba komentarz ten nie pomaga w czytaniu kodu, a bardziej wprowadza w błąd 😞 A tak to super! Także śmiało działaj z innymi zadaniami.

A może też dodaj w przyszłych kodach procedury #define przy etykietowaniu pinów i jakiś stałych jak np. liczba obiegów pętli. Umieszczone na górze kodu powodują że czyta się o wiele lepiej i łatwiej coś poprawić. Gdybyś teraz miał zmienić pin silnika to musiałbyś poprawić to w kilku miejscach, a z prostą instrukcją dla preprocesora wartość takiej etykiety definiujesz raz, a kod wstawi się sam we wszystkich miejscach, gdzie użyjesz etykietę, przed kompilacją 🙂 

Edytowano przez Gieneq
  • Lubię! 1
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.