====== Bluetooth Kommunikation mit dem Arduino ======
Es stehen zwei Bluetooth-Module zur Verfügung:
{{ .:btardu.jpg?600 |}}
* Das HC-06 mit 4 Pins kann nur als "Slave" arbeiten, das heißt es kann nicht aktiv Kontakt mit einem anderen Bluetooth-Gerät aufnehmen. Es wartet bis es kontaktiert wird.
* Das Modul HC-05 mit 6 Pins kann auch als "Master" konfiguriert werden kann. Das heißt ein HC-05-Modul kann sich automatisch mit einem bestimmten anderen Bluetooth-Modul (z.B. ein HC-06-Modul) verbinden. So können beispielsweise zwei Arduinos miteinander Kontakt aufnehmen und kommunizieren.
Wir beschränken uns zunächst darauf, unseren Arduino als "Slave" mit einem Smartphone (das dann als "Master" fungiert) zu koppeln.
===== Anschluss der Module =====
{{ .:anschlusshc06.png?600 |}}
* Die Module benötigen eine **Betriebsspannung** zwischen 3.6V und 6V, können also direkt an die 5V des Arduino angeschlossen werden.
* Der GND-Pin des BT-Moduls muss mit dem GND-Pin des Arduino verbunden werden.
* Der VCC-Pin des BT-Moduls wird mit 5V vom Arduino verbunden.
Die **Datenübertragung** findet [[https://de.wikipedia.org/wiki/Serielle_Daten%C3%BCbertragung|seriell]] statt. Damit das klappt müssen die TX und RX Pins von Arduino und Modul über kreuz miteinander verbunden werden.
* "TX" Steht für "transmit", also senden, "RX" bedeutet "receive", also empfangen.
* Der Sendepin des BT-Moduls (TX) muss also mit dem Empfangspin des Arduino (RX) verbunden werden, der Empfangspin des Moduls mit dem Sendepin des Arduino - logo?!
Jetzt kannst du den Arduino mal über den USB-HUB am Rechner anschließen. Die LED des Moduls sollte dann blinken. Das Blinken bedeutet, dass das Modul genügens SPannung zum Betrieb hat, aber nicht mit einem anderen Bluetooth-Gerät gepaart ist.
{{ .:hc06aufarduino.jpg?600 |}}
===== Smartphone mit dem Modul pairen =====
* Öffne die Bluetooth Einstellungen deines Smartphones
* Scanne die Umgebung nach verfügbaren Geräten.
* Paire das Smartphone mit dem Modul. Die PIN ist ''1234''.
Wichtig: Ihr solltet, das nacheinander machen, so dass Ihr auch das richtige Modul mit dem passenden Handy gepaart habt...
{{.:screenshot_20151025-185321.png?200 |}}
{{.:screenshot_20151025-185332.png?200 |}}
{{.:screenshot_20151025-185344.png?200 |}}
----
~~CLEARFIX~~
===== Bluetooth Konsolen-App installieren =====
Um mit dem Arduino zu "sprechen", benötigt man nun noch eine App, die sich mit dem BT-Modul verbinden kann:
* [[https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal&hl=de|Serial Bluetooth Terminal]]
* [[https://play.google.com/store/apps/details?id=com.giristudio.hc05.bluetooth.arduino.control|Arduino Bluetooth Controller]]
FIXME IOS App?
Um die Kommunikation zu ermöglichen geht man wie folgt vor:
* Öffne die App, dor tdas Menü (drei Punkte unten rechts)
* Wähle "Connect to device"
* Wähle dein (zuvor gepairtes) HC-06 Modul aus.
Dann erscheint in der App oben rechts ''connected: HC-06'' und die LED des BT-Moduls leuchtet dauerhaft.
{{.:screenshot_20151025-185720.png?200 |}}
{{.:screenshot_20151025-185754.png?200 |}}
\\
~~CLEARFIX~~
==== Film ====
Dieser Film könnte möglicherweise auch helfen:
https://www.youtube.com/watch?v=YBoLj9HIfN4
{{ youtube>YBoLj9HIfN4?large }}
===== Ein erster Sketch =====
Der Sketch {{.:bluetooth_echo.ino.zip|}} ermöglicht es, am Smartphone Text einzugeben, der anschließend auf der seriellen Konsole wieder ausgegeben wird. Laden den Sketch herunter, übetrage ihn auf den Arduino und teste das Programm.
**Wichtig:** Um den Sketch zu übertragen, müssen **jedes Mal** die Kabel an Pin 0 und 1 des Arduinos entfernt werden!
----
{{:aufgabe.png?nolink |}}
=== (A1) ===
Ändere den Sketch so, dass nur eine Ausgabe auf der seriellen Konsole erfolgt, wenn man "an" eingegeben hat.
----
{{:aufgabe.png?nolink |}}
=== (A2) ===
Schliesse eine LED an einen Digitalpin des Arduino an. Erweitere den Sketch so, dass du die LED mit den Befehlen "an" und "aus" an und aus schalten kannst.
----
{{:aufgabe.png?nolink |}}
=== (A3) ===
Schreibe einen Sketch, mit dem du eine LED in 10 Schritten dimmen kannst, indem du in BlueTerm die Zahlen 1-10 eingibst.