Skocz do zawartości

Kurs Arduino - #5 - PWM, serwomechanizmy, biblioteki


Komentator

Pomocna odpowiedź

#include <Servo.h>

Servo wychylacz;
int pozycja = 0;

void setup() {
  wychylacz.attach(3);
  Serial.begin(9600);
}

void loop() {
  pozycja = analogRead(A5);
  pozycja = map(pozycja, 0, 1024, 0, 180);
  Serial.println(pozycja);
  wychylacz.write(pozycja);
  delay(50);    
}

Ustawianie serwa potencjometrem.

#include <Servo.h> //biblioteka

Servo wychylacz;
int miejsce = 0; //pozycja
int przerwa = 50;

void setup() {
  wychylacz.attach(6); //miejsce podłączenia serva, pin 6
}

void loop() {
  if(miejsce < 180) { //jeśli pozycja jest mniejsza niż 180*
    wychylacz.write(miejsce);
  } else {
      miejsce = 0;
      przerwa +=50;            
    }
  miejsce +=6;
  delay(przerwa);
}

Zwalniający serwomechanizm.

#include <Servo.h>

Servo klocek;
float pozycja = 0;

void setup () {
  klocek.attach(6);
  Serial.begin(9600);
}
void loop() {
  if(Serial.available() > 2) {
    pozycja = Serial.parseFloat();
    if (pozycja <= 180) {
      klocek.write(pozycja);
      Serial.println(pozycja);
      delay(50);
    } else {
        Serial.println("Podaj prawidłową wartość");                
      }
  }
}

Ustawianie serwa przez Uart.

Jak zwykle mam pytania 😄

Jak ustawić okres PWM na 20ms bez biblioteki <servo.h>?

Czy da radę z tej bateri 9v podpiąć drugie serwo?

Link do komentarza
Share on other sites

18 godzin temu, LewySierpowy napisał:

Czy da radę z tej bateri 9v podpiąć drugie serwo?

Nie, baterie 9 V ogólnie nie nadają się do zasilania silników. Co inne pojedynczy test, a co innego normalna praca. Możesz spróbować, ale jest duża szansa, że nie zadziała. Wtedy warto wymienić baterią na 6xAA lub odpowiedni zasilacz.

18 godzin temu, LewySierpowy napisał:

Jak ustawić okres PWM na 20ms bez biblioteki <servo.h>?

A co dokładnie chcesz osiągnąć?

Link do komentarza
Share on other sites

@LewySierpowy Generalnie nie da się tak od ręki zmienić częstotliwości PWM a Ardu...normalnie jest chyba coś koło 500Hz, a wszystkie inne (w tym servo.h) operują już na timerach gdzie możesz uzyskać dowolną częstotliwość (w zakresie max/min oczywiście) poszukaj pod hasłami (PWM Ardu timer) tryb ctc

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

Dnia 28.03.2023 o 11:48, Treker napisał:

A co dokładnie chcesz osiągnąć?

Chciałem zrobić sterowanie serwem w wersji trudniejszej ale bez stosowania milis i delay. Trochę ambitniej

17 godzin temu, farmaceuta napisał:

Generalnie nie da się tak od ręki zmienić częstotliwości PWM a Ardu...normalnie jest chyba coś koło 500Hz,

Z tego co wcześniej czytałem to da się ją zmienić bardziej skomplikowanym, acz dosyć krótkimi komendami, tylko, że jest to mocno ograniczone. (nie pamiętam ile jest dokładnie kombinacji z 8?9?) W tych wpisach była mowa o dzieleniu częstotliwości przez jakiś element na literę p... 😄

Co do dzisiaj. Zauważyłem, że ustawiając map() na mniejszy zakres niż możliwości przetwornika zamiast 0-1024 np 0-700 wyskakujące liczby w uarcie przekraczły te 180 stopni do których miało być skalowanie. (może jest to mój błąd, albo arduino ma fazy).

Stąd moje kolejne pytanie.  Czy da się zrobić zakresy w których serwo jest "bardziej wrażliwe". Zrobić map dla trzech zakresów np. od 0-300 jest 0-45 0d 300-400 jest 45-50 od 400-1024 jest 50-180?

Była mowa o precyzji w liczbach. Czy da się zrobić coś w miarę podobnego w kwesti liter, chodzi mi  by println pisał określoną liczbę liter z komunikatu.

PS. Zauważyłem, że jeśli dam precyzję 1 cyfry po przecinku, a liczba będzie np 25,25 to program zrobi przybliżenie i wyśle mi 25,3.

Tak wiem dużo Xd

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

Witam

Mam pytanie za pierwszym razem podłączyłem zasilanie ze serwomechanizmu do 5V potem poprawiłem podłączyłem do Vin, jak to zostało zaprezentowane w tej lekcji, tylko silnik nie działa poprawnie idzie to jakoś naprawić, wysyłam gif bo słowami trudno opisać. 

ezgif-4-76b1eb6f35.gif

Link do komentarza
Share on other sites

@wobyty jak rozumiem serwo zachowuje się w taki sposób, gdy teoretycznie powinno robić obrót o 180*, Tak? Czy serwo wydaje jakieś dziwne dźwięki o/lub nie chodzi płynnie? Czy podczas tego pierwszego uruchomienia działało poprawnie?

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

@Treker Strasznie świszczy i nie chodzi płynnie, pierwsze uruchomienie było dość dawno i już wtedy były pewne problemy, ale wydaje mi się że za którymś razem działało poprawnie, potem znowu zaczęło się dziwnie zachowywać. Aktualnie się nie porusza tylko drga. A jeszcze jedna rzecz kupiłem kiedyś inne serwa myślałem że to wina serwa, to chciałem wymienić ale one zachowują się tak samo albo nie obracają się albo chodzą nie regularnie.

Edytowano przez wobyty
Link do komentarza
Share on other sites

@wobyty upewnij się, że to nie jest kwestia rozładowanej baterii. Jeśli robiłeś dużo testów to mogła się ona po prostu rozładować. Najlepiej zmierzyć miernikiem czy na wyjściu stabilizatora jest zawsze 5 V. Jeśli tak to zgłoś reklamację do sprzedawcy (zapewne do Botlandu) - pomogą i wymienią serwomechanizm 🙂

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

@Treker Napięcie sprawdziłem jest było 4,5V, wymieniłem baterie było tak że chodził dość płynnie obracał się, ale o 90 stopni i wracał do pozycji początkowej ale tylko przez chwilę, potem znowu zaczął się dziwnie zachowywać,  jeszcze kwestia tego, że dość dawno kupowałem zestaw to wymienią nawet jeśli upłynęło więcej czasu niż dwa lata?

Link do komentarza
Share on other sites

@wobyty jeśli serwo jest uszkodzone to nie powinno być problemu z wymianą 😉 Chociaż to wygląda bardziej na problemy z zasilaniem. Nie masz może zasilacza pod ręką? Jest np. w zestawie do drugiego poziomu kursu Arduino.

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

@Treker Mam jeszcze jedno pytanie jak kupuje zasilacz do Arduino jakimi parametrami powinienem się kierować, np. takie mogą być?

Napięcie wyjściowe: 12 V DC

Prąd wyjściowy maks: 2 A

Wtyczka wyjściowa DC 5,5 x 2,1

Moc: 24 W

Wtyczka EU

Napięcie zasilania: 90-264 AC

Długość przewodu: 1,2 m

Polaryzacja z plusem w środku

Temperatura pracy: 0~40 °C

Wymiary: 76,5 x 34 x 43 mm

Link do komentarza
Share on other sites

@wobyty taki zasilacz może być bez problemu...kieruj się zawsze tym co będziesz podłączał prócz Arduino i tak dobrać wszystko żeby prądów nie brakowało...ten zasilacz to do Ardu, a potrzebujesz jeszcze przetwornicy step down do zbicia napięcia na 5v właśnie dla serwa...wrzuć kod na którym serwo swiruje

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