• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Arduino- Problem z Serwo

Object Storage Arubacloud
0 głosów
397 wizyt
pytanie zadane 9 listopada 2018 w Mikrokontrolery przez Jezel123 Nowicjusz (120 p.)

Witam.
Zacząłem zabawę z joystickiem w arduino.
Projekt jest taki, że jeżeli poruszę joystickiem w prawo silnik kręci się w prawo na 0 stopni. Jak nie robię nic, ma powrócić do 90 stopni, a jak joystick idzie w lewo, serwo ma się poruszać w lewo na 180 stopni.
Problem jest taki, że kiedy nic nie robię, serwo kręci bączka w prawą stronę.

Kod:

#include <Servo.h>

Servo sg90;
int MGD;
int GD=0;
int p=0;
void setup()
{
  sg90.attach(9);
  MGD=analogRead(A0);
  Serial.begin(9600); 
 
}
void loop()
{  
  GD=analogRead(A0);
  delay(10);
  
  

  if(GD<MGD-10)
  {
  p=0;
  sg90.write(p);
  }else{
        
  if(GD>MGD+10)
  {
  p=180;
  sg90.write(p);
  
  }
  else
  {
   p=90;
   sg90.write(p);
  }
}
}
  

 

 

1
komentarz 9 listopada 2018 przez DragonCoder Nałogowiec (36,500 p.)
Ja bym sprawdzil jakie wartości dostaje na outpucie u joysticka. I wtedy moze problem sie rozwiaze. Moze byc tak, ze wartosc w dalszym ciagu jest wieksza od poczatkowej. Joystick sam w sobie jest czuly i lekki ruch powoduje dosyc duzy skok wartosci. Sprawdz, czy gdy zamiast zmiennym zmiennych uzyjesz liczb, to zadziala. Tzn joystick ma na poczatku warzosc rowna 524, gdy wychylenie jest wieksze od 524 to zakrec na 180 stopni, gdy mniejsze to na 180 szopni

1 odpowiedź

0 głosów
odpowiedź 11 listopada 2018 przez Maciej Złotorowicz Gaduła (4,230 p.)
Ja bym ustawił większe wartości progowe ;) nie ma co ufać analogom.
komentarz 11 listopada 2018 przez Maciej Złotorowicz Gaduła (4,230 p.)
Ok już wszystko wiem:
Joys. dla X(lub Y) w pozycji 0 zwraca liczbę bliską 512  i dla wartości skrajnych 0 lub 1023 aby te warunki działały musisz sprawdzić czy wartość na pinie analogowym mieści sie w jakiś progach: np od 0 do 250 mamy servo na 0; od 251 do 750 mamy 90 i od 750 do 1023 mamy 180. dasz radę zakodować?
komentarz 11 listopada 2018 przez Maciej Złotorowicz Gaduła (4,230 p.)
#include <Servo.h>
 
Servo sg90;
int MGD;
int GD=0;
int p=0;
int lastpos=0;
void setup()
{
  sg90.attach(9);
  Serial.begin(9600); 
  
}
void loop()
{  
  GD=analogRead(A0);
  delay(10);
   
   Serial.println(GD);

  
  if(GD <= 250)
  {
    p=0;
  }else if(GD>250 && GD <= 750){
    p=90;
  }else if(GD > 750){
   p=180;
  }
  
  //Ten if sprawdza czy ostatna pozycja nie była taka sama
  if(lastpos != p){
     sg90.write(p);
  }
  lastpos = p;
}

Przykład rozwiązania - w arduino warto używać serialbusa aby zrozumieć charakterystykę danego czujnika, więc polecam na przyszłość Serial.println(GD) w loopie. 

Podobne pytania

0 głosów
2 odpowiedzi 704 wizyt
pytanie zadane 6 lutego 2020 w Mikrokontrolery przez Mavimix Dyskutant (8,390 p.)
0 głosów
1 odpowiedź 393 wizyt
pytanie zadane 13 lutego 2020 w Mikrokontrolery przez Marak123 Stary wyjadacz (11,190 p.)
0 głosów
1 odpowiedź 160 wizyt
pytanie zadane 12 lutego 2020 w Mikrokontrolery przez Marak123 Stary wyjadacz (11,190 p.)

92,556 zapytań

141,404 odpowiedzi

319,560 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...