Nybörjare Arduino (9 / 15 steg)
Steg 9: Arduino funktioner
Följande skiss bleknar LED från rött till grönt till blått till rött till grönt och så vidare...RGB LED - fading mellan färger
PIN-anslutningar
int rött = 9.
int grön = 10;
int blå = 11;
void setup() {
pinMode (röd, produktionen);
pinMode (blå, OUTPUT);
pinMode (grön, utgång);
}
void loop() {
för (int ljusstyrka = 0; ljusstyrka < 256; ljusstyrka ++) {
analogWrite (röd, 255-ljusstyrka);
analogWrite (grön, ljusstyrka);
Delay(10);
}
för (int ljusstyrka = 0; ljusstyrka < 256; ljusstyrka ++) {
analogWrite (grön, 255-ljusstyrka);
analogWrite (blå, ljusstyrka);
Delay(10);
}
för (int ljusstyrka = 0; ljusstyrka < 256; ljusstyrka ++) {
analogWrite (blå, 255-ljusstyrka);
analogWrite (röd, ljusstyrka);
Delay(10);
}
}
Skissen ovan fungerar, men det finns en hel del upprepade kod. Vi kan förenkla genom att skriva vår egen hjälpare funktion som bleknar från en färg till en annan färg. Här är hur funktionen ser ut:
{Ogiltig fader (int color1, int color2)
för (int ljusstyrka = 0; ljusstyrka < 256; ljusstyrka ++) {
analogWrite (color1, 255-ljusstyrka);
analogWrite (color2, ljusstyrka);
Delay(10);
}
}
Låt oss undersöka denna funktionsdefinition bit för bit. Funktionen kallas "fader" och det tar två argument. Varje argument är avgränsade med semikolon och har en typ förklarat i den första raden i funktionsdefinitionen:
{Ogiltig fader (int color1, int color2)
Vi kan se att de argument som fader accepterar båda ints, och vi använder de namnen "color1" och "color2" som dummy variabler för vår funktionsdefinition. "void" avser den datatyp av som returneras, eftersom vår funktion inte returnerar något (det helt enkelt kör kommandon) kan vi inställd Returtypen void. Om vi skulle skapa en funktion som multiplicerat med två siffror och returneras produkten kan vi definiera det såhär:
int multiplikator (int tal1, tal2 int) {
int produkt = Tal1 * tal2;
returnera produkten.
}
Lägg märke till hur vi har förklarat int som Returtypen här i stället för tomrum.
Modet i funktionen är saker vi har sett förut. Det är samma för slinga vi upprepande i vår senaste skiss, men pin nummer har ersatts med variablerna color1 och color2. Om vi kallar:
fader (röd, grön);
från den Arduino loop(), Arduino evaluerar funktionen fader med color1 = röd och color2 = grön.
Att sätta detta alla tillsammans vi kan skriva om skissen som följer med den här funktionen, detta kommer att fungera exakt samma som skissen på toppen av detta steg.
RGB LED - fading mellan färger
PIN-anslutningar
int rött = 9.
int grön = 10;
int blå = 11;
void setup() {
pinMode (röd, produktionen);
pinMode (blå, OUTPUT);
pinMode (grön, utgång);
}
void loop() {
fader(Red,Green);
fader(Green,Blue);
fader (blå, röd);
}
{Ogiltig fader (int color1, int color2)
för (int ljusstyrka = 0; ljusstyrka < 256; ljusstyrka ++) {
analogWrite (color1, 255-ljusstyrka);
analogWrite (color2, ljusstyrka);
Delay(10);
}
}