Prácticas 3 y 4 con arduino: control de un motor y un servomotor

Promedio: 4.4 (11 votes)

Vamos a controlar un motor, lo conectaremos según el esquema adjunto al pin 9 de Arduino, para poder modular el pulso, realizaremos varias prácticas:

1. Arrancamos el motor, esperamos un tiempo, después apagamos el motor.

int motorPin = 9;
void setup()
{
pinMode(motorPin, OUTPUT);

}

void loop()
{
int onTime = 2500;
int offTime = 1000;

digitalWrite(motorPin, HIGH);
delay (onTime);
digitalWrite(motorPin, LOW);
delay (offTime);
}


2. Al igual que antes cambiabamos la iluminación del led, ahora podemos controlar la velocidad del motor con la función analogWrite(pin, valor).

int motorPin = 9;
void setup()
{
pinMode(motorPin, OUTPUT);
}

void loop()
{

int onSpeed = 200;
int onTime = 2500;

int offSpeed = 50; // a number between 0 (stopped) and 255 (full speed)
int offTime = 1000; //the number of milliseconds for the motor to turn off for

analogWrite(motorPin, onSpeed); // turns the motor On
delay(onTime); // waits for onTime milliseconds
analogWrite(motorPin, offSpeed); // turns the motor Off
delay(offTime); // waits for offTime milliseconds
}


3. Aceleramos y desaceleramos el motor, ahora usamos un bucle para acelerar y frenar el motor, usando del mismo modo la función analogWrite(), que en el caso anterior.

int motorPin = 9;
void setup()
{
pinMode(motorPin, OUTPUT);
}

void loop()
{
int delayTime = 50;
  tor
for(int i = 0; i < 256; i++){ //aceleramos
analogWrite(motorPin, i);
delay(delayTime);
}

for(int i = 255; i >= 0; i--){ //frenamos
analogWrite(motorPin, i);
delay(delayTime);
}
}

 


4. Usamos ahora un potenciómetro para variar la velocidad del motor. El potenciómetreo se conecta de la siguiente forma, extremos a v+ y gnd y el pin de control al pin 0 de las entradas análogicas de Arduino.
Arduino dispone de 6 entradas analógicas, que tienen un voltaje de 0 a 5voltios que convertidas a señales digitales tendríamos de 0 a 1024, esto es 10 bits de resolución. ¿Por qué dividimos por 4 analogRead()?, pues porque esta función devuelve un valor comprendido entre 0 y 1024 (10 bits) y la función analogWrite () toma valores comprendidos entre 0 y 255 (8 bits).

int motorPin = 9;
int potPin=0;
int potValue;
void setup()
{
pinMode(motorPin, OUTPUT);
}

void loop()
{
potValue = analogRead(potPin) / 4;
analogWrite(motorPin, potValue);

}


5. Control de un servomotor

 #include <Servo.h>

Servo myservo; // creamos un objeto servo para controlar nuestro servo

int pos = 0; // variable para almacenar la posición del servo

void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}

void loop()
{
for(pos = 0; pos < 180; pos += 1) // avanza de 0 a 180 grados
{ // en saltos de un grado
myservo.write(pos); // mueve a la posición de la variable 'pos'
delay(15); // espera 15ms
}
for(pos = 180; pos>=1; pos-=1) // va de 180 a 0 grados
{
myservo.write(pos);
delay(15);
}
}

Las cinco prácticas están representadas en el siguiente vídeo.

Comparte este artículo:

Comentarios

oye sabras como controlar un servo en tres posiciones con un pushbutton... me salvarias la vida si lo supieses...:)

q buen proyecto ojala pudieran subir un controlador de velocidad de un motor con sensor de proximidad

Alguien sabe como hacer para controlar un motor de 220 Volts
es para unas ventanas de techo!PUedo usar lo mismo que esta aca pero intercalando reles?
Gracias
Saludos

pues la verda nesecitas un motor trifasico o bifasico ya que con un monofasico nesecitar cambiar el embobinado del motor y es un desmadre
ya que con un trifasico o bifasico solo cambias cambas las lineas y con relevadores es muy facil

¿se puede utilizar un 2n2222 como transistor?
por cierto excelentes aportes.

Imagen de salva

El 2n2222 es un transistor de propósito general de baja potencia, tiene una una intensidad de colector menor(800mA), mientras que el BD135 es de media potencia(Ic=1,5A) si usas un motorcillo que consuma poco, puedes intentar usarlo y nos cuentas tus experiencias.

Salva respondio que el transistor Q1 queda bien con el BD135.
Con respecto al diodo, uso cualquier diodo? o alguno en especial?

oiiee cual es el transistor Q1 y el diodo que se utiliza acual es=?

Imagen de salva

para esta práctica va bien con el BD135

Qué modelo/valor es Q1 en el esquema??

Muchas gracias!

Añadir nuevo comentario