He hecho un codigo en el que con un botón puedo ir cambiando entre x patrones de parpadeo de unos leds, pero cuando se reinicia la placa, la variable que se encarga de ir cambiando de patrón a medida que se va pulsando el botón, se reinicia a 1(que se corresponde con el primer patron).
Mi duda es, ¿como puedo hacer que se almacene la ultima posicion de la variable para que de esta manera aunque reincie la placa, inicie el ultimo patrón que seleccione anteriormente?
int t = 1;
void setup()
{
pinMode (1 , OUTPUT);
pinMode (2 , OUTPUT);
pinMode (3 , OUTPUT);
pinMode (4 , OUTPUT);
pinMode (5 , OUTPUT);
pinMode (6 , OUTPUT);
pinMode (7 , OUTPUT);
pinMode (8 , OUTPUT);
pinMode (9 , OUTPUT);
pinMode (10 , OUTPUT);
pinMode (11, OUTPUT);
pinMode (12 , OUTPUT);
pinMode(13, INPUT);
}
void loop()
{
if (digitalRead(13)==HIGH){
t++;
delay(50);}
if (t==1){
pattern1();}
if (t==2){
pattern2();}
if (t==3){
pattern3();}
if (t==4){
pattern4();}
if (t==5){
pattern5();}
if (t==6){
pattern6();}
}
void pattern1(){
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
delay(130);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(130);}
void pattern2(){
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
delay(55);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
delay(55);
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
delay(55);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
delay(55);
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
delay(55);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
delay(55);
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
delay(55);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
delay(55);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(55);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
delay(55);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(55);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
delay(55);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(55);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
delay(55);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(55);
digitalWrite(3, LOW);
digitalWrite(4, LOW);}
void pattern3(){
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
delay(60);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
delay(60);
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
delay(60);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
delay(70);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(60);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
delay(60);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(60);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
delay(70);}
void pattern4(){
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
delay(30);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
delay(30);
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
delay(140);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
delay(40);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(30);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
delay(30);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(140);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
delay(40);}
void pattern5(){
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
delay(40);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
delay(40);
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
delay(40);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
delay(40);
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
delay(40);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
delay(40);
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
delay(40);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
delay(150);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(40);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
delay(40);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(40);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
delay(40);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(40);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
delay(40);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(40);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
delay(150);
}
void pattern6(){
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
t=0;
}