6 knappen RGB controller. (3 / 4 steg)
Steg 3: Förstå skissen
Filen längst ner på denna sida är den Arduino skiss så du behöver inte kopiera och klistra in den här. Jag tror jag gjorde ett ganska bra jobb med att notera skissen för att göra det lätt att förstå. Om jag missat något eller är helt fel på något plaese låta mig veta./*
RGB färghjulet med seriell kommunikation
Indivigually styra ljusstyrkan i varje färg i en RGB-LED
med 6 tryckknappar kopplade till stift 2 thru 7. Tryckknappar
på jämnt antal lysa stift corosponding
LED och udda ettor kommer att dämpa dem. RGB ska fästas
till stift 9, 10 och 11.
Krets:
* RBGB LED med gemensam anod på + 5V
* Röda katod ansluten till pin 9 kastade 220 Ohm motstånd
* Blå katoden ansluten till pinne 10 kastade 470 ohms motstånd
* Gröna katod ansluten till stift 11 kastade 1000 Ohm motstånd
* tryckknapp 1 kopplade till stift 2 från marken
* tryckknapp 2 ansluten till stift 3 från marken
* tryckknapp 3 bifogas stift 4 från marken
* tryckknapp 4 kopplad till stift 5 från marken
* tryckknapp 5 bifogade till stift 6 från marken
* tryckknapp 6 kopplad till stift 7 från marken
Om RGB LED används har en gemensam katod då rollerna för den
knappar blir omvänd och ljusstyrka lampan kommer att
full på i början av koden.
Den seriella bildskärmen kommer att visa den röda, gröna och blå LED
nivå börjar på 255. Tryck på varje knapp rases eller sänker den
ljusstyrka i icrements 5.
skapad 13 Jan 2010
av mpilchfamily
modifierad 16 Jan 2010
av mpilchfamily
uppdaterad för Arduino 1,0 8 Feb 2010
av Mpilchfamily
*/
booleska ledpin [] = {9, 10, 11}; tilldela pins lysdioder
booleska knappen [] = {2, 3, 4, 5, 6, 7}; tilldela tryckknappar till stift
booleska buttonstate = 0;
int fadered = 255; Start ljusstyrkevärden för varje ledde
int fadegreen = 255; 255 anger lysdioderna till läge off
int fadeblue = 255; När RGB med en gemensam anod är i användning
Ogiltiga inställningar)
{
Serial.BEGIN(9600); designerar seriell comunication kurs
för (int x = 0; x < 6; x ++) //starts en slinga för att ange pin-läge för alla stift
{
pinMode (knappen [x], indata); initiera tryckknapp pins som indata:
}
för (int x = 0; x < 6; x ++) //starts en loop till digital Matilda alla knappar
{
digitalWrite (knappen [x], hög); tryckknappar läses som hög tills tryckte
}
analogWrite (ledpin [0], fadered); lyser lampan på nuvarande ljusstyrka
analogWrite (ledpin [1], fadegreen); lyser lampan på nuvarande ljusstyrka
analogWrite (ledpin [2], fadeblue); lyser lampan på nuvarande ljusstyrka
}
void loop()
{
för (int x = 0; x < 6; x ++) //loop för att kontrollera alla knappar
{
ButtonState = digitalRead(button[x]); Kolla knappläge
om (buttonstate == låg & & fadered > 0 & & knappen [x] == 2)
{
Om knappen trycks öka ljusstyrka av 5
fadered-=5;
analogWrite (ledpin [0], fadered); Belysning LED vid nuvarande intensitetsnivå
Delay(250); gör tid så att knappen upptäcks därför flera gånger
}
om (buttonstate == låg & & fadered < 255 & & knappen [x] == 3)
{
Om knappen trycks minska ljusstyrka av 5
fadered += 5.
analogWrite (ledpin [0], fadered); Belysning LED vid nuvarande intensitetsnivå
Delay(250); gör tid så att knappen upptäcks därför flera gånger
}
om (buttonstate == låg & & fadegreen > 0 & & knappen [x] == 4)
{
Om knappen trycks öka ljusstyrka av 5
fadegreen-=5;
analogWrite (ledpin [1], fadegreen); Belysning LED vid nuvarande intensitetsnivå
Delay(250); gör tid så att knappen upptäcks därför flera gånger
}
om (buttonstate == låg & & fadegreen < 255 & & knappen [x] == 5)
{
Om knappen trycks minska ljusstyrka av 5
fadegreen += 5.
analogWrite (ledpin [1], fadegreen); Belysning LED vid nuvarande intensitetsnivå
Delay(250); gör tid så att knappen upptäcks därför flera gånger
}
om (buttonstate == låg & & fadeblue > 0 & & knappen [x] == 6)
{
Om knappen trycks öka ljusstyrka av 5
fadeblue-= 5.
analogWrite (ledpin [2], fadeblue); Belysning LED vid nuvarande intensitetsnivå
Delay(250); gör tid så att knappen upptäcks därför flera gånger
}
om (buttonstate == låg & & fadeblue < 255 & & knappen [x] == 7)
{
Om knappen trycks minska ljusstyrka av 5
fadeblue += 5.
analogWrite (ledpin [2], fadeblue); Belysning LED vid nuvarande intensitetsnivå
Delay(250); gör tid så att knappen upptäcks därför flera gånger
}
IF(ButtonState == low) / / kontrollerar om någon knapp har ben pressas
{/ / prints ljusstyrka till PC. 0 är full på och 255 att vara utanför
Serial.Print ("röd lysdiod är:");
Serial.println(fadered);
Serial.Print ("grön LED är:");
Serial.println(fadegreen);
Serial.Print ("blå LED är:");
Serial.println(fadeblue);
}
}
}