1
0
Fork 0
unlondon-workshops/sketchbook/RGB-Remote-Buzzer/RGB-Remote-Buzzer.ino

73 lines
1.6 KiB
Arduino
Raw Normal View History

2016-05-20 15:00:36 -04:00
/*
RGB Blink
Alternates R, G and B LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
modified 20 May 2016
by Shawn Nock
*/
#include <IRremote.h>
#include "medway-remote.h" // Button definitions for medway kit remote
#define RED 3
#define GREEN 4
#define BLUE 5
#define IR_PIN 2
#define BUZZER 10
/* Initialize the irrecv part of the IRremote library */
IRrecv irrecv(IR_PIN);
decode_results results; // This will store our IR received codes
uint16_t lastCode = 0; // This keeps track of the last code RX'd
bool power = false; // Variable to store power on/off state
void setup() {
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
pinMode(BUZZER, OUTPUT);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
uint16_t resultCode = (results.value & 0xFFFF);
switch (resultCode) {
case POWER:
power ^= 1; // Toggle power
if (!power) {
digitalWrite(RED, LOW);
digitalWrite(GREEN, LOW);
digitalWrite(BLUE, LOW);
} else {
digitalWrite(RED, HIGH);
digitalWrite(GREEN, HIGH);
digitalWrite(BLUE, HIGH);
}
break;
case ONE:
digitalWrite(RED, !digitalRead(RED));
break;
case TWO:
digitalWrite(GREEN, !digitalRead(GREEN));
break;
case THREE:
digitalWrite(BLUE, !digitalRead(BLUE));
break;
case MUTE:
digitalWrite(BUZZER, !digitalRead(BUZZER));
break;
default:
break;
}
irrecv.resume();
}
}