Eletrônica digital – Fazendo tanto com PIC como Arduino

Analisando as palavras-chaves que direcionaram leitores ao meu blog, encontrei a pesquisa de ‘como tocar buzzer no PIC’. Então fiquei pensando de quão parecido podem ser os processos se utilizando uma IDE de alto nível como o MikroC, cuja licença adquiri semana passada. Decidi fazer esse tutorial baseado nos que postei sobre Arduino, ou seja, inserirei o link do post que fiz em Arduino, seguido do processo para fazê-lo em PIC.

O PIC tem diversas famílias, sendo que os recursos variam de uma para outra. Então, para os exemplos utilizarei predominantemente o PIC que está na board PIC.Duino, à venda na SmartRadio. Já fiz 3 compras e estou satisfeito com a transação. Esse é um PIC18F2520. Em alguns casos posso utilizar um PIC16F877A ou um PIC18F4550; nos últimos dois casos, gravando o pic com o MultiProg Plus compatível com o PicKit2, utilizando os softwares MPLab ou PicKit2.
Então, iniciando pela palavra-chave que me levou a escrever esse post:

Buzzer
Escrevi vários posts sobre como tocar som variando frequência com potenciômetro, linear, sirene e música. Para fazê-lo em Arduino, os posts são esses:
Buzzer – parte 1
Interação com o buzzer
Música com buzzer
Som de sirene no buzzer

Se quiser, compare a diferença. Tocar um som no buzzer com PIC é tão simples quanto em Arduino, basicamente iniciando a biblioteca de som e chamando a função de tocar. O init recebe como parâmetro o endereço da porta e o pino. A função de tocar recebe a frequência em hz e o tempo de duração em ms. Para um simples ‘pi’ com intervalo de 1/4s:

No PIC.Duino PORTA pino 0 é como PORTA.B0, ou RA0 no datasheet (vide imagem nesse post). Esse pino está conectado à porta A0 da board. Se você programa em arduino, deve ter notado algo interessante; utilizei a porta designada como Input Analógica 0 para Output digital! Mas uma coisa é importante de notar; se você setar TRISA como output, todos os pinos relacionados à porta A serão output.

Se abrir o arquivo .hex no MPLab pode-se ver todo o código em asm! Nesse exemplo já entrou também a geração de frequências;p ara interagir avaliando o estado de um botão, eis um desenho no fritzing, utilizando uma Arduino para exemplo, mas não se esqueça que se trata do PIC.Duino, o que faz possível utilizar o pino A0 como saída digital para o buzzer:

E o código:

Como pode-se ver, é bastante simples o processo de controle do buzzer em PIC, utilizando uma IDE de alto-nível como a MikroC. Farei mais alguns posts sobre PIC, baseado em tutoriais que escrevi sobre Arduino. Por fim, um video:

Hoje chegou minha RaspBerry e sábado chegou minha Carambola, o que certamente me fará escrever alguns posts sobre Linux embarcado em MIPS e ARM, espero que acompanhem os post.

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