Home » Arduino
Category Archives: Arduino
Code 2
int roteLED = 8; // Variable um überal auf den pin der roteLED zugreifen zu können
int grueneLED = 6;
// Setup
// Wird einmal beim starten ausgeführt
void setup() {
pinMode(roteLED, OUTPUT); // Setze den Modus von pin roteLED auf OUTPUT(Ausgabe)
pinMode(grueneLED, OUTPUT);
}
// Loop
// Läuft immer wieder durch (Unendlich lang)
void loop() {
digitalWrite(roteLED, HIGH); // Schalte pin roteLED ein (HIGH oder 1)
delay(1000); // Warte 1000 Milisekunden = 1 Sekunde
blinken(grueneLed, 200);
digitalWrite(roteLED, LOW); // Schalte pin roteLED aus (LOW oder 0)
delay(500); // Warte 1000 Milisekunden = 1 Sekunde
}
// funktion mit 2 parameter
void blinken(int welcheLED, int blinkDauer) {
for (int i = 0; i < 3; i++) {
digitalWrite(welcheLED, HIGH);
delay(blinkDauer);
digitalWrite(welcheLED, LOW);
delay(blinkDauer);
}
}
int roteLED = 8; // Variable um überal auf den pin der roteLED zugreifen zu können
int grueneLED = 6;
// Setup
// Wird einmal beim starten ausgeführt
void setup() {
pinMode(roteLED, OUTPUT); // Setze den Modus von pin roteLED auf OUTPUT(Ausgabe)
pinMode(grueneLED, OUTPUT);
}
// Loop
// Läuft immer wieder durch (Unendlich lang)
void loop() {
digitalWrite(roteLED, HIGH); // Schalte pin roteLED ein (HIGH oder 1)
delay(1000); // Warte 1000 Milisekunden = 1 Sekunde
blinken(grueneLed, 200);
digitalWrite(roteLED, LOW); // Schalte pin roteLED aus (LOW oder 0)
delay(500); // Warte 1000 Milisekunden = 1 Sekunde
}
// funktion mit 2 parameter
void blinken(int welcheLED, int blinkDauer) {
for (int i = 0; i < 3; i++) {
digitalWrite(welcheLED, HIGH);
delay(blinkDauer);
digitalWrite(welcheLED, LOW);
delay(blinkDauer);
}
}
S1 :: 1.1. Wir lassen es blinken
jede programmiersprache kennt ein sogenanntes “Hello World” programm. beim arduino ist es das blinken der eingebauten LED.

void setup() {
}
void loop() {
}
dies ist das minimalistischte programm welches der Arduino versteht. setup und loop müssen in jedem Arduino programm enthalten sein

// Setup
// Wird einmal beim starten ausgeführt
void setup() {
pinMode(13, OUTPUT); // Setze den Modus von pin interneLED auf OUTPUT(Ausgabe)
}
// Loop
// Läuft immer wieder durch (Unendlich lang)
void loop() {
digitalWrite(13, HIGH); // Schalte pin roteLED ein (HIGH oder 1)
delay(1000); // Warte 1000 Milisekunden = 1 Sekunde
digitalWrite(13, LOW); // Schalte pin roteLED aus (LOW oder 0)
delay(500); // Warte 500 Milisekunden = 1 Sekunde
}
S1 :: 1.2. Blinken
folgende anweisungen/befehle werden verwendet:
du weisst nun, dass ein arduino programm
int roteLED = 6; // Variable um überal auf den pin der roteLED zugreifen zu können
int grueneLED = 8;
// Setup
// Wird einmal beim starten ausgeführt
void setup() {
pinMode(roteLED, OUTPUT); // Setze den Modus von pin roteLED auf OUTPUT(Ausgabe)
pinMode(grueneLED, OUTPUT);
digitalWrite(grueneLED, HIGH); // die grüne LED wird eingeschaltet
}
// Loop
// Läuft immer wieder durch (Unendlich lang)
void loop() {
digitalWrite(roteLED, HIGH); // Schalte pin roteLED ein (HIGH oder 1)
delay(1000); // Warte 1000 Milisekunden = 1 Sekunde
digitalWrite(roteLED, LOW); // Schalte pin roteLED aus (LOW oder 0)
delay(500); // Warte 1000 Milisekunden = 1 Sekunde
}
du sprichst wahrscheinlich deutsch und eventuell noch eine andere sprache. der arduino versteht die programmiersprache c++. c++ existiert seit dem jahre 1979. die älteste noch verwendete programmiersprache heisst fortran und wurde 1954 entworfen. hier findest du mehr infos zur geschichte der programmiersprachen.
lass uns das programm zeile für zeile durchgehen:
- 1: hier wird die variable roteLED deklariert. das deklarieren einer variable bedeutet, dass ihr typ definiert wird und optional ein anfangswert gesetzt wird. der type int sagt aus, dass wir eine ganzzahl im bereich -2.147.483.648 bis 2.147.483.647 darin speichern können. der anfangswert ist 6, da unsere rote LED mit dem pin 6 verbunden ist.
- 2: grueneLED wird deklariert und erhält den anfangswert 8
- 3: leerzeile damit wir das programm leichter lesen können
- 4: // dies bedeutet: kommentar, anmerkung. mach ausreichend davon gebrauch. du wirst sehen wie leicht mensch vergisst
- 6: setup-block. ein block beginnt mit { und endet mit }. die anzahl der öffnenden klammern muss genau der anzahl der schliessenden klammern entsprechen.
- 7: konfiguriert den spezifizierten pin als input oder output. der pin an welchem die rote LED angeschlossen ist, wird als ausgabe gesetzt.
- 8: die variable grueneLED hat einen wert von 8. am pin 8 ist unsere grüne LED angeschlossen
- 9: die grüne LED wird eingeschaltet. digitalWrite hat 2 parameter: die pinnummer und [HIGH/LOW]. HIGH bedeutet, dass 5Volt gesetzt werden. dadurch kann die LED leuchten. bei LOW, wird die spannung auf 0Volt gesetzt und die LED ist somit aus.
- 14: loop-block beginnt und endet in zeile 19. mit der tastenkombination STRG+T kannst du die richtigen einrückungen erzeugen. dies erleichtert das lesen eines programms sehr. später wirst du programme schreiben, welche verschatelte logische blöcke enthalten
- 16: unterbricht das programm für die als parameter angegebene zeit (in millisekunden). (es gibt 1000 millisekunden in einer sekunde.)
- im loop: roteLED wird eingeschaltet ==> 1000msec wird gewartet ==> roteLED aus ==> 500msec warten ==> roteLED an ==> warten & immer so weiter. bis der arduino keinen strom mehr hat oder du ein anderes programm rauflädtst
S1 :: 1.3. mehr blinken
schaltung
code
int roteLED = 6; // Variable um überal auf den pin der roteLED zugreifen zu können
int grueneLED = 8;
// Setup
// Wird einmal beim starten ausgeführt
void setup() {
pinMode(roteLED, OUTPUT); // Setze den Modus von pin roteLED auf OUTPUT(Ausgabe)
pinMode(grueneLED, OUTPUT);
digitalWrite(grueneLED, HIGH); // die grüne LED wird eingeschaltet
}
// Loop
// Läuft immer wieder durch (Unendlich lang)
void loop() {
digitalWrite(roteLED, HIGH); // Schalte pin roteLED ein (HIGH oder 1)
delay(1000); // Warte 1000 Milisekunden = 1 Sekunde
digitalWrite(roteLED, LOW); // Schalte pin roteLED aus (LOW oder 0)
delay(500); // Warte 1000 Milisekunden = 1 Sekunde
}
du sprichst wahrscheinlich deutsch und eventuell noch eine andere sprache. der arduino versteht die programmiersprache c++. c++ existiert seit dem jahre 1979. die älteste noch verwendete programmiersprache heisst fortran und wurde 1954 entworfen. hier findest du mehr infos zur geschichte der programmiersprachen.
lass uns das programm zeile für zeile durchgehen:
- 1: hier wird die variable roteLED deklariert. das deklarieren einer variable bedeutet, dass ihr typ definiert wird und optional ein anfangswert gesetzt wird. der type int sagt aus, dass wir eine ganzzahl im bereich -2.147.483.648 bis 2.147.483.647 darin speichern können. der anfangswert ist 6, da unsere rote LED mit dem pin 6 verbunden ist.
- 2: grueneLED wird deklariert und erhält den anfangswert 8
- 3: leerzeile damit wir das programm leichter lesen können
- 4: // dies bedeutet: kommentar, anmerkung. mach ausreichend davon gebrauch. du wirst sehen wie leicht mensch vergisst
- 6: setup-block. ein block beginnt mit { und endet mit }. die anzahl der öffnenden klammern muss genau der anzahl der schliessenden klammern entsprechen.
- 7: konfiguriert den spezifizierten pin als input oder output. der pin an welchem die rote LED angeschlossen ist, wird als ausgabe gesetzt.
- 8: die variable grueneLED hat einen wert von 8. am pin 8 ist unsere grüne LED angeschlossen
- 9: die grüne LED wird eingeschaltet. digitalWrite hat 2 parameter: die pinnummer und [HIGH/LOW]. HIGH bedeutet, dass 5Volt gesetzt werden. dadurch kann die LED leuchten. bei LOW, wird die spannung auf 0Volt gesetzt und die LED ist somit aus.
- 14: loop-block beginnt und endet in zeile 19. mit der tastenkombination STRG+T kannst du die richtigen einrückungen erzeugen. dies erleichtert das lesen eines programms sehr. später wirst du programme schreiben, welche verschatelte logische blöcke enthalten
- 16: unterbricht das programm für die als parameter angegebene zeit (in millisekunden). (es gibt 1000 millisekunden in einer sekunde.)
- im loop: roteLED wird eingeschaltet ==> 1000msec wird gewartet ==> roteLED aus ==> 500msec warten ==> roteLED an ==> warten & immer so weiter. bis der arduino keinen strom mehr hat oder du ein anderes programm rauflädtst
S1 :: 1.4 windrad
Wie andere hohe Masten müssen auch Windkraftanlagen ein rotes Blinklicht an ihrer Spitze haben, um Flugzeuge zu warnen. Da die Spitze des Mastes bei einem Windrad aber nicht wirklich die Spitze der Gefahrenzone ist, blinkt ihr rotes Licht in einem besonderen Rhythmus: 1 Sekunde an, dann 0,5 Sekunden aus, dann wieder 1 Sekunde an, dann aber 1,5 Sekunden aus.
Programmiere so ein Dauerblinklicht und speichere es unter Aufgabe_4_6_Windrad.
// arduino kurs 2022
// https://arduino.langheiter.at/4-6
// 4.6
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(500);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1500);
}
S1 :: 1.5 wechselblinker
Schließe eine zweite LED an den Arduino an. Lass beide LEDs abwechselnd blinken.
/* arduino kurs 2022
https://arduino.langheiter.at/4-7
4.7 */
void setup() {
pinMode(D11, OUTPUT);
pinMode(D13, OUTPUT);
}
void loop() {
digitalWrite(D11, HIGH);
digitalWrite(D13, LOW);
delay(1000);
digitalWrite(D11, LOW);
digitalWrite(D13, HIGH);
delay(700);
}
S1 :: 2.1. lauflicht
methoden
schaltung
code1
/*
an den PINs 2-9 sind LEDs angeschlossen
*/
int pinArray[] = {2, 3, 4, 5, 6, 7, 8, 9};
int zaehler = 0;
int dauer = 33;
void setup() {
for (zaehler = 0; zaehler < 8; zaehler++) {
pinMode(pinArray[zaehler], OUTPUT);
}
}
void loop() {
// dein code
}
rider-01
code2
/*
an den PINs 2-9 sind LEDs angeschlossen
*/
int ledPin[] = {2, 3, 4, 5, 6, 7, 8, 9};
int anzahlLED = 8;
int richtung = 1;
int aktivePosition = 0;
int letztePosition = 0;
int dauer = 33;
int poti = 0;
void setup() {
Serial.begin(115200);
for (int i = 0; i < 8; i++) {
pinMode(ledPin[i], OUTPUT);
}
debugText();
}
void loop() {
poti = analogRead(0); // am A0-pin
dauer = map(poti, 0, 1023, 20, 333); //
debugText();
letztePosition = aktivePosition;
aktivePosition += richtung;
digitalWrite(ledPin[aktivePosition], HIGH);
digitalWrite(ledPin[letztePosition], LOW);
if (aktivePosition >= anzahlLED - 1 || aktivePosition < 1) {
richtung *= -1;
}
delay(dauer);
}
void debugText() {
if (aktivePosition == 0) {
Serial.println("-----------------------------------------------");
}
Serial.print(aktivePosition);
Serial.print("\t richtung: ");
Serial.print(richtung);
Serial.print("\t\t");
Serial.print(poti);
Serial.print(" :: ");
Serial.println(dauer);
}
S1 :: 3.1. ampel
versuche eine ampelsteuerung zu programmieren
/* arduino kurs 2022
https://arduino.langheiter.at/7-1
7.1
*/
void setup() {
pinMode(D11, OUTPUT);
pinMode(D13, OUTPUT);
}
void loop() {
digitalWrite(D11, HIGH);
digitalWrite(D13, LOW);
delay(1000);
digitalWrite(D11, LOW);
digitalWrite(D13, HIGH);
delay(700);
}
S1 :: 4.1 RGB-LEDs
RGB steht für Rot Grün Blau.
Eine RGB-LED verwendet drei Leuchtdioden in den Farben Rot, Grün und Blau und mischt diese inunterschiedlichen Intensitäten zu verschiedenfarbigem Licht.
wir wollen über die serielle schnittstelle eine eingabe realisieren und unsere RGB-LED in unterschiedlichen farben leuchten lassen.
beispieleingabe über serielle console: 1,150 == unsere RGB-LED leuchtet dadurch intensiv grün
gib folgendes ein:
0,1
1,1
2,1
dadurch werden alle 3 farben der RGB-LED ganz wenig zum leuchten gebracht und du kannst die 3 leuchtpunkte erkennen
schaltung
code1
/*
* eingabe: ledNr, helligkeit
* zb: 1, 255
* dadurch leuchtet die RGB-LED intensiv grün
*/
int LEDs[] = {11, 10, 9};
void setup() {
Serial.begin(115200);
for (int i = 0; i < 3; i++) {
pinMode(LEDs[i], OUTPUT);
}
}
void loop()
{
if (Serial.available() > 0) {
int ledNr = Serial.readStringUntil(',').toInt();
int hell = Serial.readStringUntil('\n').toInt();
Serial.print(ledNr);
Serial.print(" :: ");
Serial.println(hell);
analogWrite(LEDs[ledNr], hell);
}
}



