Hello. I am Bishen from Sri Lanka. Can someone help me with this? I am making a program about led patterns that can change patterns with a tv remote.
#define delay50 100
#include<IRremote.h>
IRrecv Bishen (11);
decode_results results;
int myled[] = {2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13};
int num_of_leds;
void setup() {
num_of_leds = sizeof(myled) / sizeof(int);
for (int i = 0; i < num_of_leds; i++) {
pinMode(myled[i], OUTPUT);
}
}
void loop()
{
if(Bishen.decode(&results))
{
Serial.println(results.value, DEC);
Bishen.resume();
}
delay(1000);
ledonn();
delay(2000);
ledoff();
delay(2000);
for (int i = 0; i < 5; i++) {pattern1();}
for (int i = 0; i < 5; i++) {pattern2();}
for (int i = 0; i < 5; i++) {pattern3();}
for (int i = 0; i < 5; i++) {pattern4();}
for (int i = 0; i < 25; i++){pattern5();}
for (int i = 0; i < 5; i++) {pattern6();}
for (int i = 0; i < 15; i++){pattern7();}
for (int i = 0; i < 15; i++){pattern8();}
for (int i = 0; i < 5; i++) {pattern9();}
for (int i = 0; i < 5; i++) {pattern10();}
for (int i = 0; i < 50; i++){pattern11();}
for (int i = 0; i < 50; i++){pattern12();}
ledoff();
delay(5000);
}
long val = results.value;
//TURN ON ALL LEDs
if (val == 16)
void ledonn() {
for (int i = 0; i < num_of_leds; i++) {
digitalWrite(myled[i], HIGH);
}
}
//TURN OFF ALL LEDs
if (val == 2064)
void ledoff() {
for (int i = 0; i < num_of_leds; i++) {
digitalWrite(myled[i], LOW);
}
}
//LEFT TO RIGHT
if (val == 3088)
void pattern1() {
for (int i = 0; i < num_of_leds; i++) {
digitalWrite(myled[i], HIGH);
delay(delay50);
digitalWrite(myled[i], LOW);
}
}
//RIGHT TO LEFT
if (val == 528)
void pattern2() {
for (int i = num_of_leds; i > 0; i--) {
digitalWrite(myled[i - 1], HIGH);
delay(delay50);
digitalWrite(myled[i - 1], LOW);
}
}
//LEFT TO RIGHT FILL
if (val == 1552)
void pattern3() {
for (int i = 0; i < num_of_leds; i++) {
digitalWrite(myled[i], HIGH);
delay(delay50);
}
for (int i = num_of_leds; i > 0; i--) {
digitalWrite(myled[i - 1], LOW);
delay(delay50);
}
}
//RIGHT TO LEFT FILL
if (val == 3600)
void pattern4() {
ledonn();
delay(delay50);
for (int i = 0; i < num_of_leds; i++) {
digitalWrite(myled[i], LOW);
delay(delay50);
}
for (int i = num_of_leds; i > 0; i--) {
digitalWrite(myled[i - 1], HIGH);
delay(delay50);
}
ledoff();
}
//ALTERNATE LEDs
if (val == 272)
void pattern5() {
for (int i = 0; i < num_of_leds; i = i + 2) {
digitalWrite(myled[i], HIGH);
digitalWrite(myled[i + 1], LOW);
}
delay(delay50);
for (int i = 0; i < num_of_leds; i = i + 2) {
digitalWrite(myled[i], LOW);
digitalWrite(myled[i + 1], HIGH);
}
delay(delay50);
}
//OSCILLATING LEDs
if (val == 4048)
void pattern6() { //osc
for (int i = 0; i < num_of_leds; i++) {
digitalWrite(myled[i], HIGH);
delay(delay50);
digitalWrite(myled[i], LOW);
}
delay(delay50);
for (int i = num_of_leds; i > 0; i--) {
digitalWrite(myled[i - 1], HIGH);
delay(delay50);
digitalWrite(myled[i - 1], LOW);
}
}
//INSIDE
if (val == 2320)
void pattern7() {
for (int i = 0; i < num_of_leds / 2; i++) {
digitalWrite(myled[i], HIGH);
digitalWrite(myled[num_of_leds - 1 - i], HIGH);
delay(delay50);
digitalWrite(myled[i], LOW);
digitalWrite(myled[num_of_leds - 1 - i], LOW);
}
}
//OUTSIDE
if (val == 3536)
void pattern8()
{
for (int i = (num_of_leds / 2) - 1; i >= 0 ; i--)
{
digitalWrite(myled[i], HIGH);
digitalWrite(myled[num_of_leds - 1 - i], HIGH);
delay(delay50);
digitalWrite(myled[i], LOW);
digitalWrite(myled[num_of_leds - 1 - i], LOW);
}
}
//LEFT TO RIGHT 3 LEDs
if (val == 752)
void pattern9() {
for (int i = 0; i < num_of_leds + 3; i++) {
if (i <= num_of_leds) {
digitalWrite(myled[i], HIGH);
}
if (i > 2) {
digitalWrite(myled[i - 3], LOW);
}
delay(delay50);
}
}
//OSCILLATING 3 LEDs
if (val == 720)
void pattern10() {
for (int i = 2; i < num_of_leds; i++) {
if (i == 2) {
digitalWrite(myled[0], HIGH);
digitalWrite(myled[1], HIGH);
}
digitalWrite(myled[i], HIGH);
digitalWrite(myled[i - 3], LOW);
delay(delay50);
}
for (int i = num_of_leds - 4; i > -1; i--) {
digitalWrite(myled[i], HIGH);
digitalWrite(myled[i + 3], LOW);
delay(delay50);
}
}
//RANDOM EFFECT 1
if (val == 2800)
void pattern11() {
int randomnum = random(0, num_of_leds + 1);
digitalWrite(myled[randomnum], HIGH);
delay(delay50);
digitalWrite(myled[randomnum], LOW);
delay(delay50);
}
//RANDOM EFFECT 2
if (val == 3280)
void pattern12() {
int randomonn = random(0, num_of_leds + 1);
int randomoff = random(0, num_of_leds + 1);
digitalWrite(myled[randomonn], HIGH);
digitalWrite(myled[randomoff], LOW);
delay(delay50);
}
}
}