Skocz do zawartości

Kurs Arduino - #5 - PWM, serwomechanizmy, biblioteki


Pomocna odpowiedź

(edytowany)
52 minuty temu, Treker napisał:

To bardzo duże wahania, szczególnie, że i tak miernik nie jest w stanie pokazać szybkich zmian. Na wyjściu stabilizatora powinno być 5 V niezależnie od sytuacji.

Czy takie wahania napięcia to wina właśnie tej zużytej baterii 9V? Napięcie z połączonych baterii rzeczywiście skacze w dół podczas działania serwa, nawet do okolic 7V, także zakładam, że to jest właśnie powód wszystkich problemów. Czy zamiast tego mógłbym podpiąć bezpośrednie do serwa baterie z zestawu do elektroniki poziom 2? Czy tak wysokie napięcie (6.4V) najpewniej uszkodzi serwo? Nie mam drugiej baterii 9V niestety, stąd kombinuję. Ewentualnie podpiąć szeregowo więcej baterii AA, żeby uzyskać ponad 7V?

EDIT: Spojrzałem właśnie w datasheet dla serwa SG-90 - 6V na pewno je uszkodzi. Zatem jedyna nadzieja dla mnie to łączenie szeregowo baterii 😄

Edytowano przez Torianen
17 godzin temu, Torianen napisał:

Czy takie wahania napięcia to wina właśnie tej zużytej baterii 9V? Napięcie z połączonych baterii rzeczywiście skacze w dół podczas działania serwa, nawet do okolic 7V, także zakładam, że to jest właśnie powód wszystkich problemów.

Tak, te wahania wynikają z tego, że źródła zasilania jest za słabe. Gdy układ nie jest obciążony to napięcie może być wystarczające, ale przy próbie pobrania większego prądu niestety napięcie spada.

17 godzin temu, Torianen napisał:

Nie mam drugiej baterii 9V niestety, stąd kombinuję.

Jeśli naprawdę musisz już coś kombinować to możesz w ostateczności podłączyć serwo do 5 V, które jest wyprowadzone na jednym z wyjść Arduino (opisane jako 5V). Nie powinno się tak robić, ale raczej zadziała. Jest nawet w sieci wiele poradników, w których ludzie tak robią 😉 Można zaryzykować na krótki test do momentu, gdy nie będziesz miał nowej baterii lub zasilacza.

  • 1 miesiąc później...

Hej, zlozylem sobie uklad aby sterowac serwo za pomoca potencjonometru. Zauwazylem defekt potecjonometru, czy to normalne ze osiaga maksymalna wartosc (1023) przy przekreceniu o 3/4 calkowitej mozliwosci obrotu?

Potencjometr który jest dołączany do zestawu Forbot (5 kOhm). Ma zakres ruchu około 180 stopni, na oko przy około 135 stopni do 180 stopni pokazuje maksymalną wartość 1023 przy odczycie za pomocą funkcji analogRead.

@pierzakp pokaż proszę dla formalności też zdjęcie swojego układu - łatwiej będzie znaleźć jakiś błąd. Potencjometr jest zbudowany fizycznie w taki sposób, że raczej nie jest możliwe, aby pełny opór nie był na jednym z krańców. Najlepiej zmierz jeszcze miernikiem jaki jest opór między dwiema środkowymi nóżkami (położenie suwaka jest wtedy nieistotne).

zadanie 5.5 

#include <Servo.h>//biblioteka odpowiedziala za serwomechanizm
Servo serwomechanizm;//obiekt dzieki ktoremu mozemy odwolac sie do serwa
int odczytanaWartosc=0;//odczytana wartosc z ADC


void setup() {
  // put your setup code here, to run once:
serwomechanizm.attach(9);//pin 9 przypisany do serwomechanizmu
serwomechanizm.write(0);//pozycj wyjscioa serwo to 0
}

void loop() {
  // put your main code here, to run repeatedly:
  odczytanaWartosc=analogRead(A5);//odczytanie wartosci z ADC
map(odczytanaWartosc,0,1023,0,180);//skalowanie wartosci ADC na prog serwomechanizmu
serwomechanizm.write(odczytanaWartosc);//ustawienie serwo na ozycje z potencjometru
}

zadanie wygląda następująco ale mam pytanie, jak potenjometr skręcę na 1/4 to serwo już zrobiło 180 stopni, tak powinno być? wydawało mi się ze jak potencjometr będzie na max to też serwo osiągnie swoje 180 stopni

(edytowany)

@TrekerDodałem jeszcze jedna zmienną int i już prawie działa tak jak powinno tylko, że przy 3/4 skręcie potencjometru serwo uzyskuje 180 stopni i obnizajac wartość potencjometru serwo ma padaczkę w czym jest problem 😕

Nagrałem filmik jak się zachowuje

Edytowano przez lukasz957
  • 4 tygodnie później...

@Michal2010 prawie, prawie, ale to nie to - zwróć uwagę, że w oryginalnym programie wartość zmieniała się od 0 do 255. U Ciebie tak nie będzie. Jeszcze raz zerknij na podpowiedź, która jest przy tym zadaniu: "Podpowiedź: zastanów się jaki wpływ na działanie programu ma typ zmiennej wypełnienie." Dla ułatwienia możesz wysyłać do komputera przez UART aktualną wartość zmiennej wyplenienie.

 

  • 2 tygodnie później...

Dzień dobry.

Robiliśmy dzisiaj ten kurs i doszliśmy do podłączania serwomechanizmu. Niestety, nie jest sprecyzowane jakich kondensatorów należy użyć. Podłączyliśmy dwa kondensatory ceramiczne 100 mikrofarat według schematu, działało dobrze...ale spaliliśmy stabilizator liniowy. Nie jesteśmy pewni, czy zawinił silnik, ale raczej nie. Stabilizator liniowy był jednak bardzo nagrzany i główny problem jest z nim. 

Ponieważ ani w komentarzach, ani na schemacie nie jest napisana konieczna wartość, jakie kondensatory podłączamy?

Dodatkowe informacje - podłączyliśmy zasilacz z drugiego poziomu Arduino, korzystaliśmy z elementów z obu pakietów, ale według schematu w drugim obwodzie. Korzystaliśmy z odpowiedzi na trzeciej stronie tego wątku.

@XelaThunder01 witam na forum 🙂 Dokładna wartość kondensatorów w tym przypadku nie jest kluczowa, na pewno nie powinno mieć to aż takiego wpływu na działanie stabilizatora. Nie powinien on się również nagrzewać aż tak mocno. Czy możecie pokazać dokładne zdjęcie swojego podłączenia? Czy to stabilizatora był podłączony tylko jeden serwomechanizm?

Czy stabilizator liniowy na pewno się spalił? To jest dość ciężkie - prędzej mogło zadziałać zabezpieczenie termiczne i wyłączył się, gdy był zbyt gorący.

22 godziny temu, Treker napisał:

@XelaThunder01 witam na forum 🙂 Dokładna wartość kondensatorów w tym przypadku nie jest kluczowa, na pewno nie powinno mieć to aż takiego wpływu na działanie stabilizatora. Nie powinien on się również nagrzewać aż tak mocno. Czy możecie pokazać dokładne zdjęcie swojego podłączenia? Czy to stabilizatora był podłączony tylko jeden serwomechanizm?

Czy stabilizator liniowy na pewno się spalił? To jest dość ciężkie - prędzej mogło zadziałać zabezpieczenie termiczne i wyłączył się, gdy był zbyt gorący.

Zdjęcia obwodu, wszystko według schematu. Serwo działało przez maks 2 minuty. By przetestować silnik, tata powoli zwiększał wartość obrotu w programie, a ja kontrolowałem cały układ. Przy kilkukrotnym zwiększeniu prędkości, silnik stanął w maksymalnym odchyleniu, a stabilizator był gorący. Mieliśmy głównie problem z wartościami kondensatorów. Nie widzę problemów z moimi podłączeniami.

IMG_20230214_152005.jpgIMG_20230214_152010.jpgIMG_20230214_152018.jpg

IMG_20230214_152023.jpgIMG_20230214_152026.jpgIMG_20230214_152029.jpg

@XelaThunder01 potwierdzam, że połączenia są poprawne, więc stabilizator nie powinien się uszkodzić - kondensatory nie mają tutaj większego znaczenia (zresztą ich aktualne podłączenie jest poprawne). Jeśli po ostygnięciu stabilizator nadal nie działa to zgłoście reklamację do sprzedawcy (zapewne do Botlandu). Napiszcie na adres [email protected], na pewno szybko uda się wymienić element na nowy. Mam nadzieję, że dalej obejdzie się już bez takich niespodzianek!

 

 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...