hi this is my first program, so there will be some mistakes!
my problem is when i pust the 9 button on my IR-Remote is runes the code in "button9();" But it have to finish the hole "void button9()" before i can push a nother button, and i need a way to turn it off at any time
so how can i cut off "void button9()" mitway when i push the OFF button on the IR-Remote
Here is my code!
//pin set up
//neopixle PIN 6
//InFared PIN 5
//TESTLED PIN 3
//ledmetrix PIN 10, 11, 12
//pin names
const int LEDnumber = 2; //names pin 2 "LEDnumber"
const int TESTLED = 3; //names pin 3 "TESTLED"
const int IR = 5; //names pin 5 "IR"
const int STRIP1 = 6; //names pin 6 "STRIP1"
//loads the neopixel library
#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel leds = Adafruit_NeoPixel(LEDnumber, STRIP1, NEO_GRB + NEO_KHZ800);
//loads the ledmatrix library
#include "LedControl.h"
LedControl lc=LedControl(12,10,11,1);
//loads the infared library
#include <IRremote.h>
IRrecv irrecv(5);
decode_results results;
unsigned long time_since_last_reset = 0;
int pause_one = 1000;
void setup()
{
leds.begin(); // This initializes the NeoPixel library.
leds.setBrightness(1); //adjust brightness here
leds.show(); // Initialize all pixels to 'off'
lc.shutdown(0,false); // wakeup the matrix
lc.setIntensity(0,8); // Set the brightness to a medium values
lc.clearDisplay(0); // and clear the display
Serial.begin(9600); //Open serial
irrecv.enableIRIn(); // Initialization infrared receiver
}
void loop()
{
if (irrecv.decode(&results)) //ser efter data fra REMOTE
{
Serial.println(results.value, DEC); //Wrap output in dec receive code
Serial.println(); //For ease of viewing the output to add a blank line
switch (results.value) //begynder at se efter inbut
{
case 16724175: // hvis 1 bliver trykket
button1();
break;
case 16732845: //hvis 9 bliver trykket
button9();
break;
case 16753245: //hvis OFF bliver trykket
buttonoff();
}
irrecv.resume(); //receive the next value from remote
}
}
void button1()
{
digitalWrite(TESTLED, HIGH); //tænder TESTLED
leds.setPixelColor(0, 250, 0, 0); //sætter pixle 1 (0) til 100% rød 0% grøn 0% blå
leds.setPixelColor(1, 0, 0, 0); //sætter pixle 2 (1) til alle på 0%
leds.show(); //sender indput til pixle
}
void button2()
{
}
void button9()
{
digitalWrite(TESTLED, HIGH); //tænder TESTLED
leds.setPixelColor(0, 250, 0, 0); //sætter pixle 1 (0) til 100% rød 0% grøn 0% blå
leds.setPixelColor(1, 0, 0, 0); //sætter pixle 2 (1) til alle på 0%
w8_1_sendpixle();
digitalWrite(TESTLED, LOW); //slukker TESTLED
leds.setPixelColor(0, 250, 0, 0); //sætter pixle 1 (0) til 100% rød 0% grøn 0% blå
leds.setPixelColor(1, 250, 0, 0); //sætter pixle 2 (1) til 100% rød 0% grøn 0% blå
w8_1_sendpixle();
digitalWrite(TESTLED, HIGH); //tænder TESTLED
leds.setPixelColor(0, 0, 250, 0); //sætter pixle 1 (0) til 0% rød 100% grøn 0% blå
leds.setPixelColor(1, 250, 0, 0); //sætter pixle 2 (1) til 100% rød 0% grøn 0% blå
w8_1_sendpixle();
digitalWrite(TESTLED, LOW); //slukker TESTLED
leds.setPixelColor(0, 0, 250, 0); //sætter pixle 1 (0) til 0% rød 100% grøm 0% blå
leds.setPixelColor(1, 0, 250, 0); //sætter pixle 2 (1) til 0% rød 100% grøn 0% blå
w8_1_sendpixle();
digitalWrite(TESTLED, HIGH); //tænder TESTLED
leds.setPixelColor(0, 0, 0, 250); //sætter pixle 1 (0) til 0% rød 0% grøn 100% blå
leds.setPixelColor(1, 0, 250, 0); //sætter pixle 2 (1) til 0% rød 100% grøn 0% blå
w8_1_sendpixle();
digitalWrite(TESTLED, LOW); //slukker TESTLED
leds.setPixelColor(0, 0, 0, 250); //sætter pixle 1 (0) til 0% rød 0% grøn 100% blå
leds.setPixelColor(1, 0, 0, 250); //sætter pixle 2 (1) til 0% rød 0% grøn 100% blå
w8_1_sendpixle();
digitalWrite(TESTLED, HIGH); //tænder TESTLED
leds.setPixelColor(0, 250, 250, 0); //sætter pixle 1 (0) til 100% rød 100% grøn 0% blå
leds.setPixelColor(1, 0, 0, 250); //sætter pixle 2 (1) til 0% rød 0% grøn 100% blå
w8_1_sendpixle();
digitalWrite(TESTLED, LOW); //slukker TESTLED
leds.setPixelColor(0, 250, 250, 0); //sætter pixle 1 (0) til 100% rød 100% grøn 0% blå
leds.setPixelColor(1, 250, 250, 0); //sætter pixle 2 (1) til 100% rød 100% grøn 0% blå
w8_1_sendpixle();
digitalWrite(TESTLED, HIGH); //tænder TESTLED
leds.setPixelColor(0, 0, 250, 250); //sætter pixle 1 (0) til 0% rød 100% grøn 100% blå
leds.setPixelColor(1, 250, 250, 0); //sætter pixle 2 (1) til 100% rød 100% grøn 0% blå
w8_1_sendpixle();
digitalWrite(TESTLED, LOW); //slukker TESTLED
leds.setPixelColor(0, 0, 250, 250); //sætter pixle 1 (0) til 0% rød 100% grøn 100% blå
leds.setPixelColor(1, 0, 250, 250); //sætter pixle 2 (1) til 0% rød 100% grøn 100% blå
w8_1_sendpixle();
digitalWrite(TESTLED, HIGH); //tænder TESTLED
leds.setPixelColor(0, 250, 250, 250); //sætter pixle 1 (0) til 100% rød 100% grøn 100% blå
leds.setPixelColor(1, 0, 250, 250); //sætter pixle 2 (1) til 0% rød 100% grøn 100% blå
w8_1_sendpixle();
digitalWrite(TESTLED, LOW); //slukker TESTLED
leds.setPixelColor(0, 250, 250, 250); //sætter pixle 1 (0) til 100% rød 100% grøn 100% blå
leds.setPixelColor(1, 250, 250, 250); //sætter pixle 2 (1) til 100% rød 100% grøn 100% blå
leds.show(); //sender indput til pixle
}
void buttonoff()
{
digitalWrite(TESTLED, LOW); //slukker TESTLED
leds.setPixelColor(0, 0, 0, 0); //sætter pixle 1 (0) til 100% rød 100% grøn 100% blå
leds.setPixelColor(1, 0, 0, 0); //sætter pixle 2 (1) til 100% rød 100% grøn 100% blå
leds.show(); //sender indput til pixle
}
void w8_1_sendpixle()
{
time_since_last_reset = millis();
while((millis() - time_since_last_reset) < pause_one)
{
leds.show(); //sender indput til pixle
}
}