MATERIALES:
- MICROCONTROLADOR 18F2550
-
MOTOR
- LCD 16X2
-
RESISTENCIAS
-
PROTOBOARD
-
POTENCIOMETRO
CODIGO (1) :
#include <18F2550.h> //DEFINIR PROCESADOR
#device adc=8 //NUMERO DE BIT’S A UTILIZAR
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN //FUSIBLES
#use delay (clock=12000000) //CISTAL A UTILIZAR
#include <flex_lcd.c> //LIBRERIA LCD
#byte portb=0x06 //DIRECCION DE ALMACENAMIENTO
int VALOR; //VARIABLE 1
INT VALOR2; //VARIABLE 2
void main ()
{
lcd_init();
SETUP_ADC_PORTS(AN0_TO_AN1|VSS_VDD); // PUERTO A
setup_adc(ADC_CLOCK_INTERNAL); // RELOJ INTERNO
while(TRUE)
{
set_adc_channel(0); //ACTIVAR CANAL CONVERSION
delay_us(100000); //RETARDO
VALOR=read_adc(); //ALAMACENAR EN VARIABLE 1 VALOR
lcd_gotoxy(1,2); // IR A POCISION LCD 1,2
set_adc_channel(1); //ACTIVAR CANAL CONVERSION
delay_us(100000); //RETARDO
VALOR2=read_adc(); //ALAMACENAR EN VARIABLE 2 VALOR
lcd_gotoxy(2,2); // IR A POCISION LCD 2,2
printf(lcd_putc,"\f ADC0=%u\n ADC1=%u", VALOR, VALOR2); //MOSTRAR EN PANTALLA
delay_us(100); // RETARDO
}
}
FUNCIONAMIENTO:
TENEMOS DOS ENTRADAS A NUESTRO CONVERSOR ANALOGO DIGITAL,EL CUAL ATRAVEZ DE LA CONVERSION NOS MUESTRO UN VALOR MKIN IMO DE 0 Y MAXIMO DE 255 Y CADA UNO DE ELLOS SE VISUALIZA EN LA PANTALLA LCD.
HARDWARE:
CODIGO (2) :
include <18F2550.h> //DEFINIR PROCESADOR
#device adc=8 //NUMERO DE BIT’S A UTILIZAR
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN //FUSIBLES
#use delay (clock=12000000) //CISTAL A UTILIZAR
#include <math.h> //LIBRERIA PARA OPERACIONES MATEMATICAS
#include <flex_lcd2.c> //LIBRERIA LCD
#byte portb=0x06 //DIRECCION DE ALMACENAMIENTO
void main() {
setup_timer_2(t2_div_by_16,1023,16); // CONFIGURACION TMR2
setup_ccp1(ccp_pwm); // CCP1 EN MODO PWM
lcd_init();
SETUP_ADC_PORTS(AN0|VSS_VDD); //PUERTO A
setup_adc(ADC_CLOCK_INTERNAL); // RELOJ INTERNO
while(true) {
float VALOR; // VARIABLE 1
float VALOR2; // VARIABLE 2
set_adc_channel(0); //ACTIVAR CANAL CONVERSION
delay_us(20); //RETARDO
VALOR= read_adc(); //ALAMACENAR EN VARIABLE 1 VALOR
lcd_gotoxy(2,2); // IR A POCISION LCD 2,2
VALOR2=((VALOR*0.392)); //VARIABLE 2 SE CARGA CON EL VALOR DEL DUTY SEGUN OPERACION
set_pwm1_duty(VALOR); //ACTIVAR PWM
lcd_gotoxy(1,2); // IR A POCISION LCD 2,2
printf(lcd_putc,"\f ADC=%f \n ",VALOR); // MOSTRAR EN PANTALLA EL VALOR ADC
printf(lcd_putc,"\DUTY=%f\n",VALOR2); // MOSTRAR EN PANTALLA EL VALOR DUTY
delay_ms(100); // RETARDO
}
}
FUNCIONAMIENTO :
ESTA VEZ TENEMOS DOS SALIDAS UNA ES EL RESULTADOANOLOGO DIGITAL Y LA OTRA ES NUESTRO DUTY. PODEMOS VARIAR ESTOS VALORES CON LAS ENTRADAS Y VERLOS EHN LA PANTALLA
HARDAWARE :
No hay comentarios:
Publicar un comentario