martes, 29 de octubre de 2013

131029 - la matrix detrás de antis

Realicé varias pruebas con electrónica analógica utilizando temporizadores monostables 555 y un puente h L293D pero no hubo caso, no lograba hacer que funcionara correctamente, así que, siguiendo el consejo de Lucio Vega opté por utilizar la placa arduino y he aquí el resultado:

conectando por USB a la computadora

alimentando todo con el transformador 9VCC y un conversor de voltaje 7805



Código Arduino:
/*
Presionando el botonA gira durante 10 seg en un sentido y, presionando
el botonB gira durante 10 seg en sentido opuesto.
Si en algun momento antes de que termine el plazo de uno u otro boton
se presiona el otro, se interrumpe la accion por el nuevo comando que durara
10 seg salvo que se presione el otro boton, luego de transcurrido el tiempo
el motor se apaga hasta una nueva orden
*/



int MotorPinA = 2;
int MotorPinB = 3;
int BotonA = 4;
int BotonB = 5;
int VarBotonA;
int VarBotonB;

//Temporizador
unsigned long actual;
unsigned long previo;
int eventoTiempo;

void setup(){
  pinMode(MotorPinA,OUTPUT);
  pinMode(MotorPinB,OUTPUT);
  pinMode(BotonA,INPUT);
  pinMode(BotonB,INPUT);
 
  //Temporizador
  previo = 0;
  eventoTiempo = 0;
 
}
void loop(){
  actual = millis();
 
  if (actual - previo > 10000){
    previo = actual;
    eventoTiempo = 1; 
  }
 
  VarBotonA = digitalRead(BotonA);
    if (VarBotonA == HIGH){
      digitalWrite(MotorPinA,HIGH);
      digitalWrite(MotorPinB,LOW);
    }
     if(eventoTiempo == 1){
        digitalWrite(MotorPinA,LOW);
        digitalWrite(MotorPinB,LOW);
        eventoTiempo = 0;
     }
     
   VarBotonB = digitalRead(BotonB);
     if (VarBotonB == HIGH){
       digitalWrite(MotorPinA,LOW);
       digitalWrite(MotorPinB,HIGH);
     }
      if(eventoTiempo == 1){
        digitalWrite(MotorPinA,LOW);
        digitalWrite(MotorPinB,LOW);
        eventoTiempo = 0;
      }
}

No hay comentarios:

Publicar un comentario