SmartPhone kontrollerad RGB MOOD Light (6 / 6 steg)
Steg 6: kod
#include < SoftwareSerial.h >
#include < Wire.h > //Include bibliotek: SoftwareSerial & Wire
SoftwareSerial BT(11,12); Definiera PIN11 & PIN12 som RX och TX stift
RGB LED stift
int PIN_RED = 3;
int PIN_GREEN = 5;
int PIN_BLUE = 6;
RÖD lysdiod på stift 13
int RED_LED = 13.
Sträng RGB = ""; lagra RGB-kod från BT
String RGB_Previous = "255.255.255"); bevara tidigare RGB-färg för LED strömbrytare på/av, standard vit
Sträng på = "ON"; Kontrollera om kommandot togs emot
Strängen av = "OFF"; Kontrollera om OFF kommando tas emot
booleska RGB_Completed = false;
void setup() {
Serial.BEGIN(9600); Arduino serieport baud rate: 9600
BT.begin (9600); //My HC-05 modul standard överföringshastigheten är 9600
RGB.reserve(30);
pinMode (RED_LED, OUTPUT);
Ange pin13 för LED,
Denna LED är på Arduino mini pro, inte RGB LED
}
void loop() {
sätta din huvudsakliga kod här, för att köra flera gånger:
Läs varje tecken från seriell Port(Bluetooth)
While(BT.available()) {
char ReadChar = (char)BT.read();
Höger parentes) anger complet av strängen
IF(ReadChar == ') ") {
RGB_Completed = sant;
} annat {
RGB += ReadChar;
}
}
När en kommandokoden mottas helt med ")" slutar karaktär
IF(RGB_Completed) {
Skriva ut debug information på Serial utdatafönstret
Serial.Print("RGB:");
Serial.Print(RGB);
Serial.Print ("PreRGB:");
Serial.println(RGB_Previous);
IF(RGB==on) {
digitalWrite(13,HIGH);
RGB = RGB_Previous; Vi tar endast emot 'På', så få tidigare RGB-färg tillbaka aktivera LED
Light_RGB_LED();
} annat if(RGB==OFF) {
digitalWrite(13,LOW);
RGB = "0.0.0"); Skicka bort strängen inaktivera ljus
Light_RGB_LED();
} annat {
Aktivera färg enligt färgkod från Bluetooth Serial Port
Light_RGB_LED();
RGB_Previous = RGB;
}
Återställa RGB sträng
RGB = "";
RGB_Completed = false;
} //end om av check om RGB avslutat
} / / end av loop
void Light_RGB_LED() {
int SP1 = RGB.indexOf('.');
int SP2 = RGB.indexOf ('. ', SP1 + 1);
int SP3 = RGB.indexOf ('. ', SP2 + 1);
Sträng R = RGB.substring (0, SP1);
Sträng G = RGB.substring (SP1 + 1, SP2);
Strängen B = RGB.substring (SP2 + 1, SP3);
Skriva ut debug information på Serial utdatafönstret
Serial.Print("R=");
Serial.println (constrain(R.toInt(),0,255));
Serial.Print("G=");
Serial.println(constrain(G.toInt(),0,255));
Serial.Print("B=");
Serial.println (constrain(B.toInt(),0,255));
Tänds lampan med färgkod
** 2014-09-21
Eftersom dessa RGB LED är gemensam anod (gemensamma positiva)
Så vi behöver ta 255 till minus R, värde G, B för att få rätt RGB-färgkoden
analogWrite (PIN_RED, (R.toInt()));
analogWrite (PIN_GREEN, (G.toInt()));
analogWrite (PIN_BLUE, (B.toInt()));
Om du gillade detta projekt stödja mig på Facebook mitt tycke min sida
https://www.Facebook.com/makewithRex/
, du kommer också att kunna prata om dina tvivel tråg sidan