Ich benutze einen Arduino Uno, ein I/O Shield, und einen BlueTooth Modul HC-06.
Als App fürs Handy benutze ich den BlueToothSerialController.
Der Digitalwrite funktioniert gut.
Nun wollte ich den Fader der App nutzen, um auf Pin 6 ein PWM Signal
auszugeben. (es werden Werte zwischen 0 und 255 übertragen)
Während ich bei der Abfrage des Serialread für die Pins 8-13 nur EINEN
Buchstaben berücksichtigen muss, ist es bei dem AnalogWrite ein 3 Digit Wert.
Ich habe meinen Code angehängt.
Da ich Anfänger bin, ist der Code wahrscheinlich irre umständlich.
Er funktioniert aber bis auf den "Faderteil" am Schluss.
Ich würde mich sehr über Tipps freuen, wie man den Code
professioneller aufzieht.
char blueToothVal; //value sent over via bluetooth
char lastValue; //stores last state of device (on/off)
int pwmPin = 6; // LED connected to digital pin 6
int val = 0; // variable to store the read value
void setup()
{
Serial.begin(9600);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
pinMode(pwmPin, OUTPUT); // sets the pin as output
}
void loop()
{
if(Serial.available())
{//if there is data being recieved
blueToothVal=Serial.read(); //read it
}
if (blueToothVal=='a')
{//if value from bluetooth serial is n
digitalWrite(13,HIGH); //switch on LED
if (lastValue!='a')
Serial.println(F("Kanal 13 is on")); //print LED is on
lastValue=blueToothVal;
}
if (blueToothVal=='b')
{//if value from bluetooth serial is n
digitalWrite(13,LOW); //turn off LED
if (lastValue!='b')
Serial.println(F("Kanal 13 is off")); //print LED is on
lastValue=blueToothVal;
}
if (blueToothVal=='c')
{//if value from bluetooth serial is n
digitalWrite(12,HIGH); //switch on LED
if (lastValue!='c')
Serial.println(F("Kanal 12 is on")); //print LED is on
lastValue=blueToothVal;
}
if (blueToothVal=='d')
{//if value from bluetooth serial is n
digitalWrite(12,LOW); //turn off LED
if (lastValue!='d')
Serial.println(F("Kanal 12 is off")); //print LED is on
lastValue=blueToothVal;
}
if (blueToothVal=='e')
{//if value from bluetooth serial is n
digitalWrite(11,HIGH); //switch on LED
if (lastValue!='e')
Serial.println(F("Kanal 11 is on")); //print LED is on
lastValue=blueToothVal;
}
if (blueToothVal=='f')
{//if value from bluetooth serial is n
digitalWrite(11,LOW); //turn off LED
if (lastValue!='f')
Serial.println(F("Kanal 11 is off")); //print LED is on
lastValue=blueToothVal;
}
if (blueToothVal=='g')
{//if value from bluetooth serial is n
digitalWrite(10,HIGH); //switch on LED
if (lastValue!='g')
Serial.println(F("Kanal 10 is on")); //print LED is on
lastValue=blueToothVal;
}
if (blueToothVal=='h')
{//if value from bluetooth serial is n
digitalWrite(10,LOW); //turn off LED
if (lastValue!='h')
Serial.println(F("Kanal 10 is off")); //print LED is on
lastValue=blueToothVal;
}
if (blueToothVal=='i')
{//if value from bluetooth serial is n
digitalWrite(9,HIGH); //switch on LED
if (lastValue!='i')
Serial.println(F("Kanal 9 is on")); //print LED is on
lastValue=blueToothVal;
}
if (blueToothVal=='j')
{//if value from bluetooth serial is n
digitalWrite(9,LOW); //turn off LED
if (lastValue!='j')
Serial.println(F("Kanal 9 is off")); //print LED is on
lastValue=blueToothVal;
}
if (blueToothVal=='k')
{//if value from bluetooth serial is n
digitalWrite(8,HIGH); //switch on LED
if (lastValue!='k')
Serial.println(F("Kanal 8 is on")); //print LED is on
lastValue=blueToothVal;
}
if (blueToothVal=='l')
{//if value from bluetooth serial is n
digitalWrite(8,LOW); //turn off LED
if (lastValue!='l')
Serial.println(F("Kanal 8 is off")); //print LED is on
lastValue=blueToothVal;
}
if (blueToothVal > 0 && blueToothVal<256)
{
val = (blueToothVal);
//if value from bluetooth serial is >0&<256
analogWrite(6,(val)); //feed Analogwrite with val
// lastValue=blueToothVal;
}
delay(100);
}
Lieben Dank schon mal für Alle Tipps !
Stefan
BT_mit_Fader.ino (3.65 KB)