Anwendung und Programmierung von Mikrocontrollern. Anwendung und Programmierung von Mikrocontrollern

Ähnliche Dokumente
Interrupt-Programmierung

Programmierung Nibo 2 Teil 3 Display. * by nicaisystems

Messwerterfassung mit dem Arduino und dem "Data logging shield" Mai 2011

Embedded Hardware Getting Started

RN-Control ARDUINO Bibliothek ATMEL 32 Version 0.2

Programmierung Weichenmodul S/D Tafel 1

Arduino Kurs Das LC-Display. Stephan Laage-Witt FES Lörrach

Verwendung von SD-Speicherkarten über den SPI-Bus

Bedienungsanleitung für das Tektronix Oszilloskop TDS 2002B

Bedienungsanleitung Version 1.0

ATXMega256a3-Controllerboard. mit 4,3", 5" oder 7" Touch-LCD-Farbdisplay und High-Level-Grafikcontroller

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

mit SD-Karte SD-Karte Inhalt

GPS-CarControl APP Android Benutzeranleitung

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

Samsung Large Format Display

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Der SD-Kartenslot befindet sich an der rechten Gehäuseseite unterhalb der rechteckigen hellgrauen Gummiabdeckung.

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2)

Kopieren, drucken, scannen

eblock, SD-Kartenleser Projektteam: Henrik Esche Tobias Albers Michael Heßling Daniel Lütfrenk Jonas Wieschmann

Verwaltung der MSATA-SSD bei HP Envy Ultrabook 4 und Ultrabook 6 mit Intel Smart Response Technologie

Ablaufbeschreibung Einrichtung EBICS in ProfiCash

Aufgabenstellung Praktikum Mikrorechentechnik Sommersemester 2014

Daten am USB Stick mit TrueCrypt schützen

P(k, λ) = λ k /k!*exp(-λ) angegeben werden kann.

Ich möchte eine Bildergalerie ins Internet stellen

1 Was ist das Mediencenter?

Verknüpfung zum Angebotsassistenten erstellen

Für den CTC-Mode kann demnach TCCR1A komplett auf 0 gesetzt werden, weil WGM11 und WGM10 in diesem Register liegen und beide laut Tabelle 0 sind:

MAPS.ME. Benutzerhandbuch!

ATMega2560Controllerboard

Übung 1. Explorer. Paint. Paint. Explorer

Projekte Packen, Kopieren und Versenden

GSM: Airgap Update. Inhalt. Einleitung

HTML Programmierung. Aufgaben

Karten-Freischaltung mit dem UNLOCK MANAGER

3,2" Touch-LCD-Farbgrafikdisplay mit High-Level-Grafikcontroller

WORKSHOP für das Programm XnView

Graphic Coding. Klausur. 9. Februar Kurs A

POB-Technology Dokumentation. POB-Technology Produkte. Deutsche Übersetzung von roboter-teile.de Alle Rechte vorbehalten Seite 1 von 13

SEMINAR Modifikation für die Nutzung des Community Builders

PSRDesigner. Punkt und Streifenrasterplatinen Designer

Skitch Foto Dokumentation Inhaltsverzeichnis

Staatlich geprüfter EDV-Führerschein

Installation OMNIKEY 3121 USB

K-TAG Master. Dateientschlüsselung/ Dateiverschlüsselung für Slaves. Version 1.0

Hilfe für den Online-Reader

Tech Note: SYSTEMVARIABLEN SIO_RJ11_BAUDRATE. Tel.: +43 (0) 3159/ Products: SLS Produkte A-8344 Bad Gleichenberg

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Wetterdaten online GND 3,3V VIN CLK MISO MOSI CS VBEN IRQ GND V D13 D12 D11 D10 D5 D3. Arduino

Installationsanweisung Aktivierung für RadarOpus für PC s ohne Internetzugang (WINDOWS)

Um überhaupt produktiv arbeiten zu können, sind eine Reihe grundlegender Vorbereitungen notwendig:

Freischaltung des ChipTAN-Verfahrens in SFirm32, Version 2.3

AKTUALISIERUNG DER SOFTWARE (ANDROID 4.4) FÜR KIANO ELEGANCE 9.7 by ZANETTI

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

Inhalt: 1. Einleitung 2. Installation 3. Bedienung 4. Hinweise

Menü Dienstprog. Auftr.ber.-Stat. Demo drucken Verz. drucken Schrift. drucken Menüs drucken Netzkonf.<x> druck

UTE-72BT / CDE-173BT / CDE-174BT

Was ist Arduino? Historie Der Kern Entwicklungsumgebung Hardware Software Und wozu das Ganze? Workshop Mikrorechner 2012 A.

Die Entwicklungsumgebung. Labor Technische Informatik. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) A. Reber

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Deutsch. Doro Experience

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Für Windows 7 Stand:

MEYTON CGI Display Controller

Installieren Installieren des USB-Treibers. Installieren

Anleitung zum Cardsharing mit der Dreambox oder der DBox2 und Card-Server PC

Ergänzungen zum Manual OS V 2.05/2.06

ubasic Port für STM32F4 von Uwe Becker

M a i l C r e d i t. \\Burt\user\Soutschek\FP\Technik\Frankiermaschinen\00_PC Software\MailCredit\Anleitung MailCredit Installation.

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

INSTALLATION DES SQL SERVER 2008r2 für rza fakt

Diese Handbuch wurde erstellt, um Sie durch die Grundlagen Ihres IP Geräts wie Installation und Konfiguration zur Anwendung zu führen.

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven

Inbetriebnahme Profinet mit Engineer. Inhaltsverzeichnis. Verwendete Komponenten im Beispiel:

Paint.Net Der Paint.NET Bildschirm

Willkommen!

i2c-bus.de I2C-002 KURZBESCHREIBUNG I 2 C Modul mit PCA Bit I/O Port-Expander Dokument NR.: I2C-002-D-01

Bedienungsanleitung für Trainingssoftware v1.3

PaintManager TM Update News Seite 1 von 6

Anleitung. Einrichtung vom HotSync Manager für den Palm 1550 bis 1800 unter Windows 7. Palm SPT 1500 / 1550 Palm SPT 1700 / Bits & Bytes Seite 1

Programmieren für Ingenieure Sommer Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

Basiert auf den Beschreibungen von Es wird dazu der Primesense OpenNI- Treiber verwendet.

Zählen von Objekten einer bestimmten Klasse

Zusatzinformation zum USB-Flashdrive mit ARM und RS232

Dem DSB stehen folgende Basisfunktionen zur Verfügung:

WIP Com 3D/Connect Com 3D

Installation und Inbetriebnahme von Microsoft Visual C Express

Durch Doppelklick auf die Zeile der entsprechenden Schnittstelle gelangt man in die Detaileingabe der Schnittstelle.

Bedienungsanleitung BOTEX DMX OPERATOR

1. Arbeiten mit dem Touchscreen

Bedienungsanleitung DAS5

SINAMICS - Tipps & Tricks

Update auf Windows 8.1 Schrittweise Anleitung

Meine ZyXEL Cloud. Tobias Hermanns V0.10

Die Wege der Jakobspilger in Westfalen

Transkript:

Anwendung und Programmierung von Mikrocontrollern Sommersemester 2013 Dr.-Ing. Hubert Zitt Kontakt: hubert.zitt@fh-kl.de www.fh-kl.de/~zitt Dr.-Ing. Hubert Zitt Seite 1 von 24

S65 Shield (von oben) Komponenten LCD-Display von Siemens Drehencoder mit Tasterfunktion Reset-Taster Dr.-Ing. Hubert Zitt Seite 2 von 24

S65 Shield (von unten) Komponenten Anschlusspins für Arduino-Board Slot für MicroSD-Karte Dr.-Ing. Hubert Zitt Seite 3 von 24

S65 Shield (Pinbelegung) vom Display nicht verwendete Pins digitale Pins 0, 1, 2, 3, 10 analoge Pins 0, 1, 4, 5 somit kann der I²C-Bus parallel zum Display betrieben werden Dr.-Ing. Hubert Zitt Seite 4 von 24

S65 Shield - das S65 LCD von Siemens Technische Daten LED-Backlight Verwendung u.a. in Handys Darstellung im Hoch- oder Querformat Auflösung: 132 X 176 Pixel 65536 Farben (16 Bit) R(ot) 5 Bit G(rün) 6 Bit B(lau) 5 Bit Dr.-Ing. Hubert Zitt Seite 5 von 24

S65 Shield der Drehencoder Technische Daten Tasterfunktion kurzes Drücken (ab 80 ms) langes Drücken (ab 800 ms) Drehfunktion nach links drehen nach rechts drehen Dr.-Ing. Hubert Zitt Seite 6 von 24

S65 Shield MicroSD Karten Slot Technische Daten getestet mit 2 GB- und 4 GB-Karten Karte muss mit FAT formatiert sein (FAT12, FAT16 oder FAT32) über FATFs (FAT File System Module) programmierbar Dr.-Ing. Hubert Zitt Seite 7 von 24

S65 Shield Displaytreiber Die Libraries für das Display werden entpackt. Die Ordner RotaryEncoder S65Display S65Shield SDcard müssen in das Verzeichnis arduino-1.0/libraries kopiert werden, damit der Entwicklungsumgebung die benötigten Bibliotheken für das Display zur Verfügung stehen. Dr.-Ing. Hubert Zitt Seite 8 von 24

S65 Shield Ansteuerung des Displays mittels SPI SPI (Serial Peripheral Interface) entwickelt von Motorola Bus-System für einen synchronen seriellen Datenbus Schaltungen können nach einen Master-Slave-Prinzip miteinander verbunden werden ein Master, theoretisch unendlich viele Slaves Systeme arbeiten mit einer gewissen Geschwindigkeit (clock), meistens ein Bruchteil des verfügbaren Taktes des Mikrocontrollers Dr.-Ing. Hubert Zitt Seite 9 von 24

S65 Shield Initialisierung des SPI-Bustaktes lcd.init(2) // clock=fcpu/2 -> hier: 8 MHz lcd.init(4) // clock=fcpu/4 -> hier: 4 MHz lcd.init(8) // clock=fcpu/8 -> hier: 2 MHz lcd.init(16) // clock=fcpu/16 -> hier: 1 MHz lcd.init(32) // clock=fcpu/32 -> hier: 500 KHz Dr.-Ing. Hubert Zitt Seite 10 von 24

S65 Shield Befehle zur Initialisierung des Displays #include <S65Display.h> S65Display lcd; void setup() { // Initialisierung des LCD mit 4 MHz (16 MHz geteilt durch 4) lcd.init(4); } Dr.-Ing. Hubert Zitt Seite 11 von 24

S65 Shield LCD-Befehle Linie zeichnen: void drawline(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint16_t color) Rahmen eines Rechteck zeichnen: void drawrect(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint16_t color) Gefülltes Rechteck zeichnen: void fillrect(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint16_t color) Kreis zeichnen: void drawcircle(uint8_t x0, uint8_t y0, uint8_t radius, uint16_t color) Zeichen ausgeben: uint8_t drawchar(uint8_t x, uint8_t y, char c, uint8_t size, uint16_t color, uint16_t bg_color) Text vom RAM ausgeben: uint8_t drawtext(uint8_t x, uint8_t y, char *s, uint8_t size, uint16_t color, uint16_t bg_color) Text vom Flash ausgeben: uint8_t drawtextpgm(uint8_t x, uint8_t y, PGM_P s, uint8_t size, uint16_t color, uint16_t bg_color) Dr.-Ing. Hubert Zitt Seite 12 von 24

S65 Shield LCD-Befehle oft verwendet: Löschen des kompletten Displays mit einer Farbe void clear(uint16_t color) Zeichnen eines Pixel mit einer Farbe an der Position x0,y0 void drawpixel(uint8_t x0, uint8_t y0, uint16_t color) Kompletter Befehlssatz auf meiner Webseite! Dr.-Ing. Hubert Zitt Seite 13 von 24

S65 Shield LCD-Farben uint16_t color Funktion: RGB(red,green,blue) Beispiele: RGB(255,255,255) oder RGB (0xFF,0xFF,0xFF) für weiß clear (RGB(255,255,255)); // LCD wird komplett weiß drawtext(10,10,"hello World!",1,RGB(0,0,255),RGB(255,50,100)); schreibt den Text Hello World! an der Position x= 10 und y = 10 auf das Display Größe: 1 // normale Größe Textfarbe: RGB(0,0,255) // blau Hintergrundfarbe RGB(255,50,100) Dr.-Ing. Hubert Zitt Seite 14 von 24

S65 Shield LCD-Farben für Farben, die oft genutzt werden: #define BG_COLOR RGB(0xFF,0xFF,0x00) // gelb #define BLACK RGB(0x00,0x00,0x00) // schwarz #define WHITE RGB(0xFF,0xFF,0xFF) // weiß #define RED RGB(0xFF,0x00,0x00) // rot Dr.-Ing. Hubert Zitt Seite 15 von 24

S65 Shield Beispielprogramm Textausgabe #include <S65Display.h> #define FG_COLOR RGB(0,0,0) #define BG_COLOR RGB(255,255,255) #define TEXT_COLOR RGB(0,0,0) S65Display lcd; void setup() { lcd.init(4); // Initialisierung des Displays lcd.clear(bg_color); // Display zurücksetzen lcd.drawtext(5, 5,"Hello!",2,TEXT_COLOR, BG_COLOR); } void loop() { delay(1000); lcd.drawtextpgm(20, 50, PSTR("Hello World!"), 1, TEXT_COLOR, BG_COLOR); lcd.drawchar(20, 100, 'X', 1, TEXT_COLOR,BG_COLOR); delay(3000); lcd.clear(bg_color); } Dr.-Ing. Hubert Zitt Seite 16 von 24

S65 Shield Umschaltung Hoch- bzw. Querformat defaultmäßig im Querformat für Ausgabe im Hochformat in Datei S65Display.h die Kommentarzeichen bei folgender Zeile entfernen // #define S65_ROTATE // Hoch- oder Querformat Ausgabe kann auch um 180 Grad gedreht werden: // #define S65_MIRROR // Ausgabe um 180 Grad drehen einfach mal ausprobieren Dr.-Ing. Hubert Zitt Seite 17 von 24

S65 Shield Hinweis zur Textausgabe Default: ASCII Zeichen von 0x20 bis 0x7F um ASCII Zeichen von 0x20 bis 0xFF nutzen zu können, muss in der Datei font_8x12.h die Zeile #define FONT_END7F //chars: 0x20-0x7F rauskommentieren werden Dr.-Ing. Hubert Zitt Seite 18 von 24

S65 Shield Drehencoder Initialisierung #include <RotaryEncoder.h> RotaryEncoder encoder; ISR(TIMER2_OVF_vect){ TCNT2 -= 250; encoder.service(); } void setup() { encoder.init(); // Interrupt Service Routine // bei Überlauf von Timer2 // Initalisierung Rotary Encoder // Initialisierung Timer2 TCCR2B = (1 << CS22); TCNT2 = 0x00; TIMSK2 = (1 << TOIE2); } sei(); Serial.begin(9600); // Interrupts aktivieren // zum Anzeigen der Ereignisse Dr.-Ing. Hubert Zitt Seite 19 von 24

S65 Shield Drehencoder Abfrage (Ausgabe auf Serial Monitor) void loop() { int8_t move,press; move = encoder.step(); press = encoder.sw(); if (move > 0) Serial.println("Es wird nach rechts gedreht"); else if (move < 0) Serial.println("Es wird nach links gedreht"); else if (move == 0) //Serial.println("Da wurde nichts gedreht!"); } if(press) { Serial.print("Es wurde gedrueckt: "); if(press == SW_PRESSEDLONG) Serial.println("... lang!"); if(press == SW_PRESSED)Serial.println("... kurz!"); } Dr.-Ing. Hubert Zitt Seite 20 von 24

S65 Shield Drehencoder weiterführende Infos mehrere Beispielprogramme im Entwicklungssystem, siehe File Examples S65Shield siehe Datei RotaryEncoder.cpp, z.b. zum Abändern der Zeiten für kurzes oder langes Drücken des Tasters default: (80...800) ms kurz gedrückt > 800 ms lang gedrückt Dr.-Ing. Hubert Zitt Seite 21 von 24

S65 Shield MicroSD Karte - Initialisierung #include <SDcard.h> SDcard sd; void setup() { sd.init(2); TCCR2B = (1 << CS22); TCNT2 = 0x00; TIMSK2 = (1 << TOIE2); // Karte initialisieren // Timer2 initialisieren } sei(); //Interrupts aktivieren ISR(TIMER2_OVF_vect) { static uint8_t count=1; TCNT2 -= 250; encoder.service(); // Interrupst Service Routine // 1000 Hz } if(--count == 0){ count = 10; sd.service(); } // 100 Hz Dr.-Ing. Hubert Zitt Seite 22 von 24

S65 Shield MicroSD Karte - mounten void MountSDCard() { lcd.clear(bgcolor); lcd.drawtextpgm(5,5,pstr("mount card..."),1,rgb(255,255,255),rgb(255,0,0)); lcd.drawtextpgm(5,20,pstr("please insert if not! "),1,RGB(255,255,255),RGB(255,0,0)); } do { delay(500); } while(sd.mount()!= 0); Dr.-Ing. Hubert Zitt Seite 23 von 24

S65 Shield MicroSD Karte Zugriff auf Dateisystem Bibliothek stellt FatFS (FAT File System Module) zur Verfügung Implementierung eines Dateisystems (FAT12, FAT16, FAT32) Befehlsreferenz: http://elm-chan.org/fsw/ff/00index_e.html Dr.-Ing. Hubert Zitt Seite 24 von 24