1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

44
1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

Transcript of 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

Page 1: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

1

Deutscher Amateur-Radio-Club e.V.

Arduino Mikrocontrollerkurs

Axel Tüner (DF9VI)

Page 2: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

Arduino MikrocontrollerEine Einführung speziell für Jugendliche

Der hier vorgeschllagene Kurs richtet sich an Einsteiger und vor allem an Jugendliche ab ca. 13 Jahre. Die Teilnehmer erhalten zu Beginn als Einzelteile:

- einen Arduino (fertig oder besser von den Teilnehmern selber löten lassen)- ein Steckbrett- ein LC-Display- einige Verbindungskabel (wire-jumpers) unterschiedlicher Länge(ca. 20 Stück )- 8 LED´s mit Vorwiderstand (330 Ohm)-1 Minilautsprecher-1 Holzbrett

weitere Bauteile kommen dann bei Bedarf hinzu.Die Kosten für die Erstausstattung liegen bei ca. 35€.

Wir beginnen mit einfachen Übungen an einem Steckbrett. Als Stromversorgung dient zunächst eine 9V-Blockbatterie. Die Teilnehmer lernen die wichtigstenelektronischen Bauteile kennen. Sinnvoll sind jetzt auch einige Lötübungen, bei Jüngeren mit Reisszwecken, Ältere mit kleinen elektronischen Schaltungen

In der nächsten Phase werden Arduino und Steckbrett auf dem Holz montiert.Das ist wichtig, um ein sauberes Arbeiten zu ermöglichen.

Es folgen erste Programmierübungen. Je nach Aufgabe erhalten die Teilnehmer dann weitere Bauteile.

Anfangs sollen die Jugendlichen die Programme einfach abschreiben und anschließendmodifizieren. Nach und nach werden alle wichtigen Kommandos erklärt. Später ist einselbstständiges Arbeiten anzustreben, wobei natürlich Teamarbeit immer wünschenswertist. Die Übungen werden in der Folge immer anspruchsvoller. Zum Abschluss eines jeden Abends sollten „Hausaufgaben“ gegeben werden, um die Teilnehmer zumWeiterarbeiten zu Hause zu motivieren.

Diese Unterlagen bieten Material für sicher mehr als ein halbes Jahr (>20 Abende).Vorsicht beim Umgang mit externen Spannungsquellen (bei Aufbauten mit Motoren)!Alle Schaltungen und Programme wurden getestet. Diese Unterlage darf beliebig an Teilnehmer und DARC-Mitglieder weiter gegeben werden. Aber bitte nicht im Internet veröffentlichen und bitte keine Weitergabe außerhalb der Gruppe oder des Vereins, da die Bilder u.U, nicht frei von Urheberrechten sind.

Page 3: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

3

Tutorials

http://www.arduino.cc/http://www.arduino-tutorial.de/Youtube: Arduino Tutorial http://www.arduino.cc/playground/Deutsch/HomePage

Händlerwww.komputer.de/http://jeelabs.net/projects/hardware/wiki/http://www.watterott.com/http://elmicro.com/

Interessante Seiten

http://wiring.org.co/learning/tutorials/http://www.freeduino.de/http://fff2.at/drupal/content/arduino-projekte

Page 4: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

4

Leuchtdioden

Das Steckboard

Übungen mit dem Steckboard

Page 5: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

5

Leuchtdioden

Übungen mit dem Steckboard

Page 6: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

6

Leuchtdioden

U=

I=

Übungen mit dem Steckboard

Page 7: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

7

Schaltungsvarianten

Übungen mit dem Steckboard

Page 8: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

8

Diode

Übungen mit dem Steckboard

Page 9: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

9

Transistor

Messen mit dem Ohmmeter:Farben vertauschen! Plus wird zu Minus und Minus zu Plus!

Übungen mit dem Steckboard

Page 10: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

10

Transistor

Übungen mit dem Steckboard

Page 11: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

11

Kondensator

Übungen mit dem Steckboard

Page 12: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

12

Wechselblinker

Übungen mit dem Steckboard

Page 13: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

13

Lautsprecher

Übungen mit dem Steckboard

Page 14: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

Der Arduino

Page 15: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

15

void setup() {                    pinMode(2, OUTPUT);     }

void loop() {  digitalWrite(2, HIGH);     delay(1000);                digitalWrite(2, LOW);      delay(1000);            }

LED-blinken

Page 16: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

16

void setup() {                  pinMode(2, OUTPUT);   pinMode(3, OUTPUT); usw.  }

void loop() {  digitalWrite(2, HIGH);     delay(1000);               digitalWrite(2, LOW);      delay(1000);               digitalWrite(3, HIGH);     delay(1000);   usw.           }

Lauflicht

Page 17: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

17

void setup() {                  pinMode(2, OUTPUT);   pinMode(3, INPUT); }

void loop() {

  if (digitalRead(3) == LOW {  digitalWrite(2, HIGH);     }}

Taster

Auf den Widerstand kann verzichtet werden:mit:digitalWrite(3, HIGH);

Page 18: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

18

int a = 5; int b = 10; int c = 20; void setup() { Serial.begin(9600); Serial.print("a = ");Serial.println(a); Serial.print("b = "); Serial.println(b); Serial.print("c = "); Serial.println(c);

} void loop() {}

Monitor

Über den Monitor kann man mit dem Arduino sprechen

Serial.begin(9600);Serial.println(„Guten Tag!“);

if (Serial.available() > 0) { Eingabe = Serial.read();}

Page 19: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

19

Blinklicht

Nach einmaligem Betätigen des Tasters sollen die LED´s abwechselnd blinken

Page 20: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

20

Lautsprecher

Nach einmaligem Betätigen des Tasters soll die LED leuchten und der Lautsprecher einen Ton von sich geben.Wird die Taste nochmals betätigt, soll wieder Ruhe herrschen und die LED ausgehen.

Page 21: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

21

void setup() {  Serial.begin(9600);}

void loop() {  int sensorValue = analogRead(A0);  Serial.println(sensorValue, DEC);}

Analog-Eingang

Page 22: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

22

int sensorPin = A0;   int ledPin = 13;      int sensorValue = 0;  

void setup() {  pinMode(ledPin, OUTPUT);  }

void loop() {  sensorValue = analogRead(sensorPin);      digitalWrite(ledPin, HIGH);    delay(sensorValue);             digitalWrite(ledPin, LOW);     delay(sensorValue);                  }

Blinkgeschwindigkeit

Page 23: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

23

const int analogPin = A0; const int ledCount = 10;    

int ledPins [ ] = {   2, 3, 4, 5, 6, 7,8,9,10,11 };   void setup() {  for (int thisLed = 0; thisLed < ledCount; thisLed++) {    pinMode(ledPins[thisLed], OUTPUT);   }}void loop() {  int sensorReading = analogRead(analogPin);  int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);

  for (int thisLed = 0; thisLed < ledCount; thisLed++) {    if (thisLed < ledLevel) {      digitalWrite(ledPins[thisLed], HIGH);    }         else {      digitalWrite(ledPins[thisLed], LOW);     }  }}

Bar-Graph

Page 24: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

24

void setup() { }

void loop() {    int sensorReading = analogRead(A0);          int ton = map(sensorReading, 400, 1000, 100, 1000);

    tone(9, ton, 10);

}

Töne

Page 25: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

25

//dit dit dit

void setup() { pinMode(9, OUTPUT);}void loop() { tone (9,800,100); //pin, frequenz (hz), dauer (ms) delay (200); tone (9,800,100); //pin, frequenz (hz), dauer (ms) delay (200); tone (9,800,100); //pin, frequenz (hz), dauer (ms) delay (1000); }

//space-Ton

void setup() { pinMode(9, OUTPUT);}void loop() { int i; for (i=0; i<=2000; i=i+20){ tone (9,i,100); //pin, frequenz (hz), dauer (ms) delay (20); } }

Beispielprogramme

Töne

Page 26: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

26

Töne

Vorschläge für Variationen

- Sirenenton erzeugen- Tonhöhe mit Potentiometer variieren- Tonhöhe in Abhöngigkeit vom Lichteinfall (LDR)- Tonhöhe in Abhöngigkeit von der Temperatur (NTC)- CQ-Ruf programmieren- Orgel mit 8 Tastern (Pin 2-9)- Musikprogramm aus dem Internet laden und ausprobieren

Page 27: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

27

void setup() {Serial.begin(9600);  }

void loop() {  int sensorReading = analogRead(A0);  int range = map(sensorReading, sensorMin, sensorMax, 0, 3);

  switch (range) {  case 0:        Serial.println("dunkel");    break;  case 1:        Serial.println(„dunkler");    break;  case 2:   Serial.println(„Mittel");    break;  case 3:     Serial.println(„Hell");    break;  }

}

Helligkeit in Stufen anzeigen

sensorMin= Ergebnis bei kleinster HelligkeitsensorMax = Ergebnis bei größter Helligkeit

Page 28: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

28

* LCD RS pin to digital pin 12 * LCD Enable pin to digital pin 11 * LCD D4 pin to digital pin 5 * LCD D5 pin to digital pin 4 * LCD D6 pin to digital pin 3 * LCD D7 pin to digital pin 2 * LCD R/W pin to ground

//Format is RS, Enable, DB4, DB5, DB6, DB7 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);lcd.begin(16, 2);lcd.print("hello, world!");lcd.clear();                  lcd.setCursor(0,0);    //Spalte, Zeile            

LCD anschließen (2x16 Zeichen)

Page 29: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

29

Page 30: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

30

LC-Display Typ „Batron“ BT240052x40 Zeichen

#include <LiquidCrystal.h> //Format is RS, Enable, DB4, DB5, DB6, DB7 LiquidCrystal lcd(7,6,2,3,4,5);void setup(){lcd.begin(40, 2);}void loop(){lcd.clear();                  lcd.setCursor(0,0);    //Zeile, Spalte (X,Y) lcd.print(„Hallo!");}

LCD Arduino1 GND2 +5V 3 1KO nach GND4 (RS) 75 GND 6 (E) 6

LCD Arduino11 212 313 414 5A 5,0 Ohm nach +5VK GND

Arduino

7 6 5 4 3 2

Page 31: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

31

Page 32: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

32

LC-Display Typ 16022x16 Zeichen

LCD Arduino1 +5V2 GND 3 GND4 55 GND 6 4

LCD Arduino11 012 113 214 315 (A) 5,0 Ohm nach +5V16 (K) GND

1

#include <LiquidCrystal.h> //Format is RS, Enable, DB4, DB5, DB6, DB7 LiquidCrystal lcd(7,6,2,3,4,5);void setup(){lcd.begin(16, 2);}void loop(){lcd.clear();                  lcd.setCursor(0,0);    //Zeile, Spalte (X,Y) lcd.print(„Hallo!");}

16

15

Page 33: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

33

Page 34: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

34

lcd.begin(Spalte, Zeile) lcd.print(„Halloele“!)lcd.clear() lcd.setCursor(0, 0); // top left lcd.setCursor(15, 0); // top right lcd.setCursor(0, 1); // bottom left lcd.setCursor(15, 1); // bottom right

Weitere Kommandos:LiquidCrystal() begin() clear() home() setCursor() write() print() cursor() noCursor() blink() noBlink() display() noDisplay() scrollDisplayLeft() scrollDisplayRight() autoscroll() noAutoscroll() leftToRight() rightToLeft() createChar()

Anzeige der Zeit seit Einschalten des Arduinolcd.setCursor(0, 0);lcd.print(millis()/1000);

Vom Terminal auf das LCD schreiben:#include <LiquidCrystal.h> LiquidCrystal lcd(7,6, 2, 3, 4, 5);

void setup(){  lcd.begin(40, 2);  Serial.begin(9600);}

void loop(){  if (Serial.available()) {      lcd.write(Serial.read());      }}

LCD-Befehle

Page 35: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

35

//Taster LCD EIN AUS#include <LiquidCrystal.h>LiquidCrystal lcd(7,6,2,3,4,5);

int taster = 0;void setup() { lcd.begin(16, 2); pinMode(9, INPUT); digitalWrite(9,HIGH); lcd.clear();}void loop() { taster = digitalRead(9); if (taster == LOW) { lcd.home(); lcd.print ("EIN"); } else { lcd.home(); lcd.print ("AUS"); }}

// taster lcd zähler #include <LiquidCrystal.h>LiquidCrystal lcd(7,6,2,3,4,5);int i = 0;int taster = 0;void setup() { lcd.begin(16, 2); pinMode(9, INPUT); digitalWrite(9,HIGH); lcd.clear();}void loop() { taster = digitalRead(9); if (taster == LOW) { lcd.home(); i=i+1; lcd.print (i); }}

LCD - Beispielprogramme

Taster an Pin 9Mit dem Taster zwischen Anzeige „Ein“ und „Aus“ umschalten

Mit dem Taster höherzählenund auf dem LCD anzeigen

Page 36: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

36

#include <LiquidCrystal.h>LiquidCrystal lcd(7,6,2,3,4,5);int sensorPin = A0; int sensorValue;

void setup() { lcd.begin(40, 2); lcd.clear();}

void loop() { sensorValue = analogRead(sensorPin); lcd.home(); lcd.print (sensorValue); delay(500); }

Programme mit dem LDR

#include <LiquidCrystal.h>LiquidCrystal lcd(7,6,2,3,4,5);int sensorPin = A0; int sensorValue;int lautsprecher = 13;

void setup() { lcd.begin(40, 2); lcd.clear();}

void loop() { sensorValue = analogRead(sensorPin); int tonhoehe = map (sensorValue,0,1023,700,4000); lcd.home(); lcd.print ("Stufe: "); lcd.print(tonhoehe); tone (lautsprecher, tonhoehe); }

int sensorPin = A0; int sensorValue;Serial.begin(9600);

void setup() { }

void loop() {

sensorValue = analogRead(sensorPin); Serial.println (sensorValue);

delay(500); }

„Gemessene“ Werte im Monitor und auf demLCD ausgeben, oder in Töne umsetzen

Page 37: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

37

#include <LiquidCrystal.h>LiquidCrystal lcd(7,6,2,3,4,5);

void setup() { lcd.begin(16, 2); lcd.clear(); }

void loop(){ int x=0; int y = 1; int ldr = analogRead(A0); lcd.print("Lichteinfall:"); int bar = map(ldr,300,0,0,16); for (x=0; x<=bar; x++) { lcd.setCursor(x,y); lcd.write(255); } delay(30);lcd.clear();}

Programme mit dem LDR

Balkenanzeige: Je mehr Licht, desto weiter läuft der Balken auf dem LCD. Das gefüllte Kästchen wird mit lcd.write(255) erzeugt. Die Zeile mit dem „map“ muss dem LDR angepasst werden (kalibrieren!).

Page 38: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

38

#define wert1 108#define temp1 0 //Grad Celsius/10#define wert2 99#define temp2 230 //Grad Celsius/10

void setup() {Serial.begin(9600); }

void loop() {// lese Wert vom Analogpin in Variableint analogValue = analogRead(0);analogValue=map(analogValue,wert1,wert2,temp1,temp2);// gebe das Ergebnis mit einer Nachkommastelle aus:Serial.print("Temperatur: ");Serial.println((analogValue/10.0),1);// Warte 1 Sekunde bevor der nächste Wert gelesen wirddelay(1000);}

„Messen“ von Temperaturen

Page 39: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

39

Programme mit dem NTC

#include <LiquidCrystal.h>LiquidCrystal lcd(7,6,2,3,4,5);int sensorPin = A0; int sensorValue;

void setup() { Serial.begin(9600); lcd.begin(40, 2); lcd.clear();}

void loop() { sensorValue = analogRead(sensorPin); int ntctemp = map (sensorValue,110,170,30,20); lcd.home(); lcd.print ("Temp:"); lcd.print(ntctemp);lcd.print (" Grad"); delay(500); }

#include <LiquidCrystal.h>LiquidCrystal lcd(7,6,2,3,4,5);int sensorPin = A0; int lautsprecher = 13;int sensorValue;

void setup() { Serial.begin(9600); lcd.begin(40, 2); lcd.clear();}

void loop() { sensorValue = analogRead(sensorPin); int ntctemp = map (sensorValue,110,170,30,20); lcd.home(); lcd.print ("Temp:"); lcd.print(ntctemp);lcd.print (" Grad"); int frequenz = ntctemp * 50; tone(lautsprecher,frequenz); }

Temperatur auf dem LCD anzeigen

Temperatur als Ton ausgeben

Page 40: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

float tempC;int tempPin = 0;

void setup(){Serial.begin(9600);}

void loop(){tempC = analogRead(tempPin); tempC = (5.0 * tempC * 100.0)/1024.0; Serial.print((byte)tempC); delay(1000);

Temperaturen messen mit dem LM35

2 Typen: LM35CZ teurer und genauer LM35DZ billiger, etwas ungenauerTemperaturbereich: -55 bis + 150 °CMesskurve: 10mV/°CGenauigkeit: +/ -0,25 Grad im Raumtemperaturbereich +/- 0,75 Grad über den gesamten Messbereich

Page 41: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

41

float Quellspannung=5.0;int AnalogPin=5;int R1=1500.0; //Wert des bekannten Widerstands (der mitgelieferte 1,5k-Widerstand)long Messwert;float SpannungR2; //Spannung über dem zu messenden Widerstandfloat Widerstand;

void setup(){Serial.begin(9600);Serial.println("Widerstand ausmessen");Serial.println();}

void loop(){//5 Messungen machen und Mittelwert bildenMesswert=0;for(int i=0;i<5;i++){Messwert+=analogRead(AnalogPin);}Messwert=trunc(Messwert/5);

//Spannung berechnenSpannungR2=(Quellspannung/1023.0)*Messwert;Serial.print("Spannung ueber R2 betraegt ");Serial.print(SpannungR2,2);Serial.println(" Volt!");//Berechnung: (R2 = R1 * (U2/U1))Widerstand=R1*(SpannungR2/(Quellspannung-SpannungR2));Serial.print("Der Widerstand hat ");Serial.print(Widerstand,2);Serial.println(" Ohm.");Serial.println();delay(1000);}

Widerstände messen

Page 42: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

42

Schalten von Last

Das Relais wird über den Transistor geschaltet. In einem Programm soll das Relais abwechselnd ein – und ausgeschaltet werden.Variationen: Relais durch externen Taster schalten Taster schaltet beim 1. Mal das Relais ein, beim 2. Mal aus Relais schaltet erst ein, wenn der Taste länger gedrückt wird.

Page 43: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

43

Schalten von Last

void setup() { pinMode (3, OUTPUT);

void loop() { for (int i = 1; i<=20; i++) { digitalWrite (3, HIGH); delay (1000); digitalWrite (3, LOW); delay (1000); } delay (2000); }

Relais ein und ausschalten

Page 44: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)

44

Ausgabe von analogen Werten

int ledPin = 9; pinMode(ledPin, OUTPUT);Output von 0 - 255

PWM-Ausgänge: 3, 5, 6, 9, 10, and 11..

Schreibe ein Programm, in dem die Helligkeit der LED sich kontinuierlich verändert