Ett trådlöst kontrollerade, Arduino-Powered anslagstavla (9 / 15 steg)
Steg 9: Användbar kod - ljusreglering VFD
Noritake LCD-kompatibel VFD valde jag stöder 4 ljusstyrka - 100%, 75%, 50% och 25%. Displayen är mycket ljus på den ljusaste inställningen och skulle se påfallande i ett mörkt rum. Jag trådbundna upp en LDR med en 10K resistor att bilda en spänningsavdelare. Detta förändrade spänning avläses på pin A0. Jag uppdatera en ljusstyrka på varje ny sträng. Du kan säkert göra det oftare om du ville ha.Här är funktionen ljusstyrka inställning:
funktion setDisplayBright()
ställer in ljusstyrkan på en Noritake LCD-kompatibel vfd
baserat på omgivande ljusnivå
kräver anpassade LiquidCrystal bibliotek med lcd.vfdDim()
förväntar sig ingenting
returnera ingenting
använder LDRreading och LDRpin som globals
void setDisplayBright()
{
LDRreading = analogRead(LDRpin);
om (LDRreading > 800)
{
lcd.vfdDim(0);
}
annars om ((LDRreading < = 800) & & (LDRreading > 450))
{
lcd.vfdDim(1);
}
annars om ((LDRreading < = 450) & & (LDRreading > 200))
{
lcd.vfdDim(2);
}
annat
{
lcd.vfdDim(3);
}
Serial.println(LDRreading);
hemkomst.
}
Vad är lcd.vfdDIm()? Det är en funktion som jag lagt till min lokala kopia av LiquidCrystal biblioteket. Här är hur du lägger till det:
Redigera följande biblioteksfiler i katalogen LiquidCrystal bibliotek. OBS den ' >' är från diff, som visar hur det skiljer sig från den ursprungliga versionen:
LiquidCrystal.cpp:
255,270d 254
< / / set dimming på Noritake LCD-kompatibel VFD
< / / mörkläggning nivåer:
< / / 0 = 100%
< / / 1 = 75%
< / / 2 = 50%
< / / 3 = 25%
< Tom LiquidCrystal::vfdDim (uint8_t dimming) {
< om ((mörkläggning > -1) & & (mörkläggning < 4)) {
< digitalWrite (_rw_pin, låg);
< skicka (0x28, låg);
< digitalWrite (_rw_pin, hög);
< skicka (mörkläggning, hög);
< digitalWrite (_rw_pin, låg);
<}
<}
<
LiquidCrystal.h:
79d 78
< void vfdDim (uint8_t dimming);