(EN PROCESO DE CREACIÓN --> FALTA ESQUEMA Y FOTO)
EJERCICIO Relés
Descripción del ejercicio
El relé es un dispositivo en el que por medio de un electroimán se acciona un juego de uno o varios contactos que permiten abrir o cerrar circuitos eléctricos.
Más información sobre relés
Imágen de un relé
Los relés se caracterizan por dos factores: el voltaje necesario para activar la bobina, y el voltaje que pueden soportar entre los dos puntos de conexión.
La alternativa más barata y más sencilla para manejar un motor pasa por el uso de un interruptor controlado electricamente. La salida de un microporcesador no tiene la suficiente potencia como para hacer girar un motor. El relé permite conectar de forma directa el motor a una fuente de alimentación. Una ventaja de utilizar relés es la facilidad de su uso.
El circuito de ejemplo de el uso de relés incluye otro componente. De nuevo, la corriente que genera el microprocesador no es suficuente ni para conmutar el relé. Por lo tanto, es necesario utilizar un transistor.
Elementos necesarios
- Un motor DC.
- Un relé.
- Un transistor (opcional - depende del tipo de relé).
- Una placa protoboard.
- Cables para realizar las conexiones.
Código fuente
/*
Control de un motor DC mediante un relé
by Ryan Holsopple
Modificación del código de Tom Igoe para manejar un motor DC
He añadido una función para mover el motor en cada dirección
He elevado el umbral de mi potenciómetro para que funcione
**r.holsopple
Created 8 Feb. 2006
- /
int sensorValue = 0; // Variable que captura el valor del sensor (potenciómetro)
int sensorPin = 0; // PIN analógico al que está conectado el sensor (potenciómetro)
int motorPin = 9; // PIN digital al que está conectado el motor
int threshold = 300; // Umbral del sensor analógico por debajo del cual el motor debería encenderse
int forwardPin = 7; // PIN del motor hacia delante
int backwardPin = 8; // PIN del motor hacia atrás
// Prototipo de la función que cambia la velocidad del motor:
void changeMotorSpeed();
// Prototipo de la función que enciende el motor en una dirección:
void forwardDirection();
void setup() {
// Declaración de las entradas y salidas:
pinMode(motorPin, OUTPUT);
pinMode(forwardPin, OUTPUT);
pinMode(backwardPin, OUTPUT);
pinMode(sensorPin, INPUT);
}
void loop() {
// Lee el sensor analógico
sensorValue = analogRead(sensorPin);
// Determina si está por encima o debajo del umbral
if (sensorValue > threshold) { // Si está por encima del umbral
// Apaga el motor
digitalWrite(motorPin, LOW);
}
else {
// Enciende el motor hacia delante
forwardDirection();
// Cambia la velocidad del motor en función del valor del sensor:
changeMotorSpeed();
}
}
////////////////////////////////////////
void forwardDirection(){
digitalWrite (forwardPin, HIGH);
digitalWrite (backwardPin, LOW);
}
void changeMotorSpeed() {
analogWrite(motorPin, sensorValue);
}
Referencias:
IGOR ---> Enlaces para completar la información del ejercicio
http://www.tigoe.net/pcomp/code/archives/arduino/000745.shtml
http://webzone.k3.mah.se/k3dacu/projects/ivrea/motor/onoff.html