SaveForest
Published © GPL3+

RGB Strip led controlled with Bluetooth

Simply circuit for control a RGB strip led, with Arduino.

BeginnerProtip607
RGB Strip led controlled with Bluetooth

Things used in this project

Hardware components

Arduino Nano R3
Arduino Nano R3
https://www.amazon.it/gp/product/B01MS7DUEM/ref=ppx_yo_dt_b_asin_title_o05_s00?ie=UTF8&psc=1
×1
Power MOSFET N-Channel
Power MOSFET N-Channel
IRFP 054
×1
LED Strip, NeoPixel Digital RGB
LED Strip, NeoPixel Digital RGB
https://www.amazon.it/Striscia-Duractron-striscia-Decorazioni-Impermeabile/dp/B0775GY38N/ref=sr_1_6?__mk_it_IT=ÅMÅŽÕÑ&dchild=1&keywords=striscia+led+rgb&qid=1603890334&sr=8-6
×1
HC-05 Bluetooth Module
HC-05 Bluetooth Module
https://www.amazon.it/gp/product/B0722MD4FY/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&psc=1
×1
DC-DC Buck (Step Down) Regulator, Adjustable
DC-DC Buck (Step Down) Regulator, Adjustable
https://www.amazon.it/gp/product/B071ZRXKJY/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1
×1
Resistor 220 ohm
Resistor 220 ohm
×1
Breadboard (generic)
Breadboard (generic)
×1
Jumper wires (generic)
Jumper wires (generic)
×1

Software apps and online services

MIT App Inventor 2
MIT App Inventor 2
http://ai2.appinventor.mit.edu/?galleryId=4866084742496256&locale=it_IT#5247907838427136

Story

Read more

Schematics

Circuit

https://www.tinkercad.com/things/8lnnN8gG2M5

Code

STRISCIA_LED_RGB_CON_BLUETOOTH.ino

C/C++
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(8, 9);
int bluPin = 6;
int verdePin = 5;
int rossoPin = 3;
int x;
void setup(){
pinMode(rossoPin, OUTPUT);
pinMode(verdePin, OUTPUT);
pinMode(bluPin, OUTPUT);
Serial.begin(38400);
BTSerial.begin(38400);
while(!Serial) {}
}
 
void loop(){
if (BTSerial.available()){
char oke = BTSerial.read();
Serial.write(oke);

if (oke == 'b') {
analogWrite(bluPin, 255);  //blu
}
if (oke == 'z') {
analogWrite(bluPin, 0);
}
 
if (oke == 'r') {
analogWrite(rossoPin, 255);  //rosso
}
if (oke == 'z') {
analogWrite(rossoPin, 0);
}   

if (oke == 'g') {
analogWrite(verdePin, 255); //verde
}
if (oke == 'z') {
analogWrite(verdePin, 0);
}

if (oke == 'w') {
analogWrite(bluPin, 255);  //bianco
analogWrite(rossoPin, 255);
analogWrite(verdePin, 255);
}
if (oke == 'z') {
analogWrite(bluPin, 0);
analogWrite(rossoPin, 0);
analogWrite(verdePin, 0);
}

if (oke == 'a') {
analogWrite(rossoPin, 255);
analogWrite(verdePin, 40); //arancione
}
if (oke == 'z') {
analogWrite(verdePin, 0);
analogWrite(rossoPin, 0);
}

if (oke == 'y') {
analogWrite(rossoPin, 255);
analogWrite(verdePin, 150); //giallo
}
if (oke == 'z') {
analogWrite(verdePin, 0);
analogWrite(rossoPin, 0);
}

if (oke == 'v') {
analogWrite(rossoPin, 140);
analogWrite(bluPin, 250); //viola
}
if (oke == 'z') {
analogWrite(rossoPin, 0);
analogWrite(bluPin, 0);
}

if (oke == 'c') {
analogWrite(verdePin, 255);
analogWrite(bluPin, 255); //ciano
}
if (oke == 'z') {
analogWrite(verdePin, 0);
analogWrite(bluPin, 0);
}

if (oke == 'm') {
analogWrite(rossoPin, 255);
analogWrite(bluPin, 80); //magenta
}
if (oke == 'z') {
analogWrite(rossoPin, 0);
analogWrite(bluPin, 0);
}

if (oke == 's') {
while(x < 1000){
for(int i = 0; i < 256; i++){    //for  il ciclo che esegue Arduino, si sceglie di usare 256 che corrisponde alla massima tensione che Arduino riesce ad applicare(circa 5V) in PWM.
rgb(255-i, i, 0);                //rgb Arduino riconosce che si riferisce ai 16 milioni di colori replicabili dai led RGB(255x255x255 massima tensione che si pu applicare ad ogni pin)
delay(10);                       // semplice delay (che tradotto dall'inglese  il ritardo di una cosa) che se diminuito si vedono meno colori e ci saranno luci pi fastidiose e intense, se si d pi delay  il contrario di quanto precedentemente descritto 
}
for(int i = 0; i < 256; i++){
    //for  il ciclo che esegue Arduino, si sceglie di usare 256 che corrisponde alla massima tensione che Arduino riesce ad applicare(circa 5V) in PWM.
rgb(0, 255-i, i);                //rgb Arduino riconosce che si riferisce ai 16 milioni di colori replicabili dai led RGB(255x255x255 massima tensione che si pu applicare ad ogni pin)
delay(10);                      // semplice delay (che tradotto dall'inglese  il ritardo di una cosa) che se diminuito si vedono meno colori e ci saranno luci pi fastidiose e intense, se si d pi delay  il contrario di quanto precedentemente descritto
}
for(int i = 0; i < 256; i++){    //for  il ciclo che esegue Arduino, si sceglie di usare 256 che corrisponde alla massima tensione che Arduino riesce ad applicare(circa 5V) in PWM.
rgb(i, 0, 255-i);                //rgb Arduino riconosce che si riferisce ai 16 milioni di colori replicabili dai led RGB(255x255x255 massima tensione che si pu applicare ad ogni pin)
delay(10);                     // semplice delay (che tradotto dall'inglese  il ritardo di una cosa) che se diminuito si vedono meno colori e ci saranno luci pi fastidiose e intense, se si d pi delay  il contrario di quanto precedentemente descritto
}
x = x + 1;
}
}
}
}
void rgb(int rosso, int verde, int blu){
  analogWrite(rossoPin, rosso);
  analogWrite(verdePin, verde);
  analogWrite(bluPin, blu);
}

Credits

SaveForest
1 project • 0 followers

Comments