Motor conectado a led, capaz de encenderlo mediante corriente inducida. |
Integrado L293D para el control de dos motores. |
Circuito para controlar dos motores DC mediante interruptores y placa Arduino. |
Circuito de control de dos motores DC mediante interruptores ubicados en mando a distancia. |
#define botonIzq 5
#define botonSS 6
#define botonDer 7
#define motorIzqAvanza 11
#define motorIzqAtras 12
#define motorDerAvanza 9
#define motorDerAtras 10
int StarStop=0; //Posibles valores: 0 (apagado) y 1 (en marcha)
void MueveRobot(int direccion, int StarStop);
void setup(){
for(int cont=9;cont<=12;cont++){pinMode(cont,OUTPUT);}
for(int cont=5;cont<=7;cont++){pinMode(cont,INPUT);}
MueveRobot(0,0);
}
void loop(){
int Direccion; //Posibles valores: -1 (izq), 0 (recto), 1 (der)
Direccion=0; //Por defecto recto, salvo botón dirección pulsado
if(digitalRead(botonIzq)){Direccion= -1;}
if(digitalRead(botonDer)){Direccion= 1;}
if(digitalRead(botonSS)){
StarStop=!StarStop;
while(digitalRead(botonSS)){} //Espera a levantar botón
}
MueveRobot(Direccion,StarStop);
}
void MueveRobot(int direccion,int StarStop){
digitalWrite(motorIzqAvanza,StarStop&&(direccion > -1));
digitalWrite(motorIzqAtras, StarStop&&(direccion == -1));
digitalWrite(motorDerAvanza,StarStop&&(direccion < 1));
digitalWrite(motorDerAtras, StarStop&&(direccion == 1));
}
#define botonSS 6
#define botonDer 7
#define motorIzqAvanza 11
#define motorIzqAtras 12
#define motorDerAvanza 9
#define motorDerAtras 10
int StarStop=0; //Posibles valores: 0 (apagado) y 1 (en marcha)
void MueveRobot(int direccion, int StarStop);
void setup(){
for(int cont=9;cont<=12;cont++){pinMode(cont,OUTPUT);}
for(int cont=5;cont<=7;cont++){pinMode(cont,INPUT);}
MueveRobot(0,0);
}
void loop(){
int Direccion; //Posibles valores: -1 (izq), 0 (recto), 1 (der)
Direccion=0; //Por defecto recto, salvo botón dirección pulsado
if(digitalRead(botonIzq)){Direccion= -1;}
if(digitalRead(botonDer)){Direccion= 1;}
if(digitalRead(botonSS)){
StarStop=!StarStop;
while(digitalRead(botonSS)){} //Espera a levantar botón
}
MueveRobot(Direccion,StarStop);
}
void MueveRobot(int direccion,int StarStop){
digitalWrite(motorIzqAvanza,StarStop&&(direccion > -1));
digitalWrite(motorIzqAtras, StarStop&&(direccion == -1));
digitalWrite(motorDerAvanza,StarStop&&(direccion < 1));
digitalWrite(motorDerAtras, StarStop&&(direccion == 1));
}
Alumnos con versión alfa de Norba Lander 1. |
Versión beta de Norba Lander 1. |