Um dia meu carro deu
um problema na bobina(mas sabemos que dificilmente essas bobinas
queimam de verdade o que acontece é defeitos no circuito de
acionamento) então pensei em demostrar como gerar altas tensões
utilizando  um microcontrolador PIC de 8 pinos (12F675) , vale lembra
que eu aproveitei o circuito já existente(pois o único defeito
dessa bobina eram os fios de ligação aos terminais que estavam
todos ressecados e dobradiços devido ao calor do motor do carro),na
figura abaixo é demostrado a bobina do corsa:
        Para fazer o
acionamento desta bobina é preciso saber quais os terminais desta 
placa será utilizado, então veja a descrição na figura a seguir:
       Os sinais que vem do
modulo de gerenciamento central do carro são aplicados nas entrada
in1 e  in2, out1 e out2 vão para os terminais da bobina e o +12V vai
ao outro terminal da bobina e a placa de controle e por fim o GND que
também vai a esta placa.Depois de saber onde colocar o sinal que vira
do microcontrolador montei um circuito para acionar e refiz algumas
interligação da placa aos terminais da bobina ficando assim:
     O esquemático do
circuito que fiz é este:
       O circuito é muito
simples coloquei um led para indicar cada vez que pressiono um dos
botões e caso eu fique com ele pressionado o valor da largura de
pulso aumenta ou diminue enquanto manter este pressionado,no pino GP2
sai o sinal que será aplicado ao circuito de controle da bobina(que
nada mais é do que um drive que aciona 2 IGBTs que mandam o pulso ao
transformador  da bobina).vou mostrar o vídeo que está disponível no
you tube e logo em seguida o código fonte do circuito:
O código fonte:
/* * Gerando altas tensões com uma bobina * * Compilador : MPlabXC8 * Microcontrolador: 12F675 * Autor: aguivone * Versão: 1
 * data: 04/12/2013
 */
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
/////////////////////////////////////////////////////////configuraçôes//////////////////////////////////////////////////
#pragma config FOSC = INTRCIO   // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON       // Power-Up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = OFF      // GP3/MCLR pin function select (GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD)
#pragma config BOREN = OFF      // Brown-out Detect Enable bit (BOD disabled)
#pragma config CP = OFF         // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = ON         // Data Code Protection bit (Data memory code protection is enabled)
//////////////////////////////////////////////////////Rotina principal///////////////////////////////////////////////////////////////
delay_ms(long t)//tempo aproximado
{//aqui está usado o clock   interno
    long temp=0;
    int conta=0;
        while(temp < t)
        {
            conta=0;
            while(conta<40)
            {
               conta++;
            }
            temp++;
        }
}
void main(void) {
    TRISIO = 0X03;//configura gp1 e gp2 como entrada
    CMCON = 7;//desabilita comparadores
    ANSEL = 0;//habilita as portas de I/O
    int tempo=1;
    for(;;)
    {
       if(GP0 == 0)
            {
               delay_ms(100);//debounce do botão(filtro)
               if(GP0 == 0)
                {
                   while(GP0 == 0)//enquanto botão pressionado incrementa
                   {
                    tempo++;
                    delay_ms(100);//debounce do botão(filtro)
                    GP4 = !GP4;//alterna led a cada incremento
                    if(tempo>50)
                    {
                       tempo = 1;//limita valor maximo para 50
                    }
                   }
                   GP4 = 0;
                }
            }
        if(GP1 == 0)
            {
               delay_ms(100);//debounce do botão(filtro)
               if(GP1 == 0)
                {
                   while(GP1 == 0)//enquanto botão pressionado decrementa
                   {
                    tempo--;
                    delay_ms(100);//debounce do botão(filtro)
                    GP4 = !GP4;//alterna led a cada decremento
                    if(tempo<1)
                    {
                       tempo = 10;//limita valor minimo para 1
                    }
                   }
                   GP4 =0;
                }
            }
       GP2 = 1;
       delay_ms(tempo);
       GP2 = 0;
       delay_ms(1000);
    }//loop infinito
}




Olá aguivone gosto muito de seus projetos, gostaria muito que você colocasse alguma coisa no sentido de inversores de frequência trifásico com pic, pois sou eletricista e gosto muito dessa área de microcontroladores, desde já agradeço. parabéns pela sua iniciativa.
ResponderExcluirOlá amigo preciso de um circuito pisca pisca com o pic 12f675,será que você não pragrama o pic pra mim?
ResponderExcluirEntre em contato pelo e-mail no inicio da pagina!
ExcluirEste comentário foi removido pelo autor.
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluir