Väckarklocka med Tetris att bevisa att du är vaken (12 / 16 steg)
Steg 12: LCD backlight / PWM LED kontroll
analogWrite (LCD_BACKLIGHT, eeprom.lcd_backlight);
"LCD_BACKLIGHT" är pin ansluten till LED och "eeprom.lcd_backlight" är värdet från 0-255.
Genom att trycka upp och ner (med den klocka horisontellt, normalt sätt) bakgrundsbelysningen ökar och minskar. Först var linjär men jag ville ha finare justering i nedre delen och större justering i högre slutet så jag bytte till ett mer logaritmisk system. Vad jag gör är dubbla värdet när jag trycker upp och halvera värdet när jag trycker ner. Ganska enkelt. Jag låta aldrig det gå över 128 att undvika grillas LED.
Rutinen analogWrite() använder pulse bredd modulering som kräver en timer. Eftersom jag använder en timer för ett avbrott rutin, använder en annan för summern och Arduino ännu en annan för deras millis() rutin jag var tvungen att vara försiktig om vilken analog utgång (PWM) använde jag. Jag använde high-tech teknik för att försöka en PIN-kod och när det inte fungerade jag försökte en annan som fungerade. Jag slutade använda pin 6 som är Timer 0 A.