Moduł przycisków tactswitch z drabinką rezystorową

Moduł przycisków tactswitch z drabinką rezystorową

Do sprzedaży wprowadziliśmy moduły kolorowych przycisków tact-switch z drabinką rezystorową. Ich niewątpliwą zaletą jest to, że mają tylko jeden pin wyjściowy. Dzięki drabince rezystorowej, na wyjściu otrzymujemy różną wartość napięcia dla każdego przycisku. Sygnał odczytujemy za pomocą przetwornika ADC wbudowanego w mikrokontroler np Atmega.

Układ wymaga zasilania napięciem stałym 3.3V lub 5V. Użyjemy Arduino aby zaprezentować działanie modułu w praktyce. Należy zwrócić uwagę że poziom napięć na wyjściu modułu jest uzależniona od wartości napięcia zasilania. W naszym przypadku układ zasilaliśmy napięciem 5V.

Moduł przycisków tactswitch z drabinką rezystorową

Moduł przycisków tactswitch z drabinką rezystorową

Moduł pozwala na obsługę 5 przycisków tact-switch za pomocą tylko jednego pinu mikrokontrolera. Zasilamy go napięciem 3.3V lub 5V. Przyjrzyjmy się schematowi i przeanalizujmy jak to jest zrobione:

Schemat dostarczony przez producenta

Schemat dostarczony przez producenta

Na pin VCC podajemy napięcie zasilania. Gdy żaden przycisk nie jest wciśnięty, na wyjściu obecne jest napięcie równe napięciu zasilania. Gdy wciśniemy przycisk, łączy on pin VCC, przez rezystor do masy. Rezystor ogranicza prąd płynący w układzie oraz wytwarza spadek napięcia. To właśnie różnica napięcia zasilania oraz spadku napięcia na rezystorze jest naszym sygnałem wyjściowym który będziemy mierzyć na pinie OUT. Warto zauważyć, że dla każdego przycisku rezystancja jest inna (rezystory połączone są szeregowo), więc dla każdego z nich napięcie wyjściowe będzie inne. Wyniki pomiarów przedstawiliśmy poniżej:

Pomiar napięć przycisków

Pomiar napięć przycisków

Jak widać, naciśnięcie każdego z przycisków skutkuje różnym napięciem na wyjściu modułu.  Użyjemy Arduino oraz modułu diód LED aby zaprezentować przykładowe użycie. W naszym przypadku zasililiśmy diody z modułu zasilania MB102, lecz nie ma przeszkód by tak małą ilość diód zasilić bezpośrednio z linii zasilania Arduino.

Diody sterowane za pomocą Arduino

Diody sterowane za pomocą Arduino

Poniżej załączyliśmy kod źródłowy którym zaprogramowaliśmy Arduino:


int sensorPin = A0; // pin wejściowy sygnału z modułu
int sensorValue = 0; // zmienna do przechowywania odczytanej z przetwornika wartości

void setup() {
// ustawiamy piny odpowiedzialne za diody jako wyjściowe
    pinMode(13, OUTPUT);
    pinMode(12, OUTPUT);
    pinMode(11, OUTPUT);
    pinMode(10, OUTPUT);
    pinMode(9, OUTPUT);
    Serial.begin(9600); // ustawiamy prędkość transmisji szeregowej
}

void zapal(int dioda){
   digitalWrite(dioda, HIGH);
}
void zgaswszystkie(){
   for (int i=9; i<14; i++)
    digitalWrite(i, LOW);
}
void loop() {
// odczytujemy wartość napięcia:
    sensorValue = analogRead(sensorPin);
//wyświetlamy wartość odczytaną z przetwornika ADC:
    Serial.print("Odczytana wartosc: ");
    Serial.println(sensorValue);
//wyświetlamy wartość odczytaną z przetwornika ADC przeliczoną na wolty:
    Serial.print(sensorValue*0.0048828125);
    Serial.println(" V");
    delay(100);
    if (sensorValue == 0)
     zapal(13);
    else if (sensorValue > 565 && sensorValue < 575)
     zapal(10);
    else if (sensorValue > 755 && sensorValue < 765)
     zapal(11);
    else if (sensorValue > 840 && sensorValue < 860)
     zapal(12);
    else if (sensorValue > 900 && sensorValue < 910)
     zapal(9);
    else
     zgaswszystkie();


}

 

Dodaj komentarz