Stap 6: Controle van de LCD-achtergrondverlichting
Omdat het LCD scherm helderheid verbruik erg hoog is, moet u wellicht te beheren, vooral als u van plan bent om te leveren uw thermo-hygrometer met een batterij.
Om het licht op het scherm, moet u alleen druk op een knop. Het display zal (min of meer) inschakelen voor 8 seconden.
We bereikt dit resultaat door het beheersen van de achtergrondverlichting LEDs met een PWM-signaal gegenereerd door Arduino.
Aangezien PWM outputs niet voldoende elektriciteit om te controleren de achtergrondverlichting opgeeft, kunnen niet wij het direct verbinden. We kunnen dit probleem met behulp van een 2N3904 transistor en 10 k Ohm weerstand aangesloten zoals te zien op de regeling van de Fritzing gekoppeld hierboven gewoon oplossen.
De nodige stroom doorloopt van de collector naar de emitter in plaats van stromen via het PWM-uitgang.
De schets
Ten eerste, laten we definiëren de pins vereist:
- de pin 11 als uitgang van PWM-signaal
- de pin 10 als een input voor het detecteren van de status van de knop
#define LUMIN 11 #define BUTTON 10
vervolgens deze twee variabelen declareren...
int val = 0; int counter = 0;
.. die nodig zijn om in te stellen van de status van de knop en de tijd van de verlichting van het LCD respectievelijk.
In de setup -functie we dienen te bepalen van de pin gebruikt als een input en de ander, een PWM uitgangssignaal.
pinMode(BUTTON, INPUT); pinMode(LUMIN, OUTPUT);
In de functie van de lus hebben we het besturingselement helderheid
val = digitalRead(BUTTON); if (val == HIGH) { counter = 1000; analogWrite(LUMIN, 255); // turns on the led } if (val == LOW) { if (counter > 0) { counter--; } } if (counter <= 0) { analogWrite(LUMIN, 0); // turns off the led }
Beheersing van de helderheid van het LCD-scherm is vrij gemakkelijk.
Aan het begin, is de teller ingesteld op 0, wat betekent dat de vertoning van backlight is uitgeschakeld.
Maar wanneer u druk op de knop, de eerste "als" voorwaarde waar wordt en de waarde van de teller is ingesteld op 1000 en de output naar het hoogste niveau (255).
De vertoning van backlight zal blijven aangezet, zolang je de knop ingedrukt houden.
Wanneer u stopt met het indrukken van de knop, begint de tweede "als" voorwaarde * waar wordt (en het ene wordt false) en de teller te dalen zelf. Elke lus verlaagt de teller van een eenheid.
De laatste "if"-voorwaarde Hiermee schakelt u de achtergrondverlichting uit wanneer de waarde van de teller 0 is.
* Merk op dat de tweede "als" twee voorwaarden heeft:
- de PIN-code moet worden ingesteld op laag (ongeperst knop)
- de waarde van de teller moet hoger zijn dan 0.