Skip to content

Beispiel-Code für den Arduino-Workshop der TU-Berlin

Notifications You must be signed in to change notification settings

luetzel/arduino_workshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Anwendung und Funktion digitaler Technologien - TU-Berlin (L130/131)

Institut für Berufliche Bildung und Arbeitslehre - Wintersemester 2024/25

Vorbereitungen: Installation der Arduino-Entwicklungsumgebung

Bitte laden Sie die aktuelle Version der Arduino-Entwicklungsumgebung für Ihr Betriebssystem herunter und installieren Sie diese auf Ihrem Endgerät.

Treiber

Wenn Sie die Arduino-Entwicklungsumgebung unter Windows oder MacOSX verwenden wollen, müssen Sie zusätzlich einen Treiber für den CH340-USB-Controller-Chip installieren, damit Sie die im Kurs verwendeten Arduino Nano Platinen mit Ihrem Notebook/ Desktop-PC über den USB-Anschluss programmieren können.

Auf Win10 Geräten müssen Sie möglicherweise die Sicherheitseinstellungen so verändern, dass Sie auch unsignierte Treiber auf Ihrem Gerät installieren können.

Probleme mit Apple-Geräten

Auf Apple-Geräten kann es bei Verwendung des original CH340 Treibers zu System-Abstürzen kommen (Kernel-Panic). Betroffen davon sind nach meiner Recherche ausschließlich Geräte mit MacOS "Sierra". Abhilfe schafft ein gepatchter Treiber, der hier heruntergeladen werden kann.

Den richtigen COM-Port finden

Auf Windows-Geräten ist es manchmal schwierig den richtigen COM-Port zu finden, mit dem der Arduino per USB verbunden ist. Dieses Video erklärt wie man den korrekten USB-Port mit dem Windows-Geräte-Manager aufspürt:

Ausführliche Anleitung zur Installation des Treibers

Falls Sie probleme haben den CH340 Treiber zu installieren oder der an Ihrem Endgerät angeschlossene Arduino nicht erkannt wird, finden Sie auf der folgenden Seite eine ausführliche Anleitung.

Hinweise für Linux-Nutzer

Falls Sie ein Notebook mit einer aktuellen Linux-Distribution (Ubuntu, Debian, SuSE o. ä.) verwenden müssen Sie in der Regel keinen Treiber installieren, denn der Linux-Kernel unterstützt den CH340-Chip bereits out-of-the-box.

Beim Linux-Kernel ab der Version 5.5.x wurden Veränderungen am CH340-Modul vorgenommen, die dazu führen können, dass sich keine Firmware in den Flash-Speicher des Arduino übertragen lässt. Falls Sie noch einen Kernel einsetzen, der älter als Patch-Level 5.5.8 ist, müssen Sie ein Kernel-Update durchführen, um das Problem zu beheben. Die Kernel-Serie 5.4.x und 5.6.x ist nicht betroffen.

Damit Sie unter Linux auf den Seriellen Port schreiben können, müssen Sie ihren Benutzernamen der Gruppe dialout hinzufügen. Das geht durch Eingabe des Befels:

sudo usermod -a -G dialout username

auf der Konsole. Damit erlangen Sie Schreibrechte für /dev/ttyUSB0 Port.

Beispiel-Codes

Dieses Github-Repo wird im Verlauf des Kurses gelegentlich aktualisert.

Wenn Sie das Tool 'git' auf Ihrem System installiert haben, können Sie den Beispiel-Code auch durch Eingabe des Befehls:

git clone https://github.com/luetzel/arduino_workshop.git

herunterladen und im Fall von Updates später mit

git pull

aktualisieren.

Die Inhalte des Verzeichnis sketches bzw. libraries kopieren Sie bitte in die zugehörigen Unter-Verzeichnisse, die auf Ihrem System während der Installation der Arduino-Entwicklungsumgebung angelegt wurden. Unter Windows ist das in der Regel das Arbeits-Verzeichnis Meine Dokumente/Arduino.

In das Verzeichnis libraries kopieren Sie zusätzliche Bibliotheken, welche die Verwendung von verschiedener Hardware-Module erleichtern.

Unterstützung anderer Mikrocontroller

Inzwischen kann man mit der Arduino-IDE auch andere Mikrocontroller programmieren. Die Installation der dafür erforderlichen Dateien kann über den Board-Manager der Arduino-IDE erfolgen.

Die URLs zu den Paketquellen können in den Einstellungen der Arduino-IDE hinterlegt werden. Eine Anleitung dafür findet man auf dieser Seite:

Datenblätter

Im Verzeichnis Datasheets finden Sie eine Sammlung von Datenblättern zu den im Starter-Kit enthaltenen Bauteilen. Bitte beachten Sie, dass das Starterkit zum Teil baugleiche Teile anderer Hersteller enthält. Das Barometer-Breakout-Modul (BMP280) benötigt eine Versorgungsspannung 3,3 Volt und darf deshalb nicht an 5 Volt betrieben werden! Der Sensor wird dabei zerstört!

Fritzing.org

Für das Zeichnen von Schaltskizzen sollten Sie das kostenlose Programm Fritzing auf Ihrem Gerät installieren. Mit Fritzing lassen sich elektronische Schaltungen am Computer zeichnen und dann als JPG-Bild exportieren. Die Bauteile können per drag'n drop auf dem Steckbrett platziert werden. Die Bedienung ist recht intuitiv.

Das kostenlose Programm können Sie hier für Windows, MacOS oder Linux herunterladen. Es handelt sich dabei um eine Entwickler-Version. Falls das Programm nicht startet oder abstürzt, versuchen Sie bitte eine ältere Version zu installieren.

Im Unterverzeichnis Fritzing finden Sie einige Schaltpläne, die Sie während der praktischen Übungen kennengelernt haben, sowohl als JPG-Bild, als auch im Fritzing-Datei-Format. Wenngleich die Bauteil-Bibliothek von Fritzing sehr umfangreich ist, sind nicht alle Bauteile des Starterkits enthalten. Im Verzeichnis Fritzing-Zusatzbauteile finden Sie weitere Bauteile, die Sie der Bibliothek per drag'n'drop hinzufügen können.

LED-Schaltplan

Arduino Code-Referenz Handbuch

Das deutsche Arduino Forum hat ein sehr ausführliches Code-Referenz-Handbuch erstellt, in dem sämtliche Funktionen der Arduino-IDE dokumentiert sind. Es ist verständlich geschrieben und für Anfänger geeignet. Das Handbuch kann kostenlos als PDF heruntergeladen werden.

Elektronik Kompendium

Das Elektronik-Kompendium ist ein sehr gutes Nachschlagwerk, um die im Kurs behandelten physikalischen Gesetzmäßigkeiten und Grundschaltungen nachzuschlagen:

Verwendung von Bibliotheken

Für die meisten Bauteile gibt es Bibliotheken, die das Programmieren - gerade für Anfänger - erheblich vereinfachen. Bibliotheken lassen sich über das Menü der Arduino-IDE "Sketch > Bibiothek einbinden > Bibliothek verwalten" auffinden und installieren. Bevor eine Bibliothek in einem Sketch verwendet werden kann, muss eine sogenannte Header-Datei (Dateiendung *.h) importiert werden. Das erfolgt mit der #include <library.h> Anweisung. Zu jeder Library werden in der Regel Code-Beispiele mitgeliefert, welche die Verwendung der Bibliothek erklären. Für den Ultraschallsensor können wir z.B. die NewPing Library nutzen:

#include <NewPing.h>

#define TRIGGER_PIN  7
#define ECHO_PIN     8
#define MAX_DISTANCE 400

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {
  Serial.begin(9600);
}

void loop() {
  delay(50);
  Serial.print("Ping: ");
  Serial.print(sonar.ping_cm());
  Serial.println("cm");
}

Wenn die NewPing Library importiert wurde, genügt es die Anschluss-Pins zu deklarieren und eine Instanz des "Sensor-Objekts" zu erzeugen (hier wurde dem Objekt der Name "sonar" gegeben). Die Funktion "ping_cm()" wird von der Bibliothek bereitgestellt, wodurch der eigene Programmieraufwand erheblich reduziert wird.

16x2 LCD mit PCF8574 Backplate und Barometer BMP280

LCD-with-Backplate

Bei Verwendung von Bauteilen mit I2C-Bus muss die korrekte Adresse im Arduino-Sketch angegeben werden. Wenn die Adresse nicht bekannt ist, kann diese mit der i2cdetect Library ermittelt werden. Die Bibliothek wird über das Menü "Sketch > Bibliothek verwalten > Bibliothek einbinden" installiert. Nach dem Hochladen des mitgelieferten Beispiels "i2cdetect" werden im seriellen Monitor die Adressen aller angeschlossenen I2C-Bauteile sichtbar, z.B.:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --

Die 16x2 LC-Displays mit PCF8574-Adapter haben entweder die Adresse 0x3F oder 0x27. Der BMP280 Sensor (Barometer) "hört" auf die Adresse 0x76. Manchmal kann es erforderlich sein die Adresse direkt in den C-Header Dateien der Bibliotheken zu ändern. Dafür navigiert man in das Arduino-Library Verzeichnis (z.B. unter Windows: Meine Dokumente/Arduino/libraries) und öffnet die betroffene Header-Datei. Beim BMP280-Sensor ist das die Datei Adafruit_BMP280.h. Dort trägt man in der Zeile

 #define BMP280_ADDRESS (0x76)

0x76 anstelle der voreingestellten Adresse 0x77 ein. Beim Anschließen der I2C-adressierter Bauteile ist auf die Polarität GND/ VCC sowie deren Spannungsversorgung zu achten (3V3 für das Barometer!). Häufig werden die Module auch für andere Mikrocontroller oder Ein-Platinen-Computer (Raspberry Pi) verkauft. Ein Blick ins Datenblatt hilft, um herauszufinden, ob das Bauteil 5 Volt-tolerant ist oder einen Pegel-Wandler (Level-Shifter) benötigt.

Grundsätzlich gilt für alle Bauteile mit I2C-Bus:

  • Der SDA-Pin wird immer mit dem Pin A4 des Arduino Nano verbunden.
  • Der SCL-Pin wird immer mit dem Pin A5 des Arduino Nano verbunden.

Prüfungsaufgabe

Wird zu einem späteren Zeitpunkt bekannt gegeben.

About

Beispiel-Code für den Arduino-Workshop der TU-Berlin

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published