Beruflich Dokumente
Kultur Dokumente
Esta entrada del blog muestra el desarrollo de una tarjeta de circuito para
controlar una señal de entrada y otra de salida de 0-10V desde un pequeño
microcontrolador de Microchip PIC12F1840.
Lo que queremos conseguir es lo siguiente:
Que el circuito sea capaz de entregar una señal de 0-10V para controlar un
actuador mediante esta señal. Por ejemplo, un motor mediante un variador
de frecuencia que tenga una entrada 0-10V, o un balastro de luces
fluorescentes con interfaz DALI para poder regular la luz del fluorescente
mediante esta señal de 0-10V, o un dimmer o muchos otros dispositivos.
Que también sea capaz de leer mediante un sensor el estado del actduador
con una señal de entrada de 0-10V o 0-5V.
Además enviará y recibirá datos desde un PC para poder controlar o
mostrar en una gráfica el control del actuador y el sensor.
Primer Paso: realizar el esquema electrónico de la PCB.
Segundo Paso: Diseñar el routeado de la tarjeta electrónica:
// CONFIG1
#pragma config FOSC = INTOSC // Oscillator Selection (INTOSC oscillator: I/O function on
CLKIN pin)
#pragma config WDTE = OFF // Watchdog Timer Enable (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable (PWRT disabled)
#pragma config MCLRE = OFF // MCLR Pin Function Select (MCLR/VPP pin function is MCLR)
#pragma config CP = OFF // Flash Program Memory Code Protection (Program memory code
protection is disabled)
#pragma config CPD = OFF // Data Memory Code Protection (Data memory code protection is
disabled)
#pragma config BOREN = ON // Brown-out Reset Enable (Brown-out Reset enabled)
#pragma config CLKOUTEN = OFF // Clock Out Enable (CLKOUT function is disabled. I/O or
oscillator function on the CLKOUT pin)
#pragma config IESO = ON // Internal/External Switchover (Internal/External Switchover mode
is enabled)
#pragma config FCMEN = ON // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is
enabled)
// CONFIG2
#pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off)
#pragma config PLLEN = ON // PLL Enable (4x PLL enabled)
#pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable (Stack Overflow or
Underflow will cause a Reset)
#pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage
(Vbor), low trip point selected.)
#pragma config LVP = ON // Low-Voltage Programming Enable (Low-voltage programming
enabled)
/******************************************************/
/* Programa principal */
/******************************************************/
int main(void) {
int a=0;
Config();
while(1){
DACPin = !DACPin;
printf("Hola lectores de BitPic %i\r",a++);
__delay_ms(1000);
}
/*****************************************************************/
/* Configuracion de los registros del PIC */
/*****************************************************************/
void Config(void){
//Caonfiguracion I/O
ANSELA = 0b00000000; // Entradas analogicas desactivadas
TRISAbits.TRISA0 = 0; // DAC
TRISAbits.TRISA1 = 1; // ADC
TRISAbits.TRISA2 = 1; // Tacho
TRISAbits.TRISA3 = 1; // Reset PIN
TRISAbits.TRISA4 = 0; // Tx
TRISAbits.TRISA5 = 1; // Rx
APFCONbits.RXDTSEL = 1;
APFCONbits.TXCKSEL = 1;
//Configuración
BAUDCON = 0b00000000;
INTCON = 0b00000000;
PIE1 = 0b00000000;
PIR1 = 0b00000000;
RCSTA = 0b10010000;
TXSTA = 0b00100000;