[PRZYKŁAD] Matryca LCD z możliwością zmiany przezroczystości
W dzisiejszym przykładzie przedstawiono interesujący komponent – matryca LCD z możliwością zmiany przezroczystości. Zaprezentowano zmianę przezroczystości w funkcji napięcia podanego na elektrody oraz przykład sterowania matrycą na platformę Arduino.
W artykule wykorzystano następujące elementy:
- Small Liquid Crystal Light Valve – matryca LCD z możliwością zmiany przezroczystości 2 sztuki
- KAmduino UNO – płytka rozwojowa z mikrokontrolerem ATmega328P
- Przewody zakończone wtyczką typu „krokodylek”
- Zasilacz laboratoryjny, np. Korad KA3005D 0-30V 5A
Rys. 1. Matryca LCD z możliwością zmiany przezroczystości użyta w artykule
W artykule wykorzystano matryce LCD z możliwością zmiany przezroczystości. Podłączając do dwóch elektrod znajdujących się z tyłu wyświetlacza napięcie 1 V, szkło zacznie ciemnieć, przy napięciu 4 V szkło będzie nieprzejrzyste (maksymalne napięcie, które można podać na elektrody to 5 V). Panel może blokować do około 95% światła (przy napięciu na elektrodach 4 V). Przy używaniu panelu należy zachować ostrożność, nie należy go zginać ani zgniatać, ponieważ spowoduje to uszkodzenie matrycy.
Aby sprawdzić działanie z ekranu możemy wykorzystać zasilacz laboratoryjny. W tym celu należy podłączyć dwie elektrody matrycy do zasilacza.
Zmieniając napięcie w zakresie 0…4 V uzyskamy zmianę przezroczystości wyświetlacza LCD. Zostało to pokazane na wideo poniżej:
Teraz napiszemy prosty program na platformę Arduino. Przed tym jednak należy podłączyć dwa panele do płytki KAmduino UNO. Dla pierwszej matrycy LCD należy podłączyć jedno wyprowadzenie do pinu 2 KAmduino a drugie wyprowadzenie do pinu GND. W przypadku drugiej matrycy jeden przewód należy podłączyć do pinu 3, a drugi do masy. Zmontowany układ prezentuje się następująco:
Rys. 2. Zmontowany układ
Teraz można przejść do napisania programu. Na początku w funkcji konfiguracyjnej void Setup() deklarujemy role pinów (2 oraz 3) jako piny wyjściowe.
void setup() { pinMode(2,OUTPUT); pinMode(3,OUTPUT); }
W pętli głównej będziemy włączać wyświetlacz 1 oraz 2. Sekwencja będzie wyglądała następująco:
- Włącz wyświetlacz 1 (pin 2)
- Czekaj 2 sekundy
- Wyłącz wyświetlacz 1 (pin 2)
- Włącz wyświetlacz 2 (pin 3)
- Czekaj 2 sekundy
- Wyłącz wyświetlacz 2 (pin 3)
- Czekaj 2 sekundy
- Włącz wyświetlacz 1 oraz 2
Kod realizujący powyższą sekwencję wygląda następująco:
void loop() { digitalWrite(2,HIGH); // Ciemny 1 wyswietlacz delay(2000); digitalWrite(2,LOW); // Jasny 1 wyswietlacz digitalWrite(3,HIGH); // Ciemny 2 wyswietlacz delay(2000); digitalWrite(3,LOW); // Jasny 2 wyswietlacz delay(2000); digitalWrite(2,HIGH); // Ciemny 1 wyswietlacz digitalWrite(3,HIGH); // Ciemny 2 wyswietlacz delay(2000); digitalWrite(2,LOW); // Jasny 1 wyswietlacz digitalWrite(3,LOW); // Jasny 2 wyswietlacz delay(2000); }
Pełen kod programu znajduje się w sekcji Do pobrania na końcu artykułu.