Skocz do zawartości
Cymoniasty

Arduino+Silnik dc + serwo

Pomocna odpowiedź

Cześć

Mam mały problem z kodem ponieważ gdy steruje osobno silnikiem dc czy serwem przez potencjometry to wszystko działa, ale gdy spróbowałem połączyć te dwie rzeczy w jeden kod to silnik stoi w miejscu i trekocze z niską częstotliwością 50hz, a serwo ma podobnie tylko pierw ustawia się na 180" i trekocze z podobną częstotliwością. Na potencjometry nie reagują wcale. 

Jestem prawie pewny że winna jest tu biblioteka która wysyła sygnał PWM na częstotliwości 50 hz do serwa, ale nie mam pojęcia jak to obejść i nie znalazłem w internecie żadnej podpowiedzi więc liczę na was bardzo że wskażecie mi właściwą drogę i wyprowadzicie z błędu ❤️
Kod: 

#include <Servo.h>
Servo Serwo;
int silnik = 9;
int Pozycja = 0;
int lewo = 7;
int prawo = 8;                  
int obroty = 0;
                 
void setup()
{
    Serwo.attach(6);
    pinMode(lewo, OUTPUT);
    pinMode(prawo, OUTPUT);
    digitalWrite(lewo, LOW);
    digitalWrite(prawo, HIGH);

  }

void loop(){
  obroty = (analogRead(A5),0,1023,0,255);
  analogWrite(silnik, obroty);
  Pozycja = map(analogRead(A4),0,1023,0,180);
  Serwo.write(Pozycja);    
}

 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Co ma Twoim zdaniem oznaczać linijka:

	obroty = (analogRead(A5),0,1023,0,255);
	

Coś się nie skopiowało?

Tak, oczywiście winna jest biblioteka którą wszyscy stosują bez problemu...  I jeszcze front atmosferyczny w Pernambuco, i sytuacja polityczna w Gabonie.

 

Tak przy okazji - map to makro a nie funkcja i nie należy wstawiać tu bezpośrednio wywołań analogRead.

Edytowano przez ethanak
  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Ale tutaj, może być "winna biblioteka". Na forum już chyba z pięć razy było, że równoczesne stosowanie servo.h i analogWrite ma swoje ograniczenia, opisane np. tutaj:

Servo library

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

@ethanak

No nie skopiowało się.

Widzisz winna była biblioteka 🙂

2 godziny temu, ethanak napisał:

Tak przy okazji - map to makro a nie funkcja i nie należy wstawiać tu bezpośrednio wywołań analogRead.

Dobrze i dziękuje 😄

@grg0

Strzał w 10, dziękuje Ci bardzo 😄

Udostępnij ten post


Link to post
Share on other sites

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ę »

×