LED Bluetooth Dimmer (3 / 4 steg)
Steg 3: Skiss
I den enklaste formen, bör skissen få information i siffror mellan 0 och 255. Detta nummer används för att styra ljusstyrkan av LED med funktionen analogWrite(pin,value). Reglaget på Roboremo app bör sända mellan 0 och 255 via Bluetooth till Arduino's HC-06 Bluetooth modul.
Däremot får modulen data kodas i ASCII-form (kontrollera ASCII). Det finns olika sätt att konvertera denna kodade ASCII till heltal som behövs av skissen.
Jag har försökt med metoden typ gjutning . Alla är medvetna om att en variabels typ måste deklareras innan du implementerar skissen. Om en variabeltyp behöver ändras samtidigt genomföra programmet kan det göras genom bara att skriva (int), eller (byte) eller någon annan typ behövs ska konverteras till. Till exempel
int i; Variabeln jag deklareras som ett heltal
flyta f; Variabel f deklareras som en flöte
f = 3.6;
Jag = (int) f; nu jag är 3, är dvs jag ett heltal av float f
så deklarerar variabeln fadeness i skissen som byte och sedan under genomförandet i void loop() kastade det till heltal använder (int).
Denna metod har frågor. Smartphone tar emot data seriellt och en numrera 103 är mottar separata 1 och 0 och en annan 3. Detta kommer att göra den LED blinkar med ljusstyrka 1 och när nästa lite mottas det blir 0 och lysdioden lyser med ljusstyrka 0 och sedan med ljusstyrka 3 när 3 tas emot. Metoden för typ gjutning, därför misslyckas.
Det finns en annan metod att genomföra detta, och det fungerar "EUREKA!". Ange variabeln som styr ljusstyrkan LED (dvs. fadeAmount enligt skiss) som sträng för att detta ska genomföras. På Läs genomförandet medan du läser data om fadeAmount över Bluetooth med funktionen Serial.readString() . Det är en ändring av Serial.read() funktion, som läser data tas emot via Bluetooth som sträng. Nu konvertera strängen till heltal med funktionen .toInt() . Den konverterar strängen fick till ett tal som 100 eller 200 utan blanksteg.
Min observation visar dock att det är långsam och det kan finnas andra bättre sätt att få det att fungera snabbare.