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

Su voto: Nada Average: 4.2 (5 votos)

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:

 

 

Añadir nuevo comentario

 #1

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

 #2

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

 #3

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

 #4

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

 #5

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

Imagen de salva
 #6

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.

 #7

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

 #8

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

Imagen de salva
 #9

para esta práctica va bien con el BD135

 #10

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

Muchas gracias!