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ć).