Stap 3: Inzicht in de schets
Het bestand aan de onderkant van deze pagina is de Arduino schets, zodat u niet hoeft te kopiëren en plakken uit hier. Ik denk dat ik deed een vrij goed werk van vaststellend van de schets om het gemakkelijk te begrijpen. Als ik iets mis of ben helemaal verkeerd op iets plaese laat het me weten./*
RGB kleurenwiel w / seriële communicatie
Indivigually controle van de helderheid voor elke kleur in een RGB-LED
met behulp van 6 druktoetsen gekoppeld aan pinnen 2 thru 7. De drukknoppen
op de even getal zal pinnen fleuren de corosponding
LED en de oneven degenen zal ze dim. RGB wordt gekoppeld
aan pinnen 9, 10 en 11.
Het Circuit:
* RBGB LED met gemeenschappelijke anode op + 5V
* Rode kathode aangesloten op pin 9 gooide weerstand van 220 Ohm
* Blauwe kathode verbonden met pin 10 gooide 470 Ohm weerstand
* Groene kathode aangesloten op pin 11 gooide 1000 Ohm weerstand
* drukknop 1 verbonden met pin 2 vanaf de grond
* drukknop verbonden met pin 3 vanaf de grond 2
* drukknop 3 verbonden met pin 4 vanaf grond
* drukknop 4 zijn verbonden met pin 5 vanaf grond
* drukknop 5 verbonden met pin 6 vanaf de grond
* drukknop 6 verbonden met pin 7 vanaf de grond
Als de RGB LED in gebruik een gemeenschappelijke kathode dan de rol van heeft de
knoppen worden omgekeerd en de helderheid van de LED zal worden
volledige op aan het begin van de code.
De seriële Monitor verschijnt de rode, groene en blauwe LED
niveau beginnen bij 255. Elke druk op de knop rases of verlaagt de
helderheid in icrements van 5.
gemaakt van 13-Jan-2010
door mpilchfamily
gemodificeerde 16 Jan 2010
door mpilchfamily
bijgewerkt voor Arduino 1.0 8 februari 2010
door Mpilchfamily
*/
Booleaanse ledpin [] {9, 10, 11} =; toewijzen van LEDs aan pinnen
Booleaanse knop [] = {2, 3, 4, 5, 6, 7}; toewijzen van drukknoppen op pinnen
Boole buttonstate = 0;
int fadered = 255; vanaf helderheidswaarden voor elk geleid
int fadegreen = 255; 255 ingesteld de LEDs in de uit-stand
int fadeblue = 255; Wanneer een RGB met een gemeenschappelijk anode wordt gebruikt
void setup)
{
Serial.begin(9600); seriële communicatie tarief aanwijst
voor (int x = 0; x < 6; x ++) //starts een lus om pin modus voor alle pinnen
{
pinMode (knop [x], INPUT); Initialiseer drukknop pinnen als input:
}
voor (int x = 0; x < 6; x ++) //starts een lus naar digitale wrie alle knoppen
{
digitalWrite (knop [x] hoge); drukknoppen worden gelezen als hoge till ingedrukt
}
analogWrite (ledpin [0], fadered); de LED licht op huidige helderheid
analogWrite (ledpin [1], fadegreen); de LED licht op huidige helderheid
analogWrite (ledpin [2], fadeblue); de LED licht op huidige helderheid
}
void loop
{
voor (int x = 0; x < 6; x ++) //loop voor het controleren van alle knoppen
{
buttonstate = digitalRead(button[x]); knopstatus controleren
Als (buttonstate == LOW & & fadered > 0 & & knop [x] == 2)
{
Als de knop is ingedrukt verhoging helderheid door 5
fadered-=5;
analogWrite (ledpin [0], fadered); verlichting-LED op het huidige helderheidsniveau
delay(250); tijd laat dus knop niet kan meerdere keren worden gedetecteerd
}
Als (buttonstate == LOW & & fadered < 255 & & knop [x] == 3)
{
Als de knop is ingedrukt te verlagen door 5
fadered += 5;
analogWrite (ledpin [0], fadered); verlichting-LED op het huidige helderheidsniveau
delay(250); tijd laat dus knop niet kan meerdere keren worden gedetecteerd
}
Als (buttonstate == LOW & & fadegreen > 0 & & knop [x] == 4)
{
Als de knop is ingedrukt verhoging helderheid door 5
fadegreen-=5;
analogWrite (ledpin [1], fadegreen); verlichting-LED op het huidige helderheidsniveau
delay(250); tijd laat dus knop niet kan meerdere keren worden gedetecteerd
}
Als (buttonstate == LOW & & fadegreen < 255 & & knop [x] == 5)
{
Als de knop is ingedrukt te verlagen door 5
fadegreen += 5;
analogWrite (ledpin [1], fadegreen); verlichting-LED op het huidige helderheidsniveau
delay(250); tijd laat dus knop niet kan meerdere keren worden gedetecteerd
}
Als (buttonstate == LOW & & fadeblue > 0 & & knop [x] == 6)
{
Als de knop is ingedrukt verhoging helderheid door 5
fadeblue-= 5;
analogWrite (ledpin [2], fadeblue); verlichting-LED op het huidige helderheidsniveau
delay(250); tijd laat dus knop niet kan meerdere keren worden gedetecteerd
}
Als (buttonstate == LOW & & fadeblue < 255 & & knop [x] == 7)
{
Als de knop is ingedrukt te verlagen door 5
fadeblue += 5;
analogWrite (ledpin [2], fadeblue); verlichting-LED op het huidige helderheidsniveau
delay(250); tijd laat dus knop niet kan meerdere keren worden gedetecteerd
}
if(buttonstate == low) / / controleert of een willekeurige knop ingedrukt ben heeft
{/ / wordt afgedrukt helderheidsniveaus tot zijn PC wordt volledig op 0 en 255 wordt uitgeschakeld
Serial.Print ("rode LED niveau ligt bij:");
Serial.println(fadered);
Serial.Print ("groene LED niveau ligt bij:");
Serial.println(fadegreen);
Serial.Print ("blauwe LED niveau ligt bij:");
Serial.println(fadeblue);
}
}
}