Eletrônica Digital – Introdução ao PIC12F675


Essa é uma introdução ao PIC, dessa vez um dos menores em recursos e pinos.
O PIC12F675 é um PIC de 8 pinos, dos quais 6 podem ser utilizados para I/O. Ele é um MCU de 8 bits e possui 1 conversor A/D de 4 canais. Ele pode ser ligado a um cristal externo de até 20Mhz, mas ele possui um oscilador interno de 4Mhz e para projetos muito simples que não necessitem velocidade pode ser o ideal.

Ele não possui módulo CCP, portanto não possui portas PWM, o que seria excelente para controlar um LED RGB de 4 pernas. De qualquer forma, há um LED RGB de 2 pernas cujo as cores não podem ser controladas e alternam por intervalos de tempo.

Apesar do hardware minimalístico, existem muitas possibilidades para ele. O primeiro exemplo será (obviamente):

Acender um LED
O esquema é o seguinte:

O desenho está em uma protoboard full porque a partir desse modelo vamos expandir um pouco o projeto.

Programar para PIC como escrevi em outro post, não é tão simples quanto programar em Arduino.
Para poder imaginar aplicações para o modelo de PIC escolhido, é necessário conhecer seus recursos. Já nesse pequeno hardware, pode ser necessário conhecer também alguns truques, como multiplexar. Isso será visto em outro post.

Como sempre, utilizando a IDE MikroC para desenvolver, descreverei previamente os recursos dos quais faremos uso no exemplo de código adiante.

Registrador TRISIO
O TRISIO é o registrador que configura os pinos como entrada ou saída. Com 0 os pinos ficam em OUTPUT, com 1 os pinos são configurados como INPUT. Claro, os pinos podem ser configurados individualmente em bits, hexa ou deslocamento de bits. Darei os 3 exemplos nesse post mais adiante.

Registrador GPIO
O GPIO configura os pinos como HIGH (1) ou LOW (0). Em grandes PICs, GPIO é chamado PORT. Os bits podem ser setados de duas maneiras; GPIO.Bx para setar o bit x ou ajustando o valor do bit correspondente através dos modos explicados mais adiante.

Para deixar claro; quando o PINO estiver em OUTPUT e HIGH, o LED se acenderá. Muitos recomendam utilizar o pino do PIC para fazer aterramento, então o pino deveria ser configurado para INPUT e LOW e o LED seria aterrado nesse pino.

Configurando pinos
Existem 4 modos de configurar um pino, utilizando o pino 5 como exemplo:

Particularmente, deslocar os bits me parece o mais prático dos modos depois de apontar o bit diretamente na variável do pino. Para melhor entendimento, o que esse deslocamento faz é pegar o 1 e deslocá-lo para a esquerda 2 vezes. Se fosse (1<<0), então o primeiro dos 8 bits receberia o valor 1, ficando 00000001. Deslocando 2 para a esquerda ficará 00000100.

Nesse datasheet pode-se ver que o pino 5 corresponde à porta 2 (GP2), utilizado no exemplo desse post.

O código de funcionamento de um blink com o LED é o seguinte:

O regulador de tensão quebrou um bom galho também, porque peguei uma fonte de 9v para alimentar o PIC com 5v, desse modo:

No esquema lá em cima você pode ver melhor a forma de conectar. Basicamente, olhando o regulador de frente:
1 – Entrada (até 19V nesse modelo)
2 – Terra (comum para o circuito e fonte)
3 – Saida 5v.

Farei outros posts com o P12F675 para mostrar um pouco mais do que se pode fazer com um hardware pequeno como esse.

Esse post não merece um video, não é mesmo? :-)

Comprei regulador de tensão, PIC12F, PIC16F, drivers de LEDs e vários outros componentes no site HU Infinito. Foi o melhor preço que achei nos materiais até o momento e certamente farei muitas outras compras nele, recomendo!

Agora com licença; preciso começar a escrever um post sobre controlador de LED 74HC595…

Se gostou, não deixe de compartilhar; dê seu like no video e inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Prefere seguir-nos pelo facebook? Basta curtir aqui.

Prefere twitter? @DobitAoByte.

Próximo post a caminho!

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Deixe uma resposta