Dimmer digital --> PIC 12F675

#22
y por que no me funca! :LOL: tengo el mente el modulo receptor ya que no use el mismo pero aun nose como poder hacerlo funcionar
Fijate si el modulo receptor es el TSOP1738 y va conectado asi..
Visto de frente tenes las patitas asi 1-2---3 la 1 va a masa, entre 1 y 2 va un capacitor de 4.7uf, y a la tercera es la salida y le podes poner una resistencia de 10k a positivo. A y de la 2 a positivo una de 470 Ohms
 
Última edición:
#25
:aplauso:


Vicbrother vicvicvicvicvic..

Código:
            #include "16f877a.h"
            #device ADC=8 
            #fuses XT,NOWDT,NOPROTECT,NOLVP,NODEBUG 
            #use delay(clock=4000000) 
            #define Pulse PIN_C0             //aquí manda pulso disparo al triac 
            
            int flag=0;                      //#include 
               
            #int_ext 
            void ext_isr()
            { flag=1; } 
            
            void main() 
            { 
            BYTE i, j, address, value;
            int16 q, q1; 
            int16 retardo=0,data=200; 
            float p; q1=0; 
            
            output_low(Pulse);
            setup_adc_ports(AN0); 
            setup_adc(ADC_CLOCK_INTERNAL); 
            set_adc_channel(0); 
            ext_int_edge(0,L_TO_H); 
            enable_interrupts(INT_EXT); 
            enable_interrupts(GLOBAL); 
            
            do
            {
            if(flag)
            { 
            data=read_adc();
            retardo=(int16)(255-data)*32; 
            delay_us(retardo); 
            output_high(Pulse); 
            delay_us(40); 
            output_low(Pulse); 
            flag=0; 
            } 
            }while (TRUE); 
            }

Aqui esta el diagrama..
saludos, eso d elso timers e interrupciones no se me da aun me falata comprenderlo queria ver si de favor me lo explicas un poco mas tu diseño ya que quiero hacer elc ontrol de una resistencia termica te agradezco el dato
 
#26
Hola. Una pregunta...
Si trato de ingresar al LCD para que me imprima el voltaje que va teniendo el foco...
¿Cómo lo podría poner? Porque tengo mi código en C y el voltaje se quedó estable, es decir, no baja ni sube.

Encontré la programación de @mariacontenis y pues pasó lo mismo.
PHP:
#include "16f877a.h"
            #device ADC=8 
            #fuses XT,NOWDT,NOPROTECT,NOLVP,NODEBUG 
            #use delay(clock=4000000) 
            #define Pulse PIN_C0             //aquí manda pulso disparo al triac 
            
            int flag=0;                      //#include 
               
            #int_ext 
            void ext_isr()
            { flag=1; } 
            
            void main() 
            { 
            BYTE i, j, address, value;
            int16 q, q1; 
            int16 retardo=0,data=200; 
            float p; q1=0; 
            
            output_low(Pulse);
            setup_adc_ports(AN0); 
            setup_adc(ADC_CLOCK_INTERNAL); 
            set_adc_channel(0); 
            ext_int_edge(0,L_TO_H); 
            enable_interrupts(INT_EXT); 
            enable_interrupts(GLOBAL); 
            
            do
            {
            if(flag)
            { 
            data=read_adc();
            retardo=(int16)(255-data)*32; 
            delay_us(retardo); 
            output_high(Pulse); 
            delay_us(40); 
            output_low(Pulse); 
            flag=0; 
            } 
            }while (TRUE); 
            }
 
Última edición por un moderador:
#27
Debes ingresarla dentro de la rutina do while. Pero desconozco como se hace en CCS, yo utilizó otro compilador.

En mikroC, el cuál utilizó, primero declaró la librería (asignó pines, inició librería y limpió la pantalla). Luego, sí la información a mostrar es numérica del tipo int, short, float, etc., debo transformarla a tipo string y luego la muestro en pantalla.

Y Listo!.

Código:
//Declaró terminales de salida para el LCD.

int número=0; //variable númerica,
char texto[20];//variable string.
void main() {
Lcd_Init(); //Inicia librería, obvio.
Lcd_Cmd(_LCD_CLEAR); //Limpió pantalla.
do {
IntToStr(número, texto); //Convierte variable numérica a string.
//Lcd_Out(1,1, texto); //Muestra texto por display LCD.
} while(1); //bucle infinito.
}
 
Última edición:

Temas similares

Arriba