LedRGB_IR


Comandare un led RGB dallo smartphone Samsung Galaxy S4 usato come telecomando

Per comandare il led ho usato il software disponibile su Play Store Snamsung IR Remote scegliendo la modalità RGB LED 1.

 

Schema di collegamento realizzato con Fritzing:

Codice per Arduino (Per il corretto funzionamento è necessario installare la libreria
ArduinoIRRemote che trovate a questo indirizzo: https://github.com/shirriff/Arduino-IRremote):

/*
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*
* Questo è di Giuseppe Tamanini
* è stato scritto nel febbraio 2014
* per funzionare su Samsung Galaxy S4
* con il programma Samsung IR - Universale Remote
* selezionando la modalità RGB LED 1
* ed è di pubblico dominio
*/

#include <IRremote.h>

int RECV_PIN = 11;
// Set Pin as an LED connected on most Arduino boards.
int ledR = 5;
int ledG = 6;
int ledB = 7;
// variabile che contiene il valore letto dal trasmettitore ir
int vir = 0;

// the setup routine runs once when you press reset:

IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {
  // imposta la modalità dei pin.
  pinMode(ledR, OUTPUT);
  pinMode(ledG, OUTPUT);
  pinMode(ledB, OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    if (results.value!=0xFFFFFFFF) {
      vir = results.value;
    }
    Serial.println(vir, HEX);
    irrecv.resume(); // Receive the next value
  }
  if (vir == 0x2FD) {
    digitalWrite(ledR, LOW);   // spegne i led
    digitalWrite(ledG, LOW);
    digitalWrite(ledB, LOW);
  }
  if (vir == 0x1AE5) {
    digitalWrite(ledR, HIGH);   // accende il led rosso
    digitalWrite(ledG, LOW);
    digitalWrite(ledB, LOW);
  }
  if (vir == 0xFFFF9A65) {
    digitalWrite(ledR, LOW);   // accende il led verde
    digitalWrite(ledG, HIGH);
    digitalWrite(ledB, LOW);
  }
  if (vir == 0xFFFFa25D) {
    digitalWrite(ledR, LOW);   // accende il led blu
    digitalWrite(ledG, LOW);
    digitalWrite(ledB, HIGH);
  }
  if (vir == 0x22DD) {
    digitalWrite(ledR, HIGH);   // accende tutti i led
    digitalWrite(ledG, HIGH);
    digitalWrite(ledB, HIGH);
  }
}

Giuseppe Tamanini



Articolo tratto da: Filodrammatica ViVa di Vigolo Vattaro - https://www.filoviva.it/
URL di riferimento: https://www.filoviva.it//index.php?mod=10_Progetti/21_ledrgb_ir