Académique Documents
Professionnel Documents
Culture Documents
Robtica, Microcontroladores
Automao
O princpio de tudo!
edukatika@hotmail.com
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.
Linguagens de programao, tecnologia embarcada, sistemas microcontrolados. Famlias de
microcontroladores e aplicaes bsicas e reais.
Controle de motores eltricos, servos e motores de passo. Medio de temperatura e presso!
Automatizao de maquinas e dispositivos de controles residenciais.
edukatika@hotmail.com
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
Dedicatria
Dedico a quem me deu a vida.
edukatika@hotmail.com
edukatika@hotmail.com
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
1 - Reles
2 Solenoides
3 Motores corrente continua
4 Motores de passo
5 Servo motores
7 Relgio/timer microcontrolador
9 Geraes de caracteres especiais em LCD
11 Geraes de som
13 Comunicaes seriais PIC a PIC
15 Controles de servo porta SERIAL (PC)
17 Conversores anlogo/digital LCD e PC
edukatika@hotmail.com
(rs232)
19 Controles remotos por RF TX
ECELL
20 Controles remotos por RF RX
Fase 7 A Pratica
Onde veremos a aplicao pratica de tudo que estamos aprendendo!
1 Detector de Movimento PIR.......................................................................................29
2 Vamos ao que interessa!............................................................................................30
3 Analisando o circuito eletrnico do primeiro projeto.................................................33
4 O primeiro programa ningum esquece......................................................................34
Fase 1 - O inicio
1 Famlias de microcontroladores e plataformas de desenvolvimento.
Seria impossvel falar de Robtica e automao sem falar em microcontroladores. Com a
evoluo da eletrnica os microcontroladores passaram a evoluir de forma rpida em todos os
quesitos.
- 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
Antes de falarmos propriamente dito dos microcontroladores vamos falar sobre as
plataformas de desenvolvimento. Plataformas de desenvolvimento so nada mais nada menos
do que uma placa eletrnica contendo um microcontrolador de uma determinada famlia
(fabricante) a qual temos como explorar as suas funcionalidades.
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
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
Uma vasta linha de microcontroladores da Atmel possui uma grande quantidade de
microcontroladores voltados para as mais abrangentes reas da eletrnica possui
microcontroladores para reas automotivas, medica, automao, controle de movimento,
aparelhos domsticos, automao residncia e predial, iluminao e perifricos para PC. O
ARDUINO
na
sua
essncia
utiliza
microcontroladores
ARTMEL.
Os microcontroladores ATMEL so disponibilizados com 8 e 32 bits. Para maiores detalhes
acesse este link http://www.atmel.com/pt/br/ . Veja a figura ATMEL.
edukatika@hotmail.com
Figura 3 - ATMEL
4 Microcontroladores MICROCHIP
A famlia de microcontroladores escolhido para nosso e-book ser da microchip!
A Microchip veja o site http://www.microchip.com/ foi escolhida devido a uma gama enorme
de microcontroladores e custo baixo e facilidade de obteno a baixo custo no Brasil>
Alm de possuir uma famlia de microcontroladores de 8, 16 e 32 bits possui um excelente
leque de possibilidades e aplicaes e compatibilidade com linguagens de fcil assimilao.
A linha de microcontroladores da Microchip tambm abrange vrias reas da eletrnica
possui microcontroladores para reas automotivas, medica automao controle de movimento
aparelhos domsticos, automao residncia e predial, iluminao, aeroespacial, udio e voz,
processadores DSP e uma infinidade que voc pode consultar o site no link acima. Veja figura
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!
Comando
ADCON1
0x0F;
:=
ADCON1
or
Linguagem
Pascal ( mikroPascal)
ADCON1 |= 0x0F;
C (mikroC)
Basic(MikroBasic)
define ADCON1
Aplicao
Define o conversor Anlogo
digital ACDCON endereo
0x0F
Define o conversor Anlogo
digital ACDCON endereo
0x0F
Define o conversor Anlogo
digital ADCON endereo 0x0F
Define o conversor analogo
digital ACDCON endereo
0x0F
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
edukatika@hotmail.com
13
edukatika@hotmail.com
14
enorme.
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.
voc!
5 Quer dominar algo? Ante junto com o que quer dominar, no descuide! Portanto neste
caso escolha um microcontrolador (ns faremos isso para voc) e pegue o manual dele ou
datasheet e o Google tradutor e traduza as cinco primeiras pginas do datasheet e voc estar
dando passos largos para entender o item 1.
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.
Vejamos a lista de comandos.
@
ADCIN
ASM..ENDASM
BRANCH
BUTTON
edukatika@hotmail.com
16
CALL
CLEAR
CLEARWDT
COUNT
DATA
DEBUG
DEBUGIN
DISABLE
DISABLE DEBUG
DISABLE INTERRUPT
DTMFOUT
EEPROM
ENABLE
ENABLE DEBUG
ENABLE INTERRUPT
END
FOR..NEXT
FREQOUT
GOSUB
GOTO
HIGH
HPWM
HSERIN
HSEROUT
I2CREAD
I2CWRITE
IF..THEN..ELSE..ENDIF
IMPUT
LCDIN
edukatika@hotmail.com
17
LCDOUT
{LET}
LOOKDOWN
LOOKDOWN2
LOOKUP
LOOKUP2
LOW
NAP
ON DEBUG
ON INTERRUPT
OWIN
OWOUT
OUTPUT
PAUSE
PAUSEUS
POT
PULSOIN
PULSOUT
PWM
RANDOM
RCTIME
width on a pin
READ
READCODE
RESUME
RETURN
REVERSE
Measure pulse
edukatika@hotmail.com
18
.
SELECT CASE
SERIN
SERIN2
SEROUT
SEROUT2
SHIFTIN
SHIFTOUT
SLEEP
SOUND
STOP
SWAP
TOGGLE
USBIN
USBINIT
USBOUT
WHILE..WEND
WRITE
WRITECODE
XIN
XOUT
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
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!
Parece fcil certo? E basta voc querer!
edukatika@hotmail.com
21
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
10 Compilando um programa simples
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
edukatika@hotmail.com
23
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.
Como estamos falando em automatizar um processo de ligar e desligar uma iluminao em um
ambiente precisou ter em mente que precisamos de um dispositivo de sensoriamento, ou seja,
precisamos de um sensor que detecta o movimento. Ento vamos para a FASE 2 SENSORES
depois voltamos para finalizar nossa primeira experincia pratica.
Fase 2 - Sensores
No existe uma maneira de automatizar um processo ou efetuar a medio de uma grandeza
sem o uso de sensores. Sensores eletrnicos podem ser encontrados nos mais variados tipos e
aplicaes! A tecnologia eltrica disponibiliza sensores para praticamente toda e qualquer
aplicao. Vamos enumerar alguns deles sem a pretenso de esgotar o assunto, nosso objetivo
estudar alguns modelos de sensores facilmente encontrados no comercio com valores
convidativos.
Sensores
Reedswith
Sensor de proximidade
Sensor de umidade
Sensor de incndio
Sensor de fluxo de
liquido
Sensor de cores
Micrswith
Sensor optico
Sensor de presso
Sensor de temperatura
Sensor de umidade
Interruptor N/A
Sensor a laser
Sensor de fumaa
Sensor de movimento
Sensor de luz
Interruptor N/F
Sensor piezeltrico
Sensor de calor
Sensor de fluxo de gs
Sensor de som
Sensor de ph
Sensor de vibrao
Sensor de presso
cardaca
edukatika@hotmail.com
26
Sensor tctil
Sensor de
Tipos de sensores
Sensores ticos
Sensores mecnicos
Sensores eletrnicos
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!
Na segunda modalidade de detectores de LUZ temos os detectores de luz infravermelha!
Infravermelho uma frequncia de luz que no podemos ver. Muito utilizada em sistemas de
controle remotos de TV, aparelhos de som, etc.
A variedade de sensores deste tipo enorme vejamos algumas imagens relativa a sensores de
infravermelho.
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
Sensores de movimento ou detector de presena detecta a presena de um objeto em uma
determinada rea de cobertura que pode ser de alguns centmetros a vrios metros o objeto
pode ser considerado um ser humano ou inanimado dependendo da aplicao.
Os detectores de movimento podem ter seu princpio ativo de deteco de movimento
baseado em infravermelho, deslocamento de ar, ou sensores de capacitncia e tambm os
magnticos que detecta movimento de objetos metlicos. Entre uma infinidade enorme de
possibilidade que no o foco deste estudo esmiuar o assunto detectores de movimento.
Como nosso objetivo a informao objetiva vejamos na figura abaixo fotos relacionadas a
sensores de movimento com base no funcionamento por efeito PIR.
Na figura DETETOR_PIR vemos com clareza a imagem de um detector amplamente utilizado
em produtos para automatizar procedimentos de acionamento e desligamento de um sistema
de iluminao ou equipamento eltrico.
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
Os ajustes so do tempo em que a varredura no ambiente feita e o ajuste de sensibilidade
onde se ajusta a intensidade do sinal emitido e por consequncia detectado. Quando maior a
sensibilidade teoricamente mais sensvel a qualquer movimento o ambiente ficara.
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!
Como j hora de aprender vamos para a seo PRATICA 1.
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.
Sensor comercial 1
Sensor comercial 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!
Agora vamos a nossa primeira aula pratica.
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
Pino 5 VSS
Pino 14 Vdd ou VCC
Pino 17 RA0
Pino 18 RA1
Descrio
Pino de terra ou alimentao negativa
Pino de alimentao positive 5V
Pino ao qual entrara o sinal do detector de movimento
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 sinal do sensor entra no pino 2 do conector C4 porem nesta fase no implementamos a
ligao do sensor devido ao fato que o mesmo precisa de um circuito conversor de tenso de
5V para 3,3V o qual iremos estudar em seguida!
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
Perceba como o circuito extremamente simples! Precisaremos de duas (2) tenses de
alimentao sendo uma de 3,3V e outra de 5,0V e um dos lados do circuito ligado ao sinal de
nvel 3.3V e o outro lado ao circuito de 5.0V. E estamos com nosso problema de
compatibilizao dos nveis lgicos resolvidos.
Finalizamos agora o circuito de hardware e vamos montar o nosso primeiro programa em
PICBASIC PRO.
edukatika@hotmail.com
33
Tambm foi definido que iramos utilizar os seguintes sinais de I/O do Microcontrolador
descrito na pgina 32.
PINO
Pino 5 VSS
Pino 14 Vdd ou VCC
Pino 17 RA0
Pino 18 RA1
Descrio
Pino de terra ou alimentao negativa
Pino de alimentao positive 5V
Pino ao qual entrara o sinal do detector de movimento
Pino ao qual iremos ativar um rele para acionamento da carga eletrica
edukatika@hotmail.com
34
cristal oscilador e nas pagina 71 sobre o reset interno. Perceba que no vamos usar, mas como
pode? No precisa?
Na verdade, esses componentes podem ser dispensados em algumas aplicaes e para
descomplicar vamos mostrar como fazer isso internamente dentro do chip usando a
programao firmware.
Para isso devemos identificar os registradores internos do CHIP esses registradores nada mais
so do que locais de hardware com endereamento que podemos alterar bit a bit alterando
as configuraes internas do microcontrolador! Podemos mudar praticamente tudo que o
microcontrolador permitir.
E neste caso vamos alterar os registros referentes ao RESET e OSCILADOR INTERNO pginas j
citadas anteriormente.
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 *
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.
E agora o que falta?
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
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.
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!
Prximo passo! Sempre que efetuamos definies em hardware atravs do firmware de
costume voc estabilizar o processo interno e isso feito da seguinte forma:
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
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!
Comando que devemos estudar? Devemos entender o mecanismo de rotinas e sub-rotinas, o
comando de teste de condio IF THEN e GOTO
E o que M_PIR faz? Vejamos.
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
Tela do editor/compilador
No quadro abaixo temos a listagem completa do firmware e comentada linha a linha!
Sugerimos acompanhar este vdeo https://www.youtube.com/watch?v=ExU_oDJ5jBg Vai
ajudar bastante!
'****************************************************************
'* 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
lendo_PIR:
If PIR = 1 then m_pir
goto lendo_pir
M_PIR:
high rele
if pir = 1 then m_pir
pause 200
if pir = 0 then N_PIR
goto M_PIR
N_PIR:
Low rele
if pir = 1 then N_pir
if pir = 0 then M_pir
goto tecla
end
; fim do programa
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
#define
OSC
RAM_START
RAM_END
RAM_BANKS
BANK0_START
BANK0_END
BANK1_START
BANK1_END
BANK2_START
BANK2_END
EEPROM_START
EEPROM_END
; C:\PBP6\PBPPIC14.RAM
Register
R0
; C:\PBP6\PBPPIC14.RAM
Register
R1
; C:\PBP6\PBPPIC14.RAM
Register
R2
; C:\PBP6\PBPPIC14.RAM
Register
R3
; C:\PBP6\PBPPIC14.RAM
Register
R4
; C:\PBP6\PBPPIC14.RAM
Register
R5
; C:\PBP6\PBPPIC14.RAM
Register
R6
; C:\PBP6\PBPPIC14.RAM
Register
R7
; C:\PBP6\PBPPIC14.RAM
Register
R8
; C:\PBP6\PBPPIC14.RAM
FLAGS
; C:\PBP6\PBPPIC14.RAM
Parameter
GOP
; C:\PBP6\PBPPIC14.RAM
RM1
; C:\PBP6\PBPPIC14.RAM
RM2
; C:\PBP6\PBPPIC14.RAM
RR1
00014
DEFINE OSC 4
; Define a frequencia do Cristal em 4Mhz
4
; Define a frequencia do Cristal em 4Mhz
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
00020h
0014Fh
00003h
00020h
0007Fh
000A0h
000EFh
00120h
0014Fh
EQU
02100h
0217Fh
EQU
00012
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
A00020 R0
VAR
' System
RAM_START + 000h
00013
A00022 R1
VAR
' System
RAM_START + 002h
00014
A00024 R2
VAR
' System
RAM_START + 004h
00015
A00026 R3
VAR
' System
RAM_START + 006h
00016
A00028 R4
VAR
' System
RAM_START + 008h
00017
A0002A R5
VAR
' System
RAM_START + 00Ah
00018
A0002C R6
VAR
' System
RAM_START + 00Ch
00019
A0002E R7
VAR
' System
RAM_START + 00Eh
00020
A00030 R8
VAR
' System
RAM_START + 010h
00026
A00032 FLAGS VAR BYTE BANK0 SYSTEM
RAM_START + 012h
00025
A00033 GOP VAR BYTE BANK0 SYSTEM
RAM_START + 013h
00022
A00034 RM1
RAM_START + 014h
00024
A00035 RM2
RAM_START + 015h
00021
A00036 RR1
RAM_START + 016h
VAR
VAR
VAR
edukatika@hotmail.com
40
; C:\PBP6\PBPPIC14.RAM
00023
A00037 RR2 VAR
RR2
EQU
RAM_START + 017h
; C:\PBP6\PIR\PIR_1.PBP
00018
A00038 cont vAR WORD
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"
; C:\PBP6\16F628A.BAS
; C:\PBP6\16F628A.BAS
; C:\PBP6\16F628A.BAS
; C:\PBP6\16F628A.BAS
; C:\PBP6\16F628A.BAS
00012
00013
00014
00015
00016
; C:\PBP6\16F628A.BAS
00018
; C:\PBP6\16F628A.BAS
; C:\PBP6\PIR\PIR_1.PBP
00025
00014
; C:\PBP6\PIR\PIR_1.PBP
MOVE?CB
00015
CMCON = 7
007h, CMCON
; C:\PBP6\PIR\PIR_1.PBP
PAUSE?C
00020
Pause 1000
003E8h
; C:\PBP6\PIR\PIR_1.PBP
00022
inicio:
; C:\PBP6\PIR\PIR_1.PBP
PAUSE?C
00023
0C8h
pause 200
; C:\PBP6\PIR\PIR_1.PBP
LOW?T _rele
00024
; C:\PBP6\PIR\PIR_1.PBP
LOW?T _pir
00024
; C:\PBP6\PIR\PIR_1.PBP
00026
lendo_PIR:
LABEL?L _inicio
; uma pausa de 2 ms
LABEL?L _lendo_PIR
; C:\PBP6\PIR\PIR_1.PBP
CMPEQ?TCL
00027
If PIR = 1 then m_pir
_pir, 001h, _m_pir
; C:\PBP6\PIR\PIR_1.PBP
00028
GOTO?L _lendo_PIR
goto lendo_pir
; C:\PBP6\PIR\PIR_1.PBP
00030
M_PIR:
; C:\PBP6\PIR\PIR_1.PBP
HIGH?T _rele
00031
high rele
; C:\PBP6\PIR\PIR_1.PBP
CMPEQ?TCL
00032
if pir = 1 then m_pir
_pir, 001h, _m_pir
; C:\PBP6\PIR\PIR_1.PBP
PAUSE?C
00033
0C8h
LABEL?L _m_pir
pause 200
edukatika@hotmail.com
41
; C:\PBP6\PIR\PIR_1.PBP
CMPEQ?TCL
00034
if pir = 0 then N_PIR
_pir, 000h, _N_PIR
; C:\PBP6\PIR\PIR_1.PBP
GOTO?L _m_pir
00035
goto M_PIR
; C:\PBP6\PIR\PIR_1.PBP
00037
N_PIR:
; C:\PBP6\PIR\PIR_1.PBP
LOW?T _rele
00038
Low rele
; C:\PBP6\PIR\PIR_1.PBP
CMPEQ?TCL
00039
if pir = 1 then N_pir
_pir, 001h, _N_PIR
; C:\PBP6\PIR\PIR_1.PBP
CMPEQ?TCL
00040
if pir = 0 then M_pir
_pir, 000h, _m_pir
; C:\PBP6\PIR\PIR_1.PBP
GOTO?L _inicio
00041
goto inicio
; C:\PBP6\PIR\PIR_1.PBP
END?
00043
end
LABEL?L _N_PIR
; fim do programa
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