Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <IRremote.h>
- int RECV_PIN = 4;
- IRrecv irrecv(RECV_PIN);
- decode_results results;
- // Initalize our LED columns (positive)
- int LEDPin[] = {5,8,11,6,9,12,7,10,13};
- // Initalize the LED layers (ground)
- int LayerPin[] = {A3,A4,A5};
- int count = 0;
- int pin = 0;
- int layer = 0;
- boolean PinState = 0;
- int LPin = 0;
- void LayersOff() { // функция для выключения всех слоёв
- for(int layer = 0; layer < 3; layer++){
- digitalWrite(LayerPin[layer], LOW);
- }
- }
- void LayersOn() { // функция для включения всех слоёв
- for(int layer = 0; layer < 3; layer++){
- digitalWrite(LayerPin[layer], HIGH);
- }
- }
- void PinOnOff() {
- PinState = !PinState;
- digitalWrite(LEDPin[pin],PinState);
- }
- void LayerUP(int layer) { // включаем на 1 слой выше
- for (LPin = 0; LPin < layer; LPin++){
- digitalWrite(LayerPin[LPin],HIGH);
- }
- }
- void setup() {
- // pinMode(ButPin, INPUT); // Задаем как вход
- Serial.begin(9600);
- // pinMode(IRpin, INPUT);
- irrecv.enableIRIn(); // Start the receiver
- // Set up LED columns as output
- for(int pin = 0; pin < 10 ; pin++ ){
- pinMode(LEDPin[pin],OUTPUT);
- digitalWrite(LEDPin[pin],LOW);
- }
- // Set up LED Layers as output
- for(int layer = 0; layer < 3; layer++){
- pinMode(LayerPin[layer], OUTPUT);
- }
- LayersOff();
- }
- void loop() {
- if (irrecv.decode(&results)) {
- Serial.println(results.value);
- switch (results.value) {
- case 0xFF6897: // button 0
- Serial.println("pin 0");
- pin = 0;
- PinOnOff();
- break;
- case 0xFF30CF: // button 1
- Serial.println("pin 1");
- pin = 1;
- PinOnOff();
- break;
- case 0xFF18E7: // button 2
- Serial.println("pin 2");
- pin = 2;
- PinOnOff();
- break;
- case 0xFF7A85: // button 3
- Serial.println("pin 3");
- pin = 3;
- PinOnOff();
- break;
- case 0xFF10EF: // button 4
- Serial.println("pin 4");
- pin = 4;
- PinOnOff();
- break;
- case 0xFF38C7: // button 5
- Serial.println("pin 5");
- pin = 5;
- PinOnOff();
- break;
- case 0xFF5AA5: // button 6
- Serial.println("pin 6");
- pin = 6;
- PinOnOff();
- break;
- case 0xFF42BD: // button 7
- Serial.println("pin 7");
- pin = 7;
- PinOnOff();
- break;
- case 0xFF4AB5: // button 8
- Serial.println("pin 8");
- pin = 8;
- PinOnOff();
- break;
- case 0xFF52AD: // button 9
- Serial.println("All is UP!");
- PinState = !PinState;
- for(int pin = 0; pin < 10 ; pin++ ){
- digitalWrite(LEDPin[pin],PinState);
- }
- break;
- case 0xFFE01F: //vol-
- if (pin < 0) {
- pin = 8;
- int count = 0;
- while (count < 3) {
- PinOnOff();
- delay(50);
- count++;
- }
- } else {
- PinOnOff();
- pin = pin--;
- }
- PinOnOff();
- Serial.print("pin - | ");
- Serial.println(pin);
- break;
- case 0xFFA857: //vol+
- Serial.print("pin + | ");
- Serial.println(pin);
- if (pin > 8) {
- pin = 8;
- int count = 0;
- while (count < 3) {
- PinOnOff();
- delay(50);
- count++;
- }
- } else {
- PinOnOff();
- pin = ++pin;
- }
- PinOnOff();
- break;
- case 0xFFA25D: //CH-
- if (layer < 0) {
- layer = 0;
- LayersOff();
- int count = 0;
- while (count < 3) {
- LayersOn();
- delay(50);
- LayersOff();
- delay(50);
- count++;
- }
- } else {
- digitalWrite(LayerPin[layer],LOW);
- layer = layer--;
- }
- Serial.print("layer - | ");
- Serial.println(layer);
- break;
- case 0xFFE21D: //CH+
- if (layer > 2) {
- layer = 3;
- int count = 0;
- while (count < 3) {
- LayersOff();
- delay(50);
- LayersOn();
- delay(50);
- count++;
- }
- } else {
- layer = layer++;
- }
- LayerUP(layer);
- Serial.print("layer + | ");
- Serial.println(layer);
- break;
- case 0xFF22DD: // PREV
- LayersOff();
- if (layer == 0) {
- layer = 2;
- }
- else {
- layer = layer--;
- }
- digitalWrite(LayerPin[layer],HIGH);
- Serial.print("prev layer | ");
- Serial.println(layer);
- break;
- case 0xFF02FD: // NEXT
- LayersOff();
- if (layer >= 2) {
- layer = 0;
- }
- else {
- layer = layer++;
- }
- digitalWrite(LayerPin[layer],HIGH);
- Serial.print("next layer | ");
- Serial.println(layer);
- break;
- case 0xFF629D: //CH
- Serial.println("Layers Off");
- LayersOff();
- layer = -1;
- break;
- case 0xFFC23D: //PAUSE
- Serial.println("Layers On");
- LayersOn();
- break;
- case 0xFF906F: // EQ
- Serial.print("pin = ");
- Serial.println(pin);
- Serial.print("layer = ");
- Serial.println(layer);
- count = 0;
- while(count < 5){
- for(int layer = 0; layer < 3; layer++){
- digitalWrite(LayerPin[layer],HIGH);
- digitalWrite(LEDPin[4],HIGH);
- for(pin = 0; pin < 5; pin++ ){
- digitalWrite(LEDPin[(2*pin)],HIGH);
- }
- delay(75);
- for(pin = 0; pin < 5; pin++ ){
- digitalWrite(LEDPin[(2*pin)],LOW);
- }
- digitalWrite(LEDPin[4],HIGH);
- for(pin = 0; pin < 4; pin++ ){
- digitalWrite(LEDPin[(2*pin+1)],HIGH);
- }
- delay(75);
- for(pin = 0; pin < 4; pin++ ){
- digitalWrite(LEDPin[(2*pin+1)],LOW);
- }
- delay(75);
- digitalWrite(LayerPin[layer],LOW);
- }
- digitalWrite(LayerPin[1],HIGH);
- digitalWrite(LEDPin[4],HIGH);
- for(pin = 0; pin < 5; pin++ ){
- digitalWrite(LEDPin[(2*pin)],HIGH);
- }
- delay(75);
- for(pin = 0; pin < 5; pin++ ){
- digitalWrite(LEDPin[(2*pin)],LOW);
- }
- digitalWrite(LEDPin[4],HIGH);
- for(pin = 0; pin < 4; pin++ ){
- digitalWrite(LEDPin[(2*pin+1)],HIGH);
- }
- delay(75);
- for(pin = 0; pin < 4; pin++ ){
- digitalWrite(LEDPin[(2*pin+1)],LOW);
- }
- delay(75);
- digitalWrite(LayerPin[1],LOW);
- count++;
- }
- break;
- }
- irrecv.resume(); // Receive the next value
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement