Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf ·...

Post on 13-Mar-2021

1 views 0 download

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