Stap 6: Uitbreiding van de code
De hier getoonde code moeten allemaal vrij eenvoudig als u enige vertrouwdheid met code hebben.
Eenvoudige methode alle van de LED's inschakelen
ongeldig allOn() {}
int i;
voor (ik = 0; ik < NUMBER_OF_LEDS; i ++) {}
digitalWrite (ledList [i], hoge);
ledsOn [i] = 1;
}
}
Eenvoudige methode alle van de LED's om uit te schakelen
ongeldig allOff() {}
int i;
voor (ik = 0; ik < NUMBER_OF_LEDS; i ++) {}
digitalWrite (ledList [i], laag);
ledsOn [i] = 0;
}
}
Help-functie voor het optellen van een matrix
int sommatie (int array[]) {}
int som = 0;
int lengte = sizeof(array)/sizeof(int);
int i;
voor (ik = 0; ik < lengte; i ++) {}
som = som + array [i];
}
retourneren van som;
}
alle van de LED's knipperen. Als meer dan 2 leds zijn momenteel op begint de cyclus door ze allemaal uit te schakelen
anders wordt de cyclus begint door te draaien aan hen allen op.
VOID allFlashing (int delayLength) {}
Als (summation(ledsOn) > 2) {}
allOff();
delay(delayLength);
allOn();
delay(delayLength);
} else {}
allOn();
delay(delayLength);
allOff();
delay(delayLength);
}
}
een methode die niet daadwerkelijk wordt gebruikt, maar in de toekomst nuttig zou kunnen zijn. Deze methode zal wisselen welke LED is op dit moment
geselecteerd.
ongeldig toggleCurrentLed() {}
Als (ledsOn [currentLed] == 1) {}
digitalWrite (ledList [currentLed], laag);
ledsOn [currentLed] = 0;
} else if (ledsOn [currentLed] == 0) {}
digitalWrite (ledList [currentLed], hoge);
ledsOn [currentLed] = 1;
}
}
Hiermee schakelt u de huidige LED
ongeldig currentLedOn() {}
digitalWrite (ledList [currentLed], hoge);
ledsOn [currentLed] = 1;
}
de huidige LED uitgeschakeld
ongeldig currentLedOff() {}
digitalWrite (ledList [currentLed], laag);
ledsOn [currentLed] = 0;
}
Dit is een stuiterende methode die lijkt voor het verzenden van een licht omhoog en omlaag
uw LEDs. Vrij koel als je het mij vraagt. Houdt van een variabele richting
en wat de huidige Led wordt verlicht is om ervoor te zorgen dat de schakelaar is altijd in de
goede richting.
VOID bounce (int delayLength) {}
Als (bounceDirection == 0) {}
Als (currentLed < NUMBER_OF_LEDS - 1) {}
currentLedOff();
currentLed ++;
currentLedOn();
delay(delayLength);
} else if (currentLed == NUMBER_OF_LEDS - 1) {}
currentLedOff();
currentLed--;
bounceDirection = 1;
currentLedOn();
delay(delayLength);
}
} else if (bounceDirection == 1) {}
Als (currentLed > 0) {}
currentLedOff();
currentLed--;
currentLedOn();
delay(delayLength);
} else if (currentLed == 0) {}
currentLedOff();
currentLed ++;
currentLedOn();
bounceDirection = 0;
delay(delayLength);
}
}
}
Deze methode is op dit moment bedoeld om dimmer als de omgeving dimmer krijgen.
De reden hiervoor is meestal om interferentie, zoals in het breadboard instellen
het licht van de LED's wordt zeer gemakkelijk gezien door de fotoweerstand, hetgeen tot leiden zou
sommige vreemde gedrag.
Deze constanten moeten veranderen een beetje voor uw specifieke circuit. Gebruik de functie
Serial.println(analogRead(photoresistor)); voor het uitprinten van de huidige waarde, en
bepalen van de geschatte maxima en minima.
ongeldig allFading() {}
int helderheid = map(analogRead(photoresistor), 100, 450, 0, 255);
int i;
voor (ik = 0; ik < NUMBER_OF_LEDS; i ++) {}
analogWrite (ledList [i], helderheid);
}
}
Deze methode transformeert de fietsverlichting in een maateenheid voor lichtintensiteit.
Het aantal LED's die op een gegeven moment oplichten zijn indicatief voor hoe helder is.
De constanten die worden weergegeven in het algemeen omvat standaard kamer verlichting met alle 5 LEDs
Deze constanten moeten veranderen een beetje voor uw specifieke circuit. Gebruik de functie
Serial.println(analogRead(photoresistor)); voor het uitprinten van de huidige waarde, en
bepalen van de geschatte maxima en minima.
ongeldig photometer() {}
int helderheid = map(analogRead(photoresistor), 75, 450, 0, NUMBER_OF_LEDS);
int i;
voor (ik = 0; ik < NUMBER_OF_LEDS; i ++) {}
Als (ik < helderheid) {}
digitalWrite (ledList [i], hoge);
} else {}
digitalWrite (ledList [i], laag);
}
}
}
void loop {}
Als (currentProgram == 0) {}
allOff();
} else if (currentProgram == 1) {}
allOn();
} else if (currentProgram == 2) {}
allFlashing(250);
} else if (currentProgram == 3) {}
Bounce(100);
} else if (currentProgram == 4) {}
allFading();
} else if (currentProgram == 5) {}
photometer();
}
}