Skocz do zawartości

Kurs Arduino - #5 - PWM, serwomechanizmy, biblioteki


Komentator

Pomocna odpowiedź

#define dioda 10  
#define pot A5
int poziom = 0;
void setup() {
 pinMode(dioda, OUTPUT);
 Serial.begin(9600);


}

void loop() {
 poziom = (analogRead (A5));
 poziom = map(poziom, 0, 1023, 1, 255);
 if(poziom<255){
   analogWrite(dioda, poziom);
   Serial.println(pot);
 }

}

Prosty programik, dlaczego nie działa mi zdefiniowanie pot? Ciągle wyświetla w konsoli 19...

Link do komentarza
Share on other sites

Witam, Bez przypadek chyba spaliłem serwo. Bo podłączyłem je bez stabilizatora napięcia. Bo ogólnie nie udało się wykonać nim żadnego ruchu a podłączony jest jak na schemacie w kursie.

Link do komentarza
Share on other sites

zioloiso, jeśli podłączyłeś serwo bezpośrednio do 9V i teraz nie działa, to faktycznie zapewne zostało spalone.

SOYER, a co dokładnie chciałbyś wyświetlacz w tym terminalu? Nie chodziło przypadkiem o zmienną "poziom"? W tej chwili program działa poprawnie. Zdefiniowałeś wyświetlanie "pot", które na początku programu określasz jako "A5" (bo tak numeruje się porty analogowe). Tak naprawdę A5, to też jest tylko skrót, który w bibliotekach Arduino jest zapisany jako "#define A5 19", stąd w terminalu pojawia się ta 19.

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

SOYER, bo poziom, to zmienna, do której zapisujesz wartość odczytaną z A5: poziom = (analogRead (A5))

Natomiast pot to stała definiująca pin, z którego chcesz odczytać wartość - to tylko numer wyprowadzenia, a nie wartość odczytywana z tego wyprowadzenia. Poprawne wykorzystanie pot będzie wyglądało np. tak: poziom = (analogRead (pot));

lordolo, witam na forum 🙂 Czy możesz zmierzyć napięcie na baterii? Spróbuj też delikatnie ręcznie przekręcić końcówkę serwa (gdy będzie odłączone od układu) - chodzi płynnie/rusza się? Jeśli bateria jest dobra, a serwo się nie rusza, to pozostaje reklamacja serwa u sprzedawcy. Czasami zdarzają się uszkodzone fabrycznie egzemplarze (rzadko, ale jest to możliwe).

Link do komentarza
Share on other sites

zioloiso, jeśli było spalone, to już całkiem trafiłeś na pechowy model 😉 Najczęściej uszkodzenia są mechaniczne (np. blokada przykładni). W każdym razie super, że teraz wszystko śmiga już poprawnie - powodzenia w dalszej nauce!

Link do komentarza
Share on other sites

Witam mam nastepujacy problem. Wczoraj przyszedl mój serwo z botlandu dokladnie ten co wymaga kurs i kiedy próbuje go podłączyć zgodnie ze schematem i podanym programem ani drgnie. Wyjscia od niego sa zenskie wiec dodatkowo dodaje przewody mesko meskie by podlaczyc do plytki. Moglby mi ktos prosze pomoc zanim bd szukal nowego serwo? Pewnie robie jakis glupi blad ale przez brak doswiadczenia go nie widze...

[ Dodano: 07-01-2018, 20:34 ]

Ok juz dziala. Ale drugie pytanie czy serwo powinno chodzic idealnie plynnie czy troszke tyrkotać?

Link do komentarza
Share on other sites

piterx, witam na forum 🙂 Przekładnia, która jest w serwach sprawia, że wydają charakterystyczny dźwięk i mogą "troszkę tyrkotać". Takie małe i tanie modele serw nie chodzą perfekcyjnie płynnie (jak zwykłe silniki), jednak ruch nie powinien być mocno zaburzony.

Link do komentarza
Share on other sites

Dotarłem do 5 części kursu, robiąc ćwiczenia z serwem zauważyłem że coś z jego ruchami nie jest tak jak powinno być.

Sprawdziłem to pisząc prosty kod który ustawia je w jednej określonej pozycji.

Z testu wynika że nie mogę go ustawić w pozycjach poniżej 20. Przy 19 i 18 drży ale stoi, a poniżej 17 kręci się dookoła zwalniając w tym niskim zakresie.

Gdzie może leżeć problem? Czy powinienem kupić inne serwo?

Serwo, stabilizator mam z zestawu, kondensatory zainstalowane przy stabilizatorze, bateria podłączona

/KK

Link do komentarza
Share on other sites

krzyska, jeśli przy podaniu sygnału Jednak pamiętaj, że egzemplarz, który masz nie jest uszkodzony - to "nowsza" wersja, która reaguje na sygnały w minimalnie innym zakresie i nie ma blokady mechanicznej. W teorii dzięki temu trudniej je uszkodzić 😉

Link do komentarza
Share on other sites

krzyska, dziękuję za wyjaśnienia. W takim razie masz teraz dwie możliwości: albo zostań przy tym serwie, albo skontaktuj się z Botlandem znają temat i wymienią serwo na egzemplarz z blokadą 🙂

Decyzja należy do Ciebie, tak jak wspomniałem: serwo, które masz nie jest uszkodzone, to nowsza wersja tego, które jest opisane w kursie. Jedyna różnica jest taka, że nie ma tam blokady mechanicznej, więc przy podaniu małej wartości (

Link do komentarza
Share on other sites

zadanie 5.1

#define czerwona 3
int wypelnienie = 0;
int zmiana = 3;
void setup() {
 pinMode(czerwona, OUTPUT);
}

void loop() {
 analogWrite(czerwona, wypelnienie);
 wypelnienie = wypelnienie + zmiana;//dodaje wypełnienie
 wypelnienie < 255;//sprawdza czy osiągnięto 255 


 delay(50);
}
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.