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
|