Arduino w połączeniu z przełącznikiem obrotowym - enkoderem MOD-16
Przykład demonstruje podstawową obsługę modułu enkodera z mikrokontrolerem Arduino.
W przykładzie wykorzystano następujące elementy:
- Arduino Uno
-
Przełącznik obrotowy, impulsator, enkoder z przetwornikiem - MOD-16
- Diody LED
- Rezystory
- Płytka stykowa oraz przewody
Podłączenie
Moduł jest zasilany bezpośrednio z Arduino, więc nie potrzebujemy zewnętrznego źródła energii. Piny podpinamy według poniższej tabeli:
| Pin modułu | Pin Arduino |
|---|---|
| + V | 5 V |
| GND | GND |
| S1A | 5 V |
| S1B | 10 |
| S2 | 7 |
| S3 | 6 |
Dodatkowo płytka zawiera diody LED podpięte przez rezystory 220 Ω pomiędzy pinem 11 oraz 12, a masą. Cały układ jest widoczny na poniższym schemacie.
Schemat podłączenia modułu i Arduino Uno.
Obsługa
Wyjścia S1A i S1B są to złącza przycisku umieszczonego w pokrętle. Po jego naciśnięciu następuje ich zwarcie. Natomiast wyjścia S2 i S3 wykrywają kierunek ruchu pokrętła, odpowiednio w prawo i w lewo. Gdy ruch zostanie wykryty na wyjściu danego pinu pojawia się stan wysoki.
W przykładzie został wykorzystany następujący kod programu:
int led1 = 11; //dioda podpięta do pinu 11
int led2 = 12; //dioda podpięta do pinu 12
int brightness = 0; //jasność diody led1
int fadeAmount = 5; //zmiana jasności przy przekręceniu pokrętłą dla led1
void setup(){
pinMode(6,INPUT); //ustawienie pinów 6, 7 i 10 jako wejścia
pinMode(7,INPUT);
pinMode(10,INPUT);
pinMode(led1, OUTPUT); //piny z diodami jako wyjścia
pinMode(led1, OUTPUT);
}
void loop(){
analogWrite(led1, brightness); //przypisanie wartości brightness do diody led1
if (brightness = 255)
brightness = 255 ;
if(digitalRead(6) == 1) //jeśli zostanie wykryty obrót popkrętła w prawo lub lewo, wtedy dioda led1 zacznie zwiększać lub zmniejszać swoją jasność
{brightness = brightness + fadeAmount;}
if(digitalRead(7) == 1)
{brightness = brightness - fadeAmount;}
if(digitalRead(10) == 1 && digitalRead(led2, HIGH)) //w przypadku naciśnięcia przycisku w pokrętle dioda led2 zmieni swój stan (jeśli się świeci to zgaśnie, jeśli jest zgaszona - zaświeci się)
{digitalWrite(led2,LOW)}
if(digitalRead(10) == 1 && digitalRead(led2,LOW))
{digitalWrite(led2,HIGH)}
}
Naciśnięcie przycisku w pokrętle powoduje zmianę stanu żółtej diody (na przemian będzie się zapalać i gasnąć). Natomiast kręcąc pokrętłem możemy zmieniać jasność czerwonej diody (rozjaśniać ją i wygaszać).