Stap 12: LCD-achtergrondverlichting / PWM LED control
analogWrite (LCD_BACKLIGHT, eeprom.lcd_backlight);
"LCD_BACKLIGHT" is de pin verbonden met de LED en de "eeprom.lcd_backlight" is de waarde van 0 tot en met 255.
Door op te drukken op en neer (met de klok horizontaal, de normale manier) backlight verhoogt en verlaagt. Aanvankelijk was het bedrag lineaire maar ik wilde fijnere aanpassing aan de onderkant en grotere aanpassing aan het hogere einde dus ik naar een meer logaritmische systeem overgestapt. Wat ik doe is het dubbele van de waarde wanneer mij pers omhoog en de waarde te halveren wanneer mij pers naar beneden. Vrij eenvoudig. Nooit laat ik het hoger dan 128 om te voorkomen dat het roosteren van de LED.
De analogWrite() routine maakt gebruik van puls breedte modulatie waarvoor een timer. Sinds ik ben met behulp van een timer voor een interrupt routine, een andere voor de zoemer en de Arduino gebruikt nog een andere voor hun millis() routine ik moest voorzichtig zijn over welke analoge uitgang (PWM) die ik gebruikte. Ik gebruikte de high-tech techniek van één pin proberen en toen dat niet werkte ik probeerde een andere die werkte. Uiteindelijk heb ik met behulp van pin 6 die Timer 0 A.