Template - Laboratorio de Micro 1 (A) Guia Nro 6
Template - Laboratorio de Micro 1 (A) Guia Nro 6
Template - Laboratorio de Micro 1 (A) Guia Nro 6
INTERFACE A DISPOSITIVOS DE
ENTRADA Y SALIDA
1 Objetivo
Efectuar el manejo de conversor analógico a digital
Efectuar el manejo de motores paso a paso
2 Base teórica
2.1 Modulo ADC
El módulo convertidor de analógico a digital (A / D) tiene 10 entradas para los
dispositivos de 28 pines y 13 para los dispositivos de 40/44 pines. Este módulo permite la
conversión de una señal de entrada analógica a una señal digital de 10 bits.
ADRESH
ADRESL
ADCON0
ADCON1
ADCON2
El registro ADCON0, gobierna las operaciones del módulo A/D. El registro ADCON1
configura las funciones de los puertos. El registro ADCON2 configura el reloj, programa el
tiempo de adquisición y justificación.
Ejemplo:
Ejemplo:
Ejemplo
3 Investigación
¿Qué es el LM35 y sus características?
¿Cómo determinar los pines de los motores paso a paso unipolar y bipolar?
¿Qué driver pueden ser usados para el manejo de los motores paso a paso?
¿Averigüe las secuencias usadas para el control de motores paso a paso unipolar y bipolar?
/*************************************************************************/
// LCD module connections
sbit LCD_RS at RD2_bit;
sbit LCD_EN at RD3_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;
cmcon = 0x0f;
cvrcon = 0x00;
ucon = 0x00;
led = 0;
led_dir = 0;
}
/*************************************************************************/
unsigned short leer_canal0()
{
unsigned short n;
unsigned int suma = 0;
unsigned int promedio;
config_puertos_io();
lcd_init();
lcd_cmd(_LCD_CLEAR);
lcd_cmd(_LCD_CURSOR_OFF);
lcd_out(1,1,"Temperatura:");
lcd_out(2,1,"Pot");
while(1)
{
temperatura = leer_canal0();
potenciometro = leer_canal1();
byteToStr(temperatura,temperaturaTxt);
wordToStr(potenciometro,potenciometroTxt);
lcd_out(1,13,temperaturaTxt);
lcd_out(2,10,potenciometroTxt);
delay_ms(500);
led = !led;
}
}
/*************************************************************************/
Ejemplo 2
Efectuar el control de un motor paso a paso de modo que exista un pulsador de inicio y
parada, asi también un pulsador de cambio de giro, el tipo de paso a ser usado será el paso
simple.
/*************************************************************************/
sbit pulsadorIniciaDetiene at RD0_bit;
sbit pulsadorIniciaDetiene_dir at TRISD0_bit;
latd = 0;
trisd = 0;
pulsadorIniciaDetiene = 1;
pulsadorIniciaDetiene_dir = 1;
pulsadorGiro = 1;
pulsadorGiro_dir = 1;
ledRojo = 0;
ledRojo_dir = 0;
ledVerde = 0;
ledVerde_dir = 0;
ledNaranja = 0;
ledNaranja_dir = 0;
}
/*************************************************************************/
char leer_pulsador_inicia_detiene()
{
static char estado = 0;
static char estadoAnterior = 1;
char estadoActual;
estadoActual = pulsadorIniciaDetiene;
if((!estadoActual) && (estadoAnterior))
{
estado ^= 1;
}
estadoAnterior = estadoActual;
return estado;
}
/*************************************************************************/
char leer_pulsador_giro()
{
static char estado = 0;
static char estadoAnterior = 1;
char estadoActual;
estadoActual = pulsadorGiro;
if((!estadoActual) && (estadoAnterior))
{
estado ^= 1;
}
estadoAnterior = estadoActual;
return estado;
}
/*************************************************************************/
void giro_motor_pap(char giro)
{
static unsigned short pasos[] = {1,2,4,8};
Trabajo en laboratorio.
Programa 1
Programa 2.
Efectué el control de dos motores paso a paso de manera que cada uno pueda ser
activado y pueda cambias su sentido de giro de manera independiente, en lo posible que un
motor sea unipolar y el otro bipolar, si no dispone de ambos tipos de motores puede usar dos
del mismo tipo.
5 Resultados
6 Conclusiones