Grundlagen der Mikrocontrollertechnik im Sommersemester 2026
(EN google-translate)
(PL google-translate)
|
04_SoSe2026 -- Einstiegsseite zum Sommersemester 2026 mit Angaben zu Räumen, Zeiten und den Prüfungen der einzelnen Fächer.
#1 Di, 24.03.2026
THEMEN HEUTE
|
1. Worum geht es?
Mikrocontroller sind aus der heutigen Welt nicht mehr wegzudenken. Sie bilden typischerweise das Kernstück s.g. Eingebetteter Systeme. Das sind technische Komponenten, die typischerweise dauerhaft steuer- und regelungstechnische Aufgaben in technischen Systemen übernehmen, die zuvor von elektronischen, bzw. elektromechanischen Komponenten übernommen wurden.
2. Motivation -- Warum ist das wichtig?
Viele Aufgaben, die zuvor durch mechanische Systeme übernommen wurden, wurden zunächst durch Elektromechanische Systeme ersetzte und noch später durch Eingebettete Systeme. Der Vorteil dieser Entwicklung liegt vor allem darin, dass das Verhalten der Eingebetteten Systeme durch ein Computerprogramm festgelegt wird und nicht mehr durch elektronische Schaltungen, oder mechanische Komponenten. Dadurch können die gleichen Grundsysteme in sehr vielen Geräten eingesetzt werden. Was sie voneinander unterscheidet ist dann das Programm, dass auf ihnen läuft. Das wiederum hat zur Folge, dass Mikrocontroller in sehr hohen Stückzahlen hergestellt werden können und damit eine sehr preiswerte Produktion möglich wird.
Zudem können Updates, Anpassungen und Fehlerbehebungen oft einfach durch eine Veränderung der Software, die auf dem System läuft vorgenommen werden, anstatt eine neue Schaltung zu entwickeln, oder eine neue Mechanik entwickeln zu müssen.
Eingebettete Systeme finden Sie beispielsweise...
|
Als exemplarisches Beispiel für die Einsatzmöglichkeit eines Mikrocontrollers, sieht man hier, wie dieser werden kann, um einfache regelungstechnische Aufgaben bei kleinen autonomen Vehikeln zu übernehmen, um eine Linie zu verfolgen, oder auf einer Achse zu balancieren:
Bild 0-1: Schwarmvehikel, die eine Linie verfolgen können und auf das Auftauchen von Hindernissen reagieren.
Bild 0-2: Einachser (Vehikel, das auf einer Achse balanciert)
ÜBUNG
Versuchen Sie die nachfolgenden Fragen zu beantworten:
|
3. Welche Themen werden behandelt?
|
4. Welche Leistungen sollten Sie erbringen? / Organisatorisches
|
Neben dieser Prüfung wird es Miniprojekte geben, die in Zweiergruppen zu bearbeiten sind und die dazu dienen sollen, die erlernte Theorie anzuwenden.
|
5. Einstieg
|
40_Mikrocontroller/01_Einfuehrung/02_Maschinensprache -- Unterschied zwischen Mikrocontroller und PC
|
40_Mikrocontroller/01_Einfuehrung/01_Entwicklungsgeschichtliches -- Grundidee eines Computers
|
40_Mikrocontroller/01_Einfuehrung/03_Assemblerbeispiel -- Registerbefehle
|
96_Arduino/02_Taster -- Computerprogramm für einen Arduino Mikrocontroller
|
01_Einfuehrung/05_Praxis/01_Digital_IO -- Übersicht zu Registerbefehlen im Zusammenhang mit digitalen Ein- und Ausgängen
40_Mikrocontroller/01_Einfuehrung/05_Praxis/02_Byteoperationen -- Registerbefehl-basiertes Programm
96_Arduino/22_Universal/02_LED_Leiste -- PORTB beim Arduino Micro
6. Hands on -- Die erste Übung
Aufgabe 1
|
96_Arduino/02_Taster
|
Aufgabe 2
|
96_Arduino/22_Universal/02_LED_Leiste -- PORTB beim Arduino Micro
void setup()
{
}
void loop()
{
DDRB = 255;
PORTB = 255;
}
Code 0-1: Testprogramm.
void setup()
{
}
void loop()
{
DDRB = 255;
PORTB = 1;
delay(100);
PORTB = 2;
delay(100);
PORTB = 4;
delay(100);
PORTB = 8;
delay(100);
PORTB = 16;
delay(100);
PORTB = 32;
delay(100);
PORTB = 64;
delay(100);
PORTB = 128;
delay(100);
}
Code 0-2: Lauflicht Musterlösung 2
void setup()
{
DDRB = 255;
PORTB = 255;
}
int x = 0;
void loop()
{
DDRB = 255;
PORTB = 1<<x;
x++;
x%=8;
delay(100);
}
Code 0-3: Lauflicht Musterlösung 2.
|
#2 Di, 31.03.2026
Themen diese Woche:
|
1. Quiz
|
2. Die Schildkröten des Walter Grey
|
zu 4. Quelle: Bundestag Einzelanfrage: Einzelfragen zurHalbleiterproduktion, Seite 10. Web 21.03.2023: https://www.bundestag.de/resource/blob/900450/25b9b36d92928f932b242efc8578386a/WD-5-004-22-pdf-data.pdf
Hersteller in Europa: NXP, ST, Infineon. Japan: Renesas. USA: Microchip.
3. Angaben zur Syntax von C/C++ bei der Mikrocontrollerprogrammierung
4. Basisregister für die Programmierung digitaler Ein- und Ausgänge
|
Verwendung der internen Pullup-Widerstände -- 40_Mikrocontroller/03_DigitalIO/02_Pullup_Widerstaende
Bitmasken für den Eingang -- 40_Mikrocontroller/03_DigitalIO/03_Bitmasken_Eingang
Bild 0-3: Schaltung.
BEISPIELPROGRAMME: Mit oberer Taste untere LED steuern:
void setup()
{
pinMode(11,OUTPUT);
//digitalWrite(11,HIGH);
pinMode(8,INPUT);
digitalWrite(8,HIGH);//Pullup
}
void loop()
{
if(digitalRead(8)==0)
digitalWrite(11,HIGH);
else
digitalWrite(11,LOW);
}
Code 0-4: Arduino-Befehls-Variante.
void setup()
{
//pinMode(11,OUTPUT);
DDRB = DDRB | 0b10000000; // PB7 auf 1 setzen
//pinMode(8,INPUT);
DDRB = DDRB & 0b11101111; // PB4 auf 0 setzen
//digitalWrite(8,HIGH);//Pullup
PORTB = PORTB | 0b00010000; // PB4 setzen, PULLUP
}
void loop()
{
if( (PINB & 0b00010000) == 0 )
PORTB = PORTB | 0b10000000;
else
PORTB = PORTB & 0b01111111;
}
Code 0-5: Register-Befehls-Variante.
5. Bitoperationen zur Manipulation von Mikrocontroller-Registern
& bitweise logische UND-Verknüpfung | bitweise logische ODER-Verknüpfung ~ NICHT (Invertieren aller Bits) << Links-Shift-Operator: x=1<<3; //Beispiel shiftet die 1 dreimal nach links, ergibt dezimal 8. >> Rechts-Shift-Operator: y=12>>1; //Beispiel shiftet die 12 einmal nach rechts, ergibt dezimal 6, entspricht Division durch 2.
Code 0-6: Liste mit Bitoperationen
Manipulation einzelner Bits bei Register-Befehlen durch Verwendung von Bitmasken
void setup()
{
//DDRB = 0b10000000; //PB7 als Ausgang konfigurieren.
//NUR PB7 setzen, ohne die anderen Bits zu verändern!:
DDRB = DDRB | 0b10000000; //Bitweises ODER-Verknüpfen eines Registers mit einer Bitmaske
}
void loop() {
PORTB = PORTB | 0b10000000; // 5 Volt auf Digitalpin 11 'rausschicken, bzw. auf PB7
delay(500);
PORTB = PORTB & 0b01111111;
delay(500);
}
Code 0-7: Nur höchstwertigstes Bit manipulieren (PB7), mit Hilfe von Bitmasken und Bitoperationen.
6. Umsetzung eines Lauflicht-Programms auf der Basis von Mikrocontroller-Registern in Kombination mit Bitoperationen
7. ÜBUNG
Aufgabe 1
Bauen Sie die angegebene Schaltung ohne den Entfernungssensor auf und testen die weiter oben besprochenen Programme:
Bild 0-4: Schaltung.
Aufgabe 2
|
Aufgabe 3
|
Di, 07.04.2026 -- keine Lehrveranstaltung wegen Ostern
#3 Di, 14.04.2026
Themen heute:
|
1. Lösungen zur Fussgängerampel-Aufgabe
2. Bussysteme
Bussysteme -- 40_Mikrocontroller/06_UART/01_Bussysteme
3. Die UART Schnittstelle
UART - Universal Asynchronous Receiver Transmitter -- 40_Mikrocontroller/06_UART
UART -- 40_Mikrocontroller/06_UART/02_UART
RS232 -- 40_Mikrocontroller/06_UART/03_RS232
Hardware - Verbinden eines ATmega32 mit einem PC über die RS232 Schnittstelle -- 40_Mikrocontroller/06_UART/04_Hardware
Senden -- 40_Mikrocontroller/06_UART/05_Senden
4. Übung Datenaustausch zwischen Mikrocontroller und Arduino
|
|
Damit die Übetragung nicht zu schnell läuft, wird die delay-Funktion benötigt.
Code 0-8: Im Unterricht entwickeltes Programm "Hallo!".
Code 0-9: Im Unterricht entwickeltes Programm LED Fernsteuerung.
AUFGABE 1
|
| Schalter PB5 geschlossen | Schalter PB4 geschlossen | an PC senden |
|---|---|---|
| NEIN | NEIN | 0 |
| NEIN | JA | 1 |
| JA | NEIN | 2 |
| JA | JA | 3 |
Tabelle 0-1: Binäre Kodierung der Schalterzustände.
|
AUFGABE 2
|
AUFGABE 3
|