RGB control led con smartphone

Share

Ecco un esempio di codice Arduino per controllare un LED RGB utilizzando uno smartphone tramite Bluetooth:

#include <SoftwareSerial.h>

// Pin di collegamento per l'LED RGB
const int pinRosso = 9;
const int pinVerde = 10;
const int pinBlu = 11;

// Variabili per il comando RGB
int valoreRosso = 0;
int valoreVerde = 0;
int valoreBlu = 0;

// Oggetto SoftwareSerial per la comunicazione Bluetooth
SoftwareSerial bluetooth(2, 3); // RX, TX

void setup() {
  // Inizializzazione del pin di uscita per l'LED RGB
  pinMode(pinRosso, OUTPUT);
  pinMode(pinVerde, OUTPUT);
  pinMode(pinBlu, OUTPUT);

  // Inizializzazione della comunicazione seriale con il modulo Bluetooth
  bluetooth.begin(9600);
}

void loop() {
  // Controlla se ci sono dati disponibili dalla connessione Bluetooth
  if (bluetooth.available()) {
    // Leggi il comando inviato dallo smartphone
    char comando = bluetooth.read();

    // Esegui l'azione corrispondente al comando ricevuto
    switch (comando) {
      case 'R': // Imposta il valore del rosso
        valoreRosso = leggiValore();
        break;
      case 'G': // Imposta il valore del verde
        valoreVerde = leggiValore();
        break;
      case 'B': // Imposta il valore del blu
        valoreBlu = leggiValore();
        break;
      case 'A': // Imposta tutti i valori (RGB)
        valoreRosso = leggiValore();
        valoreVerde = leggiValore();
        valoreBlu = leggiValore();
        break;
      case 'O': // Spegni l'LED
        valoreRosso = 0;
        valoreVerde = 0;
        valoreBlu = 0;
        break;
    }

    // Aggiorna il colore dell'LED RGB
    analogWrite(pinRosso, valoreRosso);
    analogWrite(pinVerde, valoreVerde);
    analogWrite(pinBlu, valoreBlu);
  }
}

// Funzione ausiliaria per leggere il valore RGB inviato dallo smartphone
int leggiValore() {
  int valore = 0;
  while (bluetooth.available()) {
    char carattere = bluetooth.read();
    if (carattere == ';') {
      break;
    }
    valore = valore * 10 + (carattere - '0');
  }
  return valore;
}

Questo codice utilizza la libreria SoftwareSerial per creare una connessione seriale virtuale sui pin digitali 2 e 3 di Arduino, che verranno collegati al modulo Bluetooth. Puoi installare la libreria SoftwareSerial attraverso il Gestore Librerie di Arduino IDE.

Assicurati di collegare il modulo Bluetooth al pin RX (2) e al pin TX (3) di Arduino. Inoltre, collega i pin dell’LED rosso, verde e blu ai pin 9, 10 e 11 rispettivamente.

Questo codice legge i comandi inviati dallo smartphone attraverso la connessione Bluetooth e imposta i valori di rosso, verde e blu dell’LED RGB di conseguenza. I comandi devono essere inviati come stringhe di testo nel seguente formato: “Rxxx;Gxxx;Bxxx;” dove “xxx” rappresenta il valore compreso tra 0 e 255 per il rosso, il verde e il blu.

Ad esempio, se si invia il comando “R255;G128;B0;”, l’LED si illuminerà di un colore arancione (rosso pieno, verde a metà e blu spento).

Assicurati di installare un’applicazione sul tuo smartphone in grado di inviare comandi Bluetooth, come ad esempio “Arduino Bluetooth Control” o “Serial Bluetooth Terminal”.

Ricorda di abbinare correttamente il modulo Bluetooth allo smartphone prima di avviare l’applicazione.