8.3 Taster am µcontroller

Ähnliche Dokumente
Mikrocontrollerplatine vorbereiten

Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt:

WS 2017/18 Viel Erfolg!!

U5-2 Register beim AVR-µC

Lotto. eine Projektarbeit in DVT. von Sven Schwab

Aufgabe 1: Transistor, Diode (ca. 15 Punkte)

Mikrocontroller - Schnelleinstieg

#include "C:\Users\media\Desktop\Harri\Technik\Elektronik\Projekte\Stiftuhr\Servotest\servotest\servotest.h"

AVR Ein/Ausgabe. Inhaltsverzeichnis

GdI2 - Systemnahe Programmierung in C Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2006 U4.fm

Vorbereitung. Teil D Analog-Digital-Wandler 1

Die Software zum Unser kleiner Computer

Aufgaben zur Attiny-Platine

Studienschwerpunkt Mechatronik/Vertiefungsrichtung Fahrzeugmechatronik Seite 1 von 8. Sommersemester 2018 Angewandte Elektronik

Studiengang Maschinenbau, Schwerpunkt Mechatronik (früher: Automatisierungstechnik) Seite 1 von 8

Eine tastergesteuerte LED

Atmega Interrupts. Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös

Parallel-IO. Ports am ATmega128

AVR-8-bit-Mikrocontroller Gruppe AVR-C-Projekte Teil AVR_PB_LED

C.1 Serielle Schnittstelle, erstes Testprogramm (a)

D.1 Vorbereitung. Teil D Analog-Digital-Wandler 1

Grundlagen der Objektorientierung :

Serielle Schnittstelle, erstes Testprogramm (a)

myavr Programmierung in C

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

Aufbau eines Assembler-Programms

Produktinformationen. Basis Set Atmel Atmega8 & ISP Programmer. Lieferumfang :

V cc. 1 k. 7 mal 150 Ohm

Viel Erfolg!! Aufgabe 1: Operationsverstärker (ca. 10 Punkte) Seite 1 von 8. Wintersemester 2016/17 Elektronik

C++ mit dem Arduino (Uno und Mega2560)

Übungen zu Systemnahe Programmierung in C (SPiC)

Arduino für FunkAmateure

by AS playground.boxtec.ch/doku.php/tutorial Multitasking 3

Autonome Mobile Systeme. Dr. Stefan Enderle

IR NEC Empfänger mit 4x7 LED Anzeige (ATtiny2313)

Sommersemester 2017 Elektronik Um welche Grundschaltung handelt es sich bei der Operationsverstärkerstufe OP1? Geben Sie

saarland Prof. Dr. Andreas Zeller Verantw. Tutor: Florian Groß Übungsblatt 4

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert?

Eingaben. Themen heute. Taster. Eingaben Zuweisungen Zeitmessung. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Bedienungsanleitung FMI-250 Zusatz. ATP Messtechnik GmbH

PTCarPhone 5 Serie Handbuch I/O-Anschlüsse

foexlab-materialien Arduino-Schaltungen First Steps Gottfried Wilhelm Leibniz Universität Hannover

RASPBERRY PI. Physical Computing

Übungen zu Systemnahe Programmierung in C (SPiC)

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

Arduino Kurs Bits und Bytes. Stephan Laage-Witt FES Lörrach

Klausur PHMJ02 SS2012. Mikrocontroller und Robotik. Mittwoch GUTEN ERFOLG!!!

Wer möchte, kann sein Programm auch auf echter Hardware testen

Sommersemester Elektronik / Mikroprozessortechnik Dauer: 90 Minuten

Projektarbeit in DVT auf dem Entwicklerboard

Beschaltung eines Mikrocontrollers. Jordi Blanch Sierra Steuerungsgruppe

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

Dokumentation Projekt JK-Schaltung. Inhaltsverzeichnis

Die Sonne spielt Musik

OCT608 Dynapic und Dynasim- 8-fach-Interface-Print mit parallelem und seriellem Ausgang

Serie 8: Microcontroller 17./

Produktbeschreibung Einfache Taster Platine (ST15)

Einen elektronischen Würfel programmieren

Schrittmotor Parallel Port Interface Platine

60 db VU-Meter HALBLEITERHEFT2002. Tabelle 1. Von Rikard Lalic

Wie funktioniert der Wellenschnüffler? 10 Antworten.

Girls Day. Einführung Mikrocontroller,

Versuch 2, LPC11U24 - GPIO

LED Skalenbeleuchtung mit einem Arduino

Praktikum 2: Diode, Logische Schaltungen mit Dioden und Feldeffekttransistoren

SMP Übung 8 - Lösungsvorschlag

Laborübung 4. Zustandsautomaten (Finite State Machines)

Projektworkshop Digitales Haustier. Digitales Haustier. Bau dir ein Digitales Haustier, das schnurrt, wenn du es streichelst. 1/8

TaT-Maker Steuerung. Selbstbauanleitung. von. Kurt Sepke

System-Programmierung 10: Weitere Arten von I/O. CC BY-SA, Thomas Amberg, FHNW (soweit nicht anders vermerkt)

Einführung Arduino - Aufbau

Wunderst du dich auch manchmal, wo die ganzen Kekse hin sind? Mit diesem Projekt kommst du dem Dieb schnell auf die Schliche.

8.1 Grundsätzlicher Aufbau der Beispiele

Kurzeitmesser Didaline / Kurzzeitmesser Komplettset Best.-Nr. MD03248 / MD03247

Inhalt. Aufgabe 4: LED-Modul Hinweise Testen des Moduls Sommersemester 2015

Mini- Mikroprozessor-Experimentier-System. Version 1.0b vom :21. mit einem 8051-Mikrocontroller

MB-Diplom (4. Sem.) / MB-Bachelor (Schwerpunkt Mechatronik, 5. Sem.) Seite 1 von 8. Wintersemester 2014/15 Elektronik

SAM D21 J17A. by AS. ARM Controller - SAM D21 J17A ( 32 Bit Controller ) Software 2 Das erste Programm

SINNsorik Wahrnehmen durch Sensoren NAME, KLASSE:

C++ mit dem Arduino (Uno und Mega2560)

Handbuch Digi-Prog. Revision 1.0. Copyright c Welzel GbR Steinstrasse Giessen

Stefan Hoffmann. Leichter Start mit BASCOM und myavr

Abbildung 4-4-1: Ein prellender Taster

IR-Schaltinterface IR-002

Projektarbeit aus der Datenverarbeitung. Lotto. von: Hubert Schlenk Olimex AVR USB 162 Entwicklerboard Hubert Schlenk

Id PIO1003: Anschaltbeispiele einer Ausgangsleitung aus der PIO II

Commander

Raspberry Pi meets Pocket Code. Tutorial: Ampelschaltung

4 Formelsammlung C/C++

Schalten externer Bypass SBPSU10K20HC1M1-WP & SURT15KRMXLI

Baue deinen ersten Roboter

Transkript:

8.3 Taster am µcontroller AVR-KOMPENDIUM Nachdem im vorigen Beispiel das Port als Ausgang verwendet wurde erweitern wir dieses Beispiel um einen Taster - um auch das Einlesen von digitalen Signalen zu lernen. 8.3.1 Theorie Schalter oder Taster sind einfache Bauelemente die nichts anderes tun als eine leitende Verbindung zwischen zwei Anschlüssen herstellen. Der Mikrocontroller kann jedoch nur Spannungspegel erkennen. Damit diese Spannungspegel von einem Schalter erzeugt werden können müssen sie mit sogenannten Pull-up Widerständen beschaltet werden. Je nach Schalterzustand (offen oder geschlossen) ergeben sich unterschiedliche Spannungszustände aus dem daraus resultierenden Spannungsteiler. Fall 1: Schalter/Taster ist offen. Daraus ergibt sich für: R1 ein Widerstand von 10kOhm und für: R2 der Widerstand der Luft zwischen den zwei offenen Schalterkontakten welcher sehr groß ist. (Luft leitet sehr sehr schlecht). Da der Spannungsabfall direkt mit der Größe des Widerstands zusammenhängt ergibt sich für die Spannung U1 ein Wert von nahezu 0 Volt und einen Spannungswert von nahezu 5 Volt für U2. Die Spannung am Pin des Mikrocontrollers entspricht der Spannung U2. Da die Eingangslogik eine Spannung von 5 Volt als den digitalen Wert 1 (eins) interpretiert. Mit folgender if Anweisung wird dieser Zustand abgefragt. if(pinb & (1<<PB0)) -117-

Abbildung 76: Schalter am IO-Port-Ersatzschaltbild und Spannungspegel (Fall1) Abbildung 76 zeigt das Ersatzschaltbild für den Fall 1, wenn der Schalter offen ist. Fall 2: Schalter/Taster ist geschlossen daraus ergibt sich für: R1 ein Widerstand von 10kOhm und für: R2 der Widerstand der geschlossenen Schalterkontakte (Kurzschluss) welcher sehr klein ist. -118-

Abbildung 77: Schalter am IO-Port-Ersatzschaltbild und Spannungspegel (Fall2) Da der Spannungsabfall direkt mit der Größe des Widerstands zusammenhängt ergibt sich für die Spannung U1 ein Wert von nahezu 5 Volt und einen Spannungswert von nahezu 0 Volt für U2. Die Spannung am Pin des Mikrocontrollers entspricht der Spannung U2. Die Eingangslogik interpretiert eine Spannung von 0 Volt als den digitalen Wert 0 (Null). Mit folgender if Anweisung wird dieser Zustand abgefragt. If(!PINB & (1<<PB0)) { //beliebige Anweisung ausführen //Bsp.: LED einschalten } Anmerkung: Alle diese Anweisungen hängen natürlich von der Art, wie der Schalter angeschlossen ist, ab. Siehe dazu auch im Kapitel Beschaltungstechnik 8.3.2 Praxis Der praktische Aufbau sollte ohne Probleme zu schaffen sein. Nicht vergessen -119-

während des Verdrahtens wird das Steckbrett spannungsfrei geschaltet. 8.3.2.1 Schaltung Die Schaltung wird nur um einen Taster und den notwendigen externen Pullup Widerstand (R29 erweitert. Abbildung 78: Taster am Mikrocontroller -120-

8.3.2.2 Bauteilliste Nr.: Bezeichnung B-Nr.:C Preis B-Nr.:RS Preis B-Nr.:Rei Preis B-Nr.:Far Preis 10 AT MEGA32 123456 10,0 123456 10,0 123456 10,0 10,0 20 S1 0,5 0,5 0,5 0,5 30 C1 0,5 0,5 0,5 0,5 40 C2 0,5 0,5 0,5 0,5 50 D1 0,5 0,5 0,5 0,5 60 R1 0,5 0,5 0,5 0,5 70 LED1 0,5 0,5 0,5 0,5 80 R2 0,5 0,5 0,5 0,5 90 S2 0,0 0,0 0,0 0,0 Summe 13,5 13,5 13,5 13,5 Tabelle 10: Bauteilliste für das Projekt-Taster am Mikrocontroller 8.3.2.3 Flussdiagramm Start Ausgang für LED initialisieren Eingang für Schalter initialisieren while(1) Nein Ausgang löschen LED-leuchtet nicht Schalter geschlossen? Ja Ausgang setzen LED-leuchtet Endlosschleife Abbildung 79: Flussdiagramm für Projekt -Taster am µcontroller -121-

8.3.2.4 Source #include <avr/io.h> int main(void) { DDRC = DDRC (1 << PC7); //(10) DDRB = DDRB & ~(1<<PB0); //(20) while(1) //(40) { if(!(pinb & (1<<PB0))) //(50) PORTC = PORTC & ~(1<<PC7); //(60) else //(70) PORTC = PORTC (1 << PC7); //(80) } } /*Beschreibung des Programmes Wenn der Taster an PB0 geschlossen wird leuchtet die LED an PC7 */ /*Kommentar nach Nummern (10)PIN als Ausgang für LED konfigurieren (20)PB1 als Eingang für Schalter aktiveren (40)While Schleife als Endlosschleife (50)Wenn Spannungslevel an PB0 gleich 0 ist, dann ist der Schalter geschlossen (60)LED einschalten (70) wenn (50) nicht zutrifft (80) dann ist Schalter nicht gedrückt und LED wird ausgeschaltet */ 8.3.3 Anmerkungen & Verbesserungen Statt PORTC = PORTC (1 << PC7); //(80) kann auch die Kurzform PORTC = (1 << PC7); //(80) geschrieben werden. Dies gilt für alle Zuweisungen. Statt des externen Pullup Widerstands kann auch der interne Pullup verwendet -122-

werden. Dieser wird mit folgendem Code aktiviert: PORTB = (1<<PB0); //Pullup aktivieren -123-