Pages: [1]   Go Down
Author Topic: Ayuda con mi proyecto porfavor  (Read 397 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola soy nuevo en esto y tal vez les parezca muy simple pero necesito ayuda.  smiley-cry
Necesito hacer como una serie de navidad la cual va a tener 6 modos de operación y esos modos van a ser controlados por un solo botón, lo que necesito es que cuando lo conecte se encienda el primer modo y que cuando presione el botón pase al solo al segundo modo y cuando vuelva presionar el botón al tercero y asi hasta llegar al ultimo modo, una vez en el ultimo modo de operacion al volver a presionar el boton regrese al primero
Este es mi código: p1, p2, p3, p4, p5 y p6 son mis funciones de los modos de operacion


Code:
int led = 11; //10
int led1 = 10; //9
int led2 = 9;  //8
int led3 = 8; //7
int led4 = 7; //6
int led5 = 6; //5
int led6 = 5; //4
int led7 = 4; //3
int led8 = 3; //2
int led9 = 2; //1
int boton = 12;
int value = 0;




void setup() {               
  pinMode(led, OUTPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(led8, OUTPUT);
  pinMode(led9, OUTPUT);
  pinMode(boton, INPUT);
}

void p1(){
 for(int i=0; i<10; i++){
  digitalWrite(led, HIGH); 
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, HIGH);
  digitalWrite(led5, HIGH);
  digitalWrite(led6, HIGH);
  digitalWrite(led7, HIGH);
  digitalWrite(led8, HIGH);
  digitalWrite(led9, HIGH);
 
 
  delay(500);
 }
 
}

void p2(){
 digitalWrite(led9, HIGH);
  digitalWrite(led8, HIGH);
  digitalWrite(led7, HIGH);
  digitalWrite(led6, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led4, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led1, HIGH);
  digitalWrite(led, HIGH);
  delay(100);
  digitalWrite(led9, LOW);
  digitalWrite(led8, LOW);
  digitalWrite(led7, LOW);
  digitalWrite(led6, LOW);
  digitalWrite(led2, LOW);
  digitalWrite(led4, LOW);
  digitalWrite(led3, LOW);
  digitalWrite(led2, LOW);
  digitalWrite(led1, LOW);
  digitalWrite(led, LOW);
  delay(625);
}


void p3(){
 for(int i=0; i<10; i++){
 digitalWrite(led, HIGH);
  delay(50);
  digitalWrite(led1, HIGH);
  delay(50);
  digitalWrite(led2, HIGH);
  delay(50);
  digitalWrite(led3, HIGH);
  delay(50);
  digitalWrite(led5, HIGH);
  delay(50);
  digitalWrite(led6, HIGH);
  delay(50);
  digitalWrite(led7, HIGH);
  delay(50);
  digitalWrite(led8, HIGH);
  delay(50);
  digitalWrite(led9, HIGH);
  delay(50);
  digitalWrite(led9, LOW);
  delay(50);
  digitalWrite(led8, LOW);
  delay(50);
  digitalWrite(led7, LOW);
  delay(50);
  digitalWrite(led6, LOW);
  delay(50);
  digitalWrite(led5, LOW);
  delay(50);
   digitalWrite(led4, LOW);
  delay(50);
  digitalWrite(led3, LOW);
  delay(50);
  digitalWrite(led2, LOW);
  delay(50);
  digitalWrite(led1, LOW);
  delay(50);
  digitalWrite(led, LOW);
  delay(50);
  }
}


void p4(){
  for(int i=0; i<10; i++){
 digitalWrite(led4, HIGH);
 digitalWrite(led5, HIGH);
 delay(50);
  digitalWrite(led3, HIGH);
  digitalWrite(led6, HIGH);
  delay(50);
  digitalWrite(led2, HIGH);
  digitalWrite(led7, HIGH);
  delay(50);
  digitalWrite(led1, HIGH);
  digitalWrite(led8, HIGH);
  delay(50);
  digitalWrite(led, HIGH);
  digitalWrite(led9, HIGH);
  delay(50);
 
  digitalWrite(led4, LOW);
  digitalWrite(led5, LOW);
  delay(50);
  digitalWrite(led3, LOW);
  digitalWrite(led6, LOW);
  delay(50);
  digitalWrite(led2, LOW);
  digitalWrite(led7, LOW);
  delay(50);
  digitalWrite(led1, LOW);
  digitalWrite(led8, LOW);
  delay(50);
  digitalWrite(led, LOW);
  digitalWrite(led9, LOW);
  delay(50);
 
 
 
  digitalWrite(led, HIGH);
  digitalWrite(led9, HIGH);
  delay(50);
  digitalWrite(led1, HIGH);
  digitalWrite(led8, HIGH);
  delay(50);
  digitalWrite(led2, HIGH);
  digitalWrite(led7, HIGH);
  delay(50);
  digitalWrite(led3, HIGH);
  digitalWrite(led6, HIGH);
  delay(50);
  digitalWrite(led4, HIGH);
  digitalWrite(led5, HIGH);
  delay(50);
 
 
 
  digitalWrite(led, LOW);
  digitalWrite(led9, LOW);
  delay(50);
  digitalWrite(led1, LOW);
  digitalWrite(led8, LOW);
  delay(50);
  digitalWrite(led2, LOW);
  digitalWrite(led7, LOW);
  delay(50);
  digitalWrite(led3, LOW);
  digitalWrite(led6, LOW);
  delay(50);
  digitalWrite(led4, LOW);
  digitalWrite(led5, LOW);
  delay(50);
 
 
 
 
  }
}

void p5(){
  for(int i=0; i<10; i++){
  digitalWrite(led,HIGH);
  delay(60);
  digitalWrite(led,LOW);
  digitalWrite(led3,HIGH);
  delay(60);
  digitalWrite(led3, LOW);
  digitalWrite(led2,HIGH);
  delay(60);
  digitalWrite(led2,LOW);
  digitalWrite(led4,HIGH);
  delay(60);
  digitalWrite(led4, LOW);
  digitalWrite(led1,HIGH);
  delay(60);
  digitalWrite(led1,LOW);
  digitalWrite(led6,HIGH);
  delay(60);
  digitalWrite(led6,LOW);
  digitalWrite(led8,HIGH);
  delay(60);
  digitalWrite(led8,LOW);
 
 
 
  digitalWrite(led2,HIGH);
  delay(60);
  digitalWrite(led2, LOW);
  digitalWrite(led8,HIGH);
  delay(60);
  digitalWrite(led8,LOW);
  digitalWrite(led6,HIGH);
  delay(60);
  digitalWrite(led6,LOW);
  digitalWrite(led3,HIGH);
  delay(60);
  digitalWrite(led3, LOW);
  digitalWrite(led,HIGH);
  delay(60);
  digitalWrite(led9,HIGH);
  delay(60);
  digitalWrite(led9,LOW);
  digitalWrite(led,LOW);
  digitalWrite(led4,HIGH);
  delay(60);
  digitalWrite(led4,LOW);
  digitalWrite(led7,HIGH);
  delay(60);
  digitalWrite(led7,LOW);
  }
 
}

void p6(){
  for(int i=0; i<10; i++){
  digitalWrite(led, HIGH);
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  delay(20);
  digitalWrite(led, LOW);
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, HIGH);
  delay(100);
  digitalWrite(led1, LOW);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, HIGH);
  digitalWrite(led5, HIGH);
  delay(100);
  digitalWrite(led2, LOW);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, HIGH);
  digitalWrite(led5, HIGH);
  digitalWrite(led6, HIGH);
  delay(100);
  digitalWrite(led3, LOW);
  digitalWrite(led4, HIGH);
  digitalWrite(led5, HIGH);
  digitalWrite(led6, HIGH);
  digitalWrite(led7, HIGH);
  delay(100);
  digitalWrite(led4, LOW);
  digitalWrite(led5, HIGH);
  digitalWrite(led6, HIGH);
  digitalWrite(led7, HIGH);
  digitalWrite(led8, HIGH);
  delay(100);
  digitalWrite(led5, LOW);
  digitalWrite(led6, HIGH);
  digitalWrite(led7, HIGH);
  digitalWrite(led8, HIGH);
  digitalWrite(led9, HIGH);
  delay(100);
  digitalWrite(led6, LOW);
  digitalWrite(led7, HIGH);
  digitalWrite(led8, HIGH);
  digitalWrite(led9, HIGH);
  digitalWrite(led1, HIGH);
  delay(100);
  digitalWrite(led7, LOW);
  digitalWrite(led8, HIGH);
  digitalWrite(led9, HIGH);
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  delay(100);
  digitalWrite(led8, LOW);
  digitalWrite(led9, HIGH);
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  delay(100);
  digitalWrite(led9, LOW);
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, HIGH);
  delay(20);
 
  }
}

void loop(){

         
 
   
  }
Logged

Offline Offline
God Member
*****
Karma: 7
Posts: 635
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Haz un detector de flanco para el pulsador. Una variable que cuente esos flancos y se resetee a 1 después del 6. Y un switch case con esa variable que ejecute la correspondiente subrrutina.

Olvidaba comentar una cosa. Para que el pulsador sea detectado correctamente tendrías que hacerlo mediante interrupción ya que si no mientras el programa está en cualquiera de las subrrutinas con sus delays no lee el estado del pulsador, habrá que tenerlo un rato pulsado para que sea detectado.
« Last Edit: May 14, 2013, 10:57:17 am by Cheyenne » Logged


Pages: [1]   Go Up
Jump to: