Documente Academic
Documente Profesional
Documente Cultură
INSTRUMENTACION
Ingeniería Mecatrónica
P R E S E N T A:
P R O F E S O R:
Utilizar un microcontrolador para que el usuario, por medio de una página web, sea
capaz de controlar los parámetros de un motor de corriente directa siguientes:
Dirección de giro
Velocidad de giro
Cantidad de giro
Inicio y paro del motor
Marco teórico
Arduino
Arduino es una compañía de fuente abierta y hardware abierto, así como un
proyecto y comunidad internacional que diseña y manufactura placas de desarrollo
de hardware para construir dispositivos digitales y dispositivos interactivos que
puedan detectar y controlar objetos del mundo real. Arduino se enfoca en acercar y
facilitar el uso de la electrónica y programación de sistemas embebidos en proyectos
multidisciplinarios. Los productos que vende la compañía son distribuidos como
Hardware y Software Libre, bajo la Licencia Pública General Reducida de GNU
(LGPL) o la Licencia Pública General de GNU (GPL), permitiendo la manufactura
de las placas Arduino y distribución del software por cualquier individuo. Los diseños
de las placas Arduino usan diversos microcontroladores y microprocesadores.
La mayoría de las placas Arduino pueden ser programadas a través del puerto serie
que incorporan haciendo uso del Bootloader que traen programado por defecto. El
software de Arduino consiste de dos elementos: un entorno de desarrollo (IDE)
(basado en el entorno de processing y en la estructura del lenguaje de programación
Wiring), y en el cargador de arranque (bootloader, por su traducción al inglés) que
es ejecutado de forma automática dentro del microcontrolador en cuanto este se
enciende. Las placas Arduino se programan mediante un computador, usando
comunicación serie.
Página web
Una página web, o página electrónica, página digital, o ciberpágina1 es un
documento o información electrónica capaz de contener texto, sonido, vídeo,
programas, enlaces, imágenes y muchas otras cosas, adaptada para la llamada
World Wide Web (WWW) y que puede ser accedida mediante un navegador web.
Esta información se encuentra generalmente en formato HTML o XHTML, y puede
proporcionar acceso a otras páginas web mediante enlaces de hipertexto.
Frecuentemente también incluyen otros recursos como pueden ser hojas de estilo
en cascada, guiones (scripts), imágenes digitales, entre otros.
Figura 1. Una señal de onda cuadrada de amplitud acotada ( Ymin, Ymax) mostrando el ciclo de trabajo D.
Por otra parte, para definir la cantidad de giro se utilizan los llamados codificadores
rotatorios, también llamados codificadores del eje o generadores de pulsos. Estos
son un dispositivo electromecánico usado para convertir la posición angular de un
eje a un código digital, lo que lo convierte en una clase de transductor. Se utilizan
en robótica, en lentes fotográficos de última generación, en dispositivos de entrada
de ordenador (tales como el ratón y el trackball), y en plataformas de radar
rotatorias.
Equipo utilizado
Arduino Mega
Ethernet Shield para Arduino
Computadora
Enrutador
Motor DC con codificador
Desarrollo
Código
#include <SPI.h>
#include <Ethernet.h>
String readString; // Cadena para lectura de los datos.
int pinPwm = 3; //pin para variar la velocidad mediante pwm
volatile long contador = 0;
long ticks;
String pulso, lectura;
boolean bandera = true;
byte a, b;
void setup() {
Ethernet.begin(mac, ip); //inicializa la conexión Ethernet y el servidor
server.begin();
Serial.begin(9600);
attachInterrupt(0, Interr, RISING);//INT 0 correspondiente al pin 2
pinMode(8,OUTPUT);
pinMode(6,OUTPUT); }
void loop() {
// Crea una conexion Cliente
EthernetClient cliente = server.available(); // Inicializa cliente como servidor
ethernet
if (cliente) {
byte x = 0;
while (cliente.connected()) {
if (cliente.available()) {
char c = cliente.read();
//Lee caracter por caracter HTTP (Esta cadena se genera cuando se acciona el
botón "STAR" o "STOP"
// Aparece en el campo de texto de la URL (en el navegador).
if (readString.length() < 150) {
//Almacena los caracteres a un String
readString += c; }
////velocidad**********************************
if(readString.indexOf("Speed=30")>0){
analogWrite(pinPwm, 75); }
if(readString.indexOf("Speed=40")>0){
analogWrite(pinPwm, 100); }
if(readString.indexOf("Speed=50")>0){
analogWrite(pinPwm, 127); }
if(readString.indexOf("Speed=60")>0){
analogWrite(pinPwm, 175); }
if(readString.indexOf("Speed=70")>0){
analogWrite(pinPwm, 195); }
if(readString.indexOf("Speed=80")>0){
analogWrite(pinPwm, 200); }
if(readString.indexOf("Speed=90")>0){
analogWrite(pinPwm, 229); }
if(readString.indexOf("Speed=100")>0){
analogWrite(pinPwm, 255); }
if(readString.indexOf("Sentido=Positivo")>0){
a= 0;
b = 1; }
if(readString.indexOf("Sentido=Negativo")>0){
a = 1;
b= 0; }
if(readString.indexOf("START")>0){
contador = 0;
if(ticks != 0){
digitalWrite(6,a);
digitalWrite(8,b); }}
if(readString.indexOf("STOP")>0){
paro();
contador = 0; }
readString=""; }}}}}
void Interr() {
contador= contador+1 ;
if (contador >= ticks){
paro(); }}
void paro(){
digitalWrite(6,0);
digitalWrite(8,0);
analogWrite(pinPwm, 0); }
Resultados
Pulsos = 10
Velocidad (Speed) = 100%
Sentido = Positivo
START
Una vez iniciado, el motor continuará girando hasta que el motor haya contado los
pulsos establecidos o el usuario haya hecho clic en el botón de [STOP].