Versions Compared
Version | Old Version 7 | New Version 8 |
---|---|---|
Changes made by | ||
Saved on |
Key
- This line was added.
- This line was removed.
- Formatting was changed.
...
1. Nutz das Blink Beispiel (Exampels/Basic/Blink) und erweitere es um eine zweite LED.
2. Öffne das BlinkWithout Delay Beispiel (Exampels/Digital/BlinkWithoutDelay) und verstehe das Konzept.
3. Programmiere ein Lauflicht mit 3 LEDs, welches sich von einer zur anderen Seite bewegt.
4. Definiert eine eigene Funktion void blinkLED(int _Pin, int _duration) welche es ermöglicht unterschiedliche LEDs mit unterschiedlichen Geschwindigkeiten blinken zu lassen.
-
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
void setup() { // initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(13, OUTPUT); pinMode(12, OUTPUT); } void loop() { digitalWrite(13, HIGH); // set the LED on digitalWrite(12, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(13, LOW); // set the LED off digitalWrite(12, LOW); // set the LED off delay(1000); // wait for a second } |
-
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
// constants won't change. Used here to // set pin numbers: const int ledPin = 13; // the number of the LED pin // Variables will change: int ledState = LOW; // ledState used to set the LED long previousMillis = 0; // will store last time LED was updated // the follow variables is a long because the time, measured in miliseconds, // will quickly become a bigger number than can be stored in an int. long interval = 1000; // interval at which to blink (milliseconds) void setup() { // set the digital pin as output: pinMode(ledPin, OUTPUT); } void loop() { // here is where you'd put code that needs to be running all the time. // check to see if it's time to blink the LED; that is, if the // difference between the current time and last time you blinked // the LED is bigger than the interval at which you want to // blink the LED. unsigned long currentMillis = millis(); if(currentMillis - previousMillis > interval) { // save the last time you blinked the LED previousMillis = currentMillis; // if the LED is off turn it on and vice-versa: if (ledState == LOW) ledState = HIGH; else ledState = LOW; // set the LED with the ledState of the variable: digitalWrite(ledPin, ledState); } } |
-
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#define LED_ONE 13 #define LED_TWO 12 #define LED_THR 11 void setup() { pinMode(LED_ONE, OUTPUT); pinMode(LED_TWO, OUTPUT); pinMode(LED_THR, OUTPUT); } void loop() { for(int i=13; i<11; i--) { digitalWrite(i, HIGH); delay(500); digitalWrite(i, LOW); delay(500); } for(int i=11; i<=13; i++) { digitalWrite(i, HIGH); delay(500); digitalWrite(i, LOW); delay(500); } } |
-
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
int ledPins[3] = {8,9,10}; // Alle LED Pins in einem Array initialisieren boolean ledStates[3] = {false, false, false}; // Alle LED Status speichern long previousMillis[3] = {0,0,0}; // Die Zeiten speichern void setup() { for(int i=0; i<3; i++) { pinMode(ledPins[i], OUTPUT); // Alle LED Pins sind Output } } void loop() { blinkLED(1, 100); // Aufrufen unserer Funktion blinkLED(2, 1000); blinkLED(3, 500); } void blinkLED(int _Pin, int _duration) // Eigene Funktion { if(millis() - previousMillis[_Pin-1] > _duration) // Ist genug Zeit vergangen? { previousMillis[_Pin-1] = millis(); // Zeit speichern ledStates[_Pin-1] != ledStates[_Pin-1]; // Den LED State umdrehen (wenn AUS dann AN) digitalWrite(ledPins[_Pin-1], ledStates[_Pin-1]); // State setzen } } |
-
...