Bueno les traigo el programa para la practica de opto, controlar un motor por medio de PWM, que a su vez es controlado por una fotoresistencia, yo se que su maestro de pics les deja practicas mas perronas que esta y por eso lo quieren hacer con el 555, pero de todos modos si no quieren complicarse la vida tanto hago este post con la info que mi “maestros” internet y el libro de picc me han enseñado.
Programa
//****************************************************************************
// Control de un motor por PWM con una fotorresistencia
//Materia: Optoelectronica
//Andres Eduardo Sabas Jimenez
//02/03/2011
//------------------------------------------------------------------------------
// El motor aumentara o disminuira su velocidad dependiendo del aumento
// o disminucion de la resistencia en la fotorresistencia
//*****************************************************************************
#include <pwm.h>
void main()
{
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
//setup_pp(PMP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_1,124,1); //Configura el timer 2 para tener un PWM de 20KHz
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_ccp1(CCP_PWM);//Configuramos el CCP1 para funcionar como PWM
set_pwm1_duty(0);
set_adc_channel(0); //Seleccionamos el canal cero del ADC
//Declaracion de Variables
long duty;
//Codigo
while(1)
{
duty=read_adc()/2; //Mandamos la lectura del ADC a la variable duty y la dividimos entre dos,
// ya que el maximo del duty es 400 para el 100% del PWM
delay_us(20); // Retardo de 20us para la lectura del ADC
set_pwm1_duty(duty); // Ajustamos el PWM con el ciclo de trabajo que nos da el ADC
}
}
------------------------------------------------------------------------------
Espero ver mas microcrontoladores, que 555 en la practica
Nos vemos mañana
No hay comentarios:
Publicar un comentario