Erstmal ein herzliches hallo an alle!
Eine super community ist das hier -habe schon sehr viel gelesen -nur leider nicht alles kapiert.
Zum Projekt.
Ich habe vor einiger Zeit ein Ferngesteuertes Auto umgebaut (aus einem Tutorial das ich im Netz fand) welches nun mit einem Arduino Uno bzw. meinem Smartphone (Android) gesteuert wird. Der Arduino dient als Empfänger und mein Smartphone als Sender über Bluetooth. Soweit funktioniert das auch alles (Die Kiste fährt und tut was sie soll) da alles ganz simpel über Low/High gesteuert wird. Ich sende ein "F" an den Arduino und der Schaltet mir einen Pin auf High. Ich sende ein "Z" und dieser schaltet den Pin wieder auf Low. (u.s.w)
(Hier der Link zum BasisTutorial: http://www.mobot.es/MobotBTCar.html ) -die App habe ich mit AppInventor nachgebaut weil ich die App aus dem Tutorial hässlich fande und ich das Smartphone lieber im Landscape Modus halte.
Jetzt zum Punkt der ganzen geschichte.
Ich würde gerne bei meinem neuen Auto welches ich gerade baue auch gerne Blinker und solche Funktionen einbauen. Und genau da hängt es in meinem Gehirn wenn ich den Code aus dem Tutorial als Basis nehme.
Hier ein Bsp:
int light = 12; // Pin 12 - Light
char val; // Variable to receive data from the serial port
void setup() {
// initialize the digital pins as output
pinMode(light, OUTPUT);Serial.begin(9600); // Start serial communication at 9600bps
}// Block Light on
void light_on() {
digitalWrite(light, HIGH); // turn the LED on (HIGH is the voltage level)}
// Block Light Off
void light_off() {
digitalWrite(light, LOW);
}
// Read serial port and perform command
void performCommand() {
if (Serial.available()) {
val = Serial.read();
}
if (val == 'f') { // Command Light On
light_on();
} else if (val == 'z') { // Command Light Off
light_off();
}
}void loop() {
performCommand();
}
Die Led/Pin wird per Smartphone High/Low geschaltet. Funktioniert. Aber sobald ich möchte, dass in diesem Block
void light_on() {
digitalWrite(light, HIGH); // turn the LED on (HIGH is the voltage level)}
geblinkt wird fangen die Probleme an. Die "Blink" beispiele der Arduino-Referenz einfach in den "Block" zu Kopieren klang einfach, stellten sich aber schnell als "Scheisse, geht doch nicht" raus -ob nun mit Delay oder ohne. Das Problem ist einfach diese Void Geschichte. Jede Art von "Blink" setzt irgendwie ein Void Loop() vorraus. Void Loop() habe ich allerdings schon am ende des Sketches zum Lauschen auf Serial. :~
Ich habe langsam das gefühl, dass der komplette aufbau des codes einfach nicht mit meinem vorhaben zu machen ist. Ich möchte einfach, dass mein arduino diverse funktionen "loopt" wie zb. blinken aber nebenbei noch in der lage ist variablen zu empfangen bzw. zu verarbeiten um andere pins weiterhin high/low zu schalten z.b um das blinken abzuschalten oder rückwärts und forwärts zu fahren.
Ich habe zwar u.a auch das Buch von Erik Bartmann zum Arduino allerdings bringt mich das auch nicht wirklich weiter da ich einfach zu blöd bin meine wünsche im sketch umzusetzen. Ich verstehe zwar das grundproblem in "meinem" code, habe aber absolut keine skills es so zu frickeln, dass es funktioniert. Bin da mittlerweile wirklich sehr frustriert da ich schon viele nächte hinter diesem problem hänge (immer mit dicken augen zur arbeit ). Ich kann jetzt auch nicht unbedingt die programmiersprache von A-Z lernen da ich dafür einfach keine zeit habe durch meinen beruf.
(Ich würde auch gerne diverse €€€ springen lassen damit die scheisse endlich funktioniert. Damit hätte ich kein problem.)
Vll. kann mir ja jemand helfen.