Indice
Descrizione
In questo video scoprirai come ricevere i segnali ad infrarossi con Arduino.
Imparerai come collegare un ricevitore ad infrarossi e scrivere gli sketch per comandare Arduino tramite un telecomando.
#include <IRremote.h> #define IR_RECEIVE_PIN 11 void setup() { Serial.begin(9600); IrReceiver.begin(IR_RECEIVE_PIN);} void loop() { if (IrReceiver.decode()) { IrReceiver.printIRResultShort(&Serial); IrReceiver.resume(); }}#include <IRremote.h> #define IR_RECEIVE_PIN 11#define RED_PIN 9#define GREEN_PIN 6#define BLUE_PIN 5 void setup() { pinMode(RED_PIN, OUTPUT); pinMode(GREEN_PIN, OUTPUT); pinMode(BLUE_PIN, OUTPUT); IrReceiver.begin(IR_RECEIVE_PIN);} void loop() { if (IrReceiver.decode()) { setColor(IrReceiver.decodedIRData.decodedRawData); IrReceiver.resume(); }} void setColor(uint32_t code) { if (code == 0xE619FF00) { // 0 - spento rgb(0, 0, 0); } else if (code == 0xBA45FF00) { // 1 - rosso rgb(255, 0, 0); } else if (code == 0xB946FF00) { // 2 - arancione rgb(255, 20, 0); } else if (code == 0xB847FF00) { // 3 - giallo rgb(255, 70, 0); } else if (code == 0xBB44FF00) { // 4 - verde rgb(0, 255, 0); } else if (code == 0xBF40FF00) { // 5 - ciano rgb(0, 255, 255); } else if (code == 0xBC43FF00) { // 6 - blu rgb(0, 0, 255); } else if (code == 0xF807FF00) { // 7 - magenta rgb(255, 0, 70); } else if (code == 0xEA15FF00) { // 8 - viola rgb(170, 0, 255); } else if (code == 0xF609FF00) { // 9 - bianco rgb(255, 255, 255); }} void rgb(int red, int green, int blue) { analogWrite(RED_PIN, red); analogWrite(GREEN_PIN, green); analogWrite(BLUE_PIN, blue);}#include <IRremote.h> #define IR_RECEIVE_PIN 11#define RED_PIN 9#define GREEN_PIN 6#define BLUE_PIN 5 #define FADE_DELAY_MIN 0#define FADE_DELAY_MAX 5 int fadeDelay = 3;int index = 0;unsigned long lastChange = 0;bool enable = false; void setup() { pinMode(RED_PIN, OUTPUT); pinMode(GREEN_PIN, OUTPUT); pinMode(BLUE_PIN, OUTPUT); IrReceiver.begin(IR_RECEIVE_PIN);} void loop() { if (IrReceiver.decode()) { if (IrReceiver.decodedIRData.decodedRawData == 0xE31CFF00) { // OK enable = !enable; if (!enable) { rgb(0, 0, 0); } } else if (IrReceiver.decodedIRData.decodedRawData == 0xE718FF00) { // ^ fadeDelay--; } else if (IrReceiver.decodedIRData.decodedRawData == 0xAD52FF00) { // v fadeDelay++; } fadeDelay = constrain(fadeDelay, FADE_DELAY_MIN, FADE_DELAY_MAX); IrReceiver.resume(); } if (!enable) { return; } if ((millis() - lastChange) > fadeDelay) { rgbFade(index); index = (index+1) % 768; lastChange = millis(); } } void rgbFade(int i) { if (i < 256) { rgb(255-i, i, 0); } else if (i < 512) { rgb(0, 511-i, i-256); } else { rgb(i-512, 0, 767-i); }} void rgb(int red, int green, int blue) { analogWrite(RED_PIN, red); analogWrite(GREEN_PIN, green); analogWrite(BLUE_PIN, blue);}In qualità di Affiliato Amazon riceviamo un guadagno dagli acquisti idonei