Der Einstieg ins Mikrocontrolling

Projekt
Beschreibung

Hier beginnt deine Reise ins Mikrocontrolling: Lerne die wichtigsten Bauteile kennen, baue deine ersten Schaltungen auf und entwickle erste Programme. Du bestimmst, ob du mit Codeblöcken arbeitest oder den Mikrocontroller mit Text programmierst. Im Mittelpunkt steht die LED. Lass die bunten Lichter tanzen.

Neues Projekt
Neues Projekt
Neues Projekt
Neues Projekt
Neues Projekt
Neues Projekt
Bereite alles vor

Wie willst du arbeiten?

Eigenes Hardware-Set

Arbeite mit echten Bauteilen und baue deine Schaltungen auf. Wenn du mit „echter“ Hardware arbeitest, musst du eventuell noch ein paar Dinge vorbereiten, damit dein PC den Mikrocontroller erkennt und du deinen Code übertragen kannst.

Mit einem Simulationstool

Vor allem am Anfang ist ein Simulationstool wie TinkerCAD eine gute Alternative – du brauchst keine Hardware und kannst sofort starten. Verbinde die Bauteile direkt am Bildschirm, programmiere sie wie echte Bauteile und simuliere alles, was du aufgebaut hast.

Individualisiere dein Projekt

Wie willst du programmieren?

Du kannst den Mikrocontroller auf zwei Arten programmieren: Schreibe deinen eigenen Code mit Text oder baue deinen Code aus Codeblöcken zusammen. Du kannst beides ausprobieren und flexibel zwischen den Programmierstilen wechseln, die Module passen sich automatisch an.

Programmiere mit Text

Beim Programmieren mit Text schreibst du deinen Code selbst. Du hast mehr Freiheiten als bei Codeblöcken, musst aber auch genauer auf Details wie Klammern und Semikolons achten.

Programmiere mit Codeblöcken

Programmierst du mit Codeblöcken, baust du dein Programm aus bunten Bausteinen zusammen.

USB Anschluss

Über den USB-Port kannst du den Mikrocontroller programmieren und ihn mit Strom versorgen.

Pin 13

An den Pins (Anschlüssen) kannst du Bauteile wie Leuchtdioden, Displays, Motoren oder Sensoren anschließen. In unserer ersten Projekt-Box steht die LED im Mittelpunkt, du kannst mehrere LEDs anschließen und jeden Pin (= jede LED) einzeln programmieren.

onBoard-LED

Eine kleine LED direkt auf dem Mikrocontroller, sie ist mit „L“ beschriftet.

Genau hier startet unsere Projekt-Box: Die onBoard-LED wird automatisch mit Pin 13 programmiert und wir zeigen dir, wie du eigene Programme schreibst, Bauteile anschließt und deine Projekte zum Leben erweckst.

GND

Auf dem Mikrocontroller findest du 3 GND-Anschlüsse. Baust du eine Schaltung auf, fließt der Strom durch deine Schaltung und muss am Ende immer wieder zurück zu GND. Dabei ist es egal, welchen GND-Pin du verwendest.

Modul 1

Der Mikrocontroller

Der Mikrocontroller ist das Gehirn unserer Schaltung: Du programmierst die Pins am Mikrocontroller, schaltest den Strom ein und aus und kannst alles mit deinem Code steuern. Klicke auf die gelben Punkte, um mehr zu erfahren.

Bonus-Lektion

Der Mikrocontroller als Entwickler-Board

In der Bonus-Lektion erfährst du mehr über den Mikrocontroller, lernst die wichtigsten Bereiche auf dem Board kennen und entdeckst die unterschiedlichen Pins mit ihren Funktionen. Es ist eine Zusatzlektion, du kannst sie also auch überspringen.

Modul 2

Dein erstes Programm

Um eine LED zu programmieren, brauchen wir 2 Befehle: Wo (an welchem Pin) ist die Hardware angeschlossen und wie ist der Zustand am Pin (HIGH/LOW)? Achte dabei auf die Schreibweise und das Semikolon ;

pinMode

Mit dem Befehl pinMode legst du fest, welche Pins du verwendest und was der Mikrocontroller damit machen soll. Mit OUTPUT wird der Pin als Ausgang vorbereitet, sodass er später ein- und ausgeschaltet werden kann.

digitalWrite

Mit dem Befehl digitalWrite schaltest du den Pin ein oder aus. Auch hier musst du festlegen, welchen Pin du gerade steuerst und welchen Zustand er haben soll: HIGH setzt den Pin auf 5 V und die LED leuchtet, LOW schaltet den Pin aus und die LED ist aus.

Die Sprache der Informatik

Funktionen erkennst du an dem void und den geschweiften Klammern. Alle Befehle stehen im Anweisungsblock.

Befehle erkennst du an dem Semikolon ; Alle Befehle müssen zwischen die geschweiften Klammern der Funktionen

Kommentare sind für den Menschen, um beispielsweise Codeabschnitte zu erklären oder sich Notizen zu machen.

Aufgabe

Die onBoard-LED

Programmiere die onBoard-LED so, dass sie permanent leuchtet. Du programmierst sie genau wie oben über Pin 13.

Wenn du den Mikrocontroller zum ersten Mal mit dem USB-Kabel verbindest und er Strom bekommt, beginnt die Onboard-LED zu blinken und die ON-LED leuchtet grün.

Auf dem Mikrocontroller ist schon ein Sketch gespeichert, der die LED an Pin 13 ansteuert und zum Blinken bringt. Das gilt für echte Hardware genauso wie für TinkerCAD. In TinkerCAD siehst du dieses Programm auch jedes Mal, wenn du ein neues Projekt startest.

Die onBoard-LED hat auch einen eigenen Befehl/Pin: LED_BUILTIN

				
					digitalWrite(LED_BUILTIN, HIGH);
				
			

Wir verwenden stattdessen: Den digitalen Pin 13

				
					digitalWrite(13, HIGH);
				
			

Wir gehen direkt einen Schritt weiter: Wir programmieren die LED direkt mit dem Pin 13. Danach können wir direkt (zusätzliche) externe Bauteile anschließen und sie genau so programmieren, wie wir es jetzt lernen.

Arbeitest du mit einem Hardware-Set, kannst du deinen Code mit der Arduino-IDE auf den Mikrocontroller laden.

In TinkerCAD arbeitest du ohne Materialien und baust deine Schaltung direkt am Bildschirm auf.

Aufgabe

Die blinkende LED

Erweitere deinen Code so, dass die onBoard-LED blinkt (lange an, kurz aus). Nutze dafür den delay-Befehl.

Dein Programm wird Codezeile für Codezeile ausgeführt. Du musst mehrere Codezeilen ergänzen. Denk daran, dass jeder Befehl zwischen den geschweiften Klammern stehen muss!

Mehr dazu erfährst du in der Lösung.

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

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

Dein erstes Programm

Wähle bei jedem Codeblock aus, welchen Pin du programmierst und welchen Zustand (an oder aus) die LED haben soll. Die Blöcke sehen in TinkerCAD und CodeKIT unterschiedlich aus, funktionieren aber sehr ähnlich.

Welche Codeblöcke soll ich verwenden?

Für diese Projekte ist es egal: Beide Codeblöcke machen dasselbe. Sie steuern den Pin und schalten die LED an oder aus. Entscheide am besten danach, ob du ohne Materialien in TinkerCAD arbeitest oder die Projekte mit einem Hardware-Set aufbaust.

Aufgabe

Die onBoard-LED

Programmiere die onBoard-LED so, dass sie permanent leuchtet. Du programmierst sie genau wie oben über Pin 13.

Wenn du den Mikrocontroller zum ersten Mal mit dem USB-Kabel verbindest und er Strom bekommt, beginnt die Onboard-LED zu blinken und die ON-LED leuchtet grün.

Auf dem Mikrocontroller ist schon ein Sketch gespeichert, der die LED an Pin 13 ansteuert und zum Blinken bringt. Das gilt für echte Hardware genauso wie für TinkerCAD. In TinkerCAD siehst du dieses Programm auch jedes Mal, wenn du ein neues Projekt startest.

In TinkerCAD hat die onBoard-LED einen eigenen Codeblock. In CodeKIT gibt es keinen eigenen Codeblock dafür.

Wir verwenden aber nicht diesen Codeblock, wir programmieren Pin 13 (der ebenfalls die onBoard-LED steuert). Damit können wir später viel mehr machen!

Wir gehen direkt einen Schritt weiter: Wir programmieren die LED direkt mit dem Pin 13. Danach können wir direkt (zusätzliche) externe Bauteile anschließen und sie genau so programmieren, wie wir es jetzt lernen.

In TinkerCAD arbeitest du ohne Materialien und baust deine Schaltung direkt am Bildschirm auf.

In TinkerCAD arbeitest du ohne Materialien und baust deine Schaltung direkt am Bildschirm auf.

Aufgabe

Die blinkende LED

Programmiere die LED so, dass sie blinkt: Sie soll am Anfang lange an und danach kurz aus sein. Die Codeblöcke kannst du bewegen.

Aufgabe

Programmiere als nächstes die onBoard-LED auf dem Mikrocontroller, so dass sie blinkt. Es geht genau so wie oben.

In TinkerCAD ist der Codeblock „warten“ gelb – du findest ihn unter „Steuerung“.

In CodeKIT ist der Codeblock „warten“ blau – du findest ihn unter „Steuerung“.

Modul 3

Die wichtigsten Bauteile

Arduino (Uno, Roboter-Bausatz-Shop)
Der Mikrocontroller

Das Gehirn hinter unseren Projekten ist der Mikrocontroller, unser Entwicklerboard. Wir können jeden Anschluss (Pin) einzeln steuern, eigene Programme schreiben und viele verschiedene Bauteile anschließen.

Bauteile zum Programmieren
Die Bauteile der Kurswelt

Mit den Bauteilen erwecken deine Projekte zum Leben: Schließe LEDs und Taster an, erfasse deine Umgebung mit Sensoren, kommuniziere über LCD-Displays oder bewege Objekte mit Servomotoren.

Anschluss Zubehör
Das "Zubehör"

Um die Bauteile mit dem Arduino zu verbinden, brauchst du das passende Zubehör: Entwickle deine eigenen Schaltungen mit der Hilfe von Breadboards, Jumperkabeln und Widerständen.

Jumper-Kabel

Um eine elektrisch leitende Verbindung herzustellen, gibt es mehrere Möglichkeiten: Wir nutzen Jumper-Kabel und ein Breadboard, um unsere Bauteile mit dem Mikrocontroller zu verbinden.

Im Inneren der Jumper-Kabel befindet sich ein Kupferdraht. Während der Strom durch den Draht im Inneren fließt, soll die bunte Schicht außen das Kabel lediglich isolieren. Die Farbe spielt also keine Rolle!

Das Ende mit dem SMA-Stecker wird als männlich bezeichnet.
Das Ende mit der Buchse wird als weiblich bezeichnet.

Da jedes Kabel 2 Enden und damit 2 Anschlüsse besitzt, können sie in M-M, M-W, W-W unterteilt werden. Die Anschlüsse sind genormt und besitzen ein Durchmesser (Raster) von 2,54mm.

Breadboard

In der Steckplatine (eng. breadboard) sind sogenannte Federkontakte, in die die Bauteile gesteckt werden. Klicke die Bilder an, um sie zu vergrößern.

Frage: Welche Schaltungen ist richtig angeschlossen?

Findest du die Fehler? In zwei der Schaltungen kommt der Strom nicht durch das Steckbrett – nur eine der Schaltungen funktioniert!  Der Strom soll links unten hinein und rechts unten wieder hinausfließen:

Aufgaben
Schaltung 1
Schaltung 2
Schaltung 3
Schaltung 1: Lösung
Schaltung 2: Lösung
Schaltung 3: Lösung

Widerstände

Die Widerstände schützen nicht nur die Bauteile, sondern auch deinen Mikrocontroller vor zu hohen Strömen. Die wichtigsten Widerstände für den Anfang sind 100Ω und 220Ω (später kommen noch weitere hinzu). In vielen Hardware-Sets sind immer mehrere Widerstände mit einem Papierstreifen zusammen.

Wir unterscheiden zwischen 2 Arten von Widerständen: Kohleschicht (braun mit 4 Ringen) und Metallschicht (blau mit 5 Ringen). Welche Art von Widerstand wir verwenden, ist egal. Die Werte (Größe der Widerstände) können wir mithilfe der farbigen Ringe unterscheiden. Der letzte Ring beschreibt dabei die Toleranz und kann vernachlässigt werden.

Modul 4

Schaltungen aufbauen

Leuchtdioden

LEDs sind polarisierte Bauteile: Sie leuchten nicht, wenn du sie falsch herum anschließt: Ziehe sie heraus und stecke sie anders herum wieder ins Breadboard. Den Widerstand, den wir verwenden ist abhängig von der Farbe:

Aufgabe

In den letzten Aufgaben hast du die onBoard-LED mit Pin 13 so programmiert, dass sie blinkt. Schließt du an diesen Pin jetzt eine (externe) LED an, macht sie genau dasselbe wie die onBoard-LED.

Achte beim Steckbrett auf die grünen Punkte im Bild. Ein oft gemachter Fehler ist, dass die Kabel in die falsche Reihe gesteckt werden! Klicke das Bild an, um es zu vergrößern.

Polarisierte Bauteile
Die LED leuchtet nicht, wenn sie falsch herum angeschlossen wurde: Ziehe sie heraus und stecke sie anders herum wieder ins Breadboard.

Kurzes Bein muss an GND
Langes Bein muss an Pin 13

Modul 5

Syntax mehrerer Bauteile

Mithilfe der Seitenleiste des Breadboards können wir jetzt auch problemlos mehrere LEDs anschließen. Wichtig ist, dass der Aufbau zum Code passt: Jedes Bauteil muss im Code einzeln angesteuert werden (braucht einen eigenen Befehl).

Ein Befehl für jedes Bauteil

Beim Mikrocontroller kannst (und musst) du jeden Pin einzeln steuern: Im Beispiel sind 2 LEDs an die Pins 12 und 13 angeschlossen, die beide gleichzeitig leuchten.

				
					void setup(){
  pinMode(13, OUTPUT);  // Pin 13 konfigurieren
  pinMode(12, OUTPUT);  // Pin 12 konfigurieren
}


void loop(){
  digitalWrite(13, HIGH);   // LED an Pin 13 an
  digitalWrite(12, HIGH);   // LED an Pin 12 an
}
				
			
Aufgabe: Wechselblinker

Baue eine Schaltung mit 2 LEDs auf und erweitere den Code so, dass die LEDs abwechselnd blinken.

				
					void setup(){
  pinMode(13, OUTPUT);  // Pin 13 konfigurieren
  pinMode(12, OUTPUT);  // Pin 12 konfigurieren
}


void loop(){
  digitalWrite(13, HIGH);   // LED an Pin 13 an
  digitalWrite(12, LOW);    // LED an Pin 12 aus
  delay(500);               // Warten
  
  digitalWrite(13, LOW);    // LED an Pin 13 aus
  digitalWrite(12, HIGH);   // LED an Pin 12 an
  delay(500);               // Warten
}
				
			
Modul 6

Hardware-Projekte

Blaulicht

4 LEDs (2x weiß, 2x blau) werden so Programmiert, dass ein Blaulicht entsteht: Lass sie abwechseln schnell aufleuchten.

Lauflicht

Bis zu 10 LEDs, in Reihe geschaltet und so programmiert, dass das Licht von einer zur nächsten springt: Ein perfektes Projekt für Einsteiger!

Aufgabe: Möglichst wenigen Codezeilen!

Überlege dir genau, welche LEDs du wann an- und wann ausschalten musst: Beim Start sind alle LEDs (automatisch) aus. Du musst also nicht alle LEDs für jeden Schritt ansteuern!

Animation

Geschwindigkeit: Wie schnell das Licht wechselt, kannst du flexibel mit dem delay/warten festlegen. Im Video sind es 500ms.

Rücklauf: Du entscheidest selbst, wie du programmierst. Soll das Licht am Ende wieder zurück zum Anfang laufen oder am Ende einfach wieder nach vorne „springen“ wie in unserem Video?

Wir haben 7 LEDs verwendet, du kannst natürlich selbst entscheiden, wie viele LEDs und welche Farben du verbaust.

➔ 200mA / 20mA = 10
max. 10 LEDs verwenden

Erklärung

  • Eine LED benötigt ca. 20mA
  • Alle I/O-Pins am Mikrocontrollers (13, 12, 11, …) können/sollen zusammen max. 200mA ausgeben

Ampel

Programmiere eine (zeitgesteuerte) Ampel mit 3 LEDs: ROT/GELB/GRÜN und achte darauf, dass alle Ampelphasen abgespielt werden. Die Autos sollen dabei lange grün und kurz Rot haben.

Erweitere deine Ampel

Baue als nächstes Taster ein und erweitere deine Schaltung: In der Projekt-Box „Kontrollstrukturen“ arbeitest du mit neuen Bauteilen und lernst neue Themen kennen. Steuere deine Ampel auf Tastendruck!

Ausblick

Wie geht es weiter?

Baue als nächstes Taster ein und erweitere deine Schaltung: In der Projekt-Box „Kontrollstrukturen“ arbeitest du mit neuen Bauteilen und lernst neue Themen kennen. Steuere deine Ampel auf Tastendruck!

Musik programmieren

Neues Projekt

Dein Mikrocontroller wird zum Instrument. Programmiere Noten, spiele die Tonleiter und komponiere ganze Lieder. Mit deinem Code steuerst du, was passiert: Töne, Dauer und Pausen werden zur Melodie und lassen Musik erklingen. Noten lesen musst du hier nicht, wir haben alles für dich vorbereitet, damit dein Mikrocontroller direkt zu spielen beginnt.

Der Segment-Counter

Neues Projekt

Aus einzelnen Linien werden Zahlen und du kannst sie programmieren: Experimentiere mit den Bauteilen, steuere jedes Segment gezielt an und bestimme, welche Linien aufleuchten und welche dunkel bleiben. Um den Code zu entwickeln, verwenden wir selbst entwickelte Funktionen und verbinden sie zu einem automatischen Counter: Lass die Ziffern aufleuchten.

Kontrollstrukturen

Neues Themenfeld

Steuere deinen Mikrocontroller auf Tastendruck. Kontrollstrukturen steuern, was in deinem Code passiert. Programmiere den elektronischen Würfel oder finde im Reaktionsspiel mit LEDs den richtigen Moment für den entscheidenden Tastendruck. Mit Verzweigungen, Schleifen und Bedingungen entwickelst du Programme, die entscheiden, was ausgeführt wird und was nicht.