Escolar Documentos
Profissional Documentos
Cultura Documentos
Robtica, Microcontroladores
Automao
O princpio de tudo!
edukatika@hotmail.com
1
Prefcio
Em nossa serie de e-books iremos desmistificar os sistemas de robtica, automao, controle
de processos, sistemas de medies de grandezas como temperatura, presso, voltagem!
De uma forma simples e com muita pratica e objetividade iremos mostrar a todos o porqu
das coisas e como fazer.
edukatika@hotmail.com
2
ATENO!
Este e-book no tem a mnima inteno em esgotar qualquer tipo de assunto aqui tratado,
muito menos gerar polemicas tcnicas que no leva ningum de lugar algum para lugar
nenhum. Sendo assim vamos tratar de assuntos complexos de forma simples, com objetivo e
o mnimo de teoria e conceitos complexos.
O e-book pode parecer incompleto, mas na verdade ele vai crescendo e se alterando dia a dia,
semana a semana at findar todos os assuntos relacionados.
Alm do mais da forma que apresentado exatamente o que voc precisa saber e fazer para
dar um passo de cada vez no aprendizado.
Ento no faa uma cpia impressa ainda, pois este o primeiro de uma srie de vrios, os
quais vai mudar por completo a estrutura inicial do e-book.
edukatika@hotmail.com
3
Dedicatria
edukatika@hotmail.com
4
edukatika@hotmail.com
5
Objetivo
Vamos descrever o nosso objetivo e o que voc ir aprender em cada uma das fases do nosso
estudo:
Fase 1 - O inicio
1 Famlias de microcontroladores e plataformas de desenvolvimento............................8
2 Arduino..........................................................................................................................8
3 Microcontroladores ATMEL...........................................................................................9
4 Microcontroladores MICROCHIP...................................................................................10
5 Linguagens de programao para microcontroladores.................................................11
6 Compiladores para microcontroladores........................................................................13
7 Escolhendo uma linguagem de programao................................................................15
8 Estudando os comandos Bsicos da Linguagem Escolhida............................................16
9 Montando um ambiente de trabalho no PC...................................................................19
10 Compilando um programa simples...............................................................................22
11 Introduo plataforma de hardware..........................................................................23
12 Conhecendo o Autor.....................................................................................................
Fase 2 Sensores
0 Sensores..........................................................................................................................25
1 Sensor de luz...................................................................................................................26
2 Sensor de Movimento.....................................................................................................27
3 Sensor de Presso...........................................................................................................
4 Sensor de corrente..........................................................................................................
5 Sensor Magntico............................................................................................................
6 Sensor Final de curso.......................................................................................................
7 Sensor de Gs..................................................................................................................
8 Sensor de som.................................................................................................................
9 Sensor de umidade..........................................................................................................
10 Sensor de temperatura..................................................................................................
edukatika@hotmail.com
6
1 - Reles
2 Solenoides
3 Motores corrente continua
4 Motores de passo
5 Servo motores
edukatika@hotmail.com
7
(rs232) ECELL
19 Controles remotos por RF TX 20 Controles remotos por RF RX
Fase 7 A Pratica
Onde veremos a aplicao pratica de tudo que estamos aprendendo!
Fase 1 - O inicio
1 Famlias de microcontroladores e plataformas de desenvolvimento.
- Poder de processamento
- Velocidade de processamento
- Alta densidades de funes
- Excelente quantidade de pinos I/O
- Fcil implementao de linguagens de programao
- Quantidade de fabricantes
Vamos relacionar algumas famlias de microcontroladores e seus fabricantes esta lista pobre
porem objetiva para nossos propsitos para aqueles que so iniciantes.
Intel
Renesas
Motorola
Siemens
Atmel
Microchip
National
ALTERA
edukatika@hotmail.com
8
2 Arduino
Com toda certeza o ARDUINO a bola da vez da ltima dcada! Tem a maior rede de
colaboradores do mundo muito difundido em todo o planeta. Voc j est cansado de saber
qual a aparncia do arduino, mas vamos reforar observado a foto ARDUINO1 e ARDUINO2
Figura 1 - Arduino 01
Figura 2 - Arduino 02
Com toda certeza uma das maiores armas do ARDUINO a sua facilidade e o marketing
pesado que fixou esse produto no planeta! No vamos entrar no mrito desta questo, pois
no a inteno gerar polemica nossa inteno ensinar a pensar!
Portanto no vamos nos fixar na plataforma ARDUINO neste primeiro momento.
3 Microcontrolador ATMEL
edukatika@hotmail.com
9
Figura 3 - ATMEL
4 Microcontroladores MICROCHIP
Figura 4 - Microchip
edukatika@hotmail.com
10
Em nossos estudos iremos falar sobre vrios processadores desta linha alguns deles ser:
PIC12F675
PIC12F683
PIC16F84A (obsoleto)
PIC16F628A
PIC16F876A
PIC16F877A
PIC18F4550
Vamos estudar cada um deles de forma objetiva para podermos ter uma viso rpida e focada
em como iniciar um projeto e como escolher os microcontroladores e linguagem de
programao e compiladores.
edukatika@hotmail.com
11
No se preocupe em entender cada comando! Neste ponto o que voc precisa ter em mente
que o ASSMBLER extremamente potente porque age diretamente no ncleo do
microcontrolador, ou seja, um comando dado vai diretamente para processamento.
Essa caracterstica do ASSEMBLER nica, pois qualquer outra linguagem se torna menos
eficiente se comparada ao assembler. Porem devido as dificuldades em aprender a linguagem
vamos nos focar em uma linguagem mais simples! E importante que voc no se limite a
conhecer uma nica linguagem de programao pois cada uma delas tem uma peculiaridade
que deve ser respeitada.
Vamos citar algumas delas.
PASCAL
C
BASIC
ASSEMBLER
Obviamente que existe mais, porem para que voc possa entender vamos nos limitar a poucas
e dar nfase no BASIC.
Calma no o BASIC que ouvimos falar nos anos 80, parecida, mas no tem nada a ver.
Vamos fazer um comparativo em trs linguagens de programao para microcontroladores
para voc entender como uma se difere da outra. Veja o quadro abaixo!
Perceba que o comando ADCON1 igual em todas as linguagens porem escritos de forma
diferentes ( escrito significa SINTAXE DO COMANDO ).
As sintaxes so diferentes pois varia de acordo com o COMPILADOR a ser usado porm
ADCON1 nativo do microcontrolador ou seja independente do compilador ele sempre vai se
chamar ADCON1, por isso importante antes de mais nada sempre estudar o datasheet do
microcontrolador escolhido.
Vamos resumir este tpico de forma simplria e afirmar que :
De acordo com a linguagem escolhida muda-se a sintaxe de escrita do comando, podemos ter
mais ou menos eficincia no compilador mas no se muda o set de instrues do
edukatika@hotmail.com
12
microcontrolador. SET de instrues so os comandos internos que o microcontrolador vai
entender independente da linguagem ser ASSEBLER, C, ou PICBASIC PRO.
Agora chegou a hora de abranger um assunto interessante que os compiladores. Mas o que
compilador? Novamente vamos fazer uma definio simplria e objetiva:
COMPILADORES so softwares que TRADUZ os comandos de uma linguagem para a sua forma
nativa de uso, ou seja, transforma comandos fceis de nos seres humanos entenderem em
cdigo de mquina. Isso ai pessoal! No importa a linguagem que voc utiliza depois tudo vira
ASSEMBLER que a linguagem nativa do microcontrolador. Porem devemos fazer uma
ressalva.
Quando usamos um compilador existe uma certa perca de capacidade na eficincia do
programa final uma delas a velocidade de execuo das instrues.
Porem! Isso no interfere em absolutamente nada para iniciantes. Muito pelo contrrio!
Comece todo do comeo!! Ou seja, jamais compre uma moto sem nunca ter andado de
bicicleta (vai ser um desastre e muito doloroso). Ao tomar banho tire a roupa. Sempre que for
comer banana descasque. Ento comea de forma simples para no desanimar na primeira
dificuldade e pode ter certeza que elas vo aparecer!
edukatika@hotmail.com
13
Figura 6 - Tela de trabalho do compilador C
edukatika@hotmail.com
14
Figura 8 - Tela de trabalho do compilador PICBASIC PRO (o escolhido)
A escolha da linguagem de programao deve ter como base inicial qual o nvel de
conhecimento que cada um tem! No adianta voc tentar usar o assembler se o seu primeiro
contato com a programao de microcontroladores. Caso voc escolha o assembler a
possibilidade de desistir do assunto enorme.
De incio uma vantagem!! de graa! Outra vantagem relativamente muito mais fcil!
Obviamente um produto de procedncia Americana (U.S.A), mais especificamente da
MicroEngineering Labs Inc este produto est no Mercado Mundial a mais de 15 anos, portanto
edukatika@hotmail.com
15
se voc nunca ouviu falar est explorando pouco sua capacidade tcnica.
Existe no mundo mais de 60 livros focados nesta linguagem com traduo para praticamente
todas as lnguas.
Possui distribuidores em praticamente todos os continentes. Na Amrica do Sul (Argentina) no
Brasil no existe distribuidor direto. Atualmente o PICBASIC PRO est na verso 3.0, mas
iremos abranger a verso 2.60 por ser gratuita e fazer praticamente a mesma coisa que a
verso 3.0 com exceo do ambiente de trabalho e alguns microcontroladores a mais.
O primeiro passo a ser dado estudar os comandos diretos ou instrues bsicas da linguagem
PICBASIC PRO. Na sequncia falaremos sobre operadores lgicos e matemticos. Fica tranquilo
(a) que a matemtica vai aparecer de forma leve e simples, nada que assuste.
Chega de conselhos que acreditamos que voc entendeu o conselho e vamos ao que importa!
Na tabela abaixo vamos iniciar os estudos dos comandos contidos na linguagem PICBASIC PRO,
vai ficar faltando os comandos matemticos ou funes matemticas e lgicas.
edukatika@hotmail.com
16
implementao da funo anti-repique ou
Debounce
CALL Chama uma rotina em assembler
CLEAR Zera as variveis do sistema
CLEARWDT Limpa o contador de guardaou Watchdog
COUNT Conta o nmero de pulsos gerados em um
determinado pino
DATA Escreve na memria EEPROM dados de uma
varivel
edukatika@hotmail.com
17
LCDOUT Envia comando para a RAM do LCD e comandos
de escrita no LCD
{LET} LET atribui a uma varivel um determinado valor
por exemplo LET X=10 significa que a varivel X
tem valor 10
LOOKDOWN Busca um valor constante em uma determinada
tabela com N valores
LOOKDOWN2 Busca um valor constante em uma tabela de
variveis
LOOKUP Escreve um valor lgico em uma tabela de
variveis
LOOKUP2 Escreve um valor constante em uma tabela de
variveis
LOW Coloca um pino de lgica 1 ou entrada em estado
lgico 0 ou baixo
NAP Coloca o processador em estado de dormncia
reduzindo o seu consume por um determinado
tempo ou quando acontecer uma determinada
condio
Ativa o comando ON DEBUG
ON DEBUG
ON INTERRUPT Executa uma rotina em BASIC quando uma
interrupo foi ativada
OWIN Comando de entrada para dispositivos perifricos
com teologia UM FIO (one-wire input)
OWOUT Comando de sada para dispositivos perifricos
com tecnologia UM FIO (one-wire output)
OUTPUT Define um pino do microcontrolador para ser
SAIDA
PAUSE Provoca um delay (atraso) ou espera com
resoluo de 1mSegundo
PAUSEUS Provoca um delay (atraso) ou espera com
resoluo de 1mMicrosegundo
POT Comando para ler o valor gerado por um
potencimetro ligado diretamente a qualquer pino
do microcontrolador
PULSOIN Efetua a leitura de pulso de entrada em um
determinado pino
PULSOUT Efetua a gerao de pulso na sada de um
determinado pino com largura e frequncia
ajustvel
PWM Gera um pulso de PWM na sada de um
determinado pino
RANDOM Gera um nmero aleatrio
RCTIME Measure pulse Efetua a medida de um pulso em um determinado
width on a pin pino atravs de uma associao RCTIME, ou seja,
uma rede de tempo constituda por um resistor e
um capacitor
READ Efetua leitura de um byte na memria EEPROM
READCODE Efetua a leitura de uma palavra na memria
EEPROM
RESUME Continua a execuo aps uma interrupo por
ON-INTERRUPPT
RETURN Volta para a linha subsequente ao comando
GOSUB
REVERSE Reverte muda um mesmo pino tanto para ser
entrada como sada em um determinado tempo ou
condio
edukatika@hotmail.com
18
. Select Case usando para comparar uma condio
SELECT CASE de cada varivel e de acordo com cada condio
desviar o fluxo do programa para uma determinada
condio ou ao
SERIN Entrada serial assncrono padro BS1
SERIN2 Entrada serial assncrono padro BS2
SEROUT Sada serial assncrono padro BS1
SEROUT2 Sada serial assncrono padro BS2
SHIFTIN Comando para entrada serial assncrona
SHIFTOUT Comando para sada serial assncrona
J estamos chegando perto da pratica! E para comearmos a parte pratica vamos precisar
instalar nossas ferramentas no PC.
j escolhemos a linguagem de programao! J escolhemos o compilador agora vamos ao
prximo passo que a instalao das ferramentas de trabalho. Vamos disponibilizar para voc
de forma gratuita as ferramentas iniciais para comearmos nosso aprendizado.
Voc precisara fazer o Download dos seguintes programas:
1 MPASMWIN520
2 MCSINSTALL_V4.0
3 pbp_2.60
Vamos a descrio:
MPASMWIN520 o nosso compilador que vai pegar nosso cdigo fonte escrito em PicBasic
Pro e ira transformar em MNOMICOS ou Assembler do processador escolhido gerando um
arquivo ASM de ( Assembler ) e no final um arquivo .HEX que ser gravado no
edukatika@hotmail.com
19
microcontrolador.
MCINSTALL_V4.0 a interface grfica que ir servir de tela de desenvolvimento ou seja onde
iremos escrever os comandos do PIC BASIC PRO .
PBP_2.60 Esta a linguagem de programao em questo a qual estudamos os comandos
anteriormente.
Vejamos agora a aparncia de cada uma das telas de nossas ferramentas depois de instaladas
e funcionando.
MPASMWIN520: Na figura MPASM o que voc vai ver quando o programa estiver efetuando
a compilao de um programa.
MCINSTALL_V4.0 Depois de instalado ele tem a aparncia da foto abaixo. E na tela do seu PC
seria criado um atalho com o nome MicroCode Studio.
edukatika@hotmail.com
20
Figura 10 - Ambiente de desenvolvimento em atividade
PBP 2.60 instalado no PC: Viso de como fica depois de instalado o PBP 2.60. Pois bem aps a
instalao do PBP 2.60 o que voc vai ter exatamente isso! Em seu PC existira um diretrio
que contm arquivos de inicializao de todos os microcontroladores compatveis com o
compilador. Esses arquivos possui uma extenso .INC que significa .INC = INICIALIZAO e um
segundo arquivo .BAS extenso do PICBASIC PRO o qual ativado quando compilamos um
programa usando o ambiente grfico mencionado acima o MicroCode Studio o qual quando
voc pressionar a tecla F9 para compilar o programa ativa o programa MPASMWIN520 e o
ciclo se fecha e voc compila um programa para o seu microcontrolador!
edukatika@hotmail.com
21
Figura 11 - PicBasic Pro 2.60 aps estar instalado no PC
Para aprender passo a passo com instalar e configurar faa o download dos arquivos de
programas atravs dos links:
Arquivo TOOLS neste link para download direto em seu PC voc deve descompactar em uma
pasta e seguir os procedimentos de instalao!
E para efetuar a instalao siga estes vdeos disponibilizado em nosso canal no Youtube.
https://www.youtube.com/watch?v=v8sFeUXon3Q
https://www.youtube.com/watch?v=5X8OckZsIGk
No temos com compilar um programa ou comear algo sem definir ou organizar nossas ideias
e objetivo e necessidades!
Ento vamos pensar de forma simples, mas objetiva. Vamos imaginar que queremos um
dispositivo que LIGA A ILUMINAO quando detecta a presena de movimento e a matem
acesa em quanto existe movimento no ambiente e que desliga a iluminao quando o
movimento finaliza.
Condio indefinida, ou como detectaremos se o movimento no causado por um animal ou
como saberemos se o movimento findou devido a pessoa est dormindo?
Definio de qual microcontrolador utilizar? Como podemos definir qual processador utilizar?
edukatika@hotmail.com
22
Vamos analisar alguns pontos:
1 Estamos iniciando nosso aprendizado ento precisamos de uma plataforma simples para
um hardware que disponibiliza todas as portas do PIC.
2 Devemos escolher um PIC de baixo custo!
3 No podemos desperdiar dinheiro!
4 Precisamos ser rpidos no desenvolvimento
5 Precisamos ser competitivos na no quesito tempo de desenvolvimento.
Chegou a hora de conhecer o hardware. No item 11 logo abaixo valos fazer uma introduo
sobre a plataforma de desenvolvimento de hardware.
edukatika@hotmail.com
23
Figura 12 - PCB KIT PIC
1 - Facilidade de compra;
2 Valor do produto;
3 Quantidade de informaes tcnicas sobre o microcontrolador.
Seguindo uma linha de raciocnio lgico uma vez que o KIT utiliza como padro o PIC 16F628A
vamos obviamente utilizar ele, pois tem as caractersticas que precisamos e um investimento
nico.
edukatika@hotmail.com
24
Figura 13 - PINOS_PIC1
edukatika@hotmail.com
25
No caso do 16F628A todos os pinos de todos os PORTs podem ser entradas e sadas! No
vamos neste e-book nos aprofundar no PIC16F628A ou qualquer outro, mas vamos sim
estudar o que necessrio para a implementao de um circuito experimental descrito no
incio do item 10.
Fase 2 - Sensores
Sensores
edukatika@hotmail.com
26
Sensor tctil Sensor de
Tipos de sensores
Resumidamente temos sensores de famlias pticas que so todos os modelos que se utiliza de
algum tipo de iluminao, sensores mecnicos que possui algum contato mecnico e sensores
eletrnicos que so sensores como o DS18B20 que um sensor de temperatura.
1- Sensores de luz
Ou sensor detector de luminosidade! Temos trs tipos de sensores bsicos nesta linha que so
os sensores de CLARIDADE, ou seja, luz branca visvel como os LDRs ver figura.
Funcionamento bsico dos LDRs muito simples, quando existe a incidncia de LUZ o LDR
baixa drasticamente sua resistncia passando a conduzir eletricidade!
edukatika@hotmail.com
27
Na terceira modalidade temos os sensores a laser onde temos um feixe de luz laser ao qual
utilizamos um detector de luz para detectar o deixe de luz laser.
2- Sensores de movimento
Sensor de movimento
edukatika@hotmail.com
28
Devemos destacar na figura acima o sensor PIR e os ajustes possveis no modulo de controle e
os pinos de controle do modulo! Os pinos de controle so simples e bvios sendo:
1 Vcc (3,3v )
2 GND (terra)
3 Sinal
Antes de falarmos sobre outros modelos de sensores vamos falar um pouco da rea comercial
que devemos levar em considerao uma vez que estamos estudando para produzir algo pode
passar por nossa cabea fazer algo em larga escala de fabricao!
FASE 7 A PRATICA
Obviamente depois de tanto estudo e dedicao no podemos deixar de falar da parte pratica
do nosso e-book. Nesta FASE do nosso estudo iremos comear pela pratica em um circuito
simples onde iremos aprender de forma real como construir um detector automatizado de
movimento.
Antes vamos falar um pouco sobre a parte comercial e econmica de um projeto! Quando
somos contratados para fazer algo por algum o contratante ou nosso patro espera de um
projeto algo simples, eficiente de baixo custo de pouca manuteno de grande aceitao
comercial. Ento voc precisa est preparada para pensar como seu patro ou como seu
contratante.
Em nosso primeiro exerccio pratico vamos tirar como exemplo a foto comercial do produto
abaixo o vamos chamar de DETECTOR_COMERCIAL1 e 2.
edukatika@hotmail.com
29
qualquer coisa os produtos indicados nas figuras acima so vendidos em torno de R$ 35,00 a
R$ 65,00 na data de 12/2015.
muito importante abranger de forma profissional a maneira como devemos pensar quando
estamos envolvidos com algo tcnico e comercial.
No se esquea do valor mdio que o produto vendido, voltaremos a falar sobre isso!
Pratica 1
edukatika@hotmail.com
30
Figura 14 - Pratica_diagrama1
Agora vamos pensar simples! Preciso fazer com que um microcontrolador detecte o sinal na
sada do sensor e execute as funes desejadas.
Ops....agora entrou o tal do microcontrolador! Ento vamos dar uma olhada na figura
representativa do microcontrolador e falar sobre os pinos e sua funcionalidade. Para que
possamos comear a dar a cara de um projeto!
Aqui est a nossa criatura de 18 pernas... ou pinos o que precisamos fazer agora e escolher
qual dos pinos vamos utilizar. E como fazemos esta escolha? Bem agora a hora que voc
comea a entender o porqu das coisas.
Mas lembre-se no vamos nos fixar no microcontrolador e sim em nosso projeto inicial, o
microcontrolador o aperitivo, mas precisamos falar sobre ele! De incio dos 18 pinos vamos
precisar verdadeiramente somente de quatro (4), sim isso mesmo quatro pinos! Mas porque
estamos usando um de 18 pinos? Simples porque temos muito pela frente para ensinar e voc
muito pela frente em aprender.
E quais so os pinos que vamos utilizar? Veja abaixo na tabela!
edukatika@hotmail.com
31
PINO Descrio
Pino 5 VSS Pino de terra ou alimentao negativa
Pino 14 Vdd ou VCC Pino de alimentao positive 5V
Pino 17 RA0 Pino ao qual entrara o sinal do detector de movimento
Pino 18 RA1 Pino ao qual iremos ativar um rele para acionamento da carga eltrica
Perfeito!? Agora que sabemos os pinos a serem utilizados vamos ao prximo passo?
Errado.....vamos nos perguntar o porqu escolhemos esses pinos? Perfeito se voc se
perguntou isso parabns est no caminho certo! Uma rpida explicao do porqu da escolha
dos pinos informados simples. No caso da alimentao +VCC/VDD e VSS/TERRA pinos 5 e 14
impossvel fazer algo sem alimentao porem os pinos 17 e 18 chamados de RA0 e RA1
devido a facilidade de configurao do hardware. Isso mesmo quando escolhemos um pino
para trabalhar com ele precisamos programar ele para ser uma entrada ou uma sada!
Precisamos tambm de saber que tipo de tenso ou sinal estar em sua entrada ou sada! Qual
a frequncia e depois que voc tem essas informaes voc escolhe as PORTAS de I/O (i/O =
In/out ou entrada e sada) e (vamos parar de chamar de pino correto?).
Ento cada pino de I/O pode ter uma funo ou capacidade diferente um do outro alguns
pinos pode receber sinais analgicos (que varia a tenso de 0 a X volts, normalmente no
Mximo 5V e em modelos mais modernos no Mximo 3.3v ). Em nosso caso sabe-se que o
detector de movimento a ser usado mostrado na figura PRATICA-1 trabalha com 3.3v.
Percebeu bem a nossa afirmao? Sim isso mesmo 3.3V! Porm o microcontrolador escolhido
trabalha com 5,0V isso um problema? Sim um problema porem fcil de resolver e veremos
isso a frente!
No momento foi definido que vamos usar dois pinos de alimentao e dois pinos de I/O. Mas
como fica isso eletronicamente falando? At agora foi somente letras e mais letras e agora?
Bem agora vamos fazer um diagrama eletrnico simples! Est logo abaixo o diagrama AULA1
AULA 1
edukatika@hotmail.com
32
Vamos analisar o diagrama da AULA 1 e descrever de forma rpida voc pode ler ou ver o
vdeo aqui!
Analise do circuito:
Voc pode assistir a esta anlise do circuito aqui copiando e colando em seu navegador:
https://www.youtube.com/watch?v=jjxbp5h6ce0
O conector J1 responsvel por receber a fonte de alimentao que pode ser uma fonte de
12V ou uma bateria de 9V. A tenso entra por J1 e vai para o IC2 que um regulador de tenso
LM7805 este componente tem como funo reduzir a tenso de entrada de 12V ou 9V para os
5V regulados que o PIC precisa! O capacitor C4 e C6 filtra qualquer rudo da fonte e o resistor
R18 polariza o diodo LED (luzinha Power on). O resistor R11 ligado a base do transistor quando
ativado pelo microcontrolador em nvel lgico 1 ou seja (ALTO) liga a bobina do rele K1 atravs
do diodo de proteo do circuito D1.
O que vem a ser um conversor de nvel de tenso? Quando trabalhamos com nveis lgicos
TTL/CMOS sabemos que o nvel 1 ou alto de 5V e o nvel 0 BAIXO qualquer tenso com
menos de aproximadamente 2,85V. Porem com a nova tecnologia muitos componentes esto
trabalhando com tenso de alimentao de 3,3V sendo assim o nvel de tenso para o que era
nvel 1 = 5V em alguns casos hoje em dia de 3,3V.
Ento teremos problemas em trabalhar com lgica nvel 1 de 3,3V com lgica de 1 de nvel
de 5V. Ento precisamos compatibilizar os sinais! Para isso precisamos de alguns poucos
componentes entre o perifrico de 3,3V e o de 5,0V. Veja a foto abaixo.
Nvel lgico
edukatika@hotmail.com
33
O PRIMEIRO PROGRAMA NINGUEM ESQUECE
Tomara que voc nunca mais esquea mesmo este primeiro programa que a partir de agora
moda de nome! Muda de PROGRAMA para FIRMWARE sim isso mesmo!
Firmware nome dado ao programa contido de um chip ou microcontrolador a partir de
agora vamos passo a passo desvendar como fazer isso!
Ou seja, de um simples microcontrolador sem funo alguma para um dispositivo eletrnico
de controle com utilidade comprovada! Relembrando o que precisamos fazer! Na pgina 30
descrevemos a seguinte necessidade.
Tambm foi definido que iramos utilizar os seguintes sinais de I/O do Microcontrolador
descrito na pgina 32.
PINO Descrio
Pino 5 VSS Pino de terra ou alimentao negativa
Pino 14 Vdd ou VCC Pino de alimentao positive 5V
Pino 17 RA0 Pino ao qual entrara o sinal do detector de movimento
Pino 18 RA1 Pino ao qual iremos ativar um rele para acionamento da carga eletrica
Pronto! Agora que sabemos o que queremos vamos voltar no tempo, no espao e nas pginas
e comear a dar uma olhada na tabela de comandos da linguagem PICBASIC PRO pagina de 16
a 19. E agora como ficamos?
Simples! Comece a raciocinar! Pegue o datasheet do PIC16F628A, neste link deixe o PC com a
tela do GOOGLE TRADUTOR aberta e larga de preguia!
Voc topa aprender? Ento siga os passos....
edukatika@hotmail.com
34
cristal oscilador e nas pagina 71 sobre o reset interno. Perceba que no vamos usar, mas como
pode? No precisa?
Para isso vamos escrever nestes bits a seguinte condio: Calma isso feito na hora de gravar
o microcontrolador! Vamos chegar l!
' 13 8 7 6 5 4 3 2 1 0 *
' 1 1 0 1 1 1 1 1 0 1 desliga clock externo = 3F7D *
' 1 1 0 1 0 1 1 1 0 1 desliga reset externo = 3F5D *
DEFINE OSC 4
Mas o que este comando faz exatamente? Parece obvio ele DEFINE que o oscilador de CLOCK
trabalha em uma frequncia de 4 Mhz. Simples e obvio n? OPS....lembre-se esta sequncia
quase padro para tudo o que voc for fazer !
Prximo passo ! Sabemos que os microcontroladores podem trabalhar com sinais digitais e
analgicos porem em nosso primeiro exemplo vamos trabalhar somente com sinais digitais!
Ento devemos desligar todas as funes dos pios que no seja digital! Como fazermos isso?
Novamente vamos ao datasheet do PIC16F628A pagina XXXX e no manual do PICBASIC PRO na
pgina XXXXX e pronto descobrimos que para definirmos que todos as portas de I/O do
microcontrolador ser digital precisamos do comando abaixo em nosso firmware:
CMCON = 7
Certo, mas como assim? CMCON = 7 !! Na verdade, esta linha de comando interpretada pelo
compilador como um comando padro para os microcontroladores o 7 na verdade um
nmero decimal que seria convertido em binrio e ficaria assim 00000111 e somente os trs
ltimos bits em 1 iria desligar os registradores internos do microcontrolador fazendo com que
as portas trabalhem com nvel lgico 1 e 0. Confuso?
edukatika@hotmail.com
35
Calma o primeiro passo para uma corrida! Tudo se encaixa em breve e obviamente se voc
se dedicar.
Bem! Sabemos que vamos ligar um sensor de movimento no pino de I/O RA0 e no pino de I/O
RA1 iremos ligar um rele!
Precisamos dar nome aos pinos de I/O em nosso firmware. Ento devemos fazer o seguinte:
rele VAR PORTA.1 Criamos a varivel chamada RELE e atribumos ela atravs de VAR a PORTA.1
Comando que devemos estudar? (VAR) o que devemos entender? Que atribumos a varivel
RELE o nome de PORTA.1 que onde o rele est ligado ao hardware.
pir VAR PORTA.0 Criamos a varivel chamada PIR e atribumos ela atravs de VAR a PORTA.0
Comando que devemos estudar? (VAR) o que devemos entender? Que atribumos a varivel
PIR o nome de PORTA.0 que onde o sensor de movimento est ligado ao hardware.
J demos alguns passos para o paraso! Agora devemos ter em mente que nos mesmos
definimos que queremos que este hardware aps um tempo sem detectar movimento se
desligue! Isso est escrito na pgina 34 item 3. Ento nos mesmos criamos uma varivel de
tempo pois queremos que depois de um TEMPO se desligue! Ento vamos a ela.
cont VAR WORD Criamos uma varivel chamada CONT e informamos que ela uma WORD ou
seja uma palavra que pode conter um nmero entre 0 a 65535
Comando que devemos estudar? (VAR) o que devemos entender? Que atribumos a varivel
CONT a condio de poder armazenar um nmero entre 0 a 65535. Este nmero ser usado
para criar o tempo em que o dispositivo fica ativo ou desativo ao detectar movimento!
PAUSE 1000 Efetuamos uma pausa no sistema onde se estabiliza todas as funes internas e no
termino do tempo que milissegundos o fluxo do programa continua normalmente.
Comando que devemos estudar? (PAUSE e PAUSEUS) o que devemos entender? Que
podemos colocar um comando que gera um atraso ou delay na execuo dos programas, isso
tem uma utilidade enorme na construo de um firmware.
Depois que definimos portas e variveis agora devemos trabalhar com os pinos de I/O um
ponto importante que podemos definir se queremos que os pinos de I/O se inicialize em
nvel 1 ou 0.
Em nosso caso precisamos manter os pinos de I/O utilizado no projeto em nvel 0. Vejamos
como fazer isso!
edukatika@hotmail.com
36
Inicio: Inicio da rotina principal
LOW rele Usamos o comando LOW para manter a varivel rele em zero mas quem rele ? o pino
de I/O RA1 ou PORTA.1
LOW pir Usamos o comando LOW para manter a varivel pir em zero mas quem pir ? o pino de
I/O RA0 ou PORTA.0
Comando que devemos estudar? (LOW e HIGH) o que devemos entender ? Que podemos
colocar um pino de I/O em nvel ALTO (1) ou baixo (0) quando quisermos. E com extrema
facilidade.
Vamos programar? Ou melhor! Vamos fazer nosso primeiro firmware. Bem, agora vamos
comear a rotina de verificao sinal gerado pelo detector de movimento! Para isso
precisamos LER o pino de I/O PIR PORTA.0 e como faremos isso? Simples acompanhe as trs
(3) linhas do quadro abaixo!
lendo_PIR: O nome da rotina de leitura do PIR lendo_PIR os dois pontos : indica o comeo de uma
rotina
If PIR = 1 then m_pir ->: Esta linha testamos a condio se PIR = 1 ento desvie para a rotina M_PIR,
esta linha de comando fica esperando a entrada PIR mudar de nvel lgico 0 para 1 quando isso ocorre
porque foi detectado movimento e devemos fazer alguma coisa indicada em M_PIR
goto lendo_pir -> : Esta linha manda o programa firmware entrar em loop e no parar de ler o pino de
I/O pir em quanto o nvel lgico na entrada no mudar.
Montamos a primeira rotina do firmware a que vai ler o sensor PIR na PORTA.0 do
microcontrolador! Porem caso o detector de movimento detecte movimento foi criado um
desvio que vai para a rotina M_PIR!
M_PIR: Inicio da rotina M_PIR os dois pontos : indica o comeo de uma rotina no se esquea
high rele : Coloca a sada rele em condio de nvel alto 1 ou seja liga o rele
if pir = 1 then m_pir : Testa novamente se a porta I/O PIR esta en nivel 1 caso esteja volta para M_PIR
pause 200 : Executa uma pausa de 200 mCs
if pir = 0 then N_PIR : Testa porta de I/O PIR caso esteja em 0 salta para rotina N_PIR
goto M_PIR : volta para rotina M_PIR
No perca o raciocnio!! A rotina M_PIR a rotina que ativa/desativa o rele quanto existe
movimento ou a falta de movimento! Em caso de falta de movimento a rotina movida para
N_PIR. Vejamos as explicaes no quadro abaixo!
N_PIR: Inicio da rotina M_PIR os dois pontos : indica o comeo de uma rotina no se esquea
Low rele : Coloca a sada rele em condio de nvel Baixo 0 ou seja desliga o rele
if pir = 1 then N_pir : Testa novamente se a porta I/O PIR esta en nivel 1 caso esteja volta para N_PIR
if pir = 0 then M_pir : Testa novamente se a porta I/O PIR esta en nivel 0 caso esteja volta para M_PIR
goto inicio : volta para a rotina INICIO
END : Fim do programa
edukatika@hotmail.com
37
Comando que devemos estudar? Devemos entender o mecanismo de rotinas e sub-rotinas, o
comando de teste de condio IF THEN, GOTO e END!
Mas! Nem tudo so flores e ainda falta a implementao da etapa de controle de varredura
por tempo! Ou seja, o tempo que o microcontrolador vai ficar parado at checar novamente
o ambiente!
Mas isso veremos em breve! Agora vamos ver atentamente a tela abaixo onde temos a tela
completa do software do compilador/editor.
Tela do editor/compilador
'****************************************************************
'* Name : PIR_1.PBP *
'* Author : [Clovis Magoga Rodrigues - www.edukatika.com.br] *
'* Notice : Edukatika - Robtica Educacional] *
'* : Exemplo de programa com finalidade Educacional *
'* Date : 18/11/2015 *
'* Version : PIC16F628/627 *
'* Notes : Teste de deteco de movimento usando modulo PIR
'---------------------------------------------------------------
' 13 8 7 6 5 4 3 2 1 0
' 1 1 0 1 1 1 1 1 0 1 desliga clock exteno = 3F7D
edukatika@hotmail.com
38
' 1 1 0 1 0 1 1 1 0 1 desliga reset externo = 3F5D
'****************************************************************
DEFINE OSC 4 ; Define a frequncia do Cristal em 4Mhz
CMCON = 7 ; define as portas como DIGITAIS
rele var PORTA.1 ; seta o rele em PORTA.1 pino 18
pir var PORTA.0 ; seta modulo PIR PORTA.0 pino 17
cont vAR WORD ; varivel VAR com capacidade de 0 a 65535
Pause 1000
:020000040000FA
:100000002828A301A200FF30A207031CA307031C9A
:1000100023280330A100DF300F200328A101E83E90
:10002000A000A109FC30031C1828A00703181528FC
:10003000A0076400A10F152820181E28A01C222844
:1000400000002228080083130313831264000800B1
:1000500007309F000330A300E8300220C8300120A1
:1000600086118316861183120512831605128312D8
:100070006400051A3C28382886158316861164000A
:100080008312051A3C28C83001206400051E492847
:100090003C2886118316861164008312051A4928AC
:0C00A0006400051E3C282E286300542834
:02400E006D3F04
:00000001FF
edukatika@hotmail.com
39
No quadro acima temos o contedo do cdigo compilador que ser gravado dentro do PIC,
todos os comandos que estudamos no quadro acima referente ao programa exemplo
PIR_1.PBP.
Para fecharmos o ciclo de raciocnio veja o quadro abaixo onde vemos o cdigo nativo em
ASSEMBLER. No se preocupe com isso! O que queremos mostrar que no final tudo
ASSEMBLER mesmo de uma forma indireta!
; PICBASIC PRO(TM) Compiler 2.60, (c) 1998, 2009 microEngineering Labs, Inc. All Rights Reserved.
_USED EQU 1
INCLUDE "C:\PBP6\16F628A.INC"
; Define statements.
; C:\PBP6\PIR\PIR_1.PBP 00014 DEFINE OSC 4 ; Define a frequencia do Cristal em 4Mhz
#define OSC 4 ; Define a frequencia do Cristal em 4Mhz
edukatika@hotmail.com
40
; C:\PBP6\PBPPIC14.RAM 00023 A00037 RR2 VAR BYTE BANK0 SYSTEM ' Pin 2 Register
RR2 EQU RAM_START + 017h
; C:\PBP6\PIR\PIR_1.PBP 00018 A00038 cont vAR WORD ; variable revo con capacidad de 0 a
65535
_cont EQU RAM_START + 018h
; C:\PBP6\16F628A.BAS 00020 PORTL VAR PORTB
_PORTL EQU PORTB
; C:\PBP6\16F628A.BAS 00021 PORTH VAR PORTA
_PORTH EQU PORTA
; C:\PBP6\16F628A.BAS 00022 TRISL VAR TRISB
_TRISL EQU TRISB
; C:\PBP6\16F628A.BAS 00023 TRISH VAR TRISA
_TRISH EQU TRISA
#define _rele _PORTB??3
#define _pir _PORTA??4
#define _PORTB??3 PORTB, 003h
#define _PORTA??4 PORTA, 004h
INCLUDE "PIR_1.MAC"
INCLUDE "C:\PBP6\PBPPIC14.LIB"
LABEL?L _inicio
LABEL?L _lendo_PIR
LABEL?L _m_pir
edukatika@hotmail.com
41
; C:\PBP6\PIR\PIR_1.PBP 00034 if pir = 0 then N_PIR
CMPEQ?TCL _pir, 000h, _N_PIR
LABEL?L _N_PIR
END
Neste ponto fechamos o ciclo inicial do nosso estudo! O prximo passo ser a montagem real
do circuito eletrnico e teste do hardware, a gravao do microcontrolador e prova de
funcionamento.
Prximos passos:
edukatika@hotmail.com
42