Motor básico

La fuerza que aparece sobre el conductor genera un par que hace girar la espira.

En el caso del alambre doblado en forma de U, la combinación de la fuerza de Lorentz, el peso de la propia espira y un mal contacto con los terminales, provoca la oscilación. Si se limpia perfectamente el barniz de la espira, ésta es capaz de dar la vuelta completa.

Para saber más:

http://www.fisica-quimica-secundaria-bachillerato.es/animaciones-flash-interactivas/electricidad_electromagnetismo/aplicacion_fuerza_lorentz_motor_electrico_principio.htm

http://www.asifunciona.com/electrotecnia/af_motor_cd/af_motor_cd_3.htm

 

Barrera de Parking con Arduino Leonardo

El presente proyecto simula la barrera de un parking con Arduino Leonardo.

 

montaje_real_jdd

montaje_jdd

 

 

El programa es el siguiente:

// Barrera de entrada a Parking
// Ejemplo elaborado por Jesús Díaz Díaz
// El sistema simula la barrera de entrada a un parking
// Al comienzo del programa la barrera está baja y el led ROJO encendido
// Cuando un sujeto aprieta el pulsador, la barrera comienza a subir y en la parte alta se enciende el led VERDE
// Al mismo tiempo se oye un sonido que cambia de tono cuando está a punto de bajar la barrera
// Se apaga y comienza a bajar la barrera y se enciende el LED rojo

#include <Servo.h> // incluyo la librería servo.h

Servo miservo; // Definimos “miservo” para controlar un servomotor

int ledverde = 12; // utilizo el pin 12 para led verde
int ledrojo = 11; // utilizo el pin 11 para led rojo
int salidaaudio = 6;// utilizo el pin 6 emitir un tono de audio
int pulsador = 2; // utilizo el pin 2 como botón de entrada

int pos = 0; // variable para almacenar la posición del servo
int ESTADOpulsador = 0; // variable para almacenar la lectura del estado del pulsador

void setup()
{
miservo.attach(9); // Convierte el pin 9 en el controlador (driver) del servo denominado “miservo”
// Inicializa los pin digitales como salida
pinMode(ledverde, OUTPUT);
pinMode(ledrojo, OUTPUT);
pinMode(salidaaudio, OUTPUT);
// defino el pulsador como entrada:
pinMode(pulsador, INPUT);
miservo.write(0); // Fija en el servo la posición 0 grados y hace que inicialmente la barrera esté baja
}

void loop()
{
digitalWrite(ledverde, LOW); // inicialmente led verde apagado
digitalWrite(ledrojo, HIGH); // inicialmente led rojo encendido

ESTADOpulsador = digitalRead(pulsador); // leo el estado del botón del pulsador y lo guardo en la variable ESTADOpulsador

if (ESTADOpulsador == HIGH) { // Si ESTADOpulsador está activo (HIGH) comienza a levantar la barrera

for(pos = 0; pos < 90; pos += 1) // La variable “pos” se incrementa desde 0 a 90 grados
{ // en pasos de 1 grado
miservo.write(pos); // indica al servo que vaya la la posición almacenada en la variable “pos”
delay(20); // espera 20ms hasta que el servo alcance la posición
}
digitalWrite(ledrojo, LOW); // con la barrera subida el led rojo se apaga
digitalWrite(ledverde, HIGH); // turn the LED on (HIGH is the voltage level)

//Emite sonido que cambia su frecuencia unos segundos antes de comenzar a bajar como aviso
// sintaxis de tone: tone(pin, frequency)
tone(salidaaudio, 440);
delay(4000);
noTone(salidaaudio);
tone(salidaaudio, 840);
delay(500);
noTone(salidaaudio);
tone(salidaaudio, 440);
delay(500);
noTone(salidaaudio);
tone(salidaaudio, 840);
delay(500);
noTone(salidaaudio);
tone(salidaaudio, 440);
delay(500);
noTone(salidaaudio);
tone(salidaaudio, 840);
delay(500);
noTone(salidaaudio);
tone(salidaaudio, 440);
delay(500);
noTone(salidaaudio);

// Se termina el sonido de aviso

digitalWrite(ledverde, LOW); // se apaga el led verde
digitalWrite(ledrojo, HIGH); // se enciendo el led rojo

for(pos = 90; pos>=1; pos-=1) // comienza a bajar la barrera desde la posición 90 hasta 0 grados
{
miservo.write(pos); // indica al servo que vaya a la posición almacenada en la variable
delay(20); // espera 20ms para que el servo alcance la posición
}
}
}

 

 

esquema_jdd