Serie 8: Microcontroller 17./18.07.2014



Ähnliche Dokumente
easyident Türöffner easyident Türöffner Art. Nr. FS-0007 FS Fertigungsservice

Stepperfocuser 2.0 mit Bootloader

Technische Informatik Basispraktikum Sommersemester 2001

Was unterscheidet Microcontroller von einem PC ( Laptop ) oder einem Handy

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Elektrische Logigsystem mit Rückführung

Handbuch Programmierung teknaevo APG

Autoradio On Off Schaltung

Versuch 3. Frequenzgang eines Verstärkers

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

Elektronikpraktikum - SS 2014 H. Merkel, D. Becker, S. Bleser, M. Steinen Gebäude (Anfängerpraktikum) 1. Stock, Raum 430

DTMF-Decoder-Modul mit 6 Ausgängen & Morse-Transponder

Tag 2 Eingabe und Interrupts

Umwandelung einer Physikalischen Größe in eine Elektrische

Inhaltsverzeichnis

CU-R-CONTROL. Beschreibung zur Schaltung ATMega16-32+ISP MC-Controller Steuerung auf Basis ATMEL Mega16/32. Autor: Christian Ulrich

GEVITAS Farben-Reaktionstest

Local Control Network

Aufgabensammlung. a) Berechnen Sie den Basis- und Kollektorstrom des Transistors T 4. b) Welche Transistoren leiten, welche sperren?

RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

Einführungskurs MOODLE Themen:

Einführung in die Welt der Microcontroller

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Installation OMNIKEY 3121 USB

Windkraft-Ersatzlastregler bzw. Heizungsversion

Bekannte Effekte bei Soft- und Hardware der ESTEC Datenlogger sowie der PC Auswertesoftware

WLAN Konfiguration. Michael Bukreus Seite 1

Informationen zum neuen Studmail häufige Fragen

PIXMA MG3500. series. Einrichtungshandbuch

teamsync Kurzanleitung

Lehrer: Einschreibemethoden

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Interrupt-Programmierung

Einführung in. Logische Schaltungen

Microcontroller Kurs Programmieren Microcontroller Kurs/Johannes Fuchs 1

Elektromagnetische Relais sind Schalter, die durch Elektromagnete betätigt werden.

Aufbau und Bestückung der UHU-Servocontrollerplatine

Kurzanleitung Installation Conax CA-Modul & Sendersuchlauf

Installationsanleitung Forest shuttle. Home Automation by

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Erstellen von x-y-diagrammen in OpenOffice.calc

Bedienungsanleitung Anrufbeantworter für digitale Telefone Alcatel 4039

Sensor board EB

Ablaufsteuerung Sequenzer, als Schaltstufen für den Amateurfunk.

Handbuch : CTFPND-1 V4

Skalierung des Ausgangssignals

Lego Roboter mit NXT-G programmieren. Hochschule Mannheim

Offset, Buffer, Nullpunkt, DpH, Asymmetrie oder ph = 7.

Benutzung der LS-Miniscanner

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Steuerung DLS ECKLITE SC und SC xx-enc

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil IV: Programmieren an Beispielen

Grundlagen der Theoretischen Informatik, SoSe 2008

[ Experiment- und Datenprotokollierung. mit der EV3 Software]

Warenwirtschaft Verkauf Einkauf Projektverwaltung Artikelverwaltung Kundenspezifische Artikel Verwaltung der Serien- u. Chargennummern Lagerverwaltung

Zwischenablage (Bilder, Texte,...)

II. Daten sichern und wiederherstellen 1. Daten sichern

Konfiguration der Messkanäle. Konfiguration der Zeitachse. Abb. 3: Konfigurationsmenü des Sensoreingangs A. Abb. 4: Messparameter Konfigurationsmenü

DALI-16B Features ab Firmware V2.31

10. Elektrische Logiksysteme mit

KabelKiosk NDS CI+ Modul Fehlercode-Liste

Leitfaden. zur Registrierung und Beschaffung einer elektronischen Signatur für die IKK classic Ausschreibungsplattform.

BEDIENUNG ABADISCOVER

Der Aufbau der Uhr ist sehr einfach, weil nur sehr wenige Bauteile eingelötet werden müssen.

Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet.

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Zeitschaltuhr mit Netzwerkanschluss

Inbetriebnahme einer Fritzbox-Fon an einem DSLmobil Anschluss Konfiguration einer PPPOE-Einwahl (DSLmobil per Funk)

Anleitung über den Umgang mit Schildern

1. Die Maße für ihren Vorbaurollladen müssen von außen genommen werden.

Spannungsversorgung für Mikrocontroller-Schaltungen DH1AAD, Ingo Gerlach, , Ingo.Gerlach@onlinehome.de

Massenversand Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

DIGITALVARIO. Anleitung Bootloader. Ausgabe 0.1 deutsch für Direkt-Digital-Vario. Firmware ab Hardware 01 Seriennummer ab 0003

Bedienungsanleitung für. Android Stick 2.0

Gezielt über Folien hinweg springen

BITel Box. Ihr Anrufbeantworter im BITel-Netz. Service

Sie können diesen Service verwenden, um fast beliebig große Dateien auch über 2 GB zu versenden.

Übung - Konfigurieren einer Windows 7-Firewall

Dokumentation IBIS Monitor

Internet online Update (Mozilla Firefox)

Zusatzdienste. Bedienungshinweise. allgemein. Störungsdienst. SolNet VOICE plus. Tastenbefehle

TeamSpeak 3 Userguide

Datenexport aus JS - Software

Online Bestellsystem Bedienungsanleitung

Einführung in das Programmieren in der Sekundarstufe 1. mit einem Arduino und der Physical-Computing-Plattform

Bedienungsanleitung Programmiersoftware Save `n carry PLUS. Inhaltsangabe

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

mlab Geräte Institut für Wissensmedien Universität Koblenz-Landau

Mail-Signierung und Verschlüsselung

Stammdatenanlage über den Einrichtungsassistenten

Versuch 3: Sequenzielle Logik

Installationsanleitung. ISP - Programmierset. Made in Germany

Dokumentenverwaltung im Internet

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Scananleitung für Epson Scan und Photoshop

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Wie in der Skizze zu sehen ist, bleibt die Periodendauer / Frequenz konstant und nur die Pulsweite ändert sich.

Transkript:

Serie 8: Microcontroller 17./18.07.2014 I. Ziel der Versuche Erster Erfahrungen mit einem Microcontroller sollen gesammelt werden, die grundlegenden Ein- Ausgabe-Operationen werden realisiert. II. Vorkenntnisse Microcontroller (RISC AVR-Mikrocontroller ATmega8 der Firma ATMEL), Pulsweiten- Modulation, Analog-Digital-Converter, Grundzüge der Programmierung in C. III. Aufbau Elektronikpraktikum - SS 2014 H. Merkel, D. Becker, S. Bleser, M. Steinen Gebäude 02-413 (Anfängerpraktikum) 1. Stock, Raum 430 Für den Versuch steht eine Enwicklungsplatine myavr Board MK2 zur Verfügung. Diese Platine enthält einen Microcontroller, einen USB-ISP-Adapter, sowie verschieden Ein- und Ausgabemöglichkeiten, die mittels Steckkabeln mit den Ports des Microcontrollers verbunden werden können. Die Platine wird über USB mit dem Laptop verbunden, auf diesem läuft eine Entwicklungsumgebung zum Programmieren des Controllers. In der Entwicklungsumgebung myavr Workpad PLUS können Sie mit Neu ein neues Programm erstellen. Wählen Sie im nächsten Schritt C/C++ Grundgerüst. Sobald Sie en Programm geschrieben haben, können Sie bei eingestecktem myavr Board mit Brennen das Programm kompilieren und in den Microcontroller laden. Es startet dann automatisch. Sie können die Programme natürlich auch anschließend für das Protokoll abspeichern.

IV. Durchführung 1. Digitale Ausgabe Bauen Sie eine klassische Ampelschaltung. Verbinden Sie hierfür drei der Ausgänge, z.b. B0, B1 und B2 mit den entsprechenden LEDs und programmieren Sie eine Schleife mit folgenden Phasen: Rot 5s Rot-Gelb 3s Grün 5s Gelb 3s Hierfür müssen die entsprechenden Pins von Port B auf Ausgang programmiert werden mit Hilfe des Registers DDRB (= Data-Direction Port B, Bit 0 für Eingang, 1 für Ausgang), die Schaltzustände werden anschließend auf PORTB ausgegeben. Benutzen Sie die Funktion waitms(zeit_in_ms) zum definierten Warten. 2. Eingabe über Taster Bereits in Serie 7 wurde das Prellen der Taster erwähnt. Um die Taster als Eingabe für den Microcontroller verwenden zu können, müssen diese über Software entprellt werden. 2.1 Schätzen Sie mit Hilfe des Oszilloskops ab, wie lange die Taster prellen. Die Taster schließen die entsprechenden Anschlüsse auf Masse, d.h. für diese Messung müssen sie mit einem Pullup-Widerstand (ca. 1K) an HI angeschlossen werden. 2.2 Verbinden Sie den Taster mit einem Eingang (z.b. C0) und drei Ausgänge mit den LEDs. Die entsprechenden Bits in DDRC und DDRB müssen gesetzt werden, das Ausgabebit in PORTC muss auf 1 gesetzt werden (Pull-Up). Auf PINC kann die Eingabe gelesen werden. Programmieren Sie ein Lauflicht, das mit jedem Tastendruck eine LED weiter schaltet (zuerst ohne Entprellung). Lesen Sie hierfür in einer Schleife den Eingang aus und, sobald dieser auf 0 ist, warten Sie wieder auf eine 1, um den Schaltvorgang durchzuführen. 2.3 Entprellen Sie nun den Schalter, in dem Sie bei jedem Tastendruck warten, bis der Schalter sich beruhigt hat. Suchen Sie die minimale Zeit, bis das Lauflicht definiert jeweils eine LED weiter schaltet.

3. Analoge Ausgabe über Pulsweiten-Modulation Der Microcontroller verfügt über keinen Analog-Ausgang, allerdings können die Ports B0, B1 und B2 zur Pulsweiten-Modulation konfiguriert werden. Hierbei wird ein periodisches Rechtecksignal mit konstanter Frequenz, aber unterschiedlicher Pulsbreite ausgegeben. Das Ausgangssignal kann anschließend über einen Tiefpass geglättet werden, so dass annähernd eine Gleichspannung proportional zum Verhältnis der Pulsbreite zur Gesamtbreite resultiert. Bei langsamen Ausgabegeräten (z.b. LED) kann auf eine Glättung verzichtet werden. 3.1 Konfigurieren Sie Port B1 für die Pulsweiten-Modulation. Hierfür müssen die entsprechenden Bits laut Dokumentation in den Timer/Counter Control Registern TCCR1A und TCCR1B gesetzt werden. Die Bits WGM10, WGM11, WGM12 setzen den PWM Modus auf 10 Bit, CS10 startet dem Zähler, COM1A1 setzt die Ausgabe. DDRB = (1<<PB1); TCCR1A = (1<<COM1A1) (1<<WGM11) (1<<WGM10); TCCR1B = (1<<WGM12) (1<<CS10); Anschließend kann mit Register OCR1A im Bereich von 0 bis 1023 die Pulsbreite gesetzt werden. 3.2 Nehmen Sie mit dem Oszillographen Bilder mit 10%, 50% und 90% Pulsbreite auf.

4. Analoge Eingabe über Analog-Digital-Konverter Die Ports C0-C5 können als Analog-Digital-Converter konfiguriert werden. Hier ein Standard- Programmfragment zum Einfügen vor main, dass die Konfiguration sowie die Auslese vornimmt. unsigned short readadc(short port) { ADMUX = (1<<REFS0) port; // choose internal reference voltage 5V ADCSRA = (1<<ADPS2) (1<<ADPS0); // divide by 32, i.e. 115.2 khz ADCSRA = (1<<ADEN); // enable ADC ADCSRA = (1<<ADSC); // start conversion; while (!(ADCSRA & (1<<ADSC))); // Wait for conversion finished while (!(ADCSRA & (1<<ADIF))); // Wait for Interupt bit set return ADCW; } Dies definiert ein Unterprogramm, dass anschließend mit readadc(0) verwendet werden kann. Schließen Sie ein Potentiometer an Ausgang C0 an, und variieren Sie damit die Helligkeit einer LED über Pulsweiten-Modulation. 5. Blumen-Gieß-Automat Im Folgenden kombinieren wir die ADC-Auslese und die digitale Ausgabe zu einem Regelkreis. Bauen Sie folgende Schaltung auf. Die Spannung für den Motor kommt aus einem Labornetzteil. +9V M µc Port B0 FDP7030BL D µc Port C0 Sensor µc Port B1 G S R1 µc Low µc Low 5.1 Messen Sie den Widerstand des Sensors in feuchter Erde und in trockener Erde. Dimensionieren Sie R 1 so, dass der angestrebte Schaltwert auf Port C0 in der Mitte des Messbereichs des ADCs liegt. 5.2 Die Wasserpumpe kann im Amperé-Bereich Strom ziehen. Daher muss die Leistung über einen MOSFET geschaltet werden. Es wurde ein MOSFET ausgewählt, der im TTL- Bereich durchschaltet und mit einer internen Schutzdiode (warum ist diese zum Schalten eines Motors unbedingt nötig?) versehen ist. 5.3 Messen Sie mit zwei Bechern, wie lange der Motor laufen muss, um ca. 100ml zu pumpen. Verbinden Sie hierfür das Gate des MOSFET statt mit Port B1 kurz mit High. Es empfiehlt sich, den Motor nicht bei 12V, sondern bei ca. 6V zu betreiben (der MOSFET wäre auch geeignet, die Geschwindigkeit über PWM zu regeln!). Legen sie den Ausgang B1 gleichzeitig auf eine LED, um den Schaltzustand zu sehen..

5.4 Konfigurieren Sie den Microcontroller mit B0, B1 als Ausgang und C0 als ADC. Realisieren Sie folgende Schaltlogik in einer Schleife: 1. Der Sensor wird erst kurz vor der Messung eingeschaltet, um Korrosion durch eine permanent anliegende Spannung zu vermeiden. Schalten Sie hierzu B1 ein und warten Sie dann ca. 5 Sekunden. 2. Messen der Sensorspannung an C0 und berechnen Sie den Widerstand des Sensors aus der Spannung. 3. Schalten Sie den Sensor wieder aus. 4. Bei Erreichen der gewünschten Schaltschwelle wird die Pumpe für 100ml eingeschaltet. Danach muss mindestens 60 Sekunden gewartet werden, bis der Sensor reagieren kann. 5.5 Die Schaltlogik kann noch nach Belieben erweitert werden,z.b. 1. Schaltschwelle per Potentiometer einstellbar 2. Gießen Sie nur, wenn der Lichtsensor sagt, dass es Tag ist (fürs Schlafzimmer) oder Nacht ist (fürs Büro). 3. Begrenzung der Gesamtmenge Wasser/Tag zur Sicherheit. 4. Überprüfen Sie, ob der Sensor reagiert (sollte sich nach dem Gießen deutlich geändert haben) bevor Sie weiter gießen. Im Fehlerfall rote LED einschalten und auf Reset mittels Taster warten. 5.... Datenblätter und Dokumentation Datenblatt FDP7030BL Dokumentation des Entwicklungsboards myavr Board MK2 Referenz-Karte Datenblatt Atmel ATmega8 (sehr umfangreich)