Saludos al foro.
Necesito la ayuda de alguien con experiencia en PIC.
Intento hacer un dimmer con PIC, TRIAC y LabVIEW.
He conseguido obtener un dato de LabVIEW hacia el PIC por RS-232 asíncrono y depende ese dato será la intensidad de la lámpara incandescente, pero no funciona lo del PIC y TRIAC.
Lo que logro que funcione es el PIC con LabVIEW.
Uso el PIC16F690 con PICkit2 de Microchip y MPLABX IDE para programarlo.
Soy nuevo en este foro y no sé cómo poner los diagramas de los circuitos.
Este es el código:
Necesito la ayuda de alguien con experiencia en PIC.
Intento hacer un dimmer con PIC, TRIAC y LabVIEW.
He conseguido obtener un dato de LabVIEW hacia el PIC por RS-232 asíncrono y depende ese dato será la intensidad de la lámpara incandescente, pero no funciona lo del PIC y TRIAC.
Lo que logro que funcione es el PIC con LabVIEW.
Uso el PIC16F690 con PICkit2 de Microchip y MPLABX IDE para programarlo.
Soy nuevo en este foro y no sé cómo poner los diagramas de los circuitos.
Este es el código:
Código:
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#define _XTAL_FREQ 4000000
unsigned char BUFFER=127;
void interrupt isr(void){
if(INTCONbits.T0IF==1) {
INTCONbits.T0IF=0;
PORTCbits.RC0=1;
INTCONbits.T0IE=0;
} else if (PIR1bits.RCIF==1) {
PIR1bits.RCIF=0;
BUFFER=RCREG;
}
}
/*
*
*/
void main(void) {
OPTION_REGbits.T0CS=0;
OPTION_REGbits.PS0=0;
OPTION_REGbits.PS1=0;
OPTION_REGbits.PS2=1;
OPTION_REGbits.PSA=0;
//WDTCONbits.SWDTEN=0;
//ADCON0=0;
//CM1CON0=0;
//CM2CON0=0;
ANSEL=0;
ANSELH=0;
TRISC=0;
PORTC=0;
TRISA=1;
TXSTAbits.BRGH=1;
SPBRG=25;
RCSTAbits.CREN=1;
TXSTAbits.SYNC=0;
RCSTAbits.SPEN=1;
PIE1bits.RCIE=1;
INTCONbits.PEIE=1;
INTCONbits.GIE=1;
while(1) {
if(PORTAbits.RA0==1){
TMR0=BUFFER;
INTCONbits.T0IE=1;
PORTCbits.RC0=0;
while(PORTAbits.RA0==1);
TMR0=BUFFER;
INTCONbits.T0IE=1;
PORTCbits.RC0=0;
while(PORTAbits.RA0==0);
}
}
}
Última edición por un moderador: