LED Skalenbeleuchtung mit einem Arduino

Ähnliche Dokumente
Arduino - Einfacher Teiler

Arduino für FunkAmateure

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

Einführung in die Arduino-Programmierung II

analoge Ein- und Ausgänge

Befehlstabelle awapswitch Anwendung

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

Ausarbeitung NE555. Inhalt Seiten. Definition..S2. Eigenschaften...S2. Aufbau..S3. Pins...S3, S4. Anwendungsbeispiele

SINNsorik Wahrnehmen durch Sensoren NAME, KLASSE:

Infokarte: Snap4Arduino

Informatik Enlightened. Station 0 - Einstieg

Microcontroller im Amateurfunk

MSP-EXP430F5529LP. LaunchPad Entwicklungskit MSP-EXP430F5529LP. Schnellstart mit dem Texas Instruments. LaunchPad Entwicklungskit

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

Serie 8: Microcontroller 17./

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

Elektrische Schnittstelle Signal

Grundlagen der Rechnertechnologie Sommersemester Vorlesung Dr.-Ing. Wolfgang Heenes

CBLM CAN BUS Lichtmodul

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

Kurzanleitung: 1. Anschüsse. MWCLightRGB 2013 by VoBo & HaDi-RC. HW-Version SW-Version 1.2x

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

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil 8: gavrasmw und weitere Beispiele

Verarbeiten von Analogwerten

Microcontroller Kurs Programmieren Microcontroller Kurs/Johannes Fuchs 1

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

Haftkünstler auf dem Prüfstand. Online Ergänzung HOLGER FLORIAN BOHN OLGA SPECK THOMAS SPECK

Projekt Nr. 15: Einen elektronischen Würfel erstellen

Arduino, IR Fernbedienung dekodieren

ARDUINO Übung. Inhalt:

Ulrich Stein

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

Master. 230V~ Netzteil 12V-48V. Slave

SOLAROX KSQ350, KSQ700, KSQ1000, KSQ1400

2m PA mit BLF 368 (ohne Netzteil) Schaltungsbeschreibung

Die Reihenschaltung und Parallelschaltung

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

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

Highspeedaufnahmen mit dem Arduino Uno Board

Schrittmotor Parallel Port Interface Platine

ELEXBO A-Car-Engineering

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

Laborübung, Diode. U Ri U F

Arduino für FunkAmateure

BFI Industrie-Elektronik GmbH + Co. KG

Ampelsteuerung Merkblatt 1 Wie werden die Bauteile angeschlossen?

Bedienungsanleitung CU-1RGB

LernJob Naturwissenschaften - Physik Wie funktioniert ein Foliendrucksensor?

Der Transistor (Grundlagen)

Beschaltung eines Mikrocontrollers. Jordi Blanch Sierra Steuerungsgruppe

Entwicklungsboard 16F1824

Aufgaben zur Attiny-Platine

Arduino Uno Bastelecke

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

Dokumentation Projekt JK-Schaltung. Inhaltsverzeichnis

Produktbeschreibung Einfache Taster Platine (ST15)

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

Can bus Erweiterung. Powered by.

Bedienungsanleitung. Abb. 1 Abb. 2

MGB Quick Referenz - Stand 04/2010 2

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

Zusatzprogramme Electronicsmodul Art.-Nr

Märklin Steuerwagen. Anwendungs-Beispiel zur Steuerwagen-Digitalisierung mit dem WaLD AB

Software mit Tests & Beispielen

AS-i Safety Analogeingangsmodule, IP20

8.1 Grundsätzlicher Aufbau der Beispiele

Tech Note: IO Belegung des RESI-LC-CPU Controllers

52 100: Zeitverzögerungsbaugruppe

Technische Dokumentation MDK DC Motion Control V1.0

Einführung in die Informationstechnik. Eingabe - Verarbeitung - Ausgabe CIUS - KREISLICHT. Realschule Tamm Technik Axel Steinbach

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

3. Schaltungsentwicklung - Beispiel Taschenlichtorgel

Taktisch - Technische Betriebsstelle Augsburg

Noah Mixer. Bedienelemente VU-Meter Kanalzüge Die Mastersektion. - Tactive Instrument Modeller. Gesamt-Inhaltsverzeichnis.

Erste Schritte. In diesem Kapitel lernen Sie Folgendes:

// Daniel Ettenhuber // Projekt Kameraslider // letzte Änderung: // //

Anschluss- und Bedienungsanleitung

Arduino-Lichtorgel Projektbericht

Handout zum Vortrag: Einfache integrierte digitale Schaltungen von Andreas Bock

Anwendungen der Prozessdatenverarbeitung (Liste V) Leitung: Prof. Dr. Linn. Microcontroller Programmierung

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

Ein Mikrocontroller ist ein Mikrochip, der alle benötigten Komponenten (sozusagen das Zubehör) bereits in sich trägt. Er sieht genauso aus wie 11

Labor Automatisierungstechnik

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

maxon motor maxon motor control Brems-Chopper DSR 50/5 Sach-Nr Bedienungsanleitung Ausgabe August 2005

Umbau eines Saug- und Wisch Roboters auf ARDUINO Steuerung

Inbetriebnahme mit Tebis TX TX100 Verknüpfung

Kennenlernen der Laborgeräte und des Experimentier-Boards

Kurseinheit 7. Spaß an Technik: Elektronik & Mikrorechner. 1. Elektronik Der Sperrschicht-Transistor. 3. Software

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

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

System 2000 Impuls-Einsatz Gebrauchsanweisung

Motortemperaturschutz FIMO TA 03

Digitalelektronik 4 Vom Transistor zum Bit. Stefan Rothe

Timer-Schaltung N Zum Beispiel zum Zähneputzen oder Eierkochen.

Jan Monsch. Donnerstag, 2. Mai 13

- Der heisse Draht - Physical Computing. Workshop Oktober 2015 Olav Schettler

Tag 2 Eingabe und Interrupts

Temperaturmodul. Software. Bedeutung der Leuchtdioden. Kanal-LEDs. System-LEDs. Start nach Reset

Bolz electronic Albstr Neuhausen : Fax: Timer5-5. Stand: 3/97

Transkript:

Projektteil: LED Skalenbeleuchtung mit einem Arduino Aufgaben: - Ein Taster schaltet die LED-Beleuchtung ein - Nach Ablauf einer im Programm hinterlegten Zeit schaltet sich die Beleuchtung von selbst wieder aus. - Alternativ kann die Beleuchtung durch nochmaliges drücken des Tasters jederzeit ausgeschaltet werden. - Die Helligkeit der Beleuchtung kann über einen Potentiometer eingestellt werden. - Bei Nullstellung des Potentiometers ist die Beleuchtung nicht dunkel sondern leuchtet mit sehr geringer Intensität. Spannungs- / Stromversorgung Arduino Board 7-12V -> gewählt 9V Diese kann von einem einfachen Spannungsregler (z.b Typ 7809) auch aus einer Autobatterie erzeugt werden. Die Verlustleistung an den LED-Vorwiderständen ist geringer. LED (Jumbo LED rot) gemessen: 2,00 V / 20 ma 2,10 V / 25 ma 2,20 V / 33 ma [Jb / 21.02.2016] Stromverbrauch LED s: Auslegung: 3 Skalen á 3 LED s = ca. 180 ma gesamt Anmerkung: Für jeden Pin des Arduino Boards werden 20mA empfohlen, maximal sind 40 ma pro pin zulässig. Als maximaler Ausgangs-Strom für das Gesamte Board sind 200 ma angegeben. Um nicht für jede LED einen pin zu verbrauchen und um Reserven zu haben sowie das Board sicher nicht zu überlasten müssen die LED s mit einem Verstärker geschaltet werden. Ein Relais kann nicht verwendet werden, da dies nicht für eine PWM (Puls Weiten Modulation) für die Helligkeitsregulierung geeignet ist. Gewählt wird als Leistungsschalter ein MOSFET der direkt vom Arduino angesteuert werden kann, Typ IRL540 Quelle: https://arduinodiy.wordpress.com/2012/05/02/using-mosfets-with-ttl-levels/ Um die LED s an der gewählten 9V Versorgungsspannung zu betreiben zu können ist ein Vorwiderstand erforderlich: Variante 1: jede LED mit einem Vorwiderstand von 340 Ω, 1/4W versehen. (Siehe LED Berechnung Variante 1 im Anhang) Nachteil: Viele Bauteile (Widerstände) erforderlich und 340 Ω sind nicht zur Hand. Diese müssten also jeweils durch eine Widerstands-Reihenschaltungen aufgebaut werden was für den Versuch noch mehr Bauteile erforderlich macht. 1

Variante 2: Alternativ könnten die jeweils 3 LED s einer Skalenbeleuchtung mit nur einem Vorwiderstand betrieben werden. Gemäß der LED Berechnung Variante 2 im Anhang ergibt sich dann folgender Wert: 1 Stück Vorwiderstand von 113 Ω, 1/2 W Dieser wird durch eine Reihenschaltung von Widerständen aufgebaut die für Versuche zur Hand sind: 2 Stück á 51 Ω und ein Stück 10 Ω, jeweils 1/4 Watt. Test-Aufbauten Analogeingänge Belegung Arduino Board (Um die Digitaleingänge für spätere Versuche mit dem Schrittmotor freizuhalten werden auch die Taster auch auf die Analogeingänge gelegt) A0 Potentiometer 10 kω A1 Taster 1 grün A2 Taster 2 gelb (Taster 2 als Reserve für weitere Versuche, wird hier nicht verwendet) Digitalausgänge Pin 12 Pin 11 für Schaltversuche (ein / aus) für Helligkeitsregelung (PWM) 2

Versuch 1: Funktion des Leistungsschalters testen. Anschlüsse und Schaltschema: MOSFET IRL 540 N Schaltung: Anmerkung: Die hier und im Folgenden angegebenen Wert für Spannung (blau) und Strom (rot) sind die im Versuchsaufbau gemessenen Werte. 3

Versuch 2: Schaltung und Ansteuerung der LED s gemäß o.g. Variante 2 mit MOSFET testen. Spannungen und Strom ermitteln. Versuch 3: Schaltung wie Versuch 2, aber den 3.Widerstand (10 Ω) weglassen. Ergebnisse: - Schaltung funktioniert. - MOSFET schaltet sicher durch. - Helligkeitsregelung über PWM (Puls Weiten Modulation) funktioniert. - Messwerte Spannungen und Strom zeigen das 10 Ω nicht notwendig ist. Leistungen an den Widerständen: U x I = 0,244W, d.h. ¼ Watt Type lässt sich verwenden - Bei Ausfall einer LED (R = Ω) steigen der Strom und die Spannung nur geringfügig an. D.h. die Bauteile (auch die restlichen LED s) werden nicht gefährdet. 4

Foto Versuchsaufbau Gesamtansicht LCD-Display (für andere Versuche) Schaltung gemäß Versuch 3 Potentiometer Arduino Microcontroller Board Taster Helligkeits-Regelung Wie eingangs beschrieben soll die Helligkeit der Beleuchtung über den am Analogeingang angeschlossenen Potentiometer eingestellt werden. Bei Nullstellung des Potentiometers soll die Beleuchtung nicht aus sein sondern mit einer geringen Intensität leuchten. Grundlagen: Der Potentiometer erzeugt am Analogeingang A0 je nach Stellung eine Spannung zwischen 0 und 5V. Diese wird vom im Arduino integrierten 10-bit analog / digital Wandler in ein Signal von 0 bis 1023 umgewandelt. Der Digital-Ausgang Pin 11 generiert beim Programm-Befehl analogwrite ein PWM-Signal bei 490 Hz. Die zulässigen Werte sind 0 bis 255. 5

Damit ergibt sich grundsätzlich folgender Zusammenhang zwischen dem Eingang und dem Ausgang (blau gestrichelte Linie): Bei Berücksichtigung einer minimalen Beleuchtung in Potentiometer-Stellung 0 entspricht das Verhältnis Eingang zu Ausgang der blauen durgezogenen Linie. Dadurch ergibt sich folgende - vom Programm durchzuführende - Berechnung für den Ausgangswert Y in Abhängigkeit vom Eingangswert X: Die Praktischen Versuche mit Schaltung Versuch 3, (siehe oben) haben jedoch ergeben, dass die deutlich wahrnehmbare minimale Beleuchtungs-Intensität bei einem Ausgangswert von 5 liegt und maximale wahrnehmbare Helligkeit bereits bei einem Wert von 195 erreicht wird. Dadurch ergibt sich folgender Verlauf bzw. folgende angepasste Berechnungsformel: 6

Diese Werte ( 190, 5 ) sind im Programm hinterlegt und können von einem eingewiesenen Benutzer bei Bedarf sehr leicht verändert und den Bedürfnissen angepasst werden. Zeitsteuerung: Nach Ablauf einer im Programm hinterlegten Zeit soll die Beleuchtung auf jeden Fall ausgeschaltet werden. Dazu wird der im Arduino integrierte Milli-Sekunden-Timer verwendet so dass hierfür keine weiteren Hardware-Baugruppen hierfür erforderlich sind. Der Timer startet nach dem Einschalten oder nach einem Reset des Boards bei 0 und hat einen Wertebereich von 0 bis ca. 4,2 * 10 9 (keine negativen Werte). Achtung! Der Überlauf des Timers findet nach ca. 49 Tagen statt und löst bei mathematischen Operationen ( =, >, < ) Probleme aus bzw. lässt sich programmtechnisch nicht sicher erfassen. Das es aber nicht vorgesehen ist dass die Steuerung ununterbrochen über diesen Zeitraum in Betrieb ist kann dieses Problem vernachlässigt werden. 7

Anhang LED Berechnungen Variante 1: jede LED mit einem Vorwiderstand versehen. Variante 2: 3 LED s gemeinsam mit nur einem Vorwiderstand betrieben 8

Programm Test-Programm für Sternwarte Überlingen mit einer Ausschaltzeit von 5 Sekunden Datei: LED_Programm_Rev2.ino Erstellt: 06.03.2016 / Jungbluth Anmerkung: die gelb markierten Werte sind im Programm hinterlegte Variable die von einem eingewiesenen Benutzer sehr leicht verändert und den Bedürfnissen angepasst werden können. // LED mit Taster als Flip-Flop ein-/ausschalten // aber nach Ablauf einer Zeit "Einschaltdauer" immer ausschalten // LED Helligkeit mit Poti steuern unter Berücksichtigung einer min. und max.-intensität, siehe -> "Berechnungen LED Ausgang etc.xlsx" // // Potentiometer -> pin A0 (Analogeingang A0) // Taster T1 -> pin A1 (Analogeingang A1) // LEDs bzw. MOSFET -> pin 11 (Digital PWM-Ausgang) // // Anteuerung LED: max. Wert 195, min. Wert 5 // Jb / Rev.2 / 06.03.2016 - läuft!!!! unsigned long Einschaltdauer = 5000; // Setzt die Zeit für die Einschaltdauer in Millisekunden unsigned long Ausschaltzeit = 0; byte Merker = 0; int LED_Status = -1; float val = 0.0; // Deklariert die Variable "Ausschaltzeit" // Deklariert die Variable "Merker" für die Flip_Flop- Funktion als byte(0-255) mit Wert 0 // Deklariert die Variable "LED-Status" als Integer (-32.767 bis 32.768) ->-1 = Aus / +1 = Ein // Variable für Berechnung LED Helligkeit void setup() { pinmode(11, OUTPUT); } // LED pin 11 als Ausgang definieren void loop() { if (analogread(a1) > 500) { delay(100); Merker = 1; } // wenn Taster gedrückt,d.h pin2 =high // dann 100 Millisekunden warten um den Taster zu entprellen und Merker auf 1 setzten if (Merker == 1 && analogread(a1)< 500) // wenn Merker = 1 und Taster wieder losgelasse... { LED_Status = LED_Status *-1; // dann LED Status toggeln Merker = 0; delay(150); // Merker auf 0 zurücksetzen und 150 Millisekunden warten um den Taster zu entprellen } if (LED_Status > 0) // Bei Tastendruck "LED an" Ausschaltzeit setzten (aktuelle Zeit + Einschaltdauer) { Ausschaltzeit = millis() + Einschaltdauer; } if (millis()> Ausschaltzeit) { LED_Status = -1;} // Wenn Timer (aktuelle Zeit) > Ausschaltzeit dann LED aus 9

if (LED_Status > 0) { val = analogread(a0); val = val*(190.0 / 1023.0)+5.0; analogwrite(11, val); } // Wert Analogeingang A0 an die Variable "val" übergeben // Ausgabewert berechnen (min./ max. Helligkeit) // Ausgabewert an pin11 ausgeben ->LED an } if (LED_Status < 0) {analogwrite(11, 0);} // LED ganz aus 10