En esta practica nuestro objetivo es controlar un ventilador de PC mediante nuestro amigo Arduino y un transistor BC547, las conexiones serán como se detallan en el siguiente esquema.
El funcionamiento será arrancar el motor durante 2000ms y apagarlo 1000ms, dentro de un mismo bucle.
A continuación te detallo el sketch utilizado para su funcionamiento:
Sketch:
int motorPin = 9; // definimos el pin 9
void setup()
{
pinMode(motorPin, OUTPUT); // definimos motorPin como salida
}
void setup()
{
pinMode(motorPin, OUTPUT); // definimos motorPin como salida
}
void loop()
{
{
int onTime = 2000;
int offTime = 1000;
int offTime = 1000;
digitalWrite(motorPin, HIGH);
delay (onTime);
digitalWrite(motorPin, LOW);
delay (offTime);
}
delay (onTime);
digitalWrite(motorPin, LOW);
delay (offTime);
}
Bucle Aceleración y frenado
Ahora crearemos un bucle en el cual el motor comenzará a acelerar poco a poco, hasta llegar a una velocidad máxima definida y luego frenara poco a poco.(mismo esquema).
Sketch:
int motorPin = 9;
void setup()
{
pinMode(motorPin, OUTPUT);
}
void setup()
{
pinMode(motorPin, OUTPUT);
}
void loop()
{
int delayTime = 50;
{
int delayTime = 50;
for(int i = 0; i < 256; i++) // definimos hasta el máximo
{
analogWrite(motorPin, i);
delay(delayTime);
}
analogWrite(motorPin, i);
delay(delayTime);
}
for(int i = 255; i >= 0; i--)
{
analogWrite(motorPin, i);
delay(delayTime);
}
}
analogWrite(motorPin, i);
delay(delayTime);
}
}
Definiremos 255 ya que la función analogWrite () toma valores comprendidos entre 0 y 255 (8 bits).
Aquí vemos nuestro resultado:
No hay comentarios:
Publicar un comentario