analoge Ein- und Ausgänge

Ähnliche Dokumente
Was so passieren wird:

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

Installation der Entwicklungsumgebung

Einführung in Mikrokontroller Benutzung mit dem Arduino Board. Ramon Hofer ICVR

Einführung Arduino - Aufbau

Die Sonne spielt Musik

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

~10 RESET 3.3V 5V GND GND VIN

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

Arduino für FunkAmateure

Befehlstabelle awapswitch

Beschaltung eines Mikrocontrollers. Jordi Blanch Sierra Steuerungsgruppe

LED Skalenbeleuchtung mit einem Arduino

Der Arduino im Physikunterricht Cheat-Sheet. Christopher Kommetter

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

Befehlstabelle awapswitch Anwendung

Analog-Digital-Converter

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

ARDUINO KENNENLERNEN WAS IST EIN ARDUINO?

Puls Weiten Modulation (PWM)

Arduino, IR Fernbedienung dekodieren

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

Erste Gehversuche mit ARDUINO (DL6OAA)

Arbeitsblatt Nr.19: RFID Kit

Vorbereitung. Teil D Analog-Digital-Wandler 1

Arduino 1/10. Das erste Programm: LED-Blinklicht. Einzelheiten der Schaltung. Programm für das Blinklicht

TCS3200 Farbsensor. Schritt 1 Anschließen des Sensors. Bild 1: TCS3200 Farbsensor

Eine tastergesteuerte LED

Einführung in die Arduino-Programmierung II

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:

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

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

Erneuerung der Peilersteuerung

Einführung in die Arduino Programmierung am Beispiel eines Roboters.

ELECTRONIC SYS. 8 Channel 10 Bit A/D Wandler. seriell V USB V

ERWEITERUNGSSHIELD MIT ANALOGEN EINGÄNGEN

Arduino und die Physical Computing Revolution Playground AV Anton Bachmayr - Netzteil

BLUE line. Bedienungsanleitung zum M-Unit Experimentierboard. Innovative Technik. Tobias Regenhardt Grüner Weg Seulingen

Einen elektronischen Würfel programmieren

ARDUINO Übung. Inhalt:

Selbstschließende Hand (SsH)

Arduino µcontroller. Virtuelle COMSchnittstelle

Android + Arduino Hardware steuern mit Android. Entwicklertag Karlsruhe, Sebastian Wastl

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

Arduino für FunkAmateure

Struktur eines Sketches

Wir hätten nie gedacht das drei Computer und Elektronik-Fans soweit kommen!! Mit diesem Video sagen wir vielen Dank!

SY-720SC. SCART to HDMI Scaler OPERATION MANUAL

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

Steuern und Messen mit Raspberry Pi

Erste Schritte. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Mark VHS Augsburg Einführung in die Mikrocontroller-Programmierung.

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

Erste Gehversuche mit ARDUINO (Teil 3) (DL6OAA) Die 7-Segmentanzeige (1-stellig)

Arduino Digispark. Ausgabe Copyright by Joy-IT 1

CR2013. CompactModule. E/A-Modul digital und analog für System R 360. CANopen. Schnittstelle. Betriebsspannung V DC.

Fachprojekt for Embedded System: Design and Implement Your Own Embedded Systems (2) LS 12, TU Dortmund

EINE MHZ FUNKSTRECKE MIT ARDUINOS AUFBAUEN [GEBEN SIE IHRE ADRESSE EIN]

Jan Monsch. Donnerstag, 2. Mai 13

Bedienungsanleitung FMI-250 Zusatz. ATP Messtechnik GmbH

Arduino für FunkAmateure

TaT-Maker Steuerung. Selbstbauanleitung. von. Kurt Sepke

Tag 3 Timer, ADC und PWM

Bei jedem Arduino-Projekt muss man ein Grundgerüst "bauen". Das sieht dann so aus:

SWR-Messeinrichtung. mit. externer Messbrücke. und. externem logarithmischem Detektor

Arduino für FunkAmateure

Arduino LCD Shield. Quelle:

Temperaturmessung mit dem ATmega8

Joy-IT Ultraschall Abstandssensor

Hall Magnetfeld Sensor KY-003

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert?

Microcontroller im Amateurfunk

R&R. Ges. für Rationalisierung und Rechentechnik mbh. R&R RR-P-508 / ST106-EX1 motor-control unit

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

Jaspreet Singh Dulai Seminar S1 2015/2016. Bluetoothshield

Digitalelektronik 1 Digitale Ausgabe. Stefan Rothe

Änderungen in Technik, Design und Ausstattung vorbehalten AP_20512-HM /

Linear Magnetic Hall Sensor KY-024

Arduino und Amateurfunk (1)

Einführung Microcontroller

LED Skalenbeleuchtung mit einem Arduino

Erste Schritte. Das Arduino-Board. Ihr Fundino-Board. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

SINNsorik Wahrnehmen durch Sensoren NAME, KLASSE:

ESP32 Pico-Board. ADC mit MCP ESP32 Addon. ADC- mit dem MCP3008. Vers. 1.0

Hardware Beschreibung

GPS to Nixie Uhren Konverter. Dokumentation

Umbau eines Saug- und Wisch Roboters auf ARDUINO Steuerung

Felder und Schleifen. Themen heute. Felder Schleifen Heartbleed. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Autonome Mobile Systeme. Dr. Stefan Enderle

Inhaltsverzeichnis. LNT Fischertechnik RCTXTLT 2 Juni 2017

Rotary Encoder (RE)

Sensoren bauen. 2.1 Analoge Sensoren

Bluetooth Datenerfassungs- und Steuerungsmodul HB625

Highspeedaufnahmen mit dem Arduino Uno Board

4.2 Die Arduino-Hardware

C++ mit dem Arduino (Uno und Mega2560)

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

Transkript:

2016/07/17 13:39 1/5 analoge Ein- und Ausgänge analoge Ein- und Ausgänge Neben den digitalen Leitungen bietet der Arduino mehrere analoge Ein- und Ausgänge. analoge Ausgänge Die Ausgänge sind mit PWM bezeichnet. Weil dort natürlich kein echtes analoger Pegel anliegt, das kann der Arduino nicht, sondern ein pulsweitenmoduliertes Signal (Näheres findet man hier). Für viele Anwendungen ist das Signal schon so verwendbar. Beispielsweise um die Helligkeit einer LED zu verändern. Oder einen Motor zu steuern. Die Frequenz vom Arduino liegt bei ca. 500Hz. Aber das PWM Signal läßt sich auch leicht in eine echte Spannung umwandeln. Dazu reicht ein Kondensator und ein Widerstand, der dann einen sog. Tiefpass bildet. Hier die Schaltung, die ich gerne verwende: Für weiterführendes zum Thema PWM würd ich mal hier schauen. Ausgabe auf den Pin geht einfach mit analogwrite(pin,wert); Wert darf zwischen 0 (aus) und 255 (komplett ein) liegen. Analoge Ausgänge braucht man nicht über pinmode als Ausgang kennzeichnen. Das passiert intern automatisch. Ausprobieren kann man das ganz einfach. Einfach mal eine LED an den Ausgang hängen und dann verschiedene Werte geben. Sieht toll aus, gell? analoge Eingänge Die funktionieren wie erwartet. Eine Spannung am Eingang wird in eine Zahl von 0..1023 umgewandelt. (10-Bit Auflösung). Dabei ist 0V = 0 und 5V=1023. int wert = analogread(pin); Pin geht von 0..5. (Oder je nach Boardmehr oder weniger.) Man kann die obere Schranke (5V) auch anders einstellen (jedoch nicht höher als 5V) Dafür gibt es die Funktion analogreference(modus); Modus kann einen der folgenden Werte annehmen:

Last update: arduino:tutorial:sprechen-sie-arduino:fertige-funktionen:analoge-ein--und-ausgaenge http://wkla.no-ip.biz/arduinowiki/doku.php?id=arduino:tutorial:sprechen-sie-arduino:fertige-funktionen:analoge-ein--und-ausgaenge 2016/01/07 23:27 DEFAULT: die voreingestellte analoge Referenzspannung von 5V (bei 5V Arduinos) oder 3.3V (bei 3.3V Arduinos). Liegt dann auch am A REF Anschluss an. INTERNAL: die eingebaute Referenzspannungsquelle. Normalerweise 1,1V beim ATmega328. (nicht beim Arduino Mega) Liegt dann auch am A REF Anschluss an. INTERNAL1V1: die eingebaute 1,1V Referenzspannungsquelle. (nur beim Arduino Mega) Liegt dann auch am A REF Anschluss an. INTERNAL2V56: die eingebaute 2,56V Referenzspannungsquelle. (nur Arduino Mega) Liegt dann auch am A REF Anschluss an. EXTERNAL: Referenz eine externe Spannung, die am AREF pin eingespeist. (ACHTUNG nur von 0 bis 5V) Eine Wandlung dauert ca. 100msec. D.h. man kann maximal theoretisch 10.000 Wandlungen pro Sekunde vornehmen. Wichtig bei der internen Referenz: Wenn man Probleme hat mit zus. Rauschen, d.h. wenn die Werte stark wechseln, sollte man zwischen dem AREF Pin und GND einen Kondensator schalten. Ich benutze einen 220nF Keramikkondensator. Beispiel gefällig, aber gerne doch: Zunächst eine Testschaltung und hier mal eine Anwendung für eine analoge Tastatur. http://wkla.no-ip.biz/arduinowiki/ Printed on 2016/07/17 13:39

2016/07/17 13:39 3/5 analoge Ein- und Ausgänge Und nun das dazugehörige Programm: /* Introduction The keypad consists of 5 keys: select, up, right, down and left. To save the digital IO pins, the keypad interface uses only one ADC channel. The key value is read through a 5 stage voltage divider. Pin Allocation Pin Function Analog 0 Button (select, up, right, down and left) */ // //Key message char msgs[5][15] = "Right Key OK ", "Up Key OK ", "Down Key OK ", "Left Key OK ", "Select Key OK" ; int adc_key_val[5] = 30, 150, 360, 535, 760 ; int NUM_KEYS = 5; int adc_key_in; int key=-1;

Last update: arduino:tutorial:sprechen-sie-arduino:fertige-funktionen:analoge-ein--und-ausgaenge http://wkla.no-ip.biz/arduinowiki/doku.php?id=arduino:tutorial:sprechen-sie-arduino:fertige-funktionen:analoge-ein--und-ausgaenge 2016/01/07 23:27 int oldkey=-1; void setup() // Serielle Schnittstelle einstellen Serial.begin(19200); Serial.flush(); pinmode(13, OUTPUT); //we'll use the debug LED to output a heartbeat unsigned long RcValue = 0; void loop() adc_key_in = analogread(0); // read the value from the sensor digitalwrite(13, HIGH); key = get_key(adc_key_in); // convert into key press if (key!= oldkey) // if keypress is detected delay(50); // wait for debounce time adc_key_in = analogread(0); // read the value from the sensor key = get_key(adc_key_in); // convert into key press if (key!= oldkey) oldkey = key; if (key >=0) Serial.println(msgs[key]); digitalwrite(13, LOW); // Convert ADC value to key number int get_key(unsigned int input) int k; for (k = 0; k < NUM_KEYS; k++) if (input < adc_key_val[k]) return k; if (k >= NUM_KEYS) k = -1; // No valid key pressed return k; Statt 5 digitale Leitungen für die 5 Taster zu verschwenden nehmen wir einfach einen analogen Eingang. Je nach Spannung wissen wir, welche Taste gedrückt worden ist.das kann zwar noch http://wkla.no-ip.biz/arduinowiki/ Printed on 2016/07/17 13:39

2016/07/17 13:39 5/5 analoge Ein- und Ausgänge erweitern, jedoch wird es dann immer schwieriger die Tatse einwandfrei zu identifizieren. Denn sowohl die Widerstände haben Toleranzen wie auch der A/D Wandler wie auch die Spannungsversorgung. Das alles addiert sich und deswegen ist bei dem einen die Taste für DOWN bei 350, beim anderen schon bei 300. Wenn man das für sich selber macht, kann man ja die Werte entsprechend anpassen. Bei der veröffentlichung würde ich zumindest drauf hinweisen, wie man das kalibriert. Bei 5 Tasten sollte das aber bei jedem funktionieren. (Quelle: diverse Quellen, wurde mit in dem Arduino LCD Keypad shield schematic veröffentlicht) From: http://wkla.no-ip.biz/arduinowiki/ - Arduino im Modellbau Permanent link: http://wkla.no-ip.biz/arduinowiki/doku.php?id=arduino:tutorial:sprechen-sie-arduino:fertige-funktionen:analoge-ein--und-ausgaenge Last update: 2016/01/07 23:27