Fortbildung (21-30/33)

4. Arduino-Projekt: Blinkschaltung

Die Hardware

Die folgende Schaltung lässt eine Led auf dem Steckbrett blinken. Die Leuchtdiode hängt über einen Widerstand zwischen Pin 12 des Arduino und Masse (GND = Ground):

blink_schaltplan

So könnte der Steckbrettaufbau aussehen:

blink_steckbrett

Die Programmierung

Arduino-Programme - auch Sketche genannt - sind eigentlich in der Programmiersprache C++ geschrieben. Die Arduino-Programmierumgebung versteckt aber geschickt sehr viel von der Komplexität von C++ und lässt sich so "relativ leicht" nutzen.

Vorbereitung:

1. Arduino-Programmierumgebung (IDE = Integrated Developement Environment) downloaden: https://www.arduino.cc/en/Main/Software

2. Nach der Installation den Arduino UNO (oder eine Variante) per USB-Kabel mit dem PC verbinden und evtl. warten, bis die Treiberinstallation abgeschlossen ist.

3. Unter dem Menupunkt "Werkzeuge" das "Board" auswählen: in der Regel "Arduino/Genuino UNO" und den "Port", an dem der Arduino angezeigt wird. Ist kein Port mit "Arduino" gekennzeichnet, so die USB-Verbindung trennen und erneut versuchen.

Zur Sache:

So sieht das Blink-Programm zur Gänze aus:

//
// Blinkschaltung für Pin 12
//

// Pinnummer an variable led knüpfen

const byte led = 12;

// setup() wird zu Beginn genau einmal
// aufgerufen

void setup() {
  
  pinMode(led, OUTPUT);
  
}

// loop() ist die Programmschleife,
// alles, was darin steht, wird wiederholt
// aufgerufen

void loop() {

  digitalWrite(led,HIGH);

  delay(300);

  digitalWrite(led,LOW);

  delay(300);

}

Die Kommentare (mit // eingeleitet oder zwischen /* und */ geklammert) erläutern, was vor sich geht.

4. Nach der Eingabe des Programms, klicken Sie das Pfeilsymbol oben links in der Arduino-IDE an. Es passiert folgendes: Das Programm wird in eine für den Arduino lesbare Form übersetzt (kompiliert) und anschließend über das USB-Kabel zum Arduino übertragen. Sie sehen an der kleinen blinkenden Led auf dem Arduino, dass die Übertragung läuft. Die Arduino-IDE blendet im Fußbereich Status- und Fehlermeldungen des Übersetzungsprogramms (Compiler) und des Übertragungsprogramms ein.

5. Wenn alles klappt, sollte jetzt die Led auf dem Steckbrett blinken.

Hier noch einige Erklärungen zu den Bezeichnungen, es empfiehlt sich, die umfangreiche Arduino-Referenz zu Rate zu ziehen:

Der Ausdruck

const byte led = 12;

kann so gelesen werden:

const : gibt an, dass die folgende Variable nicht veränderbar (konstant) ist
byte: gibt die Art der Variable an, die Variable hat hier also die Länge von einem Byte (8 Bit = 2 hoch 8 = 256, es lassen sich also die Zahlen von 0 bis 255 mit einem char darstellen)
led
: der Name der Variable, der beliebig geändert werden kann (allerdings sind einige Namen reserviert für spezielle Zwecke, z. B. const und char)
= : das ist der Zuweisungsoperator und tut genau das, was man von ihm erwartet
12
: der Wert der Variable, in diesem Fall die Arduino-Pin-Nummer an der die Led hängt
; : markiert das Ende einer Anweisung in C++

Der Ausdruck definiert also eine unveränderliche (const) Variable mit dem maximal größten Wert 255 (byte) und dem Namen led und weist (=) ihr den Wert 12 zu.

Wichtig: alle Anweisungen außerhalb der beiden Funktionen setup() und loop() können nur entweder Definitionen von Variablen und Funktionen sein, ggf. mit Wertezuweisung wie im Beispiel. Es können hier keine Rechenoperationen oder Funktionsaufrufe stehen. Die hier definierten Werte stehen als sogenannte globale Variablen allen Funktionen zur Verfügung.

Es folgt die Definition der Setup()-Funktion:

// setup() wird zu Beginn genau einmal
// aufgerufen

void setup() {
  
  pinMode(led, OUTPUT);
  
}

Dies kann so gelesen werden:

Beim Einschalten des Arduino oder nach einem Reset, wie er nach dem Hochladen eines Sketches (Programms) automatisch ausgelöst wird, springt das Arduino-Programm in die Setup-Funktion und arbeitet die darin befindlichen Teile einmal ab.

Dabei bedeutet:

void : gibt an, dass die Funktion setup() keinen Rückgabewert hat
setup() : der Name der Funktion - hier von der Arduino-IDE fest vorgegeben und kann nicht geändert werden
{ ... } : alles zwischen diesen Klammern wird der Reihe nach abgearbeitet
pinMode(led,OUTPUT); : die Arduino-Funktion "pinMode(pin, mode)" legt fest, ob der angegebene pin als Ausgang (mode = OUTPUT), z. B. zur Ansteuerung einer Led wie hier, oder als Eingang (mode = INPUT), z. B. zum Einlesen eines Tasters verwendet wird. Hier wird als pin-Wert die Konstante "led" übergeben (zeigt auf den Wert 12) und als mode OUTPUT gewählt

Es folgt die loop()-Funktion:

// loop() ist die Programmschleife,
// alles, was darin steht, wird wiederholt
// aufgerufen

void loop() {

  digitalWrite(led,HIGH);

  delay(300);

  digitalWrite(led,LOW);

  delay(300);

}

Diese kann so gelesen werden:

Nachdem die setup()-Funktion abgearbeitet ist geht das Arduino-Programm in eine Dauerschleife in der rasch hintereinander die loop()-Funktion aufgerufen wird. Auch diesen Namen darf man nicht ändern.

Dabei bedeutet:

void : gibt an, dass die Funktion loop() keinen Rückgabewert hat
loop() : der Name der Funktion - hier von der Arduino-IDE fest vorgegeben und kann nicht geändert werden
{ ... } : alles zwischen diesen Klammern wird der Reihe nach in einer Dauerschleife abgearbeitet
digitalWrite(led,HIGH); : die digitalWrite(pin,value)-Funktion schaltet den angegebenen Pin (pin, hier der durch die Konstante "led" gewählte) entweder auf +5V (HIGH) oder 0V (LOW). Der Funktionsaufruf bewirkt aufgrund der gewählten Hardwareverdrahtung, dass die Led eingeschaltet wird
delay(300); : die delay(value)-Funktion bewirkt, dass das Programm die angegebene Anzahl von Millisekunden (ms) pausiert. Das ist deshalb notwendig, da sonst durch den schnellen loop()-Durchlauf kein Ein- und Ausschalten mit bloßem Auge bemerkt werden könnte, da es zu schnell geht
digitalWrite(led,LOW); : schaltet die Led wieder aus
delay(300); : belässt die led für die angegebene Anzhal von Millisekunden im Aus-Zustand

rtmp://fms.blikk.it/vod_forum:::mp4:neuemedien/fb/uploads/media/video_5de9f86853fa8.mp4:::./forums/neuemedien/fb/uploads/media/video_5de9f86853fa8.jpg
So sieht das Ergebnis aus.

Kniffliges:

1. Modifizieren Sie den Sketch so, dass die Blinkzeiten schneller oder kürzer werden.

2. Verwenden Sie anstelle der Zahl 300 ein Konstante, das erleichtert das Ändern des Wertes, da er nur mehr an einer Stelle geändert werden muss.

3. Probieren Sie einen anderen Arduino-Pin aus.

4. Modifizieren Sie die Schaltung und das Programm so, dass zwei Leds unabhängig voneinander blinken.

Screenshots wurden mit Fritzing erstellt, falls nicht anders angegeben (https://fritzing.org)

Angerer Harald - Donnerstag, 5. Dezember 2019 (Zuletzt geändert: Freitag, 6. Dezember 2019) - - Kategorien: ArduinoTutorials - Noch kein Kommentar ...

3. Widerstands-Farbwerte

Für die Durchsteck-Widerstände, wie man sie auch für das Steckbrett verwendet, werden der Wert in Ohm (Ω) und die Abweichung in Prozent (%) in Farbringen aufgedruckt.

Für die kleinen SMD-Widerstände (Surface-Mounted-Devices), wird der Wert direkt in Zahlen aufgedruckt, zum Entziffern braucht es manchmal eine Lupe.

Es gelten folgende Farbwerte:

farbcodes

Für den Widerstand oben bedeutet das:

1. Ziffer grün = 5
2. Ziffer blau = 6
Esponent rot = 10²
Das macht zusammen: 56 * 10² = 5600 Ω = 5,6 kΩ

Ein zweites Beispiel:

r2

Das macht: 1 und 0 und 10³ = 10000Ω = 10 kΩ

Und jetzt zum selber üben:

6,8 Megaohm

Angerer Harald - Donnerstag, 5. Dezember 2019 (Zuletzt geändert: Freitag, 17. April 2020) - - Kategorien: ArduinoTutorials - Noch kein Kommentar ...

2. Steckbrett: Schaltplan und Steckbrett-Aufbau

Die einfache Schaltung zum Ein- und Ausschalten einer Leuchtdiode mit Hilfe eines Tasters wird als Schaltplanentwurf symbolisch so dargestellt:

schaltung

Dabei bedeuten die Symbole im Einzelnen:

schaltung_bestueckung

Im Steckbrettaufbau kann das so realisiert werden:

schaltung_breadboard

Dabei ist genau auf die Polung der Leuchtdiode zu achten.

ledQuelle: https://de.cleanpng.com/

Auch der Taster muss so eingebaut werden, dass die schließenden Kontakte im Schaltkreis liegen (ggf. einfach ausprobieren).

Und so schaut ein realer Aufbau der oben angeführten Schaltung aus:

schaltung_real

Screenshots wurden mit Fritzing erstellt, falls nicht anders angegeben (https://fritzing.org)

Angerer Harald - Donnerstag, 5. Dezember 2019 - Kategorien: ArduinoTutorials - 1 Kommentar

1. Das Steckbrett (Breadboard)

Mit dem Steckbrett, auf englisch "Breadboard", also "Brotbrett", können eletronische Schaltungen als Versuchsaufbau zusammengestellt werden.

Die englische Bezeichnung rührt daher, dass früher das Brotbrett aus der Küche mit Hilfe von Nägeln oder metallischen Reißzwecken für diese Aufgabe verwendet wurde.

Heute gibt es Plastikausführungen, in die die meisten elektronischen Bauteile direkt eingesteckt werden können. Dazu sind die Lochreihen des Steckbretts elektrisch verbunden, wie hier durch die grünen Linien angedeutet:

breadboard_void

Deshalb gibt es auch sinnlose oder fehlerhafte Bestückungsvarianten:

breadboard_wrong_right

Die rot markierten Teile sind in dieser Anordnung sinnlos platziert, da alle Pins (Beinchen) kurzgeschlossen sind und so keine Funktion möglich ist. Die Drahtbrücke unten zwischen Plus- (+) und Minuspol (-) erzeugt einen Kurzschluss, wenn die Lochreihen wie vorgesehen für die Spannungsversorgung benutzt werden.

Die grün markierten Bauteile sind hingegen sinnvoll platziert, da alle Pins einen elektrisch getrennten Zugang haben.

Screenshots wurden mit Fritzing erstellt (https://fritzing.org)

Angerer Harald - Donnerstag, 5. Dezember 2019 - Kategorien: ArduinoTutorials - Noch kein Kommentar ...

Arduino & Co.: Impressionen

IMG_20181113_115647


IMG_20181113_115655IMG_20181113_115706IMG_20181113_115715IMG_20181113_115726IMG_20181113_115734IMG_20181113_115741IMG_20181113_115816IMG_20181113_115853IMG_20181113_115929IMG_20181113_145150

rtmp://fms.blikk.it/vod_forum:::mp4:neuemedien/fb/uploads/media/video_5bed7c74990c2.mp4:::./forums/neuemedien/fb/uploads/media/video_5bed7c74990c2.jpg

rtmp://fms.blikk.it/vod_forum:::mp4:neuemedien/fb/uploads/media/video_5bed7c7fedecb.mp4:::./forums/neuemedien/fb/uploads/media/video_5bed7c7fedecb.jpg

rtmp://fms.blikk.it/vod_forum:::mp4:neuemedien/fb/uploads/media/video_5bed7c8c066b8.mp4:::./forums/neuemedien/fb/uploads/media/video_5bed7c8c066b8.jpg

Angerer Harald - Donnerstag, 15. November 2018 (Zuletzt geändert: Dienstag, 3. Dezember 2019) - - Kategorie: Galerie - Noch kein Kommentar ...

68.02 Arduino & Co. (1): Arduino

Angerer Harald - Freitag, 9. November 2018 (Zuletzt geändert: Mittwoch, 29. Mai 2019) - - Kategorien: InformationenUnterlagen - Noch kein Kommentar ...

68.02 Arduino & Co. (2): Micro:bit

Angerer Harald - Freitag, 9. November 2018 (Zuletzt geändert: Dienstag, 13. November 2018) - - Kategorien: InformationenUnterlagen - Noch kein Kommentar ...

68.02 Arduino & Co. (3): Raspberry PI

Angerer Harald - Donnerstag, 8. November 2018 (Zuletzt geändert: Dienstag, 13. November 2018) - - Kategorien: InformationenUnterlagen - Noch kein Kommentar ...

Apps im Unterricht

Allgemeines zum Einsatz von Apps im Unterricht:

https://sway.com/nUS0BviOaz8qSkLJ?ref=Link

Apps (hier nur für Android), die für den Unterricht nützlich sein können, in vier Kategorien eingeteilt:

Grundausstattung:

20180218_113143

Kreativ:

20180218_113306

MINT:

20180218_113212

Sprachen:

20180218_113238

App-Liste im PDF-Format:

Apps_fuer_den_Unterricht.pdf

Angerer Harald - Sonntag, 18. Februar 2018 (Zuletzt geändert: Montag, 19. Februar 2018) - - Kategorie: Unterlagen - 1 Kommentar

Geocaching im Unterricht

Hier finden Sie Unterlagen zur Fortbildungsveranstaltung "Geocaching im Unterricht".

Präsentation:

GPS-Was ist das?

Unterlagen:

Labels zum Beschriften von Behältern

Logvorlagen (klein) für Behälter

Arbeitsblätter (Beispiel für Brixen):

Geocache-Gruppenblätter Gruppe 1

Geocache-Gruppenblätter Gruppe 2

Cheat-Sheet

Verwendete Apps (Android):

QR Droid Private

https://play.google.com/store/apps/details?id=la.droid.qr.priva

 

 

GPS Status & Toolbox

https://play.google.com/store/apps/details?id=com.eclipsim.gpsstatus2

 

 

Entfernung : Smart Distance

https://play.google.com/store/apps/details?id=kr.sira.distance

 

 

Wasserwaage, Senklot, Niveau

 https://play.google.com/store/apps/details?id=org.nixgame.bubblelevel

Webunterstützung:

Geocaching auf blikk (ab 01.02.2018): www.blikk.it/geo

QR-Code generieren im Web: http://goqr.me/

Koordinaten umrechen: http://rechneronline.de/geo-koordinaten

URL-Shortener: http://bit.ly

 

Angerer Harald - Mittwoch, 6. Dezember 2017 (Zuletzt geändert: Dienstag, 12. Dezember 2017) - - Kategorien: InformationenUnterlagen - Noch kein Kommentar ...