Skocz do zawartości

Miganie diody podczas pracy serwomechanizmu


Pomocna odpowiedź

Napisano

Chciałbym wykonać układ w stylu bramy automatycznej, składający się z dwóch przycisków, przekaźnika, diody led oraz serwa 360*. Wciskając przycisk "button_u" przekaźnik uruchamia serwo, które kręci się w jedno stronę. Wciskając przycisk "button_d" przekaźnik uruchamia serwo, które kręci się w przeciwną stronę.

Co mógłbym zrobić, aby podczas uruchomionego serwa dioda migała (sygnalizacja ruchu bramy)?

P.S. Wiem, że w obecnej postać mało w tym automatyki, ale z tym sobie poradzę (chyba).

#define LED 4
#define BUTTON_U 2
#define BUTTON_D 3
//#define SENSOR_CLOSE A0
//#define SENSOR_OPEN A1


void setup() 
{
 //Serial.begin(9600);
 pinMode(LED, OUTPUT);
 pinMode(BUTTON_U, INPUT_PULLUP);
 pinMode(BUTTON_D, INPUT_PULLUP);
 //pinMode(SENSOR_CLOSE, INPUT_PULLUP);
 //pinMode(SENSOR_OPEN, INPUT_PULLUP);
 digitalWrite (LED, LOW);
 pinMode(9,OUTPUT);// pin sterujący serwem
 pinMode(8, OUTPUT);// pin sterujący przekaźnikiem 
 digitalWrite(8, HIGH);
}

void loop() 
{
   if (digitalRead(BUTTON_U) == LOW)
   {
     delay(20);
     digitalWrite(8, LOW);
     while (digitalRead(BUTTON_U) == LOW);
     delay(20);
     analogWrite(9, 175);
   }

    if (digitalRead(BUTTON_D) == LOW)
   {
     delay(20);
     digitalWrite(8, LOW);
     while (digitalRead(BUTTON_D) == LOW);
     delay(20);
     analogWrite(9, 190);
   }
}

Myślę, że odpowiedź jest chyba banalnie prosta. Należy dodać odpowiedni warunek, aby dioda migała. Możesz dodać pętlę for, aby dioda np. zamigała określoną ilość razy, to byłby fajny efekt. Możesz dodać odrębny warunek poprzez if'a/while'a. Opcji dużo, najlepiej poeksperymentuj sobie z różnymi opcjami kodu.

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ę »
×
×
  • Utwórz nowe...