Skocz do zawartości
Komentator

Kurs Arduino - #5 - PWM, serwomechanizmy, biblioteki

Pomocna odpowiedź

tomeksa83, w takim razie wina leży po stronie baterii, chociaż bardzo dziwne, aby nowa robiła taki problem.

marek1707, oczywiście masz racje. W kursie pojawia się bateria 9V, bo tak najłatwiej zasilić "mobilnie" Arduino. W tej części bateria ta posłużyła do demonstracji, że takie podłączenie serwa działa. W kontynuacji kursu wprowadzimy inne zasilanie. Tak, czy inaczej, jeśli bateria jest nowa, to nie powinno być problemów z jednym, demonstracyjnym machnięciem microserwem, więc coś tu więcej jest nie tak.

Udostępnij ten post


Link to post
Share on other sites

Ja mam tylko takie drobne pytanie może uwagę, dlaczego serwo podpinamy pod pin Vin w opisie Arduino na Botlandzie pisze że jest to wprowadzenie do zasilania, nie powinno się podpinać pod +5V?

Udostępnij ten post


Link to post
Share on other sites

Crax, na pinie Vin mamy dostęp do napięcia, którym zasilana jest cała płytka, w tym wypadku będzie to około 9V z baterii. Tak jak pisałem w artykule, nie wolno podłączać serwomechanizmu do 5V z Arduino, ponieważ może to uszkodzić wiele rzeczy. Stabilizator umieszczony na płytce nie jest do tego przystosowany.

Udostępnij ten post


Link to post
Share on other sites

Rozumiem, miałem plan połączenia serwa z potencjometrem i sterować ruchem serwa kręcąc potencjometrem. Ale wejście A5 na arduino jest do 5v...

Serwo zasilałem z Vin, przez stabilizator a potencjometr z 5V.

Czyli jak rozumiem mógłbym to uprościć i podłączyć potencjometr za stabilizatorem?

Udostępnij ten post


Link to post
Share on other sites

Crax, niestety chyba nie rozumiem Twojego pomysłu. Narysuj najlepiej schemat 😉

Udostępnij ten post


Link to post
Share on other sites

Crax, jedną skrajną nóżkę potencjometru podpinasz pod +5v(na arduino), a drugą skrajną nóżkę do GND. Ze środkowej nóżki wyprowadzasz sobie kabelek i wpinasz go w pin A5.

Podłączanie jednej z nóżek potencjometru do zasilania ze stabilizatora, a drugiej do GND, jest gorszym rozwiązaniem. Przetwornik analogowy jako punkt odniesienia bierze napięcie jakim zasilany jest uC. A niestety nic nie jest idealne i np stabilizator może dawać ci 5.5v a stabilizator wbudowany w płytkę, który zasila kontroler może dawać np 4.7v.

Udostępnij ten post


Link to post
Share on other sites

Crax, wygląda dobrze. Warto dodać tylko jakiś kondensator przed serwomechanizmem 🙂

Udostępnij ten post


Link to post
Share on other sites

Zadanie 5.1

Zmienna byte może przyjmowac wartosci jedynie od 0 do 255zatem wystarczy zapis:

#define niebieska 3       //definicja wyjścia
byte wypelnienie =0;  //zmienne
int zmiana = 5;  

void setup() {
pinMode(niebieska, OUTPUT);  //konfiguracja pinu

}

void loop() {
 analogWrite(niebieska, wypelnienie);   //              
 wypelnienie = wypelnienie + zmiana;         

 delay(20);

Nie zmienia to faktu ze mocno się zdziwiłem, że tak sama z siebie się zeruje po osiągnięciu swojej max wartości.

Zad 5.2

Najciekawszy efekt? Jak dla mnie to jest on nudny lub mniej nudny 🙂

Tak poważnie to zdziwiło mnie jak duża jest różnica pomiędzy 0ms a 1ms. Najciekawiej dioda pracuje przy zmianie ustawionej na 1 i czasach poniżej 10ms.

#define niebieska 3       //definicja wyjścia
byte wypelnienie =0;  //zmienne
int zmiana = 1;  

void setup() {
pinMode(niebieska, OUTPUT);  //konfiguracja pinu

}

void loop() {
analogWrite(niebieska, wypelnienie);                 //zapal diode z określonym wypełnieniem
   if( wypelnienie<255){                            //jeśli wypełnienie mniejsze od 255
       wypelnienie = wypelnienie + zmiana;          // to wypełnienie równe swojej wartosci plus zmiana
   }else{                                           // jesli wypelnienie równe 255 wykonaj pętle:
         while(wypelnienie > 0){                    //dopóki warunek spełniony
               wypelnienie = wypelnienie - zmiana;  //wygaszaj diode
               analogWrite(niebieska, wypelnienie);  
               delay (10);                          //opóżnienie
         }
     }
delay(10);

}

Udostępnij ten post


Link to post
Share on other sites
Nie zmienia to faktu ze mocno się zdziwiłem, że tak sama z siebie się zeruje po osiągnięciu swojej max wartości.

Zapamiętaj, że zmienne się nie zerują, tylko przepełniają. Gdy przekroczysz zakres innej zmiennej (np. int), to po przekroczeniu maksymalnej wartości zamiast zera pojawią się tam wartości ujemne (ze skrajnego zakresu). Warto zrobić taki eksperyment i sprawdzać wynik przez UART. Dzięki temu można uniknąć przykrych niespodzianek w przyszłości 🙂

Udostępnij ten post


Link to post
Share on other sites

Czyli te ujemne wartości rosną dalej do zera i cały cykl się powtarza?

Dobrze zrozumiałem?

No właśnie miałem ochotę sprawdzić, czy to tylko ta jedna zmienna się tak zachowuje, teraz już wiem że nie 🙂

Rzeczywiście w takim wypadku można się zdziwić...

Udostępnij ten post


Link to post
Share on other sites

mechanik, tak dokładnie. Zmienna po przepełnieniu przyjmuję swoją skrajną wartość "z przeciwnej strony" i cykl się powtarza. To samo działa w drugą stronę.

Udostępnij ten post


Link to post
Share on other sites

Czy stabilizator w tym przykładzie jest konieczny? Poszerzając swoja wiedzę o Arduino natknąłem sie na ten film na YT, tam autor go nie stosuje. Może to głupie pytanie ale nie jestem jeszcze tak obeznany z elektronika 🙂

Ok, znalazłem odpowiedz na poprzedniej stronie 🙂

Udostępnij ten post


Link to post
Share on other sites

Czy te kondensatory wchodzą w skład zestawu z Botlandu? Bo widzę tylko dwa, ceramiczny i elektrolityczny a na rysunku z ćwiczenia z serwem mamy jakieś dwa niebieskie prostokąty. To są dwa takie jak ten ceramiczny, czy jakieś inne, czy co? Chyba trzeba będzie odwiedzić sklep 🙂

Udostępnij ten post


Link to post
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!

Gość
Napisz odpowiedź...

×   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...