Einführung in die Programmierung von Micro

Werbung
Einführung in die Programmierung von Micro-Controllern
Einführung in die Programmierung von
Micro-Controllern
Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
3
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
4
Einführung in die Programmierung von Micro-Controllern
Ziele des Kurses
- Verstehen (an einem Beispiel), was Micro-Controller sind
- Erkennen der Möglichkeiten, die ein Micro-Controller bietet
- Verstehen der Werkzeuge zur Programmierung von Micro-Controllern
- Planen und Umsetzen von Projekten mit Micro-Controllern (als Software)
- Begeisterung wecken, um selbstständig eigene Projekte zu entwickeln
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
5
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
6
Einführung in die Programmierung von Micro-Controllern
Zielgruppe des Kurses
- Elektronikbastler und Hobbyelektroniker
- Schon mal einen Lötkolben in der Hand gehabt und was kleineres als ein
Fallrohr gelötet ?
- Schon mal einen CONRAD- oder ELV-Bausatz zusammengelötet ?
- Schon mal eine elektronische Schaltung selbst entworfen und gebaut ?
- Schon mal eine Platine selbst hergestellt ?
- Programmiererfahrung (Basic, C, VB) ?
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
7
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
8
Einführung in die Programmierung von Micro-Controllern
Was ist ein PIC ?
Synonym: MCU
PIC = Programmable Interface Controller
MCU = Micro Controller Unit
PICs sind kleine Computer
Eigenschaften von Computern:
• Programmspeicher
• Datenspeicher
• Schnittstellen zur Umwelt
• Benötigen einen Takt zur Steuerung der internen Abläufe
• Verhalten hängt weitgehend von der Programmierung ab
PICs sind hochgradig spezialisierte Computer der Firma Microchip mit reduziertem
Befehlssatz (RISC-Prozessoren) zur Kommunikation mit der Umwelt über Aktoren und
Sensoren
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
9
Einführung in die Programmierung von Micro-Controllern
Gegenüberstellung PIC16F54 und Intel i7-Prozessor/PC
Intel i7 (64 bit-Prozessor): :
PIC16F54 (8 bit-Prozessor):
Faktor
Taktfrequenz: 2,6 – 3,6 GHz
Taktfrequenz: max. 20 MHz
150
Cachespeicher: 8 Mbyte
Programmspeicher: 512 Byte
15000
Arbeitsspeicher: 4 – 16 Gbyte
Arbeitsspeicher: 25 Byte
300 Mio
Leistung: - 130 Watt
Leistung: wenige mWatt
13000.
Anzahl Pins: > 1000
Anzahl Pins: 18
50
Preis: 200 – 1000 €
Preis: < 2 €
250
Sehr viel Peripherie erforderlich
Kaum Peripherie erforderlich
Anzahl Maschinenbefehle: > 1000
Anzahl Maschinenbefehle: 33
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
30
10
Einführung in die Programmierung von Micro-Controllern
Verwendung von PICs
PICs werden in sehr vielen elektronischen Geräten (z.B. Waschmaschinen,
Telefone) eingesetzt, wo eine begrenzte Menge von Eingangssignalen
(Sensoren) Einfluß auf eine begrenzte Mengen von Ausgangszuständen
(Aktoren) hat.
Sensoren, z. B.:
Aktoren, z.B.:
• Tasten
• Lämpchen
• Temperatur
• Displays
• Licht
• Summer
• Signale von anderen Geräten
• Signale zu anderen Geräten
PICs sind billig, klein, stromsparend, brauchen wenig externe Hardware und
lassen sich rasch an geänderte „Umgebungsbedingungen“ anpassen
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
11
Einführung in die Programmierung von Micro-Controllern
PIC-Familien
- 8 bit Controller
- 16 bit Controller
- 32 bit Controller
- Signalprozessoren
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
12
Einführung in die Programmierung von Micro-Controllern
Exkurs: Bits und Bytes
Bit:
- kleinste digitale Informationseinheit
- nur zwei Zustände:
- ein/aus
- 1/0
- Spannung/keine Spannung
- high/low
- Konvention bei Spannungen: 0/aus/low = 0 Volt; 1/ein/high = + 5 Volt
Mit einem Bit können maximal zwei verschiedene Dinge dargestellt (codiert)
werden
Was dargestellt wird ist reine Definitionssache
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
13
Einführung in die Programmierung von Micro-Controllern
Bits und Bytes
Byte:
- besteht aus einer Gruppe von 8 Bit
- kann 2 ^8 (2 hoch 8 = 256) Zustände
codieren
- Darstellung einer Gruppe von
Schaltzuständen
- Darstellung von Zahlen
- Darstellung von Buchstaben
Auch negative Zahlen können
dargestellt werden. Man verwendet
das sog. Zweier-Komplenent (alle Bits
werden negiert, das höchste Bit ist das
Vorzeichen)
Version 1.0; 21.06.2011; © Dr. Harald Meißner
„0“ = 0000 0000
„1“ = 0000 0001
„2“ = 0000 0010
„16“ = 0001 0000
„128“ = 1000 0000
„255“ = 1111 1111
„0“ =
„1“ =
„127“ =
„-1“ =
„-128“=
0000 0000
0000 0001
0111 1111
1111 1111
1000 0000
Einführung in die Programmierung von Micro-Controllern
14
Einführung in die Programmierung von Micro-Controllern
PIC-Familien
8 bit Controller:
- Baseline
- wenige Eigenschaften (Timer)
- max. 5 MIPS (Megainstructions per second: 5 Mio Befehle pro Sek.)
- Bezeichnung: PIC10F2xx, PIC12F(C)5xx, PIC16F(C)5x
- Befehlsbreite: 12 bit (Adressraum: 2^12 = 4 kB (4096 byte))
- Gehäuse: 6 – 40 Pins
- 33 Befehle
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
15
Einführung in die Programmierung von Micro-Controllern
PIC-Familien
8 bit Controller:
- Midrange
- wenige Eigenschaften (LCD-Controller, USB 1.1, Interrupts, Multi-A/DWandler, PWM, Komparatoren)
- max. 5 MIPS (Megainstructions per second: 5 Mio Befehle pro Sek.)
- Bezeichnung:, PIC12F(C)6xx, PIC16F(C)xxx
- Befehlsbreite: 14 bit (Adressraum: 16 kB)
- Gehäuse: 8 – 64 Pins
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
16
Einführung in die Programmierung von Micro-Controllern
PIC-Familien
8 bit Controller:
- High Performance Enhanced
- Spezial-Features (USB 2.0, Ethernet, Hardware-Multiplizierer,
I2C-Bus, EEPROM)
- max. 10 MIPS
- Bezeichnung: PIC18F(C)xxx
- Befehlsbreite: 16 bit (Adressraum: 64 kB)
- Gehäuse: 18 – 100 Pins
- 79 Befehle
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
17
Einführung in die Programmierung von Micro-Controllern
PIC-Familien
16 bit Controller:
- max. 16 MIPS
- Befehlsbreite: 24 bit (Adressraum: bis 16 kB)
- Gehäuse: 20 – 80 Pins
- 2 Volt Spannungsversorgung
16 bit Signalprozessoren:
- max. 30 MIPS
- Befehlsbreite: 24 bit (Adressraum: bis 16 kB)
- Gehäuse: 20 – 80 Pins
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
18
Einführung in die Programmierung von Micro-Controllern
PIC-Familien
32 bit Controller:
- max. 80 MIPS
- Befehlsbreite: 24 bit (Adressraum: bis 512 kB)
- Gehäuse: 20 – 80 Pins
Weitere Details:
http://www.sprut.de/electronic/pic/18f.htm
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
19
Einführung in die Programmierung von Micro-Controllern
PIC-Bauformen (Beispiele)
DIL (Dual-In-Line) 6 – 40 Pins
Rastermass. 2,54 mm (1/10 “)
Vorteil: es gibt Fassungen
SO (Small Outline) 8 – 28 Pins
Rastermass. 1,27 mm (1/20 “)
Vorteil: geringer Raumbedarf
TQFP (Thin Quad Flat Pack )
Rastermass. 1,27 mm (1/20 “)
Weitere Details:
http://de.wikipedia.org/wiki/Chipgeh%C3%A4use#Bauformen_f.C3.BCr_Surface_
Mounted_Device_.28SMD.29
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
20
Einführung in die Programmierung von Micro-Controllern
Voraussetzungen zum Umgang mit PICs
1. Hardware:
-
Programmiergerät (z.B. PICKIT 3)
-
Platinen, ICs, Bauteile
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
21
Einführung in die Programmierung von Micro-Controllern
Realisierung von Hardware
1. Entwicklungsboards
2. Pin-Boards
3. Lochrasterplatinen
4. kupferkaschierte
Lochrasterplatinen
5. kupferkaschierte
Streifenrasterplatinen
Rastermaß:
2,54 mm = 1/10 “ (Zoll)
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
22
Einführung in die Programmierung von Micro-Controllern
Realisierung von Hardware
6. Platinenservice
Verschiedene Anbieter
7. Selbstbau „gedruckter“ Schaltungen
z.B. TARGET 3001 Discover
Schaltplan
3D-Ansicht
Platine
•
Schaltplan designen
Freeware:
•
Schaltplan zeichnen
•
bis 250 Pins
•
Bauteile virtuell platzieren
•
doppelseitige Platinen
•
Platine „routen“
•
Belichtungsfolie erstellen
•
fotobeschichtete Platine belichten
•
Foto-Platine entwickeln
•
Platine ätzen
•
Platine mit Lötlack behandeln
•
Platine bohren
Version 1.0; 21.06.2011; © Dr. Harald Meißner
http://server.ibfriedrich.com/wiki/i
bfwikide/index.php?title=Dow
nload
Einführung in die Programmierung von Micro-Controllern
23
Einführung in die Programmierung von Micro-Controllern
Realisierung von Hardware
Grundausstattung:
•
Seitenschneider
•
3,5 stelliges Digitalmultimeter
•
Krokodilklemmen
•
Feinlötstation regelbar,
potenzialfrei, ggf. SMD-Lötkolben
•
Vakuumentlötpumpe, Lötsauglitze
•
Sortiment Widerstände,
Kondensatoren und andere Bauteile
•
Rolle Lötzinn (bleifrei) 1 mm, 0,5
mm
•
Experimetierboard (Steck-Board)/
Optional:
Testboards
•
Frequenzzähler
•
Klingeldraht
•
Oszilloskop
•
Bohrmaschine mit Ständer
•
Labornetzteil (2 x 0 – 30 V/2 A)
•
Bohrer
•
Bestückungsrahmen
•
Leuchtlupe
•
1 – 10 mm
•
0,7 mm, 0,8 mm, 1,3 mm
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
24
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
25
Einführung in die Programmierung von Micro-Controllern
Voraussetzungen zum Umgang mit PICs
1. Hardware
2. Software
- Programmerstellung (auf PC)
- Assembler
- Cross-Compiler (C-Compiler)
- Programmiersoftware, um das Programm in den PIC zu laden
- Debugger zur Fehlerbehebung
- als Hardware
- als Software (Simulator)
 Entwicklungsumgebung (z.B. MPLAB von Microchip)
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
26
Einführung in die Programmierung von Micro-Controllern
Exkurs: Einführung in die integrierte
Entwicklungsumgebung MPLAB
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
27
Einführung in die Programmierung von Micro-Controllern
PIC16F54
Gehäuse:
DIL 18
Takt:
bis 20 MHz
Programmspeicher:
512 Byte
Datenspeicher:
25 Byte
Spannungsversorgung:
2 – 5.5 V
Strom pro Ausgang:
max. 20 mA
Strom Summe:
max. 200 mA
Timer:
1 x 8 bit (+ Prescaler bis 1:256)
Power-on-Reset:
ja
Watchdog:
ja
Sleep-Modus:
ja
In-Circuit-Programmierung:
ja
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
28
Einführung in die Programmierung von Micro-Controllern
PO
R
T
PO A1
R
O TA0
sz
1/
O Clk
sz
2/ In
VD Clk
O
D
, + ut
PO
5
V
R
TB
PO 7
/
R
TB IS
PO 6 / PC
IS DA
R
PC T
TB
C
PO 5
LK
R
TB
4
Die Pin-Konfiguration des PIC16F54
18
17
16
15
14
13
12
11
10
VDD,VSS: Spannungsversorgung
Osz1,2: Takterzeugung
PortA: 4 bit
PortB: 8 bit
T0CKI: Zähler-Eingang
~MCLR: Master-Clear (Reset)
active low !!!
Vpp, ISPCDAT, ISPCCLK:
PIC16F54
2
3
4
5
6
7
8
9
PO
R
T
PO A2
R
TA
T
Vp 0C 3
p
K
/~ I
M
C
VS LR
S,
PO 0 V
R
TB
PO 0
R
T
PO B1
R
T
PO B2
R
TB
3
1
Programmiergerätanschluss
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
Datenblatt:
http://ww1.microchip.com
/downloads/en/DeviceDo
c/41213D.pdf
29
Einführung in die Programmierung von Micro-Controllern
Die Takterzeugung
Quarzoszillator
Vorteil:
- Sehr stabile Frequenz
OSC1/Pin 16
OSC2/Pin 15
2 x 15 – 33 pF
Kondensatoren
Quarz
Nachteil:
- etwas mehr Aufwand
0,3 – 20 MHz
Vorteil:
RC-Oszillator
- Einfach zu realisieren
- Kondensator kann meist
2 – 12 kOhm
Nachteil:
- Frequenz hängt von
OSC1/Pin 16
15 – 33 pF Kondensator
Version 1.0; 21.06.2011; © Dr. Harald Meißner
weggelassen werden
Einführung in die Programmierung von Micro-Controllern
einigen Parametern ab
30
Einführung in die Programmierung von Micro-Controllern
Bits und Bytes, Rechenregeln UND, ODER, NICHT
Rechenregeln für Bits
Wahr UND Wahr
= Wahr
Wahr ODER Wahr = Wahr
Wahr UND Falsch = Falsch
Wahr ODER Falsch = Wahr
Falsch UND Wahr
Falsch ODER Wahr = Wahr
= Falsch
Falsch UND Falsch = Falsch
Falsch ODER Falsch = Falsch
A&B
NICHT Wahr
A|B
= Falsch
NICHT Falsch = Wahr
!A
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
31
Einführung in die Programmierung von Micro-Controllern
Bits und Bytes, Rechenregeln UND, ODER, NICHT
Rechenregeln für Bytes
Bytes und andere Konstrukte werden bitweise berechnet
UND
ODER
0011 1100
0011 1100
& 1010 1101
| 1010 1101
= 0010 1100
= 1011 1111
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
NICHT
~ 0011 1100
= 1100 0011
32
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
33
Einführung in die Programmierung von Micro-Controllern
Elektrotechnische Grundgrößen
Größe
Elektr.
Symbol
U
Einheit
Berechnung
V (Volt)
„Grundeinheit“
Strom
I
A (Amperé)
Grundeinheit
Widerstand
R
Ω (Ohm)
1 Ω = 1 V/A
Leistung
P
W (Watt)
1 W = 1 V*A
Frequenz
f
Hz (Hertz)
1 Hz = 1/sec
Kapazität
C
F (Farad)
1 F = 1 A*s/V
Spannung
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
34
Einführung in die Programmierung von Micro-Controllern
Das Ohmsche Gesetz
R=U/I
(Widerstand = Spannung / Strom)
Spannungen sind immer Spannungsdifferenzen: U = U2 – U1
Spannung in V (Volt)
Strom in A (Ampere)
Widerstand in Ω (Ohm)
U1
R
U2
I
Wenn an einem Widerstand von 1 Ω eine Spannungsdifferenz von 1 V anliegt, so
fließt durch ihn ein Strom von 1 A
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
35
Einführung in die Programmierung von Micro-Controllern
Reihen- und Parallelschaltung von Widerständen
Reihenschaltung
R1
R2
Beispiel:
R3
R1 = 100 Ohm
R2 = 200 Ohm
Rgesamt = R1 + R2 + R3 + ...
R3 = 300 Ohm
Igesamt = I1 = I2 = I3
Rgesamt = 600 Ohm
Parallelschaltung
R1
Beispiel:
R2
R1 = 100 Ohm
R3
R2 = 200 Ohm
1/Rgesamt = 1/R1 + 1/R2 + 1/R3 + ...
Ugesamt
= U1 = U2 = U3
Version 1.0; 21.06.2011; © Dr. Harald Meißner
R3 = 300 Ohm
Rgesamt = 55 Ohm
Einführung in die Programmierung von Micro-Controllern
36
Einführung in die Programmierung von Micro-Controllern
Der Spannungsteiler
Uaus = UEin * R2 / (R1 + R2)
Grenzbetrachtung für R2:
Kurzschluss: R2 = 0  Uaus = 0
R1
Leitung unterbrochen: R2 = ∞ :
Uaus = Uein
Uein
Beispiel:
R2
Uaus
Uein = 5,0 V
R1 = 390 Ohm
R2 = 560 Ohm
 Uaus = 2,95 V
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
37
Einführung in die Programmierung von Micro-Controllern
Beschaltung von Leuchtdioden (LED = Light Emitting Diode)
A
K
R
VorschaltWiderstand
LED
- LEDs leuchten nur, wenn die Spannung and der Anode um die Durchlassspannung UD höher als an der Kathode ist
- UD ist abhängig vom Halbleitermaterial: rot, gelb, grün: ca. 1,5 – 2 V,
blau: 2,5 V
- normale LEDs leuchten bei einem Strom von 5 – 20 mA
- „low current“ LEDs leuchten ab 0,5 – 1 mA
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
38
Einführung in die Programmierung von Micro-Controllern
Berechnung von LED-Vorschaltwiderständen:
R = (U – UD)/ILED
U:
Spannung, an die die Kombination LED + Vorschaltwiderstand
angeschlossen ist
UD:
Durchlassspannung der LED
ILED:
Strom, mit der die LED betrieben werden soll
z.B.
U = 5 Volt, UD = 1,5 Volt, ILED = 10 mA (= 0,01 A)
 R = (5 V – 1,5 V) / 0,01 A = 350 Ohm
Norm-Widerstände der Reihe E12:  330 Ohm oder 390 Ohm
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
39
Einführung in die Programmierung von Micro-Controllern
Spannungs-/Stromverstärkung
+ 9 .. 50 V
npn -Transistor
Je nach
Bedarf
10 kOhm
Uein (vom PIC)
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Uaus
Mit Hilfe von Transistoren kann die
Ausgangsspannung eines PICs (3 – 5
V) und/oder der Ausgangsstrom (max.
20 mA) erhöht werden, z.B. um
Leistungsverbraucher (z.B.
Glühlampen) oder Relais (230 VGeräte) zu treiben.
ACHTUNG:
Diese Schaltung kehrt die
Spannungsverläufe um. Wenn die
Spannung am PIC hoch ist, ist die
Ausgangsspannung 0 und umgekehrt.
Einführung in die Programmierung von Micro-Controllern
40
Einführung in die Programmierung von Micro-Controllern
Beschaltung von PIC-Ausgängen
Beschaltung „active high“
LED leuchtet, wenn der PIC-Ausgang
den Wert „1“ einnimmt (= + 5 V)
PIC-Ausgang
GND
+5V
Beschaltung „active low“
PIC-Ausgang
Version 1.0; 21.06.2011; © Dr. Harald Meißner
LED leuchtet, wenn der PIC-Ausgang
den Wert „0“ einnimmt (= 0 V,
Massepotenzial)
Einführung in die Programmierung von Micro-Controllern
41
Einführung in die Programmierung von Micro-Controllern
Beschaltung von PIC-Eingängen
Wenn der Schalter geschlossen
wird, geht der Eingang auf „0“
PIC-Eingang
+5V
PIC-Eingang
Wenn der Schalter geschlossen
wird, geht der Eingang auf „1“
Wie ist der Zustand des Eingangs, wenn der Schalter offen ist ??
Der Zustand ist, bedingt durch die C-MOS Innenstruktur des PICs
undefiniert. Er kann „0“ oder „1“ sein. Das muß vermieden werden !!
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
42
Einführung in die Programmierung von Micro-Controllern
Beschaltung von PIC-Eingängen
+5V
„Pull-up“-Widerstand:
1 – 18 kOhm
Wenn der Schalter geschlossen wird,
geht der Eingang auf „0“.
Wenn der Schalter offen ist, geht der
Eingang definiert auf „1“
PIC-Eingang
PIC-Eingang
„Pull-down“-Widerstand:
+5V
1 – 18 kOhm
Wenn der Schalter geschlossen wird,
geht der Eingang auf „1“
Wenn der Schalter offen ist, geht der
Eingang definiert auf „0“
Da der Eingangswiderstand des PICs sehr hoch ist, ist der tatsächliche Wert
des pull-up/pull-down-Widerstands nicht so entscheidend
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
43
Einführung in die Programmierung von Micro-Controllern
Kodierung von Axial-Widerständen
Widerstandswerte
0:
schwarz
1. Ring: 1. Zahl
der E12-Reihe:
1:
braun
2. Ring: 2. Zahl
10
2:
rot
3. Ring: Anzahl der Nullen
12
3:
orange
15
4:
gelb
18
5:
grün
22
6:
blau
27
7:
violett
33
8:
grau
39
9:
weiß
47
4. Ring Toleranz
Beispiel:
= 4 7 00; 4,7 kOhm
= 1 0 000; 10 kOhm
http://de.wikipedia.org/wiki/Wide
rstandsfarbcode
56
68
82
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
44
Einführung in die Programmierung von Micro-Controllern
Kodierung von SMD-Widerständen
SMD: Surface Mounted Device
1. Zahl: 1. Zahl
Bauteil wird auf der Kupferseite der
Platine verlötet
2. Zahl: 2. Zahl
3. Zahl: Anzahl der Nullen
Beispiel:
205 = 2 0 00000; 2 MOhm
562 = 5 6 00; 5,6 kOhm
http://de.wikipedia.org/wiki/Widerst
andsfarbcode
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
45
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
46
Einführung in die Programmierung von Micro-Controllern
Realisierung von Projekten
Konzepte:
Individuelles Design für jede Anwendung
• optimal gestaltbar (Platine, Anschlüsse, Gehäuse, Stromversorgung)
• aufwändiger Designprozess
• Aufwand für Test und Fehlerbeseitigung
Modulbauweise:
• Design von kleineren Einheiten ist einfacher und schneller
• weniger Fehlermöglichkeiten
• weniger flexibel
• Fokus auf Gestaltung der Peripherie
• geringerer Testaufwand
• Wiederverwendbarkeit/leichter reparierbar
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
47
Einführung in die Programmierung von Micro-Controllern
Realisierung von Projekten
Spannungsversorgung:
Externe Spannungsversorgung (Steckernetzteil)
- Universalnetzteil
ACHTUNG: diese Netzteile sind i.d.R. auf eine bestimmte Last ausgelegt
falls die Last geringer ist, ist die sog. Leerlaufspannung höher
PICS werden bei Spannungen > 5,5 V zerstört !!
Bei Spannungen > 8 V können Spannungsregler verwendet werden
Es gibt Positiv- und Negativregler
Vorteil: kurzschluss- und temperaturfest
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
48
Einführung in die Programmierung von Micro-Controllern
Realisierung von Projekten
Positivregler; (µA, LM) 78(L,M, S)xx; xx = 05,06,08,09,12,15,18, 24 (Volt)
Stromlast
TO-220-Gehäuse:
Version 1.0; 21.06.2011; © Dr. Harald Meißner
1A
M: TO-220-Gehäuse:
0,5 A
L: TO-92-Gehäuse:
0,1 A
S: TO-220-Gehäuse:
2A
Einführung in die Programmierung von Micro-Controllern
49
Einführung in die Programmierung von Micro-Controllern
Realisierung von Projekten
ACHTUNG: auf Verlustleistung achten
Ui:
Eingangsspannung
Ua:
Ausgangsspannung
Imax:
maximaler Ausgangsstrom
PVerlust = (Ua – Ui) * Imax
Beispiel:
Ui:
20 V
Ua:
5V
Imax:
800 mA
PVerlust = (20 V – 5 V) * 0,8 A = 12 W  Kühlung nicht vergessen
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
50
Einführung in die Programmierung von Micro-Controllern
Realisierung von Projekten
Negativregler; (µA, LM) IC 79(L)xx; xx = 05,06,08,09,12,15,24 (Volt)
7805
Version 1.0; 21.06.2011; © Dr. Harald Meißner
7905
Einführung in die Programmierung von Micro-Controllern
51
Einführung in die Programmierung von Micro-Controllern
Realisierung von Projekten
Spannungsversorgung:
Externe Spannungsversorgung (USB-Steckernetzteil)
- günstig, z.B. von einem alten Handy
- sehr klein
- Hohe Stromlast (ca. 500 mA)
- hat bereits eine Spannung von 5 V
ACHTUNG: manchmal etwa höher (5,7 – 5,8 V):  Diode
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
52
Einführung in die Programmierung von Micro-Controllern
Realisierung von Projekten
Spannungsversorgung:
Anschluss von externe Spannungsversorgungen:
Klinkensteckverbindung 3,5 mm
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
53
Einführung in die Programmierung von Micro-Controllern
Realisierung von Projekten
Spannungsversorgung:
Anschluss von externe Spannungsversorgungen:
USB-Buchsen:
USB-A
Version 1.0; 21.06.2011; © Dr. Harald Meißner
USB-B
Einführung in die Programmierung von Micro-Controllern
USB-Mini
54
Einführung in die Programmierung von Micro-Controllern
Realisierung von Projekten
Spannungsversorgung:
Interne Spannungsversorgung (230 V) mit Trafo:
Vorteil: Spannungsversorgung dem Gerät zugeordnet, ggf. viel Leistung
Nachteil: relativ teuer (Trafo), großer Platzbedarf, dickes Kabel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
55
Einführung in die Programmierung von Micro-Controllern
Realisierung von Projekten
Spannungsversorgung:
Interne Spannungsversorgung (230 V) ohne Trafo:
Vorteil: Spannungsversorgung dem Gerät zugeordnet
Nachteil: kleine Leistung (max. 100 mA), günstig, gefährlich
Interne Spannungsversorgung (230 V) ohne Trafo:
„entkerntes“ Schaltnetzteil (z.B. von altem Handy)
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
56
Einführung in die Programmierung von Micro-Controllern
Realisierung von Projekten
Spannungsversorgung:
Interne Spannungsversorgung:
- Batterie (z.B. 3 x AAA Batterie = 3 x 1,5 V = 4,5 V
- Akku (z.B. 4 x AAA Akku = 4 x 1,2 V = 4,8 V
- 9 V Block (Spannungsregler erforderlich)
- Lithiumbatterie (z.B. 2 x CR2016 = 2 x 3,0 V = 6,0 V  Diode: 5,3 V)
- Gold Cap (Speicherkondensator), reicht je nach Strombedarf ca. 10 min
Anschluss an externe Stromversorgung erforderlich)
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
57
Einführung in die Programmierung von Micro-Controllern
Realisierung von Projekten
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
58
Einführung in die Programmierung von Micro-Controllern
Realisierung von Projekten
Konzept: PIC-Basisplatine, die mit verschiedener Peripherie verbunden
werden kann
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
59
Einführung in die Programmierung von Micro-Controllern
Realisierung von Projekten
Konzept: PIC-Basisplatine, die mit verschiedener Peripherie verbunden
werden kann
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
60
Einführung in die Programmierung von Micro-Controllern
Vorprojekt: Hardwaretest
Vor Projektbeginn sollte man die Hardware testen
1. visuelle Inspektion (mit Lupe): Kurzschlüsse, Unterbrechungen
kalte Lötstellen
2. Suspekte Leitungen durchmessen:
-
haben alle Anschlüsse Kontakt ?
-
gibt es Verbindung zwischen benachbarten Anschlüssen
3. bei LEDs: Spannung anlegen; LEDs verpolt ?
4. bei Platinen mit ICs: ohne ICs Spannung anlegen
liegt die Spannung an den richtigen Pins der ICs ?
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
61
Einführung in die Programmierung von Micro-Controllern
Vorprojekt: Hardwaretest
Test der PIC-Basisplatine:
-
überprüfen, ob die richtige Oszillatorkonfiguration verdrahtet ist
-
IC einbauen
-
MPLAB: leeres Projekt mit dem richtigen PIC anlegen
-
PICKIT 3 an den ICSP anschließen
-
mit dem PICKIT 3 die Spannungsversorgung herstellen, falls
Stromverbrauch nicht zu hoch ist, ansonsten externe Spannungsversorgung
anschließen
-
Leertest bzw. Lesevorgang durchführen, falls Fehlermeldung erscheint, Pins
des ICSP und Verbindung mit PIC kontrollieren (~MCLR über Widerstand an
+ 5 V?, PGC und PGD verwechselt, Spannung am PIC vorhanden ?)
-
Falls keine Fehlermeldung erscheint, ist der PIC prinzipiell einsatzbereit
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
62
Einführung in die Programmierung von Micro-Controllern
Vorprojekt: Hardwaretest
Test der PIC-Basisplatine:
-
erstellen eines Testprogramms: alle Pins ein- und ausschalten
-
Anschluss von LEDs an die Ports („Port-Indikator“)
-
beobachten, ob alle LEDs blinken
Port-Indikator
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
63
Einführung in die Programmierung von Micro-Controllern
Vorprojekt: Hardwaretest
Hardware: Portindikator
5mm LED
SMD LED
3mm LED
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
64
Einführung in die Programmierung von Micro-Controllern
Vorprojekt: Hardwaretest
Lerninhalt:
-
Einstellen der PIC-Konfigurationsbits
-
Programmieren eines Ports als Ausgang
-
Ausgabe von Zahlenwerten an den Ausgabeport
-
Software-Verzögerung (Delay)
-
Grundstruktur eines HI-TECH-C-Programms
-
-
Bedeutung und Struktur der Basisroutine „main“
-
Verwendung von Headerfiles
-
Verwendung von Unterprogrammen
-
Verwendung von Variablen
der Watchdog-Timer
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
65
Einführung in die Programmierung von Micro-Controllern
Exkurs: Grundlagen der C-Programmierung
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
66
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
67
Einführung in die Programmierung von Micro-Controllern
Projekt: Lauflicht
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
68
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
69
Einführung in die Programmierung von Micro-Controllern
Projekt: Ampelschaltung
Steuerung einer Ampelanlage an einer Kreuzung mit Fußgängerampel
Keine manuellen Eingriffe
4 PKW-Ampeln
4 Fußgängerampeln
Jeweils 2 Ampeln sind im selben Zustand  Betrachtung von
2 PKW- und 2 Füßgängerampeln
Wieviele Zustände hat das System ?
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
70
Einführung in die Programmierung von Micro-Controllern
Projekt: Ampelschaltung
Zustand 1
Zustand 2
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Zustand 3
Zustand 4
Einführung in die Programmierung von Micro-Controllern
71
Einführung in die Programmierung von Micro-Controllern
Projekt: Ampelschaltung
Lerninhalt:
-
Ausgabe einzelner Bits an den Ausgabeport
-
Variable Software-Verzögerung
-
Verwendung von Unterprogrammen mit Parametern
-
Verwendung von Variablen
-
Grundüberlegungen zum Hardware-Design
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
72
Einführung in die Programmierung von Micro-Controllern
Projekt: Ampelschaltung
Wieviele Ausgänge braucht man, um diese Schaltung zu realisieren ?
Maximal: 10 (für jede Lampe ein Ausgang)
Geht es mit weniger ?
Minimal: 6
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
73
Einführung in die Programmierung von Micro-Controllern
Projekt: Ampelschaltung
Zustand 1
Zustand 2
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Zustand 3
Zustand 4
Einführung in die Programmierung von Micro-Controllern
74
Einführung in die Programmierung von Micro-Controllern
Projekt: Ampelschaltung
+5V
Schaltung zum wechselseitigen
Invertieren
PICAusgang
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
75
Einführung in die Programmierung von Micro-Controllern
Projekt: Ampelschaltung
Je weniger Ausgänge man benutzt, desto größer wird der Designaufwand für
die Peripherie
Software ist einfacher zu realisieren als Hardware
Design ist meistens ein Kompromiss
Wir verwenden 8 Ausgänge
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
76
Einführung in die Programmierung von Micro-Controllern
Projekt: Ampelschaltung
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
77
Einführung in die Programmierung von Micro-Controllern
Projekt: Ampelschaltung
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
78
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
79
Einführung in die Programmierung von Micro-Controllern
Projekt: Nachlaufsteuerung (Treppenlichtautomat)
Bisherige Projekte erlauben keine Interaktion. Ein festgelegtes Programm läuft
ab und kann nicht verändert werden
Aufgabenstellung:
- durch Drücken einer Taste wird das Treppenlicht eingeschaltet
- nach einer programmierten Zeit wird es wieder ausgeschaltet
- wenn während der Licht-Phase die Taste erneut gedrückt wird, soll die
gesamte Zeitspanne nochmal zur Verfügung stehen
- mit einer Programmiertaste kann die Zeitdauer eingestellt werden
- Drücken der Programmiertaste startet die Zeitmessung
- nochmaliges Drücken beendet die Zeitmessung
- die Zeitdifferenz dazwischen ist die neue Zeitspanne
- nach Stromausfall wird eine voreingestellte Zeitspanne verwendet
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
80
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
81
Einführung in die Programmierung von Micro-Controllern
Projekt: Digital-Analog-Wandler/PWM-Modulator
+5 Volt
0 Volt
+5 Volt
0 Volt
+5 Volt
0 Volt
Tastverhältnis (Duty Cycle): Verhältnis von High/Low-Zustand
PWM: Pulsweitenmodulation (Pulse Width Modulation)
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
82
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
83
Einführung in die Programmierung von Micro-Controllern
Projekt: Würfel
Simulation eines Würfels, der langsam ausrollt und danach eine Zufallszahl
anzeigt
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
84
Einführung in die Programmierung von Micro-Controllern
Projekt: Würfel
Erzeugung von Zufallszahlen:
Computer sind „deterministische“ Systeme
Der Ablauf eines Programms ist genau festgelegt
Die Startwerte aller Register nach einem Reset oder Neustart sind festgelegt
Ohne weitere Maßnahmen kann der PIC aus sich heraus
keine Zufallszahlen erzeugen !!
Man braucht „zufällige“ Ereignisse oder Zustände, die nicht vom Grundzustand
des Computers abhängig sind
Die Zeit zwischen zwei Tastatureingaben ist mehr oder weniger zufällig
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
85
Einführung in die Programmierung von Micro-Controllern
Projekt: Würfel
Zustand 1
Zustand 4
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Zustand 2
Zustand 5
Einführung in die Programmierung von Micro-Controllern
Zustand 3
Zustand 6
86
Einführung in die Programmierung von Micro-Controllern
Projekt: Würfel
Version 1: Anzahl benötigte Ausgänge:
4
Anzahl Eingänge:
1
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
87
Einführung in die Programmierung von Micro-Controllern
Projekt: Würfel
Version 2: Anzahl benötigte Ausgänge:
7
Anzahl Eingänge:
1
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
88
Einführung in die Programmierung von Micro-Controllern
Projekt: Würfel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
89
Einführung in die Programmierung von Micro-Controllern
Projekt: Würfel
Vorteil Version 2:
- Gleiche Helligkeit aller LEDs
- keine Lötbrücke erforderlich
Nachteil Version 2:
- etwas mehr Programmieraufwand (zu vernachlässigen)
- 7 Ausgänge erforderlich (spielt hier keine Rolle)
- mehr Bohraufwand (keine SMD-Widerstände)
Realisierung beider Versionen über „Hardware-Treiber“ (Header-Files)
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
90
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
91
Einführung in die Programmierung von Micro-Controllern
Projekt: Lottozahlen-Generator
Erzeugung einer Zufallszahl zwischen 1 und 49 und deren Darstellung in einer
Anzeige
Version 0: 49 LEDs  49 Ausgänge !!
Version 1: als Zahlen (zweistellige Siebensegmentanzeige)
Version 2: getrennte Darstellung von Zehnern und Einern (14 LEDs) mit einer
LED-Matrix
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
92
Einführung in die Programmierung von Micro-Controllern
Projekt: Lottozahlen-Generator Version 1
Siebensegmentanzeige
Schematische Darstellung
von Zahlen mit sieben
entsprechend
angeordneten Segmenten
(+ ggf. Dezimalpunkt)
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
93
Einführung in die Programmierung von Micro-Controllern
Projekt: Lottozahlen-Generator Version 1
Zur Darstellung der Zahlen von 1 – 49 werden 2 Anzeigen benötigt
Wieviele Ausgänge werden benötigt ?
2 x 7 = 14 ???
Ansteuerung von Anzeigen im Multiplexverfahren
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
94
Einführung in die Programmierung von Micro-Controllern
Projekt: Lottozahlen-Generator Version 1
Siebensegmentanzeige; technische Realisierung
Anzeige mit gemeinsamer
Anode oder Kathode
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
95
Einführung in die Programmierung von Micro-Controllern
Projekt: Lottozahlen-Generator Version 1
Siebensegmentanzeige; Multiplex ; technische Realisierung
Vorteile:
- Weniger Ausgänge
- meist einfacheres
Schaltungsdesign
Nachteile:
- dynamische Ansteuerung
Ansteuerung:
- Ansteuerung ist
Hauptprozess
- Segmentinformation
- Stelleninformation
- Anzeige ist dunkler
- über den gemeinsamen
Anschluss fließt viel Strom
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
96
Einführung in die Programmierung von Micro-Controllern
Projekt: Lottozahlen-Generator Version 1
Bei Anzeige der Zahl 8 leuchtet jedes Segment
Bei einem Strom von 10 mA pro Segment fließen also über den gemeinsamen
Anschluss 70 mA
Ein PIC-Anschluss kann nur 20 mA liefern
 Stromverstärkung
+5V
npn-Transistor
in Emitterschaltung
Spannung an
Basis = High:
LEDs leuchten
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
+5V
pnp-Transistor
in Kollektorschaltung
Spannung an
Basis = Low:
LEDs leuchten
97
Einführung in die Programmierung von Micro-Controllern
Projekt: Lottozahlen-Generator
Platine
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
98
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
99
Einführung in die Programmierung von Micro-Controllern
Projekt: Lottozahlen-Generator Version 2
Anzeige über eine LED-Matrix
10
Zehner
20 30 40
= 36
Einer
0
1
2
3
4
5
6
7
8
9
-I/Os:
-10 + 2 Multiplexausgänge = 12
-1 Taster
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
100
Einführung in die Programmierung von Micro-Controllern
Projekt: Lottozahlen-Generator Version 2
Anzeige über eine LED-Matrix
platzsparender und
einfacher zu routen
Zehner
Einer 0 - 4
= 36
Einer 5 - 9
I/Os
- 5 + 3 Multiplexausgänge = 8
- 1 Taster
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
101
Einführung in die Programmierung von Micro-Controllern
Projekt: Lottozahlen-Generator Version 2
LED-Matrix
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
102
Einführung in die Programmierung von Micro-Controllern
Projekt: Lottozahlen-Generator Version 2
Anzeige über eine LED-Matrix
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
103
Einführung in die Programmierung von Micro-Controllern
Projekt: Lottozahlen-Generator Version 2
Anzeige über eine LED-Matrix
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
104
Einführung in die Programmierung von Micro-Controllern
Agenda
Ziele des Kurses
Zielgruppe des Kurses
Kennenlernen von Micro-Controllern und der Werkzeuge zur Programmierung
Auffrischung elektronischer Grundbegriffe
Demonstration und Realisierung verschiedener Projekte (Hardware und
Software)
Demos
Projekte
Lauflichter
Elektronischer Würfel
Ampelschaltung
Lottozahlengenerator Version 1
Treppenlichtautomat
Lottozahlengenerator Version 2
Pulsweitenmodulator (D/A-Wandler)
Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
105
Einführung in die Programmierung von Micro-Controllern
Projekt: Reaktionsspiel
Aufgabenstellung:
- 2 Spieler treten gegen einander an, jeder hat einen Taster
- die Spieler müssen einen Ball ins gegnerische Tor bringen
- eine LED zeigt an, wann geschossen werden darf
- wer dann zuerst drückt schiebt den Ball in Richtung Tor
- die Kontroll-LED verlischt
- wenn der Ball im Tor ist (Ball blinkt), ist das Spiel zu Ende
- wer schießt, bevor die Kontroll-LED wieder leuchtet, verliert sofort
- mit einer weiteren Taste kann das Spiel wieder in den Ursprungszustand
versetzt werden (Reset)
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
106
Einführung in die Programmierung von Micro-Controllern
Projekt: Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
107
Einführung in die Programmierung von Micro-Controllern
Projekt: Reaktionsspiel
Version 1.0; 21.06.2011; © Dr. Harald Meißner
Einführung in die Programmierung von Micro-Controllern
108
Herunterladen