• Página:
  • 1

TEMA: ARDUINO control de motores (5-20)

ARDUINO control de motores (5-20) hace 12 años 6 meses #76530

  • icaro8
  • Avatar de icaro8
  • DESCONECTADO
  • Administrador
  • ARGENTINA campeon (Brasil 2014)
  • Mensajes: 4023
  • Gracias recibidas 189
  • Karma: 2063
esta información NO es de mi autoria y nos fue enviada por mi sensey y amigo el profesor diego nobile


en estas notas donde estamos describiendo el uso de la placa arduino siempre se hace mención al uso de motores para robot ,pero en la practica esto puede ser modificado por nosotros mismos y hackear este sistema dándole el uso que a nosotros se nos antoje ,como ser el control de motores para persianas de conductos de a/a o simplemente para controlar motores de ventiladores .
lo bueno e interesante de esta placa arduino es que nos abre las puertas de la imaginación y nos permite automatizar lo que se nos antoge con unas pocas monedas y mucho conocimiento con el consuelo que no tenemos que pagarle NINGUNA LICENCIA a ninguna empresa comercial


Esta imagen está oculta a usuarios invitados. Por favor, inicie sesión para poder verla.

Una militante de la librería para el manejo de servos de Arduino, es que solo se pueden tener dos servos al mismo tiempo lo cual no es suficiente cuando se piensa en crear un robot con cuatro o mas servos, para esto es necesario utilizar una libreria del mismo nombre la cual puede encontrarse en el wiki de Arduino.
Pasos para la instalación de la librería utilizando Arduino 0012 Alpha :
Descargue la librería Servo del wiki de Arduino
www.arduino.cc/playground/ComponentLib/Servo
Descarga directa :
www.arduino.cc/playground/uploads/ComponentLib/servo.zip
Reemplace la libreria servo que viene con Arduino con la nueva
Descomprima el archivo en el directorio arduinohardwarelibraries

A continuación se muestra el sketch necesario para manipular cinco servos utilizando la librería :
 
#include <Servo.h>
#undef int
#undef abs
#undef double
#undef float
#undef round
 
Servo myservo0;
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
 
long loopCounter = 0;
int angleCounter = 0;
int angles[] = { 45,90,135,90 };
 
void setup()
{
myservo0.attach(2);
myservo1.attach(3);
myservo2.attach(4);
myservo3.attach(5);
myservo4.attach(6);
}
 
void loop()
{
Servo::refresh();
 
if(loopCounter++%25000 == 0)
servos(angles[angleCounter++%4]);
}
 
void servos(int angle)
{
myservo0.write(angle);
myservo1.write(angle);
myservo2.write(angle);
myservo3.write(angle);
myservo4.write(angle);
}
 
En la version 0012 de Arduino es necesario adicionar el undef debido a que al momento de compilar se produce un error.
A diferencia de la libreria oficial, esta libreria permite conectar los servos en cualquiera de los pines de la tarjeta permitiendo tener hasta 20 servos, en el ejemplo utlizaremos cinco servos los cuales conectamos a los pines 2,3,4,5,6; no se utilizaron los pines 0 y 1 debido a que esto manejan la comunicación serial con el computador.
Se debe tener encuenta que el metodo Servo::refresh(); debe llamarse cada 50ms por lo menos, por tal motivo no debemos utilizar pausas con delays, lo cual no permite que la libreria funcione correctamente, debemos cambiar la estrategia por ejemplo a ejecutar determinadas tareas después de que el loop se ejecute varia veces, esto se logra teniendo un contador en el loop y ejecutando el código después de que se llegue a determinado valor, por ejemplo :  if(loopCounter++%25000 == 0) ejecuta los llamados al cambio de posición de los servos cada que el loop se ha ejecutado veinticinco mil veces. Para controlar la posición de los servos se utiliza un arreglo el cual especifica los ángulos, los cuales van siendo cambiados a medida que se solicita el cambio de posicion en el loop.
Nota :
Recuerde evitar el uso de delays(), esto no permite el correcto posicionamiento de los servos.


Este archivo está oculto a usuarios invitados. Por favor, inicie sesión para poder verlo.


saludos desde la pcia de bs as rep argentina ,.-32
Adjuntos:
  • Adjunto Este archivo está oculto a usuarios invitados. Por favor, inicie sesión para poder verlo.
Última Edición: hace 12 años 4 meses por icaro8.
El administrador ha desactivado la escritura pública.
  • Página:
  • 1
Moderadores: pepekelvin
Tiempo de carga de la página: 0.195 segundos

Entrar or Crear una cuenta

El acceso a nuestra web implica la utilización de cookies con el objeto de reconocer a los usuarios que se hayan registrado y poder ofrecerles un mejor servicio y más personalizado así como información técnica. Para saber mas sobre nuestro uso de las cookies y como tratarlas vea nuestro aviso legal.

Acepto cookies de este sitio web.

EU Cookie Directive Module Information