Eine tastergesteuerte LED

Ähnliche Dokumente
Eine Roboter-Kanone. Projekt 20

Eine tastergesteuerte LED

Was so passieren wird:

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

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

Arduino Grundkurs. 3. Schreibe eine Funktion für das Morsezeichen S und eine für O

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

Selbstschließende Hand (SsH)

Struktur eines Sketches

Arduino für FunkAmateure

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

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

Arduino Uno Bastelecke

Highspeedaufnahmen mit dem Arduino Uno Board

TaT-Maker Steuerung. Selbstbauanleitung. von. Kurt Sepke

Einen elektronischen Würfel programmieren

Abbildung 4-4-1: Ein prellender Taster

Arbeitsblatt Nr.19: RFID Kit

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

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

Einführung Arduino - Aufbau

LED Skalenbeleuchtung mit einem Arduino

Arduino für FunkAmateure

ARDUINO Übung. Inhalt:

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

Erste Gehversuche mit ARDUINO (DL6OAA)

Informatik Enlightened. Station 0 - Einstieg

SINNsorik Wahrnehmen durch Sensoren NAME, KLASSE:

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

Arduino für FunkAmateure

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

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

ArduBlock Station 4 - Farbthermometer

Raspberry Pi meets Pocket Code. Tutorial: Ampelschaltung

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

analoge Ein- und Ausgänge

Arduino, IR Fernbedienung dekodieren

Bei Funduino kann der Servo für 2,90 erstanden werden.

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert?

Der CodeBug. B) Physical Computing. 1) Einleitung

< UNTERRICHTSMATERIAL /> Calliope mini. Musik und elektrische Leitfähigkeit

Arduino - Einfacher Teiler

Motorino. Ausgabe Copyright by Joy-IT 1

ERWEITERUNGSSHIELD MIT ANALOGEN EINGÄNGEN

Ampelsteuerung Merkblatt 1 Wie werden die Bauteile angeschlossen?

Grundlagen der Bauelemente. Inhalt. Quellen: Autor:

Arduino Line Follower Roboter.

BAUANLEITUNG ROBO-REGENTRUDE

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

Anleitung für die Verdrahtung

Landesjamboree 2007 in Bruchsal

Befehlstabelle awapswitch Anwendung

Arduino für FunkAmateure

8.3 Taster am µcontroller

Jaspreet Singh Dulai Seminar S1 2015/2016. Bluetoothshield

Arduino Self Balancing Roboter.

MÄXXCHEN - Interface- und Arduinounterstützes Würfelspiel-Rondell (Prototyp) WS 2010/2011. Betreuer: Jan Sieber

Weichenanzeige, mit 2 LED s, kompatibel zum Anschluss direkt an grünen Trix-Schalter 0,25W

Anschluss eines GSM-Alarmsystems an die originale DWA.

Heisse Drachen. Steckbrief. Hinweise für Mentoren: ERSCHAFFE EIN TIERCHEN GANZ NACH DEINEN VORSTELLUNGEN, DAS DU ELEKTRONISCH STEUERN KANNST.

Arduino Digispark. Ausgabe Copyright by Joy-IT 1

Arduino in C/C++ programmieren

Eine Zusammenstellung einiger einfacher Aufgaben für erste einfache Programme mit dem Blockeditor gibt es zum Beispiel auf microbitly.weebly.com.

- Der heisse Draht - Physical Computing

Stromkreis - Kartei 1/12

Interaktive Weihnachtskarten

Leiter und Isolatoren

LED Skalenbeleuchtung mit einem Arduino

Elektrobaukasten - 8 Schaltungen

Anleitung der Smart-Life-App. Anleitung: Version 1.2 ios: Version 1.7 Android: Version 2.08

Einführung in die Arduino-Programmierung II

- + Verbinde die einzelnen Bauteile so, dass der Stromkreis geschlossen ist. Zeichne die Leitungen.

Projekt Nr. 15: Einen elektronischen Würfel erstellen

Was ist ein Stromkreis?

Der BBC Micro:Bit. B) Physical Computing. 1) Experimente mit LEDs a) Grundlagen

Aufgaben zur Attiny-Platine

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

Anleitung Light Module LM2-S

Puls Weiten Modulation (PWM)

Stellpult selbst gebaut: Teil 9, Weichenanzeige für 2 LED s

Bausatz S4DCCB 4-fach Servo-Decoder

Praktikum Komponenten & Programmierung von Automatisierungssystemen

< UNTERRICHTSMATERIAL /> Calliope mini. Blumenpflegestation

Girls Day. Einführung Mikrocontroller,

BENUTZER-ANLEITUNG HPS 852 MIT AKKU-GEPUFFERTER SIRENE HPS 853 MIT SIRENE OHNE AKKU-PUFFERUNG HPS 840 OHNE SIRENE

Die Reihenschaltung und Parallelschaltung

Dokumentation Projekt JK-Schaltung. Inhaltsverzeichnis

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

Sensoren Messen und experimentieren mit Arduino und Raspberry Pi

Eine tastengesteuerte Ampelanlage

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

Schaltungen zum Stecken mit den Kosmos Elektrokästen

Bedienungsanleitung. MP3 Player. Modellnummer: MP755

Informatik Enlightened - Kurzfassung Station 4 Farbthermometer inkl. Einstieg

ALLNET 4duino Starter Kit LIGHT

Transkript:

Projekt 1 Eine tastergesteuerte LED In diesem Projekt verwenden Sie einen Taster, um zu steuern, wann die LED leuchtet.

Benötigte Bauteile Arduino-Platine Steckbrett Jumperkabel LED Taster mit vier Pins 10-kOhm-Widerstand 220-Ohm-Widerstand

Dieses Projekt führt Sie in die Grundlagen der Schalter ein, die wir im gesamten Buch einsetzen. Fast alle elektrischen Geräte verwenden Schalter, um ein Element ein- oder auszuschalten. Es gibt viele Arten von Schaltern, hier verwenden wir einen Taster (Abbildung 1-1). Abbildung 1-1: Ein Taster So funktioniert es Wenn ein Taster gedrückt wird, schließt er den Stromkreis und schaltet ihn ein. Wird der Taster losgelassen, springt er zurück und öffnet den Schaltkreis, sodass der Strom unterbrochen wird. Ein Taster wird standardmäßig auch als Schließer bezeichnet und zum Beispiel in Computertastaturen verwendet. Ein Schalter dagegen bleibt in seiner Position stehen, bis Sie sie verändern, wie zum Beispiel ein Lichtschalter. Dieser Taster hat vier Pins, aber meist werden nur zwei benötigt. In diesem Projekt verwenden Sie die beiden oberen Anschlüsse, die beiden unteren haben aber genau dieselbe Funktion. Wie in Abbildung 1-2 gezeigt, bilden die Pins einen Schaltkreis. Pin A und Pin C sind immer verbunden, ebenso die Pins B und D. Wird der Taster betätigt, ist der Stromkreis geschlossen. Abbildung 1-2: Der geöffnete Taster A B C D 24 Projekt 1

Der Aufbau 1. Platzieren Sie den Taster im Steckbrett (siehe Abbildung 1-3). Abbildung 1-3: Platzierung des Tasters 2. Schließen Sie Pin A an einen Anschluss des 10-kOhm-Widerstands an und verbinden Sie denselben Anschluss des Widerstands mit Pin 2 des Arduino. Verbinden Sie das andere Ende des Widerstands mit der Masseleiste und die Masseleiste mit GND des Arduino. Schließen Sie Pin B des Tasters an die 5-V-Leiste an und diese an + 5V des Arduino. Taster Arduino Pin A GND und Pin 2 über 10-kOhm-Widerstand Pin B +5V 3. Stecken Sie die LED in das Steckbrett und verbinden Sie den längeren, positiven Anschluss mit Pin 13 des Arduino über einen 220-Ohm- Widerstand und den kürzeren Anschluss mit GND. LED Positiver Anschluss Negativer Anschluss Arduino Pin 13 über 220-Ohm-Widerstand GND 4. Prüfen Sie, ob Ihr Aufbau dem Schaltplan in Abbildung 1-4 entspricht, und laden Sie den Sketch von Seite 27 auf den Arduino. 25 Projekt 1

Abbildung 1-4: Schaltplan für die per Taster gesteuerte LED Der Taster ist an Pin 2 angeschlossen. Das Drücken des Tasters lässt die LED leuchten. Die LED leuchtet so lange, wie der Taster gedrückt wird. 26 Projekt 1

Der Sketch In diesem Sketch weisen Sie dem Taster einen Pin zu und definieren ihn als Eingang, ebenso weisen Sie der LED einen Pin zu, den Sie als Ausgang festlegen. Der Code teilt dem Arduino mit, dass die LED so lange leuchten soll, wie der Taster gedrückt wird (den Stromkreis schließt), und dass die LED ausgeschaltet werden soll, wenn der Taster nicht gedrückt wird. Wird der Taster losgelassen, wird der Stromkreis unterbrochen und die LED ausgeschaltet. /* von DojoDave <http://www.0j0.org> geändert am 30. Aug. 2011 von Tom Igoe Dieser Beispielcode ist gemeinfrei. http://www.arduino.cc/en/tutorial/button */ const int buttonpin = 2; const int ledpin = 13; int buttonstate = 0; void setup() { pinmode(ledpin, OUTPUT); pinmode(buttonpin, INPUT); // Pin für den Taster // Pin für die LED // Gibt dem Taster einen Wert // Richtet LED-Pin als Ausgang ein // Richtet Tasterpin als Eingang ein void loop() { buttonstate = digitalread(buttonpin); // Liest Eingabe von Pin 2 if (buttonstate == HIGH) { // Schaltet LED ein, wenn Taster // gedrückt digitalwrite(ledpin, HIGH); else { digitalwrite(ledpin, LOW); // Schaltet LED anderenfalls aus 27 Projekt 1

Projekt 7 Arduino-Musik Bisher waren die Projekte meist optischer Natur. Jetzt wollen wir etwas Musik machen. In diesem Projekt verwenden wir einen Piezo-Summer, um Melodien zu spielen.

Benötigte Bauteile Arduino-Platine Piezo-Summer

So funktioniert es Das Musik-Projekt verwendet einen Piezo-Summer, um Töne in unterschiedlichen Höhen auszugeben, die Noten entsprechen. Mit der Arduino-IDE können Sie die Reihenfolge, Geschwindigkeit und Dauer der Noten angeben, um eine bestimmte Melodie zu spielen. Piezo-Summer sind günstige Summer, die oft in kleinen Spielzeugen zum Einsatz kommen. Ein Piezo-Element ohne Plastikgehäuse sieht aus wie eine goldene Metallscheibe mit zwei Leitungen (meist rot für plus und schwarz für minus). Ein Piezo-Element kann nur ein Klickgeräusch ausgeben, das wir über Anlegen einer Spannung erzeugen. Noten können wir dadurch abspielen, dass wir das Piezo-Element mehrere Hundert Male pro Sekunde bei einer bestimmten Frequenz klicken lassen. Dazu müssen wir wissen, welche Frequenz verschiedene Noten haben. Tabelle 7-1 zeigt die Noten und ihre Frequenzen. Intervall gibt die Zeitdauer in Mikrosekunden an. Diesen Wert halbieren wir, um timehigh zu erhalten, das wir in unserem Code verwenden, um die Note zu erzeugen. Tabelle 7-1: Noten und ihre Frequenzen Note Frequenz Intervall timehigh C 261 Hz 3830 1915 D 295 Hz 3400 1700 E 329 Hz 3038 1519 F 349 Hz 2864 1432 G 392 Hz 2550 1275 A 440 Hz 2272 1136 H 493 Hz 2028 1014 C 523 Hz 1912 956 Der Code sendet eine Rechteckschwingung in der entsprechenden Frequenz an das Piezo-Element und erzeugt dadurch den passenden Ton (mehr über Schwingungen erfahren Sie in Projekt 2). Die Töne werden anhand der folgenden Gleichung berechnet: timehigh = period / 2 = 1 / (2 * tonefrequency) Der Aufbau dieses Projekts ist sehr einfach, denn es werden nur zwei Kabel an den Arduino angeschlossen. 66 Projekt 7

Der Aufbau 1. Schließen Sie das schwarze Kabel des Piezo-Elements direkt an GND des Arduino an und das rote Kabel an Pin 9. Piezo Arduino Rotes Kabel Pin 9 Schwarzes Kabel GND 2. Überprüfen Sie, ob Ihr Aufbau dem in Abbildung 7-1 entspricht, und laden Sie dann den Sketch auf den Arduino. Abbildung 7-1: Schaltplan für das Musik- Projekt Der Sketch Wir beginnen mit einer einfachen Melodie. Bei teilen wir der IDE mit, dass die Melodie aus 15 Noten besteht. Dann speichern wir die Noten der Melodie als Textstring in einem Array in der Reihenfolge, in der sie abgespielt werden sollen. Die Länge der Noten speichern wir in einem anderen Integer-Array. Wenn Sie die Melodie ändern möchten, ändern Sie die Noten im Array bei und deren Länge in Array bei. Bei legen wir das Tempo fest, mit dem die Melodie gespielt wird. Welche Melodie spielen wir? 67 Projekt 7

// Melodie (cleft) 2005 D. Cuartielles für K3 int speakerpin = 9; // Pin für Piezo-Summer int length = 15; // Anzahl der Noten char notes[] = "ccggaagffeeddc "; // Leerzeichen = Pause int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 ; int tempo = 300; void playtone(int tone, int duration) { for (long i = 0; i < duration * 1000L; i += tone * 2) { digitalwrite(speakerpin, HIGH); delaymicroseconds(tone); digitalwrite(speakerpin, LOW); delaymicroseconds(tone); // Richtet timehigh-wert auf bestimmte Noten ein void playnote(char note, int duration) { char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' ; int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 ; for (int i = 0; i < 8; i++) { // Spielt die entsprechenden Töne if (names[i] == note) { playtone(tones[i], duration); void setup() { pinmode(speakerpin, OUTPUT); // Richtet speakerpin als // Ausgang ein // Spielt die Melodie void loop() { for (int i = 0; i < length; i++) { if (notes[i] == ' ') { delay(beats[i] * tempo); // Pause else { playnote(notes[i], beats[i] * tempo); delay(tempo / 2); // Pause zwischen Tönen 68 Projekt 7

Projekt 20 Eine Roboter-Kanone Eine Roboter-Kanone ist eine unbemannte Waffe, die Feinde mit einem Ultraschalldetektor automatisch erkennt und bekämpft. In diesem Projekt bauen wir eine Miniaturversion dieser Waffe.

Benötigte Bauteile Arduino-Platine Mini-Steckbrett Jumperkabel Jumperkabel (männlich/ männlich) Ultraschallsensor HC-SR04 mit vier Pins Raketenwerfer RC V959 von WLToys Servomotor Tower Pro SG90 9g Benötigte Bibliotheken Servo NewPing

So funktioniert es Wir verbinden den kleinen Raketenwerfer und den Ultraschallsensor mit dem Servo-Arm (siehe Abbildung 20-1), sodass der Servomotor Kanone und Sensor um 180 Grad drehen kann, was dem Ultraschallsensor einen großen Erfassungsbereich ermöglicht. Wird ein Feind erkannt, löst der Arduino die Kanone aus und schießt die Raketen ab. Nähere Informationen zum Ultraschallsensor finden Sie in Projekt 18. Abbildung 20-1: Die Spielzeugkanone und der Ultraschallsensor werden am Servo-Arm befestigt und haben einen weiten Erfassungsund Drehbereich. Die wichtigste Komponente dieses Projekts ist der Raketenwerfer WLToys RC V959, auch als Walkera-RC-V959-19-Abschussgerät für ferngesteuerte Hubschrauber bekannt (Abbildung 20-2). Abbildung 20-2: Die Kanone Walkera RC V959-19 im Detail Dieses tolle Bauteil ist recht günstig (zwischen 5 und 10 ) und online gut zu bekommen. Im Abschussgerät befindet sich ein Mini-Servo, der sich dreht, um die Raketen abzuschießen. Die Anschlussleitungen dieses Servos sind weiß (Masse) und gelb (+5V). Es gibt auch schwarze und rote Anschlussleitungen für Einzelschüsse, wir verwenden jedoch nur die gelben und weißen Kabel für das Dauerfeuer. 172 Projekt 20

Der Aufbau 1. Zuerst bereiten wir die Kanone vor. Entfernen Sie die vier Kabel vorsichtig aus ihrem kleinen Plastiksockel. Sie sollten sich leicht lösen lassen. Sie können auch ein Jumperkabel mit Stecker verwenden, um den Plastikclip herunterzudrücken. 2. Der Kern der Leitung ist verdrillt und recht dünn. Isolieren Sie die Kabel also ein Stück ab und löten Sie Leitungen an, die sich besser in den Arduino stecken lassen, wie in Abbildung 20-3 zu sehen. Kappen Sie die schwarzen und roten Kabel oder befestigen Sie sie so, dass sie nicht im Weg sind. Abbildung 20-3: Die Kabel der Kanone abisolieren und verlängern 3. Kleben Sie den Arm des Servomotors an die Basis der Kanone (siehe Abbildung 20-4). Abbildung 20-4: Den Arm des Servomotors festkleben 4. Befestigen Sie den Ultraschallsensor oben an der Kanone, wie in Abbildung 20-5 gezeigt. Für eine feste Verbindung verwenden Sie eine Heißklebepistole oder nehmen Sie einfaches Klebeband, wenn Sie später die Verbindung wieder lösen wollen. 173 Projekt 20

Abbildung 20-5: Den Ultraschallsensor befestigen 5. Verbinden Sie den Ultraschallsensor über Jumperkabel mit dem Arduino: Schließen Sie Trig direkt an Pin 13 des Arduino an und Echo direkt an Pin 12. Wir verwenden ein Mini-Steckbrett, um die verschiedenen Verbindungen zum Arduino herzustellen. Ultraschallsensor Arduino Versorgungsspannung +5V Trig Pin 13 Echo Pin 12 Masse GND 6. Verbinden Sie das braune Kabel des Servomotors über das Mini-Steckbrett mit GND des Arduino, das rote Kabel mit +5V und das gelb/weiße direkt mit Pin 9 des Arduino. Servo Arduino Braunes Kabel GND Rotes Kabel +5V Gelbes Kabel Pin 9 174 Projekt 20

7. Verbinden Sie das weiße Kabel der Kanone mit der Masseleiste des Mini-Steckbretts und das gelbe Kabel direkt mit Pin 3 des Arduino. Kanone Arduino Weißes Kabel GND Gelbes Kabel Pin 3 8. Ihre Roboter-Kanone sollte jetzt so aussehen wie in Abbildung 20-6. Laden Sie jetzt die Geschosse. Abbildung 20-6: Ihre Roboter-Kanone ist bereit zum Feuern! 9. Prüfen Sie, ob Ihre Schaltung so aussieht wie in Abbildung 20-7. Laden Sie den Sketch von Seite 176 auf den Arduino. 175 Projekt 20

Abbildung 20-7: Der Schaltplan für die Roboter-Kanone Der Ultraschallsensor erkennt, wenn ein Objekt in der Umgebung erscheint, und sendet ein Signal an den Arduino, der die Kanone aktiviert. Der Servomotor wird mit +5V und GND verbunden, das Signalkabel kommt an Pin 9 des Arduino. Die Kanone sollte am Servo befestigt werden, sodass sie einen weiten Bewegungsbereich hat. Verbinden Sie das weiße Kabel mit GND und das gelbe mit Pin 3 des Arduino. Der Sketch Zuerst ruft der Sketch die Bibliotheken NewPing und Servo auf, mit deren Funktionen der Servomotor und der Ultraschallsensor gesteuert werden. (Die Bibliothek NewPing müssen Sie von http://www.dpunkt.de/arduino-projekt herunterladen und in Ihrem Arduino-Ordner speichern.) Der Servomotor bewegt sich um 180 Grad hin und zurück. Der Sensor sendet sein Ultraschallsignal aus, und wenn es auf ein Objekt trifft, kommt ein zeitverzögertes Echos zurück. Der Arduino rechnet diesen Wert in den Abstand zwischen Sensor und Objekt um. Ist der Abstand geringer als 15 cm, hält der Servo an und die Kanone wird aktiviert, sodass sie ihre Geschosse auf das Objekt abschießt. Sie können die Abschussdistanz (die in Zentimetern angegeben wird) an ändern. 176 Projekt 20

#include <NewPing.h> // Ruft die NewPing-Bibliothek auf #include <Servo.h> // Ruft die Servo-Bibliothek auf #define trigpin 12 // Trig-Pin für Ultraschallsensor #define echopin 13 // Echo-Pin für Ultraschallsensor #define MAX_DISTANCE 500 NewPing sonar(trigpin, echopin, MAX_DISTANCE); int blaster = 3; // Pin für Kanone int angle = 0; // Legt Servoposition in Grad fest Servo servo; void setup() { Serial.begin (115200); pinmode(trigpin, OUTPUT); pinmode(echopin, INPUT); pinmode(blaster, OUTPUT); servo.attach(9); // Pin für Servo void loop() { int duration, distance, pos = 0, i; digitalwrite(trigpin, LOW); delaymicroseconds(2); digitalwrite(trigpin, HIGH); // trigpin sendet Ping delaymicroseconds(10); digitalwrite(trigpin, LOW); duration = pulsein(echopin, HIGH); // echopin empfängt Ping distance = (duration / 2) / 29.1; Serial.print(distance); Serial.println(" cm"); if (distance <= 15) { // Wenn Abstand kleiner als 15 cm digitalwrite(blaster, HIGH); // Kanone schießt servo.write(90); else { digitalwrite(blaster, LOW); // Anderenfalls wird die Kanone // nicht eingeschaltet for (angle = 0; angle < 180; angle++) { // Schwenkt den Servo servo.write(angle); delay(15); for (angle = 180; angle > 0; angle--) { servo.write(angle); delay(450); 177 Projekt 20