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:

 

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

zapraszamy do współpracy!