Control de Motores a Pasos Con El ATmega AVR en C

March 24, 2018 | Author: Henry Bernard Varas Concha | Category: Microcontroller, Arduino, Areas Of Computer Science, Electromagnetism, Manufactured Goods


Comments



Description

14/10/13Control de motores a pasos con el ATmega AVR en C MXN Su pedido está VACIO. Buscar BUSCAR HeTPro Registro Tienda Tutoriales Cursos Contacto Servicios Siguenos!! CONTROL DE MOTORES A PASOS CON EL ATMEGA AVR EN C Escrito por Rolando Ramirez Miércoles 06 de Marzo de 2013 18:26 CONTROL DE MOTOR A PASOS EN PASO SIMPLE Y PASO COMPLETO Introducción: Los motores a pasos tienen cuatro bobinas y avanzan o retroceden solo un pequeño ángulo de giro o ángulo de paso, por cada combinación de vo aplicado en las bobinas. Para mantener la marcha del motor es necesario cambiar periódicamente la combinación de voltajes en sus terminales. Categorías Componentes de Montaje Superficial (1) Motores (17) Programadores (11) Microcontroladores (14) Paquetes (7) Cables & Conectores (32) Robótica (13) Circuitos Integrados (7) Optoelectrónica (16) Herramientas (16) Prototipado (3) Sensores (15) Cristales (5) Interfaz & RF / ZigBee® (14) Arduino y compatibles (4) Servicios HeTPro (107) category_path (1) Con 4 bobinas un motor a pasos puede tener hasta 8 terminales, dos por cada bobina. Las terminales se pueden unir interna o externamente dando dos tipos de motores, Unipolares y los Bipolares. Los motores a pasos bipolares cada bobina debe ser polarizada en ambas direcciones. Esto es equivalente a hacer girar un motor DC en ambas direcc para esto se requiere un circuito llamado Puente – H. Los motores a pasos unipolares son más fáciles de controlar por el hardware requerido. En estos motores las bobinas se polarizan en una sola direcció que basta un switch o transistor por cada bobina para energizarla. Para controlar este tipo de motores las bobinas deben ser polarizadas secuencialm acuerdo con la dirección que se quiera girar. En los motores a pasos unipolares las bobinas no deben ser polarizadas las 4 bobinas al mismo tiempo por que generaría un campo magnético simétri rotor no sabría a donde girar. A partir de esto se deduce que existen hasta tres modos de hacer girar un motor a pasos unipolar; Paso simple, Paso Medio paso. Paso completo: Es cuando las bobinas se polarizan de dos en dos. En la siguiente tabla se muestra la secuencia en que se energizan las bobinas para girar el rotor hacia un sentido, para que gire en sentido contrario solo hay que invertir el orden de polarización de las bobinas. Tabla 1. Secuencia de polarización las bobinas de paso completo. L1 1 1 0 0 L2 0 1 1 0 L3 0 0 1 1 L4 1 0 0 1 Hex 0x09 0x0C 0x06 0x03 Medio paso: Es cuando las bobinas se polarizan de a una y de a dos intercaladamente. En la siguiente tabla se muestra la secuencia de polarización d bobinas en modo medio paso. Tabla 2. Secuencia de polarización las bobinas de medio paso. L1 1 1 1 1 0 L2 0 1 1 1 1 1 0 0 L3 0 0 0 1 1 1 1 1 L4 1 1 0 0 0 1 1 1 Hex 0x09 0x0D 0x0C 0x0E 0x06 0x07 0x03 0x0B Login Usuario 0 0 1 Paso simple: Es cuando las bobinas se polarizan de una en una. En la siguiente tabla se muestra la secuencia de polarización de las bobinas en paso s Contraseña Tabla 3. Secuencia de polarización las bobinas de paso simple. L1 0 Recordarme 0 L2 0 0 L3 0 1 L4 1 0 Hex 0x01 0x02 hetpro-store.com/index.php?option=com_content&view=article&id= 24 1/5 com) Programador USBasp V3.0 Microcontrolador ATMEGA8535 Tarjeta controladora de motores Motor Shield L298 Motor a pasos Push.14/10/13 Recordarme INGRESAR 0 0 1 0 1 0 Control de motores a pasos con el ATmega AVR en C 1 0 0 0 0 0 0x02 0x04 0x08 ¿Perdió su contraseña? ¿Olvidó su usuario? ¿Todavía no está registrado? Registrarse Lista de materiales (Puedes encontrarlos en la tienda virtual HeTPro http://www.hetpro-store.com/index.botton Fuente de 5V Potenciómetro de 10KΩ Who's Online Tenemos 19 invitados conectado Diagrama Esquemático Imagenes A continuacion se muestran imagenes funcionando de la tarjeta controladora de motores L298 hetpro-store.php?option=com_content&view=article&id= 24 2/5 . php?option=com_content&view=article&id= 24 3/5 .com/index.14/10/13 Control de motores a pasos con el ATmega AVR en C hetpro-store. . _delay_ms(Ret). //Se declara el Puerto A como salida //Se pone un 1 en Puerto A //Se declara el puerto D como entrada //Interrupción Global //Inicializa el ADC //Inicia conversión del ADC //Ciclo FOR infinito } //Vector de Interrupción del ADC // Inicialización ADC // Iniciar conversión ADC //Variable sin signo // Variable sin signo para los Retardos //Frecuencia de trabajo del Microcontrolador hetpro-store. unsigned int ConversionADC. fue desarrollado en AVR Studio y compilado con WinAVR. unsigned int Ret. la velocidad es controlada con un potenciómetro el cual es leído por el ADC7 del microcontrolador ATMEGA85 mediante los valores del ADC se da el tiempo de retardo en los bits de salida del puerto en el que se conecta a la tarjeta controladora de motores. PORTA = 0x08.h // Interrupciones #define Clock 8000000 //Configuración-ADC.h //Librería necesaria para las entradas y salidas #include util/delay. void InicializarADC (void). DDRD = 0x00. Ret= ConversionADC. PORTA =0x01. sei(). Programa en C #include avr/io. // Secuencia de Polarización de las bobinas en Modo Paso Simple if(PIND == 0x00) //Giro a la Derecha { PORTA = 0x01. int main(void) { DDRA = 0x0F. for(. void IniciarConversionADC(void).com/index. Este código se utilizó para controlar la de giro y velocidad del motor a pasos.h //Librería para usar los retardos de tiempo #include avr/interrupt.. ConversionADC=(ConversionADCH*256)+ConversionADCL. como se puede ver en la sección del código tenemos las simple y paso completo para diferentes combinaciones de los primeros 2 bits del puerto C. _delay_ms(Ret).). } else if(PIND == 0x01) //Giro a la Izquierda { PORTA = 0x08. ISR(ADC_vect) { volatile unsigned char ConversionADCL=ADCL. _delay_ms(Ret).14/10/13 Control de motores a pasos con el ATmega AVR en C A continuación tenemos el programa en lenguaje C.php?option=com_content&view=article&id= 24 4/5 . _delay_ms(Ret). InicializarADC(). PORTA = 0x04. Los botones sirven para seleccionar el tipo de paso y la dirección de giro del motor. IniciarConversionADC().. PORTA = 0x02. volatile unsigned char ConversionADCH=ADCH. PORTA = 0x04. _delay_ms(Ret). PORTA = 0x06. interrupción y prescalador(4) ADMUX|=(0<<REFS1)|(1<<REFS0)|(0<<MUX4)|(0<<MUX3)|(1<<MUX2)|(1<<MUX1)|(1<<MUX0). PORTA = 0x01. _delay_ms(Ret). _delay_ms(Ret).14/10/13 Control de motores a pasos con el ATmega AVR en C PORTA = 0x04.php?option=com_content&view=article&id= 24 5/5 . PORTA = 0x03. PORTA = 0x09. void InicializarADC (void) { ADCSRA|=(1<<ADEN)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0). } // Configuración-ADC.com/index. // Habilitar ADC... _delay_ms(Ret). //Configuracion de ADC7 y AVCC con capaci externo en pin AREF } void IniciarConversionADC (void) { ADCSRA|= (1<<ADSC). _delay_ms(Ret).bz . PORTA = 0x0C. } else if(PIND == 0x03) //Giro a la Izquierda { PORTA = 0x03. } // Secuencia de Polarización de las bobinas en Modo Paso Completo else if(PIND == 0x02) //Giro a la derecha { PORTA = 0x09. _delay_ms(Ret). PORTA = 0x06. PORTA = 0x0C. _delay_ms(Ret). _delay_ms(Ret). _delay_ms(Ret). // Iniciar conversión } Última actualización el Viernes 12 de Julio de 2013 04:58 HeTPro Registro Tienda Tutoriales Cursos Contacto Servicios designed by Website Templates. _delay_ms(Ret). 2013.professional Virtuemart Templates © All rights reserved. PORTA = 0x02. } IniciarConversionADC (). hetpro-store. _delay_ms(Ret). _delay_ms(Ret).
Copyright © 2024 DOKUMEN.SITE Inc.