Skocz do zawartości

Kurs Arduino - #5 - PWM, serwomechanizmy, biblioteki


Komentator

Pomocna odpowiedź

@andrzej_ip witam na forum! Pin Vin to napięcie wejściowe (tutaj z baterii 9V), a pin 5V to 5V 😉 Aby taki stabilizator zadziałał poprawnie to musi być zasilany z napięcia wyższego niż to, które ma dać na swoim wyjściu. Więcej na ten temat dowiesz się np. z tego artykułu: Kurs elektroniki – #8 – stabilizatory napięcia

Link do komentarza
Share on other sites

@krzym2 Witam. Pracuje nad zadaniem 5.2 i natknąłem się na Twoją wersje. Tylko dziwne że po skopiowaniu u mnie nawet nie chce się kompilować? zastanawiam się jak to działa u  Ciebie?

Dnia 19.06.2019 o 17:18, krzym2 napisał:

wypelnienie = wypelnienie zmiana   // odjąć  5

Na pierwszy rzut oka w kodze jest o jedną klamrę za dużo na końcu, a jednej linijce brakuje ( ; )  

Link do komentarza
Share on other sites

Dnia 7.03.2020 o 15:17, Treker napisał:

@andrzej_ip witam na forum! Pin Vin to napięcie wejściowe (tutaj z baterii 9V), a pin 5V to 5V 😉 Aby taki stabilizator zadziałał poprawnie to musi być zasilany z napięcia wyższego niż to, które ma dać na swoim wyjściu. Więcej na ten temat dowiesz się np. z tego artykułu: Kurs elektroniki – #8 – stabilizatory napięcia

Dziękuję za wyjaśnienie. Właśnie jestem w trakcie przerabiania tego kursu #8 i w ramach nauki (chyba) wystrzelił mi elektrolit 😆 , ale ja nie o tym. Chciałbym się jeszcze

dopytać czy można jednocześnie podłączyć do płytki napięcie przez USB i 9V? (bo może to było przyczyną wybuchu).

Link do komentarza
Share on other sites

Zadanie 5.4

#include <Servo.h> //Biblioteka odpowiedzialna za serwa
String ZadanaPozycja = "";//Zminna dla wprowadzenia tekstu
int pozycja = 0;//Poczatkowa pozycja serwa
int ZadanaPozycjaINT = 0;//Zmienna dla przekrztałcenia z "String" na "int"
Servo serwomechanizm; //Tworzymy objekt, dzieki ktoremu mozemy odwolac sie do serwa


void setup() {
  Serial.begin(9600);// Nawiazanie komunikacji
  serwomechanizm.attach(9);//Serwomechanizm podlaczony do pinu 9
}

void loop() {
  if (Serial.available() > 0) { //Odczytywanie zadanej pozycji
    ZadanaPozycja = Serial.readStringUntil('\n');
    ZadanaPozycjaINT = ZadanaPozycja.toInt();//Przekrztałcenie zniennej z "String" na "int" 
    if (ZadanaPozycjaINT <= 180 && ZadanaPozycjaINT >= 0) {//Gdy zadana pozycja miesci sie w zakresie
      serwomechanizm.write(ZadanaPozycjaINT);//Wykonaj ruch serwa

    } else {
      Serial.println("Zadana nie wlasciwa pozycja");// Gdy zadana pozycja poza zakresem wyswietl info
    }
  }
}

 

Edytowano przez Vova
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

Dnia 10.03.2020 o 16:33, andrzej_ip napisał:

Chciałbym się jeszcze

dopytać czy można jednocześnie podłączyć do płytki napięcie przez USB i 9V? (bo może to było przyczyną wybuchu).

Można. Ja często nie odpinam zasilania od Arduino jak wgrywam kolejna wersję kodu po USB. Nie powinno się zostawiać np samego usb w momencie jak w układzie masz elementy wymagające stosunkowo dużego prądu, na przykład serwomechanizm wlaśnie. Warto wtedy odłączyć jeden z przewodów dochodzący do serwa. 

Link do komentarza
Share on other sites

Zadanie 5.5

#include <Servo.h>//Biblioteka odpowiedzialna za serwo
int potencjometr = 0;//Pozycja potencjometra
Servo silnik;//Serwo

void setup(){
  silnik.attach(9);//Konfiguracja pinu 9 pod serwo
}

void loop() {
  potencjometr = analogRead(A1);// Odczyt pozycji potencjometru z ADC
  potencjometr = map(potencjometr, 0, 1023, 1 , 180);// Przekrztaucenie odczytanych wartosci
   silnik.write(potencjometr);// Wykonaj ruch serwa
   delay(50);//Male opoznienie dla niwelacji zaklucen
}

 

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

Cześć, ja mam taki problem. Zaobserwowałem, że moje serwo nie przemieszcza się w pełnym zakresie 0-180, tylko mniej. W funki sterującej oczywiści podaję argument 0 i 180, ale wyraźnie widać, że zakres ruchu jest mniejszy. Prawdę mówiąc to samo zaobserwowałem podczas wykonywania kursu elektroniki z zastosowaniem NE555, wtedy nie zgłębiałem tematu, ale teraz już widzę, że muszę. Czy ktoś potrafi mi wyjaśnić o co chodzi?

Edytowano przez Radek77
literówka
Link do komentarza
Share on other sites

Witajcie serdecznie

To mój pierwszy wpis na forum - zatem kłaniam się wszystkim. Od razu przejdę do problemu:

Przerabiam razem z 12 letnim synem lekcję po lekcji. Wszystko szło dobrze aż do części o servo. 

5 razy zdemontowałem i zamontowałem wszystkie elementy, ale serwo jak milczało tak milczy. Zmieniłem płytkę, zmieniłem zasilanie z baterii na zasilacz. Nadal cisza. 

Lekcja 5, całość zakupiona w Botlandzie jako zestaw do części I.

Co robię źle??? 

Pozdrawiam

 

Grzegorz

 

IMG_2931.jpg

IMG_2932.jpg

Link do komentarza
Share on other sites

@gmoszkowicz witam na forum 🙂

Możesz sprawdzić napięcie na wyjściu stabilizatora?

Jeżeli nie to dla testu (podkreślam dla testu) możesz podłączyć serwo gołym kablem do wyjść zasilających Arduino. Weź 2 kabelki podłącz + do 5V, - do GND. Przy samym podłączeniu serwko powinno drgnąć od dostania zasilania. Następnie podłącz kabelek sygnałowy.

Jeżeli nie działa, wybierz inne kabelki, może te są trefne i nie łączą (bywa i tak).

Jeżeli to nie pomogło to najlepiej sprawdź czy kabelki przewodzą (znowu miernik by się przydał) jak nie masz, to zbuduj jakiś układ ze świecącym LEDem i sprawdź czy kabelek przewodzi.

Jeżeli żaden z ww. nie pomógł to pewnie serwo jest uszkodzone i możesz złożyć reklamację 😞 

Link do komentarza
Share on other sites

Na chwilę nie zaszkodzi, przy zasilaniu z kabla zasilanie będzie szło przez stabilizator.

Zastanawiam się tylko jak kolega @gmoszkowicz robi zadania z kursu. W systemie masz zakupione zestawy, ale na zdjęciu klon Arduino. Może z płytką jest coś nie tak.

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

13 godzin temu, Gieneq napisał:

Na chwilę nie zaszkodzi, przy zasilaniu z kabla zasilanie będzie szło przez stabilizator.

Zastanawiam się tylko jak kolega @gmoszkowicz robi zadania z kursu. W systemie masz zakupione zestawy, ale na zdjęciu klon Arduino. Może z płytką jest coś nie tak.

No zdjęcie było już z 2 płytki. Mam oczywiście tą z zestawu, ale nie działało, więc wymieniałem po kolei wszystko. Jedyne czego nie mogłem wymienić to ten stabilizator LM7805.

Resztę sprawdziłem - nawet serwo wymieniłem (mam 2 identyczne).

No dobra - robię raz jeszcze.

Dzięki za podpowiedzi.

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

Jest sukces. Ponownie zmontowałem całość od początku do końca i tym razem działa.

Ale mam pytanie: Ruch servo nie jest o pełne 180 stopni a na dodatek nawet przestawianie go np o 30 stopni to kolejne pozycje dość istotnie różnią się od zadanych 30 stopni. Na dodatek jeśli zatrzymam serwo w pozycji 0 to ono tak jakby drży dopiero przy pozycji 5 jest spokojne - później jest ok aż do kolejnej skrajnej pozycji czyli od 176-180 znów zaczyna drżeć.

To kwestia jakości servo? czy są jakieś lepsze? 

Pozdrawiam

Grzegorz

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.