Você está na página 1de 42

Edukatika

Robtica, Microcontroladores
Automao

O princpio de tudo!

O princpio de tudo de forma pratica fcil e


descomplicada.

FASE 1 Verso 1 Reviso 1.1

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.

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
2
ATENO!

MUITO IMPORTATE QUE VOCE EFETUE A LEITURA


ATENTAMENTE, CASO CONTRARIO NO ESTARIA ESCRITO!

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

Dedico a quem me deu a vida.

No conte seu sonho a ningum, pois ele pode virar um pesadelo.

Toda cultura se torna intil se no for disseminada.

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..................................................................................................

Fase 3 - Dispositivos de movimento e


acionamento Mecnico

edukatika@hotmail.com
6
1 - Reles
2 Solenoides
3 Motores corrente continua
4 Motores de passo
5 Servo motores

Fase 4 Montagem eletrnica (prototipagem)


1 Placa padro
2 Protoboard
3 Jumpers
4 Placas de circuito impresso
5 Escolhendo um mtodo de prototipagem
6 Como fazer um projeto
7 Fases de um projeto
8 Desenhando o layout do circuito impresso.
9 Depois do Layout pronto
10 - Finalizando um projeto

Fase 5 Antes da robtica vem a mecnica


1 Princpios Mecnicos de movimento
2 Dispositivos Mecnicos (motores)
3 O que automao
4 O que robtica
5 Automao residencial (demtica)
6 Automatizao de processos mecnicos

Fase 6 Projetos e Montagens (E-book 1)


1 Detector de movimento PIR 2 Controles de PWM (motores/iluminao)
3 Medidores de temperatura 4 Medio temperatura controle de carga
5 Detector de movimento PIR com LCD 6 Contador de eventos detector ptico ou
mecnico.
7 Relgio/timer microcontrolador 8 Uso de LCD desenho grfico
9 Geraes de caracteres especiais em LCD 10 Cronometro
11 Geraes de som 12 Servo controle boto
13 Comunicaes seriais PIC a PIC 14 Comunicaes seriais RS232
15 Controles de servo porta SERIAL (PC) 16 - Conversores anlogo/digital LCD
17 Conversores anlogo/digital LCD e PC 18 - Conversor analgico/digital LCD/PC e

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!

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
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

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
9
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.

5 Linguagens de programao para Microcontroladores

O que uma linguagem de programao?

Podemos definir que linguagem de programao um conjunto de COMANDOS que so


enviados a um dispositivo e executa uma determinada funo!

OBS: Uma definio simplista. Mas no precisamos de definies conceituosas e acadmicas,


pois neste momento no nosso foco.

As opes de linguagem de programao para microcontroladores to vasta como a


quantidade de fabricantes de microcontroladores.
A principal linguagem de programao a o ASSEMBLER e tambm a mais eficiente porem a
mais difcil! Entre as mais fceis podemos citar aquelas que lembram o BASIC uma das
linguagens mais simples que existiu e existe. Vejamos rapidamente alguns comandos em
assembler.

Figura 5 - Exemplo de cdigo em assembler

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 Linguagem Aplicao


ADCON1 := ADCON1 or Pascal ( mikroPascal) Define o conversor Anlogo
0x0F; digital ACDCON endereo
0x0F
ADCON1 |= 0x0F; C (mikroC) Define o conversor Anlogo
digital ACDCON endereo
0x0F
ADCON1 = ADCON1 or 0x0F Basic(MikroBasic) Define o conversor Anlogo
digital ADCON endereo 0x0F
define ADCON1 Basic (PICBASIC PRO) 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
microcontrolador. SET de instrues so os comandos internos que o microcontrolador vai
entender independente da linguagem ser ASSEBLER, C, ou PICBASIC PRO.

6 Compiladores para microcontroladores

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!

Vejamos alguns exemplos de compiladores e suas interfaces de tela para o usurio.

Os compiladores devem ser escolhidos de acordo com a linguagem de programao escolhida.


Vamos a mais uma definio que em breve vai gerar controvrsias! Os compiladores passam
despercebidos em 90% das nossas aes com um microcontrolador! Pois as telas mostradas
nas figuras abaixo mostram na verdade uma interface que facilita a interao
DESENVOLVEDOR/PRODUTO no caso o microcontrolador! Portanto o compilador para ns
apresentado como uma srie de comandos que iremos estudar na sequncia!

edukatika@hotmail.com
13
Figura 6 - Tela de trabalho do compilador C

Figura 7 - Tela de trabalho do compilador C

edukatika@hotmail.com
14
Figura 8 - Tela de trabalho do compilador PICBASIC PRO (o escolhido)

7 Escolhendo uma linguagem de programao

No tpico passado falamos sobre linguagem de programao apresentamos algumas delas de


forma quase que irresponsvel porem objetiva.
Neste tpico seremos rpidos, pois voc deve escolher o que voc tem mais facilidade em
aprender!
Esquea a opinio de profissionais avanados ou o ponto de vista de quem tem conhecimento
terico e ZERO de pratica!
No tente se iniciar em assembler a no ser que voc seja um quase gnio ou ter uma
facilidade medonha no assunto.
No discuta o que melhor que o que, no perca seu tempo com comparaes de disputa!
Seria intil como discutir que time de futebol o melhor, qual tipo de mulher a mais
gostosa qual religio te leva para o cu.
Pense de forma simples, preciso aprender, qual a maneira mais fcil de iniciar? A resposta
simples BASIC ou PICBASIC PRO! por este caminho que vamos iniciar os estudos.

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.

Vamos apresentar a voc a LINGUAGEM PICBASIC PRO v. 2.60 (gratuita)

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.

8 Estudando os comandos Bsicos da Linguagem Escolhida

Como nosso objetivo a simplicidade, vamos comear a estudar os comandos da linguagem


escolhida o PICBASIC PRO! Mas antes de tudo vamos abranger alguns conceitos e
necessidades.
1 Lembre-se no existe gente superinteligente somente voc que no leu ou estudou o que
ela (ES) estudou ou leu. Portanto no ache que difcil sem tentar.
2 A cada duas horas de dedicao e foco em estudo e pesquisa voc ganha sabedoria
inteligncia porque voc est lendo o que no estava lendo a antes (item 1 )
3 No faa um curso pago de microcontroladores ou qualquer outra coisa ligada a eletrnica
se voc no sabe o que significa DOG em Ingls. Voc no precisa ser poliglota, mas no pode
ter preguia de usar o GOOGLE TRADUTOR.
4 A sua dificuldade sua falta de vontade e preguia e no a eletrnica, robtica,
mecatrnica e microcontroladores. O problema 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.

@ O smbolo ARROBA usado para indicar o incio


de uma rotina escrita em ASSMEBLER ou cdigo
de mquina.
ADCIN Efetua a leitura de um canal ANALOGICO e
converte para digital.
ASM..ENDASM Insere uma rotina assembler dentro do programa
em PIC
BRANCH Equivalente ao comando GOTO ou (GOTO..ON)
BUTTON Comando para ler um boto ou tecla o qual tem a

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

Comando para depurao de software que


DEBUG funciona como sada para comunicao serial com
taxa de transmisso fixa
DEBUGIN A mesma coisa que o comando DEBUG porem
uma entrada.
DISABLE Desliga o comando ON-DEBUG e ON interrupt
em um processamento
DISABLE DEBUG Desabilita a funo ON DEBUG em um
processamento
DISABLE INTERRUPT Desabilita a funo ON-INTERRUPT em um
processamento
DTMFOUT Produz um som no pino de sada padro DTMF
EEPROM Seta as informaes bsicas para comear a gravar
em uma eeprom.
ENABLE Habilita o comando ON-DEBUG e ON-
INTERRUPT em um processamento
Habilita o comando ON-DEBUG em um
ENABLE DEBUG processamento.
Habilita o comando ON-INTERRUPT em um
ENABLE INTERRUPT processamento.
END Finaliza / para a execuo de um processamento
FOR..NEXT Executa um lao de repetio de todos comandos
dentro do lao FOR...NEXT o tanto de vezes que
for desseguindo ou at acontecer uma situao X!
Produz at duas frequncias diferentes em um
FREQOUT mesmo pino de sada
GOSUB Efetua um desvio para uma rotina pr-definida e
executa os comandos at encontrar o comando
RETURN e volta para a prxima linha de
comando logo aps o GOSUB
GOTO Desvia o fluxo de um programa para uma rotina
especificada no GOTO
HIGH Coloca um pino de entrada ou logic em estado
lgico 1 ou alto
HPWM Comando para a gerao por software de um pulso
de PWM em um determinado pino de sada
Comando para controle de fluxo de comunicao
HSERIN serial de entrada em modo assncrono
HSEROUT Comando para controle de fluxo de comunicao
serial de lgic em modo assncrono
I2CREAD Efetua leitura dos bytes em um dispositivo I2C
I2CWRITE Efetua a escrita dos bytes em um dispositivo I2C
IF..THEN..ELSE..ENDIF Comando que testa uma determinada condio por
exemplo: se(IF) X=10 ento(THEN) x=10+1 OU
(ELSE) x=10-1 e fim(ENDIF)
IMPUT Coloca um pino na condio de entrada
Comando de leitura de displays de LCD efetua
LCDIN leitura da lgico17 RAN interna do LCD

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

SLEEP Coloca o microprocessador para dormir em


estado de espera reduzindo o consume de
alimentao por um perodo de tempo
SOUND Gera um som na sada de um determinado pino
STOP Para a execuo de um programa
SWAP Troca os valores entre duas variveis
TOGGLE Muda o estado lgico de um pino de 0 para 1
USBIN Porta de entrada USB como entrada
USBINIT Inicializa a porta USB
USBOUT Porta de sada USB como sada
Executa uma sequncia de comando enquanto uma
WHILE..WEND determinada condio for verdadeira
WRITE Grava um byte na EEPROM
WRITECODE Grava uma palavra na memria EEPROM
XIN Comando serial do padro XIN de entrada para
produto de automao residencial
XOUT Comando serial do padro XOUT de sada para
produto de automao residencial
Manual completo da linguagem PICBASIC PRO 2.6 - download neste link

9 Montando um ambiente de trabalho no PC

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

O que cada um desses arquivos?

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.

Figura 9- MPASMWIN520 em Funcionamento

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!

Parece fcil certo? E basta voc querer!

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

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
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.

11 Introduo plataforma de hardware

Vejamos o hardware da figura abaixo onde apresentamos o kit de desenvolvimento para


microcontroladores da linha microchip de 18 pinos! Antes de tudo efetue a leitura do manual
do kit para entender toda a potencialidade do kit de desenvolvimento est disponvel para
download aqui neste LINK. Caso voc tenha efetuado o download pode ter achado complexo,
mas no ! Vamos partir do ponto que se trata de um produto multiuso o que justifica a
quantidade grande de JUMPERS de configurao onde podemos configurar portas para
serem entradas e ou sadas.
Vejamos a quantidade de conectores a quais so justificadas, pois disponibilizamos porta de
acesso serial RS232, conectores de acesso externo, conectores para servos e som!
Sendo assim temos total acesso a todos os pinos do Microcontrolador e condies de usufruir
de toda a capacidade do microcontrolador usando um mesmo KIT de desenvolvimento.
Para voc quer deseja ir mais longe no deixe de ler o manual completo de configurao do
KIT. Voc entendera rapidamente como utilizar de modo simples at o mais elevado nvel.
Na figura abaixo podemos ver uma viso da PCI (placa de circuito impresso) do KIT de
desenvolvimento.

edukatika@hotmail.com
23
Figura 12 - PCB KIT PIC

Escolhemos at agora a linguagem de programao, o compilador o hardware porem falta o


principal! O microcontrolador! Seguindo o mesmo raciocnio da escolha do hardware do KIT DE
DESENVOLVIMENTO vamos escolher o microcontrolador!

Vamos nos preocupar com somente trs (3) caractersticas.

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

Vejamos a disposio dos pinos do PIC16F628A na figura PINOS_PIC1 e estudaremos alguns


deles de forma rpida. Sendo que o entendimento final depende de voc dar uma bela olhada
no datasheet de graa e est em nosso repositrio.
De imediato podemos observar os 19 pinos do microcontrolador no caso da figura em
encapsulamento DIP com alimentao nos pinos 5 e 14 sendo o pino 14 positivo e o cinco (5)
negativo.
Observe os sentidos das setas onde demonstra que o pino pode ser de entrada ou de sada!

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 Micrswith Interruptor N/A Interruptor N/F


Sensor de proximidade Sensor optico Sensor a laser Sensor piezeltrico
Sensor de umidade Sensor de presso Sensor de fumaa Sensor de calor
Sensor de incndio Sensor de temperatura Sensor de movimento Sensor de fluxo de gs
Sensor de fluxo de Sensor de umidade Sensor de luz Sensor de som
liquido
Sensor de cores 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

Pinos do 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

Observe atentamente que em ambos os modelos de sensor comercial existe um componente


em comum que est descrito de forma muito bsica na pgina 26. A diferena que obviamente
foi includo um circuito eletrnico para controlar as funes do detector de
movimento/presena.
exatamente neste ponto que vamos comear a nossa primeira aula pratica. Antes de

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.

PRIMEIRO PROJETO PRATICO


AULA 1 Detector de movimento/presena

Objetivo: Detectar a presena de movimentos em um ambiente X e executar o comando de


ativar a iluminao e desliga a mesma iluminao quando o movimento no ambiente findar.

O que vamos precisar:


1 Um detector de movimento
2 Um microcontrolador PIC16F628A, dois resistores
3 Uma placa prottipo ou kit de montagem, dois capacitores
4 Uma fonte de alimentao ou baterias de 9V, 1 regulador de tenso
5 Um gravador de microcontroladores PIC, conector
6 Um PC com os programas descritos na pgina 19
7 Ter visto ou assistido os vdeos de configurao disponibilizados no Youtube ou para
download.
8 E boa vontade em aprender!

Vamos ao que interessa! A pratica!


Vamos organizar nosso raciocnio da seguinte forma! Precisamos trabalhar um sinal gerado por
um detector de movimento PIR alimentado por uma tenso de 3,3volts o qual quando ativo
gera um sinal DIGITAL em sua sada! Figura PRATICA-1

Pratica 1

Na figura PRATICA_DIAGRAMA1 temos o diagrama eletrnico do dispositivo! Fique calmo no


momento isso irrelevante somente para voc comear a criar uma base de conhecimento.

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 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
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.

Objetivo: Detectar a presena de movimentos em um ambiente X e executar o comando de ativar a


iluminao e desativar a mesma iluminao quando o movimento no ambiente findar.

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

Ento resumida demente precisamos de:

1 detectar um movimento com o sensor ligado a porta de I/O do microcontrolador em RA0


pino 17 do PIC16F628A.
2 quando detectado um movimento o firmware que desenvolvermos vai ativar a porta de I/O
qual existe um circuito de acionamento por transistor ligado a RA1 pino 18 do PIC16F628A
que aciona um rele.
3 quando o detector de movimento e o firmware que desenvolvemos deixar de detectar
movimento por um tempo o sinal na porta de I/O RA1 deve desligar o acionamento do
transistor que desliga um rele.

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....

Observe atentamente que o no diagrama eltrico de nossa aplicao no existe um


componente chamado cristal oscilador, capacitores de ressonncia do cristal oscilador e nem o
resistor de reset! Referncia a isso ns temos nas pginas 97 e 98 (bit 4 1,0) com referncia ao

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 *

Vamos ao prximo passo que definir a frequncia de trabalho do microcontrolador que no


caso do PIC16F628A padro 4Mhz Ento vamos usar o comando PICBASIC PRO mostrado
abaixo. Perceba que este comando no foi mencionado nas pginas de 16 a 19 no foi um erro
foi proposital a explicao destes comandos esto no APENDICE 1

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.

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 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!

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
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!

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
Comando que devemos estudar? Devemos entender o mecanismo de rotinas e sub-rotinas, o
comando de teste de condio IF THEN, GOTO e END!

Acredite ou no! Terminamos o primeiro firmware de um microcontrolador! Voc deve sentir-


se orgulhoso de chegar at aqui pois este assunto para poucos.

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

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
' 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

inicio: ; rotina incio de desvio de fluxo de programa


pause 200 ; uma pausa de 2 ms
Low rele : low pir ; coloca em nvel baixo as sadas RELE e PIR

lendo_PIR: ; inicio da rotina que efetua a leitura do sensor de movimento


If PIR = 1 then m_pir ; testa a condio SE(if) PIR = 1 ento execute a rotina M_PIR
goto lendo_pir ; volta (goto) a rotina LENDO_PIR

M_PIR: ; inicio da rotina de movimento detectado


high rele ; ativa o rele comando HIGH coloca nvel lgico 1 na porta RELE
if pir = 1 then m_pir ; testa a condio SE(if) PIR = 1 ento execute a rotina M_PIR rele continua
; ativo
pause 200 ; uma pausa de 2 ms
if pir = 0 then N_PIR ; testa a condio SE(if) PIR = 0 ento execute a rotina N_PIR
goto M_PIR ; volta (goto) a rotina M_PIR

N_PIR: ; inicio da rotina de movimento NO detectado


Low rele ; desativa o rele comando LOW coloca nvel lgico 0 na porta RELE
if pir = 1 then N_pir ; testa a condio SE(if) PIR = 1 ento execute a rotina N_PIR
if pir = 0 then M_pir ; testa a condio SE(if)PIR=0 ento execute a rotina M_PIR
goto tecla ; volta (goto) a rotina M_PIR

end ; fim do programa

Depois de escrito o programa no editor ver a figura da TELA/EDITOR podemos compilar o


programa apertando a tecla F9.
Voc ira ver a tela da figura 9 pagina 20 e se tudo estiver ok esse procedimento ir gerar um
arquivo .HEX com o mesmo nome que demos ao programa/firmware que ser PIR_1.HEX,
vejamos o contedo dele no quadro abaixo.

: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

RAM_START EQU 00020h


RAM_END EQU 0014Fh
RAM_BANKS EQU 00003h
BANK0_START EQU 00020h
BANK0_END EQU 0007Fh
BANK1_START EQU 000A0h
BANK1_END EQU 000EFh
BANK2_START EQU 00120h
BANK2_END EQU 0014Fh
EEPROM_START EQU 02100h
EEPROM_END EQU 0217Fh

; C:\PBP6\PBPPIC14.RAM 00012 A00020 R0 VAR WORD BANK0 SYSTEM ' System


Register
R0 EQU RAM_START + 000h
; C:\PBP6\PBPPIC14.RAM 00013 A00022 R1 VAR WORD BANK0 SYSTEM ' System
Register
R1 EQU RAM_START + 002h
; C:\PBP6\PBPPIC14.RAM 00014 A00024 R2 VAR WORD BANK0 SYSTEM ' System
Register
R2 EQU RAM_START + 004h
; C:\PBP6\PBPPIC14.RAM 00015 A00026 R3 VAR WORD BANK0 SYSTEM ' System
Register
R3 EQU RAM_START + 006h
; C:\PBP6\PBPPIC14.RAM 00016 A00028 R4 VAR WORD BANK0 SYSTEM ' System
Register
R4 EQU RAM_START + 008h
; C:\PBP6\PBPPIC14.RAM 00017 A0002A R5 VAR WORD BANK0 SYSTEM ' System
Register
R5 EQU RAM_START + 00Ah
; C:\PBP6\PBPPIC14.RAM 00018 A0002C R6 VAR WORD BANK0 SYSTEM ' System
Register
R6 EQU RAM_START + 00Ch
; C:\PBP6\PBPPIC14.RAM 00019 A0002E R7 VAR WORD BANK0 SYSTEM ' System
Register
R7 EQU RAM_START + 00Eh
; C:\PBP6\PBPPIC14.RAM 00020 A00030 R8 VAR WORD BANK0 SYSTEM ' System
Register
R8 EQU RAM_START + 010h
; C:\PBP6\PBPPIC14.RAM 00026 A00032 FLAGS VAR BYTE BANK0 SYSTEM ' Static flags
FLAGS EQU RAM_START + 012h
; C:\PBP6\PBPPIC14.RAM 00025 A00033 GOP VAR BYTE BANK0 SYSTEM ' Gen Op
Parameter
GOP EQU RAM_START + 013h
; C:\PBP6\PBPPIC14.RAM 00022 A00034 RM1 VAR BYTE BANK0 SYSTEM ' Pin 1 Mask
RM1 EQU RAM_START + 014h
; C:\PBP6\PBPPIC14.RAM 00024 A00035 RM2 VAR BYTE BANK0 SYSTEM ' Pin 2 Mask
RM2 EQU RAM_START + 015h
; C:\PBP6\PBPPIC14.RAM 00021 A00036 RR1 VAR BYTE BANK0 SYSTEM ' Pin 1 Register
RR1 EQU RAM_START + 016h

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"

; C:\PBP6\16F628A.BAS 00012 BANK0 $0020, $007F


; C:\PBP6\16F628A.BAS 00013 BANK1 $00A0, $00EF
; C:\PBP6\16F628A.BAS 00014 BANK2 $0120, $014F
; C:\PBP6\16F628A.BAS 00015 EEPROM $2100, $217F
; C:\PBP6\16F628A.BAS 00016 LIBRARY "PBPPIC14"

; C:\PBP6\16F628A.BAS 00018 include "PIC14EXT.BAS"

; C:\PBP6\16F628A.BAS 00025 include "PBPPIC14.RAM"


; C:\PBP6\PIR\PIR_1.PBP 00014 DEFINE OSC 4 ; Define a frequencia do Cristal em 4Mhz

; C:\PBP6\PIR\PIR_1.PBP 00015 CMCON = 7 ; define as portas como DIGITAIS


MOVE?CB 007h, CMCON

; C:\PBP6\PIR\PIR_1.PBP 00020 Pause 1000


PAUSE?C 003E8h

; C:\PBP6\PIR\PIR_1.PBP 00022 inicio: ; rotina incio de desvio de fluxo de programa

LABEL?L _inicio

; C:\PBP6\PIR\PIR_1.PBP 00023 pause 200 ; uma pausa de 2 ms


PAUSE?C 0C8h

; C:\PBP6\PIR\PIR_1.PBP 00024 Low rele : low pir


LOW?T _rele

; C:\PBP6\PIR\PIR_1.PBP 00024 Low rele : low pir


LOW?T _pir

; C:\PBP6\PIR\PIR_1.PBP 00026 lendo_PIR:

LABEL?L _lendo_PIR

; C:\PBP6\PIR\PIR_1.PBP 00027 If PIR = 1 then m_pir


CMPEQ?TCL _pir, 001h, _m_pir

; C:\PBP6\PIR\PIR_1.PBP 00028 goto lendo_pir


GOTO?L _lendo_PIR

; C:\PBP6\PIR\PIR_1.PBP 00030 M_PIR:

LABEL?L _m_pir

; C:\PBP6\PIR\PIR_1.PBP 00031 high rele


HIGH?T _rele

; C:\PBP6\PIR\PIR_1.PBP 00032 if pir = 1 then m_pir


CMPEQ?TCL _pir, 001h, _m_pir

; C:\PBP6\PIR\PIR_1.PBP 00033 pause 200


PAUSE?C 0C8h

edukatika@hotmail.com
41
; C:\PBP6\PIR\PIR_1.PBP 00034 if pir = 0 then N_PIR
CMPEQ?TCL _pir, 000h, _N_PIR

; C:\PBP6\PIR\PIR_1.PBP 00035 goto M_PIR


GOTO?L _m_pir

; C:\PBP6\PIR\PIR_1.PBP 00037 N_PIR:

LABEL?L _N_PIR

; C:\PBP6\PIR\PIR_1.PBP 00038 Low rele


LOW?T _rele

; C:\PBP6\PIR\PIR_1.PBP 00039 if pir = 1 then N_pir


CMPEQ?TCL _pir, 001h, _N_PIR

; C:\PBP6\PIR\PIR_1.PBP 00040 if pir = 0 then M_pir


CMPEQ?TCL _pir, 000h, _m_pir

; C:\PBP6\PIR\PIR_1.PBP 00041 goto inicio


GOTO?L _inicio

; C:\PBP6\PIR\PIR_1.PBP 00043 end ; fim do programa


END?

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:

Conhecendo mais o autor;


Montagens eletrnicas;
Montagem do circuito inicial na placa Laboratrio;
Gravadores de PIC, voc vai precisar de um!

edukatika@hotmail.com
42

Você também pode gostar