Pages: [1]   Go Down
Author Topic: AYUDA: Abreviando funciones [SOLUCIONADO]  (Read 667 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas tardes a todos, me gustaria saber si se puede abreviar varias funciones, y pongo un ejemplo a continuación,

quiero que al pulsar el Pulsador se encienda los dos leds, yo escribí como la opción A, pero hay manera de agrupar estes dos leds como en la opción B. Espero que me entendais lo que quiero hacer.

Un saludo y gracias.

int ledPin1 = 10   //pin 10 para led rojo
int ledPin2 = 11   //pin 11 para led verde
int ledPin3 = ???   //las dos salidas ledPin1 y ledPin2
int pinPulsador = 2   //pin 2 para pulsador

void setup() { Configura salidas


   pinMode(ledPin1, OUTPUT);
   pinMode(ledPin2, OUTPUT);
   pinMode(pinPulsador, INPUT);
   digitalWrite(ledPin1, LOW);
   digitalWrite(ledPin2, LOW);
}

void loop () {

//OPCION A
   if (digitaRead (pinPulsador))
     
      for (int i=0; i<1; i++)     {

   digitalWrite(ledPin1, HIGH);         // Enciende los leds durante 1000 ms - 1 ciclo
         digitalWrite(ledPin2, HIGH);
   delay(1000);
         digitalWrite(ledPin1, LOW);        
         digitalWrite(ledPin2, LOW);
         delay(1000);
}

//OPCION B
   if (digitaRead (pinPulsador))
     
      for (int i=0; i<1; i++)     {

   digitalWrite(ledPin3, HIGH);         // Enciende los 2 leds durante 1000 ms - 1 ciclo
         delay(1000);
         digitalWrite(ledPin3, LOW);        
         delay(1000);
}
}
« Last Edit: May 15, 2012, 03:47:24 pm by valvuino » Logged

Donostia
Offline Offline
God Member
*****
Karma: 0
Posts: 740
elektronikadonbosco
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se puede hacer de diferentes maneras pero no se si es exactamente lo que quieres.

Una solución sería por hardware:

Une los dos diodos con sus respectivas resistencias al mismo pin de salida y así los dos leds se encenderán y apagarán a la vez con una sola instrucción

Otra solución requiere programar los registros de los puertos de Arduino, aunque no es complicado requiere más conocimientos del micro atmega 328. Lo tienes explicado aqui
http://arduino.cc/forum/index.php/topic,76191.msg575558.html#msg575558

Espero que alguna de las dos soluciones te sirvan. Salu2
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se puede hacer de diferentes maneras pero no se si es exactamente lo que quieres.

Una solución sería por hardware:

Une los dos diodos con sus respectivas resistencias al mismo pin de salida y así los dos leds se encenderán y apagarán a la vez con una sola instrucción

Otra solución requiere programar los registros de los puertos de Arduino, aunque no es complicado requiere más conocimientos del micro atmega 328. Lo tienes explicado aqui
http://arduino.cc/forum/index.php/topic,76191.msg575558.html#msg575558

Espero que alguna de las dos soluciones te sirvan. Salu2

Gracias por las dos soluciones, si veo que no aparece otra forma más sencilla haré el cambio por hardware, por ahora no me atrevo con el micro  smiley-lol . Muchas gracias
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

He aquí la solución. Gracias por todo.

int ledPin1 = 10   //pin 10 para led rojo
int ledPin2 = 11   //pin 11 para led verde
int pinPulsador = 2   //pin 2 para pulsador

void setup() { Configura salidas


   pinMode(ledPin1, OUTPUT);
   pinMode(ledPin2, OUTPUT);
   pinMode(pinPulsador, INPUT);
   digitalWrite(ledPin1, LOW);
   digitalWrite(ledPin2, LOW);
}
void escrpar (int par, int nivel){  // Agrupación LED 1 y LED 2
        switch (par){
          case 1:{
            digitalWrite(ledPin1, nivel);
            digitalWrite(ledPin2, nivel);
            break;
        }
        }
void loop () {

   if (digitaRead (pinPulsador))
     
      for (int i=0; i<1; i++)     {

      escrpar(1, HIGH);         // Enciende y apaga durante 1 segundo los dos leds
      delay(1000);
      escrpar(1, LOW);         
      delay(1000);
}
}
[/color]

 smiley-mr-green
Logged

Pages: [1]   Go Up
Jump to: