Humör-Cube (Li-ion Mood Light) (3 / 7 steg)
Steg 3: Koden
Innan vi börjar diskutera kod, är det viktigt att du förstår grunderna i alla programmeringsspråk. Jag kommer att använda termer och nyckelord att jag antar att du vet så är det väl värt några minuter att titta på några enkla YouTube-videor på programmering innan du fortsätter.
Vi måste hitta ett sätt att navigera genom animationer med endast en knapp och knopp. Jag använde en stat-baserad metod. Med en växel, varje gång digitalRead(button) är låg (eftersom vi anslutit den till marken), får vi programmet ändra stater.
Det är viktigt att veta att för att göra RGB LED ändra till någon färg, måste vi använda vad som kallas PWM (Pulse bredd Modulation). Detta är i grunden ett sätt att använda en digital pin för att göra varierande mängder av arbete. Istället för att antingen vara ON eller OFF, (100% arbete eller 0%), den PIN-kod kan göra någon procent arbete mellan hög och låg. Attiny85 har dock bara två stift kan PWM (0 och 1). Så jag har tagit en metod (som inte är mitt arbete) heter softPWM i koden. (AKA programvara PWM). Detta tillåter oss att använda PWM på någon av de attiny pins! (Se bilden för visuell representation, bild från arduino.cc).
Sida notera: att ha påstår förändring med hjälp av knappen medan inne i en loop (eller andra upptagen arbete), vi kunde använda avbrott. Men för enkelhetens skull använt jag bara enkla "om" logik att bryta av loopar eller avkastning från metoder om digitalRead(button) är låg.
Vänligen observera också att "rainbow fade" effekt koden var faktiskt ett bidrag från en annan instructable:. Jag föreslår att du ge det en titt/favorit för det är en väl formulerad instructable på ett liknande projekt.
Jag har lagt upp koden som en textfil. Att använda den helt enkelt kopiera innehållet i din arduino skiss och belasta upp till attiny85!