Entdecke die perfekte Kombination aus Arduino, Bluetooth, Android und LEDs!
Du willst die Welt der Elektronik erkunden und mit deinem Smartphone interagieren? Dann ist die Kombination aus Arduino, Bluetooth, Android und LEDs genau das Richtige für dich! In diesem Artikel erfährst du, wie du diese Technologien miteinander verbinden und beeindruckende LED-Projekte erstellen kannst.
Die Herausforderung mit der Methode von jurs
Bei der Methode von jurs wird der Eingang ununterbrochen “abgehört”. Das bedeutet, dass jede Sekunde hunderte Farbwerte an das Arduino gesendet werden. Verständlicherweise kommt es dabei zu Verwirrungen und das Arduino verliert die Zuordnung.
Die Lösung: Der String-Trick
Um dieses Problem zu umgehen, kannst du den String in Teile mit einer Länge von 63 Zeichen aufteilen. Dabei reservierst du die ersten 3 Stellen, um die Anzahl der Zeichen anzugeben. Auf diese Weise weiß das Arduino, wie viele Zeichen es empfangen soll und kann sie entsprechend zuordnen.
Feste Kommandos – Vor- und Nachteile
Eine alternative Lösung besteht darin, feste Kommandos zu verwenden. Das Arduino würde der App mitteilen, wie viele Elemente es für sie hat, z.B. den Modusnamen, den Farbkreis und die Helligkeitseinstellungen. Obwohl dies logisch erscheint, könnte es performancebezogene Nachteile haben. Mehrere Einzelverbindungen sind meiner Meinung nach weniger effizient und darauf kommt es letztendlich an.
Die Länge der Zeichenkette
Ich habe herausgefunden, dass die Übertragung vom Arduino zum Handy keine Probleme mit langen Zeichenketten hat. Es können problemlos bis zu 1000 Zeichen empfangen werden. Daher sollten die Zeichen in Richtung Arduino so kurz wie möglich gehalten werden. Immerhin müssen die Namen und die Werte nicht übertragen werden.
String-Zusammenstellung im Sketch
Jetzt stehen wir jedoch vor einem kleinen Problem. Das Arduino soll einfach zu beschreiben sein, damit die App es lesen und verstehen kann. Dazu muss das Arduino zwei Dinge erreichen: Erstens soll ein String erstellt werden, der alle Modi mit Nummer und Namen auflistet. Zweitens soll ein String erstellt werden, der alle Einstellungsparameter für jeden Modus enthält.
Eine Möglichkeit, dies umzusetzen, ist wie folgt:
//Initialisierung der Variablen
String ModusNummer = "";
String ModusName = "";
String sendModeInitial = "";
//START KONSTRUKT VOR JEDEM MODUS
//Eindeutige Nummer beginnend ab 1
ModusNummer = "1";
ModusName = "Regenbogen-Fade";
sendModeInitial += ModusNummer + ":" + ModusName + "|";
//ENDE KONSTRUKT VOR JEDEM MODUS
void RegenbogenFade(int Geschwindigkeit, int Helligkeit) {
//Deine Methode für den Regenbogen-Fade
}
Serial.println(sendModeInitial);
Dies macht es auch Anfängern leicht, den Sketch zu verstehen und zu verwenden. Aber wir müssen noch einen Schritt weitergehen. Wenn Modus 1 ausgewählt wird, müssen alle Parameter mit ihren Minimal-, Maximal- und Standardwerten sowie deren Namen und Darstellungsoptionen (SeekBar, Farbkreis usw.) übertragen werden.
Die Umsetzung könnte folgendermaßen aussehen:
String ParameterName= "";
String ParameterDarstellung= "";
String ParameterVon= "";
String ParameterBis= "";
String ParameteDefault= "";
String sendModeExplicit = "";
if (gewählterModus == 1) {
//Konstrukt für jeden Parameter
ParameterName= "Geschwindigkeit";
ParameterDarstellung= "SeekBar";
ParameterVon= "0";
ParameterBis= "1000";
ParameteDefault= "333";
sendModeExplicit += ParameterName + "," + ParameterDarstellung + "," + ParameterVon + "," + ParameterBis + "," + ParameteDefault + ",";
//Konstrukt für jeden Parameter
ParameterName= "Helligkeit";
ParameterDarstellung= "SeekBar";
ParameterVon= "0";
ParameterBis= "100";
ParameteDefault= "50";
sendModeExplicit += ParameterName + "," + ParameterDarstellung + "," + ParameterVon + "," + ParameterBis + "," + ParameteDefault + ",";
}
Serial.println(sendModeExplicit);
Dieser Ansatz mag etwas komplexer sein, aber er ermöglicht es, alle Parameter eines Modus zusammenzuhalten. Ideen und Vorschläge sind immer willkommen!
Fazit
Die Kombination aus Arduino, Bluetooth, Android und LEDs bietet grenzenlose Möglichkeiten, um faszinierende Projekte zu erschaffen. Egal, ob du Anfänger oder Experte bist, es ist wichtig, dass dein Code leicht zu verstehen und zu verwenden ist. Also, lass deiner Kreativität freien Lauf und tauche ein in die Welt der Elektronik!
Liebe Grüße!