Prof. Dr. Sebastian Zug, Technische Universität Bergakademie Freiberg
Die interaktive Ansicht dieses Kurses ist unter folgendem Link verfügbar.
Der Quellcode der Materialien ist unter https://github.com/liaScript/ArduinoEinstieg/blob/master/Course_02b.md zu finden.
Aufgabe: Ihr Programmierer hat Ihnen einen Code geschrieben, der das SOS Morsesignal über die Led ausgibt!
Probieren Sie den Code aus und erklären Sie die verwendeten Programmierkonstrukte. Hat er alles richtig gemacht?
const int ledPin = 13;
const int shortDelay = 1000;
const int longDelay = 1000;
const sos char [] = "ssslllsss";
void setup() {
// initialize digital pin ledPin as an output.
pinMode(ledPin, OUTPUT);
}
void blink(int duration){
digitalWrite(ledPin, HIGH); // turn the LED on (HIGH is the voltage level)
delay(duration); // wait for a second
digitalWrite(ledPin, LOW); // turn the LED off by making the voltage LOW
}
void short(){
blink(shortDelay);
}
void long(){
blink(longDelay)
}
void loop() {
for(int i = 0; sos[i] != '\0'; ++i) {
if sos[i] == 's' long();
else short();
}
}
Integration einer Mehrfarben LED als Erweiterung der Ausgabe
// Methoden aus dem Lösungsvorschlag der MangoLabs
const int redPin = 11;
const int greenPin = 10;
const int bluePin = 9;
void setColourRgb(unsigned int red, unsigned int green, unsigned int blue) {
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
void setup() {
// Start off with the LED off.
setColourRgb(0,0,0);
}
void loop() {
setColourRgb(255, 0, 0);
delay(1000);
}
Aufgabe: Nutzen Sie die Kodierung von aus dem vorherigen Beispiel und erweitern Sie diese um die Ansteuerung einer RGB-LED.
Wir wollen mit dem Arduino einen LED Ring ansteuern.
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define NUMPIXELS 24
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 500
void setup() {
pixels.begin();
}
void loop() {
pixels.clear();
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 150, 0));
pixels.show();
delay(DELAYVAL);
}
}
Lassen Sie Ihrer Kreativität freien Lauf und erweitern Sie das Beispiel um eine Animation. Integrieren Sie den Distanzsensor aus einer vorangegangenen Aufgabe oder senden Sie Steuersignale über die Serielle Schnittstelle.