Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf ·...
Transcript of Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf ·...
Projektmodul DMKurze Einführung
Arduino und Arduino-Programmierung
Hochschule Fulda – FB AIWintersemester 2017/18http://pm.rz.hs-fulda.de
Peter Klingebiel, HS Fulda, FB AI
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Arduino 1
• Wikipedia:https://de.wikipedia.org/wiki/Arduino_(Plattform)
• Arduino (seit März 2015 auch Genuino)• Open Source Hardware- und Software-Plattform• entwickelt von Massimo Banzi und David Cuartielles
auch für künstlerischen Einsatz von IT-Komponenten• benamst nach Arduin von Ivrea, der 1002-1014
italienischer König war• Programmierung in C und C++ in einer eigenen
Processing-basierten IDE• Homepage: https://www.arduino.cc
2
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Arduino 2
• Vielzahl an Boards, darunter auch für Wearables• Vielzahl an Herstellern von Boards / Komponenten• Vielzahl an Shields, z.B. Ethernet, WiFi, Sensoren, …• Vielzahl an Komponenten wie LEDs, Sensoren,
Aktoren, Motoren, …• Vielzahl an Einsatzfeldern, z.B. Robotics, Internet of
Things, Hausautomatisierung, Wearables, …• viele Anleitungen in Literatur und Internet, z.B.
– https://www.arduino.cc/en/Guide/HomePage– http://funduino.de/vorwort– http://www.netzmafia.de/skripten/hardware/Arduino/index.html
3
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI 4
Arduino Uno R3 1
USB-Anschluß
CPU: AtmelATmega328
Mikrocontroller
Reset-Schalter
ExterneStrom-
versorgung
GNDMasse
Serielle PinsIn und Out
Digitale Ein-/AusgängePin 2 bis Pin 13
GND Analoge Ein-/AusgängePin A0 bis Pin A5
5V 3.3V
4
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI 5
Arduino Uno R3 2
5
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI 6
Mikrocontroller Atmel ATmega328
6
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI 7
Arduino Nano 1
7
USB-Anschluß
GND
Reset-Taster
5V3.3V
GNDCPU AtmelATmega328
11 digitale EingängeD0 bis D13
8 analoge EingängeA0 bis A7
Serielle PinsRX und TX
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI 8
Arduino Nano 2
8
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI 9
Mikrocontroller Atmel ATmega328P-AU
9
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Schaltung mit Nano 1
• Nano mit LED auf Breadboard
10
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Schaltung mit Nano 2
• Schaltungsgrafik mit Fritzing-Software
11
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Breadboard 1
• Steckbrett - Elektronikschaltungen ohne Löten
12
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Breadboard 2
• Verbindungen der Lochreihen
13
Bus Stripesfür VCC und GND
Bus Stripesfür VCC und GND
Terminal Stripesfür Komponenten
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Steckkabel
14
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
LED 1
• Aufbau und Schaltbild einer LED
15
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
LED 2
• LEDs sind je nach Farbe für verschiedene sog. Durchlassspannungen Uf ausgelegt:– weiß 4 V– blau 2,9 V– grün 2,1 V– gelb 2,2 V– rot 1,6 V
• die Stromstärke bei LEDs liegt i.d.R. bei If ≈ 20mA• Vorwiderstand Rv nötig, sonst brennt die LED durch
– Formel: Rv = (Ug – Uf) / If– z.B. Ug = 5V und rote LED: Rv = (5V – 1,6V) / 0,02A = 170Ω– nächst höheren Widerstand wählen, z.B. 220 Ω oder mehr
16
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Widerstand 1
• Widerstand: passives elektrisches Bauelement, i.d.R. zur Begrenzung der Stromstärke
• Kohleschichtwiderstand (oben) und Metallschicht-widerstand (unten)
• Farbstreifen kodieren die Größe des Widerstands
17
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Widerstand 2
• Kodierung vonWiderständen durchFarbkodes
18
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Arduino IDE 1
• Installation der Arduino IDE• Download von https://www.arduino.cc/ → Software• Windows: Installer oder ZIP-File herunterladen und
auf dem PC installieren, analog für MAC / Linux• beim Anschluß des Arduino-Boards erkennt das
System im Idealfall das Board und installiert den USB-Treiber automatisch, sonst ist eine manuelle Installation des USB-Treiber nötig (siehe Internet!)
• dann kann die die IDE gestartet werden: entweder über das Icon auf dem Desktop oder mit arduino.exeim Installationsverzeichnis
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Arduino IDE 2
Arduino IDE mit Sketch im Editor
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Arduino IDE 3
Auswahl des Boards
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Arduino IDE 4
Auswahl des USB-Ports
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Arduino IDE 4
Compilieren Seriellen Monitoröffnen
Compilieren und auf Board laden
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Programmierung 1
• Beispielprogramm 1, Sketch genannt:// pm-1-hallowelt.ino// klin, 28.10.2016// hallo welt auf seriellem monitor ausgebenvoid setup() // Initialisierung {Serial.begin(9600); // Baudrate -> 9600
}int i = 0; // Zaehlervoid loop() // Arbeitsschleife {++i; // Zaehler hochzaehlenSerial.print(++i); // und ausgebenSerial.println(" - hallo welt"); delay(1000); // 1 Sekunde warten
}
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Programmierung 2
• Beispielprogramm 2, Blink-Sketch:// pm-3-blink-extern.ino// klin, 28.10.2016// externe LED im Sekundentakt blinkenconst int led = 10; // LED an Pin D10void setup() // Initialisierung {pinMode(led, OUTPUT); // Pin 10 als Ausgang
}void loop() // Arbeitsschleife {digitalWrite(led, HIGH); // LED ein delay(1000); // 1 Sekunde wartendigitalWrite(led, LOW); // LED ausdelay(1000); // 1 Sekunde warten
}
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Programmierung 3
• C-main muss nicht programmiert werden: int main() // im Startupcode enthalten!{setup(); // Initialisierungwhile(1) // Endlosschleifeloop();
}
• Funktion void setup()– Initialisierungen des Programms und der Komponenten
• Funktion void loop()– Hauptschleife des Anwendungsprogramms, läuft endlos– Funktionsaufrufe von eigenen und Bibliotheksfunktionen– Code des Algorithmus des Programms
26
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Programmierung 4
• erste wichtige Funktionen:
– void Serial.begin(int baud)• seriellen Monitor auf Baudrate baud einstellen
– void Serial.print(type data)• data vom Typ type auf seriellen Monitor schreiben,
zulässig sind char, int, float, char *, String u.a.m.– void Serial.println(type data)
• data auf seriellen Monitor schreiben, dann neue Zeile– void delay(unsigned long ms)
• ms Millisekunden warten und nix tun• https://www.arduino.cc/en/Reference/HomePage
27
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI
Programmierung 5
• erste wichtige IO-Funktionen:
– void pinMode(int p, int m)• Pin p auf Modus INPUT oder OUTPUT einstellen
– void digitalWrite(int p, int w)• Wert v auf Digitalausgang Pin p schreiben
– int digitalRead(int p)• Wert von Digitaleingang Pin p lesen
– void analogWrite(int p, int w)• Wert v auf Analogausgang Pin p schreiben
– int analogRead(int p)• Wert von Analogeingang Pin p lesen
28
Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI 29
Und los geht’s …
29