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