You are on page 1of 33

Sensor de Nível Por Ultrassom

João Francisco de Almeida R. Silva


RESUMO

Pela necessidade de medir o nível em uma caixa de água domestica ou


recipiente qualquer veio a ideia de usar meio não evasivo, ou seja, sem contato
com o fluido, assim podemos usar o Sensor Ultrassom que irá calcular o nível e
transmitir via RF433 a variável medida para um display.

1
SUMÁRIO

1 - INTRODUÇÃO............................................................................................. 08
2 - LISTA DE COMPONETES.......................................................................... 09
3 - OBJETIVOS ............................................................................................... 10
3.1 - OBJETIVO DO PROJETO....................................................................... 10
4 - METODOLOGIA ........................................................................................ 11
4.1 - ETAPAS DE DESENVOLVIMENTO ....................................................... 11
4.2 - ESTUDO DO CASO ............................................................................... 11
4.3 - AQUISIÇÃO E VIABILIDADE DO PROJETO .......................................... 11
4.3.1 - TABELA DE CUSTO COMPONENTES .............................................. 12
5 - ANALISE DE COMPONDES ..................................................................... 13
5.1 - REGULADOR LM 317 ............................................................................ 13
5.2 - REGULADOR 7805 OU AMS 1117 5V E 3,3V ........................................ 14
5.3 - ATMEGA 328 ......................................................................................... 15
5.4 - EQUIPAMENTOS DE SAIDA ................................................................. 16
5.5 - DISPLAY LCD 16X2 BACKLIGHT AZUL ............................................... 16
5.6 - LCD TFT 2,4” ......................................................................................... 18
5.7 - ULTRASON HC –SR04 ......................................................................... 19
5.8 - MODULO TRAMISSOR / RECEPTOR RF 433MHZ ................................ 20
5.9 - PLACAS SOLARES ............................................................................... 22
5.10 - OUTROS COMPONTES ...................................................................... 22
5.10.1 – BATERIA RECAREGAVEIS ............................................................ 13
5.10.2 - CAIXAS PLASTICAS ....................................................................... 22
5.10.3 - SERVO MOTOR ............................................................................... 23
5.10.3.1 - SERVO MOTOR ELETRÔNICA DE CONTROLE ............................ 24
5.10.4 - PAN TILT ......................................................................................... 25
6 - ANALISE DE FUNCIONAMENTO DOS EQUIPAMENTOS........................ 26
6.1 - MÓDULOS TRANSMISSOR / RECEPTOR RF 433MHZ ........................ 26
6.1.1 - MÓDULO TRANSMISSOR ................................................................. 26
6.1.2 - MÓDULO RECEPTOR ....................................................................... 29
7 - CÓDIGOS EM C++ .................................................................................... 31
7.1- CÓDIGOS EM C++ EMISSOR ................................................................. 31
2
7.2 - CÓDIGOS EM C++ RECEPTOR ............................................................ 32
8 - CRONOGRAMA DE EXECUÇÃO .............................................................. 34
9 - PAGINAS DE WEB COMO REFERÊNCIA BIBIOGRAFICA ..................... 34
10 - REFERÊNCIA BIBIOGRAFICA ............................................................... 34
11 - APENDICE A ............................................................................................ 34

3
ABSTRACT

The need to measure the level in a water box domestic or container any
came the idea to use a non evasive, ie without contact with the fluid, so we can
use the ultrasound sensor and transmit via RF433 the measured variable for a
display.

4
1 - INTRODUÇÃO

Para poder medir o nível de água usamos o sensor ultrassom HC-SR04, que
usa elementos para emitir e receber ondas mecânica de alta frequência, onde os
dados são enviados para um Microcontrolador Atmel 328 que converte o tempo
de resposta e assim calcula a distância da água medido o nível, que transmite
via RF433Mhz para outro
Microcontrolador 328 manda o resultado para uma tela de LCD 2,4 para servir
como leitor remoto, assim o usuário pode ver o nível e a distância medida sem
estar no lugar da medição.

5
2 - LISTAGEM DE COMPONENTES USADOS.
Quantidade Componentes Primário.
2 Microcontrolador Atmega 328P
1 Ultrassom HC-SR04
1 Emissor RF 433 Mhz
1 Receptor RF433 Mhz
1 Tela Touscreem lcd 2,4”
1 Placa Solar 12v
8 Bateria Recarregável
1 Display lcd 16x2
3 LM 317
2 LM 7805
2 Led
1 Transistor BC 548
2 Diodos Zener 1N5998
2 Diodos 1N4007
2 NE555
2 AMS 1117 5V
1 AMS 1117 3,3V
2 Servo Motor 9g
15 Capacitor cerâmica
10 Capacitor eletrolítico
2 Potenciômetro 10K
2 Trimpot 10K
2 Cristal oscilador
3 Botão ON/OFF
2 Antenas
1 Pan tilt
2 Suporte para Microcontrolador
1 Caixa coletor de dados Patola
1 Caixa Patola
10 Resistor

6
3 - OBJETIVOS

3.1 - Objetivo de projeto:

Objetivo de projeto e fornecer uma leitura precisa do nível de uma caixa de


água ou de um tanque de liquido ou fluido qualquer, em lugar de difícil acesso
onde precise de equipamento autônomo com sua própria geração e
armazenamento de energia de forma confiável.

Aqui apresentamos um leitor de nível por ultrassom com painel solar de


transmissão de dados para um visualizador remoto, Figura - 1.

Figura - 1

7
4 - METODOLOGIA

4.1 - ETAPAS DE DESENVOLVIMENTO

Para o desenvolvimento do projeto foi feito por algumas etapas, como


estudo do caso, aquisição e viabilidade do projeto e montagem eletrônica, logica,
programação e por fim montagem do protótipo.

4.2 - ESTUDO DO CASO

Ao analisar a necessidade de ter uma medida da quantidade de agua


armazenada em uma caixa residencial, veio a ideia de ler os dados de forma
remota, já que normalmente as caixas deste tipo estão em lugares de difícil
acesso, para fazer um modo ter e leitura precisa dos dados do nível do recipiente
em lugar de fácil visualização. Usando assim um meio de transmissão sem fio
dos dados, já que o custo é um fator preponderante para viabilidade do projeto,
o não uso de cabos e fonte de energia residencial seria de grande valia na
viabilidade do mesmo.

4.3 - AQUISIÇÃO E VIABILIDADE DO PROJETO

Por se tratar de um projeto sem uma grande criticidade no seu uso, teria
que ser feito uma análise real da necessidade do uso do medidor, já que em
muitos lares brasileiros não se pode arcar com alguns ditos “luxos” entendendo
que um projeto deste tipo pode influenciar no orçamento doméstico, então foi
proposto um projeto onde o seu custo seja o menor possível.

Abaixo temos uma lista completa de cada componente com uma soma não
muito precisa de seu custo, já que alguns de seus itens não podem ser
encontrados aqui no Brasil, gerando assim um valor que possui uma variação
cambial.

8
4.3.1 - TABELA DE COMPONENTES E SEU CUSTO:

Quant Componentes: Customédio(unid) Site: Url:*


1 DISPLAY LCD 16x2 R$ 18,90 Felipe Flop DISPLAY LCD 16x2
1 DISPLAY LCD TFT 2,4” R$ 52,80 Mercado livre DISPLAY LCD TFT 2,4”

2 Trimpot 10k R$ 00,50 Mercado livre Trimpot 10k


1 Sensor Ultrassom R$ 08,50 Mercado livre Sensor Ultrassom
2 Atmega 328 R$ 13,50 Instituo digital Atmega 328
2 AMS1117 5.0V 1A R$ 00,73 Instituo digital AMS1117 5.0V 1A
1 AMS1117 3.3V 1A R$ 00,73 Instituo digital AMS1117 3.3V 1A
1 Barra de Pinos F 1x40 R$ 01,72 Instituo digital Barra de Pinos 1x40

1 Barra de Pinos M 1x40 R$ 00,95 Instituo digital Barra de Pinos M 1x40

1 Placa Solar R$ 57,90 Mercado Livre Placa Solar


8 Baterias Recarregáveis R$ 03,25 Mercado Livre Baterias Recarregáveis

1 Suporte Pan Tilt R$ 11,99 Mercado Livre Suporte Pan Tilt


2 NE555 R$ 01,20 Mercado Livre N555
2 Servo motor 9G R$ 09,20 Mercado Livre Servo motor 9G
Led, resist, capac, diodo R$ 30,00 Mercado Livre
2 Cristal oscilador R$ 0,45 Mercado Livre Cristal oscilador
2 Potenciômetro R$ 01,20 Mercado Livre Potenciômetro
2 Knops p/ potenciômetro R$ 01,20 Mercado Livre Knops
2 Antenas R$ 04,45 Mercado Livre Antenas
2 Socket para 28p R$ 01,00 Mercado Livre Socket para 28p
1 Emissor e receptor rf433 R$ 11,98 Mercado Livre Emissor e receptor
1 Caixa plástica patola R$ 23,98 Mercado Livre Caixa plástica
1 Caixa coletor de dados R$ 25,90 Mercado Livre Caixa coletor

*Os preços podem variar pela data, inflação e moeda de origem.

9
5 - ANALISE DE COMPONENTES
Não vamos nos ater em componentes como transistor, resistor, capacitor
ou diodos, vamos focar nos reguladores e Microcontrolador e compondes
especifico.

5.1 - REGULADOR LM317:

LM 317 e Regulador de tensão de controle que mantem a tensão na faixa


de 1,2V a 40V com 1,5A de corrente e com proteção de curto-circuito.

Temos como referencial para o ML317 a Figura – 2 com seus parâmetros


e sua foto real, na Figura – 3 e 4 temos uma ligação simples e sua aparência
real simulado no Proteus 8. Já na Figura - 5 temos sua formula mais básica para
simples aplicação, que será usada no circuito aqui pretendido.

Figura - 2

Figura - 3 Figura - 4

Figura - 5

10
5.2 – REGUALDOR 7805 ou AMS 1117 5v e 3,3V SMD

7805 É um regulador de tensão para de entrada de 35V e saída de regulada


de 5V com 1ª. Na Figura 7 e 6 temos um circuito simples simulado e sua forma
emulada no Proteus 8, na Figura 8 temos uma fórmula e na Figura - 9, temos a
aparência real com seus pinos. Na Figura - 10 temos a sua versão SMD
denominada AMS 1117 que pode ser de 5V e 3,3V, com mesma ligação.

Figura - 6 Figura - 7

. Figura - 8 Figura - 9

Figura - 10

11
5.3 - ATMEGA 328

Estamos diante do componente mais importante do projeto, Atmega 328


que é o Microcontrolador com tensão de 1,8V a 5,5V sendo tensão de operação
40ma com pinos de entrada e saída sendo, 23 do qual podem ser 6 em PWM e
6 pinos analógicos e com frequência de 20MHZ e EEPROM de 1K e SRAM 2k,
com flash de 32K o qual 2k e para bootloader. Na Figura – 11 e 15 temos o
diagrama dos pinos do Atmega 328 e Arduíno Uno, na Figura - 12 e 13 temos
circuito simulado de suas conexões com seus capacitores a um cristal oscilador
16mhz e sua forma modelada no Proteus 8. Na Figura 13 e 14 temos aparecia
real e com seu código de pinagem.

Figura - 11

Figura - 12 Figura - 13

Figura - 14 Figura - 15
12
5.4 – ELEMENTOS DE SAIDA

Como o projeto é composto por dois equipamentos, um que envia os dados


do ultrassom e outro o que recebe, logo teríamos que ter duas telas, mas para
viabilizar os custos convencionou-se em um Display LCD 16x2(liquid Crystal
display) e outro LCD TFT(Thin film transistor liquid Crystal display) de 2.4” um
para emissor e outro receptor nesta ordem.

5.5 – DISPLAY LCD 16x2 BACKLIGHT AZUL

O display LCD 16x2 Backlight é um componente com características de


facilidade de uso implementação e baixo custo, mas com grandes possibilidades
de emprego, com poucas linhas de código pode se mostrar as variáveis do
processo dado, este display possui um controlador HD44780 muito comum na
indústria de display, usando luz azul como fundo e branca para escrita, o qual no
projeto usamos dois Trimpot 10k para controle de luminosidade de ambos.

No caso, o display será usando com interface de visualização da altura da


medida pelo ultrassom em Cm. Na Figura – 16a e 16b temos o mapa de pinos,
na Figura - 17 temos o exemplo de resultado de medição, figura -18 temos sua
forma real na Figura - 19 suas dimensões e seus pinos a ser usada no Arduíno.

O link para baixar a biblioteca do LCD se encontra aqui:

http://www.4shared.com/rar/zsPedGIzce/LiquidCrystal.html

13
Figura - 17

Figura - 18

Figura - 19

Figura – 16a
Tabela de Uso dos pinos do display

vss vdd V0 RS RW E D0 D1 D2 D3 D4 D5 D6 D7 A K
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
GND + Pt1 P12 GND P11 X X X X P5 P4 P3 P2 Pt2 GND
Pt = Potenciômetro(Trimpot) P= Pinos X= não usado

Figura – 16b
5.6 - LCD TFT 2.4”

Display LCD e um componente muito versátil, pois pode mostrar os dados e


também ser usado como IHM, com ótimo custo benefício. Este display tem a
capacidade de mostrar fotos em vários formados direto de um cartão SDHC, sua
tela resistiva tem 1024 níveis de sensibilidade, além de ser projeta para Arduíno
simples, como o Uno ou mais avançado como os Mega ou Due, os quais
possuem um poder de processamento maior para imagens, diferente do Uno que
é o nosso microcontrolador do projeto, por isto vamos nos ater em apenas
mostrar os dados de formas mais simplista e menos onerosa já que isto gasta
horas de programação e uploads. LCD TFT possui como características, um Slot
para cartão SDHC, LCD de 65k de cores e resolução de 240x320 uma tela
Touchscreen com 4 fios resistivo formado uma Matriz X : Y, sua interface com
8bit e 4 linhas de controle. Tensão de operação de 3.3V e 5V. Dimensões 71x52
x 7 mm. Na Figura - 20 temos os códigos de pinagen para uso no Arduíno com
sua função e os pinos no TFT, na Figura - 21 temos a sua forma real, na Figura
- 22 uma pequena demonstração de seu desenho, e na Figura - 23 os seus pinos
em sua forma física.

Figura - 21

Figura - 22

Figura - 20
Figura - 23

1
5.7 – ULTRASSOM HC-SR04

Ultrassom, chegamos no elemento sensor. Este componente por ser barato


e de fácil implementação tem uma gama de possibilidades de aplicação, serve
para medir distancia, ser usado como pequenos radares entre outros. Segundo
a página Filipeflop seu funcionamento e muito simples, para medir distância entre
20mm e 4000mm, com 4 pinos um de VCC e GND, ECHO e TRINGGER,
exemplo na Figura – 24, sua tenção de operação de 5v corrente de 2mA com
precisão de 3mm. Para começar a medição é necessário alimentar o modulo e
colocar o pino trigger em nível alto por mais de 10 µs. Assim o sensor emitirá
uma onda sonora ultrassônica que ao encontrar um obstáculo rebaterá de volta
em direção ao modulo, sendo que neste tempo de emissão e recebimento do
sinal o pino ECHO ficará em nível alto. Logo o cálculo da distância pode ser feito
de acordo com o tempo em que o pino ECHO permaneceu em nível alto após o
pino TRIGGER ter sido colocado em nível alto.

Distancia = [Tempo ECHO em nível alto * Velocidade do Som] / 2

𝐸𝑐ℎ𝑜 𝑥 𝐶
𝐷=
2

C= velocidade do som (340m/s) Echo = E, uma das entradas do sensor


A velocidade do som poder der considerado idealmente igual a 340m/s, logo
o resultado é obtido em metros se considerando o tempo em segundos. Na
formula a divisão por 2 deve-se ao fato que a onda é enviada e rebatida como
na Figura - 25 logo ela percorre 2 vezes a distância procurada.

Figura - 24
Figura - 25

Link para baixar a biblioteca do Sensor ULTRASSOM HC- SR04

aqui:http://www.4shared.com/rar/LIJjnYd8ba/Ultrasonic.html

2
5.8 – MODULOS TRANSMISSOR / RECEPTOR RF 433MHZ

Para poder simplificar o equipamento de medição e não usar cabos podendo


assim diminuir os custos usaremos os módulos de transmissão e recepção RF
433Mhz, que nada mais é que dois circuitos que transmite e recebe ondas
eletromagnéticas de modulação AM com frequências de trabalho de 433Mhz e
alcance de até 200m sem obstáculos. O modelo usado e o MX-FS 03V com
tensão de operação na faixa de 3,5v a 12v e taxa de transferência de 4kb/s com
frequência de traição de 433Mhz com potência de 10mW Na Figura – 26
podemos ver seus pinos de ligação, não deixe de usar antenas ou pequena
fiação em forma de espiral em cada um dos componentes, porque assim
aumenta capacidade de emissão e recepção do circuito.

Figura - 27

Biblioteca usada e VirtualWire que nada mais que emulação de cabos


conectados entres os módulos, como o próprio nome diz.

Para baixar a biblioteca use o link aqui.

http://www.4shared.com/rar/g6jcV7Huba/VirtualWire.html

3
5.9 – PLACAS SOLARES

Para aumentar a versatilidade do Equipamento Sensor e eliminar cabos para


transmissão ou cabos de força, convencionou-se usar placas solares como fonte
de energia, estas placas possuem tensão de operação de 12V e corrente de
250mA. Não vamos entrar no assunto de seu funcionamento, já que existe algo
similar por toda web, sendo facilmente encontrado.

Na Figuras - 27 temos seus aspectos físicas e na Figura - 28 temos os seus


contados de ligação.

Não há nenhuma configuração extra para sua ligação, similar a outras fontes,
cuidar apenas para não alimentar as placas, usando um diodo para controle de
fluxo.

Figura - 27 Figura - 28

4
5.10 – OUTROS COMPONENTES

5.10.1 - BATERIAS RECARREGÁVEIS

Pelas necessidades de alta capacidade de carga e pesando em custo usou-


se a Bateria de 3,7V com capacidade de 4200mAh e com uma proteção de
descarga de 2,7V. Figura – 29 temos seu aspecto físico.

Figura - 29

5.10.2 - CAIXA PLÁSTICAS PARA OS MÓDULOS


Para acomodar os circuitos dos módulos usa-se duas caixas da marca
Patola. Nas Figuras - 30 Temos a Caixa Plástica chamada de Coletor De
Dados para o modulo de Recepção e na Figura - 31 temos a caixa do modulo
de Emissão.

Figura - 30 Figura - 31

5
5.10.3 - SERVO MOTOR
Por seu custo ser baixo usamos o servo 9G com boa facilidade de uso e
código simples. Suas especificações são: Tensão de operação varia de 3,0Va
7,2V com grau de liberdade de 180 graus e velocidade de 0,12S/60graus, torque
1,2Kg.cm(48V) e 106Kg,cm(6V), temperatura de operação de -30Cº a + 60Cº,
os quais possui dois tipos de engrenagens internas de nylon e metal, o de metal
recebe a denominação de 9S.Dimenções 32x30x12mm e peso de 9g.
Na Figura – 32 Temos a sua imagem real com suas peças, Figura – 33 e 34
temos um esquema simples de ligação e seu conector, já a Figura – 35 temos o
seu programa básico em C++.

Figura - 32

#include <Servo.h>// biblioteca


#define SERVO 6 // Porta
Digital 6 PWM
Servo s; // Variável Servo
int pos; // Posição Servo
void setup ()
{
s.attach(SERVO);
Serial.begin(9600);
s.write(0); // Inicia motor
posição zero
}

void loop()
{
for(pos = 0; pos < 90; pos++)
{
s.write(pos);
Figura - 33 delay(15);
}
delay(1000);
for(pos = 90; pos >= 0; pos--
)
{
s.write(pos);
delay(15);
}
}

Figura - 34
30 Figura - 35
6
5.10.3 - SERVO MOTOR ELETRÔNICA DE CONTROLE
Por o controlador Atmega 328 ter um limite de utilização das portas de
configuração e assim não haver conflitos entre as bibliotecas dos componentes
convencionou-se usar um circuito separado para o controle dos servos, usando
o CI 555, muito aplicado em eletrônica pela sua gama de possibilidades. Para
começos sabendo que os Servos 9G usam PWM* como princípio de
funcionamento básico, então vamos explanar um pouco do 555. Na Figura – 36
temos sua forma real e com seu respectivos pinos, este circuito tem como
característica ser um oscilador com dispararão e retardo podendo gerar ondas
para configuração monoestável ou estável, saído um pulso de onda quadrada
(caracteriza por PWM*), em que variado o potenciômetro(RV1) pode direcionar
o sentido de rotação do motor, para direita ou para esquerda. Na Figura - 38
temos um dos seus esquemas simples com sua onda simulada no osciloscópio
do Proteus 8. Para cálculo da forma da onda segue a fórmula:
𝑻𝟏 = 𝟎. 𝟔𝟗𝟑(𝑹𝒂 + 𝑹𝒃 ) ∗ 𝑪 𝒐𝒖 𝑻𝟐 = 𝟎, 𝟔𝟗𝟑(𝑹𝒃 ) ∗ 𝑪,
Onde:
T1= Altura da onda T2 = distância entre as mesmas Ra e Rb resistor C =
Capacitor
𝟎. 𝟔𝟗𝟑 e a constante do logaritmo para cálculo de onda usado no NE555
Aplicado no circuito temos: RV1 como sendo Ra e esta junto do R1 e R2 = Ra

Temos com tensão de operação em todos os casos o 5V, já que é a tensão


básica do servo 9G.

Figura - 36

Figura - 37
7
Figura - 38
*(Vide Apêndice A )

5.10.4 - PAN TILT COM DOIS SERVOS


Para poder sustentar o painel solar o usou-se o sistema de posicionar com
movimentos de girar e inclinar os painéis de modo que o usuário possa aproveitar
melhor o sol. Podemos ver na Figura - 39. Então girado os potenciômetros da
Figura – 40 podemos inclinar a placa e girar sobre o eixo. Estes movimentos não
são automático, depende do operador.

Figura - 40

Figura - 39

8
6 - ANALISE DE FUNCIONAMENTO DOS EQUIPAMENTOS

6.1 - MÓDULOS TRANSMISSOR / RECEPTOR RF 433MHZ

Vamos detalhar os módulos completo, com seus circuitos e medidas de placa


e bornes assim como suas conexões.

6.1.1 - MÓDULO TRANSMISSOR

O módulo transmissor é mesmo em que está o sensor de ultrassom, o qual é


o elemento que quantifica os dados a ser enviado.

Figura - 41

Este dispositivo é composto pelo controlador Atmega 328, um display LCD


16x2, Sensor de ULTRASSOM HC-SR04 e um transmissor RF 433Mhz, Como
visto na Figura - 41, vamos a análise da fonte do modulo.

Temos a imagens do circuito na Figura - 42. Como fonte tensão temos o


painel solar como descrito no item 5.11 com seus 12V, o qual é enviado uma
tensão a o regulador LM 317 com seus capacitores

9
Figura - 42

Para manter sua tensão maior que 7,4V ajustado pelo Resistor R1, ou seja,
para ser maior que tensão de carga das Bateria (item 5.12), usando um Diodo
Zener D3 de tensão de 8,5V que é regulada pelo resistor R3, o qual manda uma
tensão para o transistor NPN BC 548 Q1 com seu transistor R3 regulador do Vbc,
que tem um diodo D1 4007 de não deixar o fluxo da tensão voltar a regulador,
fazendo assim um loop de controle dentro da faixa de 8V carregando assim as
Baterias já mencionada. As Baterias também possuem um Diodo 4007 D2 que
não deixa o fluxo de corrente voltar para o circuito regulado. Podemos ver na
Figura – 43 a sua imagem simulada no Proteus 8.

Figura - 43
10
As Baterias foram carregada e envia uma tenção de 7,4V para o regulador
SMD AMS 1117 de 5V com seus respectivos capacitores, que por sinal fornece
a carga de necessária para manter os compondes ligados com queda de tensão
de para 5V.

Como o Microcontrolador Atmega 328, display LCD 16x2, Sensor de


Ultrassom e o modulo RF433Mhz precisa de uma tensão regulada de 5v, todo
este conjunto descreve uma fonte autônoma de tensão a ponto de poder ficar
fora de monitoramento e livre de cabos, salvo em lugares em que não possui
luminosidade para a placa solar, mas isto é resolvido com outro equipamento,
mas que está fora do escopo deste projeto, vamos nos ater apenas em
ambientes abertos e com luminosidade suficiente.

O módulo possui um display LCD 16x2 que mostra os dados medido pelo
ultrassom, podendo assim ser visualizado no local, mesmo não tendo em mãos
o modulo receptor.

Este modulo possui internamente dois Trimpot 10k que ajusta a


luminosidade do LCD e das letras, pode assim adequar a necessidade do
usuário.

Por ter duas fontes de tensão o modulo possui depois interruptor ON/OFF,
que poder ser desligados ou ligados, uma para as Baterias e outro para a Placa
Solar.

O Sensor ultrassom já descrito no item 5.9 é um dos componentes básicos


do modulo, como já descrito o seu funcionamento não vamos entrar no assunto
de novo, apenas lembrando o qual parte do projeto ele pertence.

O equipamento também possui um LED Piloto para indicar se está em


operação ou não.

11
6.1.2 – MÓDULO RECEPTOR

Este modulo possui uma tela Touchscreen de LCD TFT 2,4” um receptor
RF 433Mhz, mais simplista que o módulo emissor, por ser um elemento passivo
e depender dos dados emitindo, como sendo um equipamento para mostrar o
nível e a medida feita pelo sensor seus circuito são mais simples. Temos a sua
forma física na Figura - 44

Figura - 44

O módulo possui dois reguladores, um AMS 1117 5V e outro AMS 1117


3,3V ambos com seus capacitores, já que a tela TFT possui duas entradas de
carga, um de 5v e outra de 3,3v, o Regulador MAS 1117 de 5V ainda fornece
tensão regulada para Atmega 328. Como fonte temos pilhas de lipo que fornece
a tensão de 7,4V para manter o funcionamento do modulo, na Figura - 45 temos
seu circuito.

12
Figura - 45

O equipamento também possui um LED Piloto para indicar se está em


operação ou não. E apenas uma chave ON/OFF para ligar e desligar.

Figura - 46

Na Figura – 46 temos a imagem digital da placa renderizada no Proteus 8 com


suas vistas de fundo e de face.

13
7 – CÓDIGOS EM C++ PARA IMPLANTAÇÃO NO MICROCONTROLADOR*

7.1 – MÓDULO EMISSIOR


//++++++++++++++++++++++++++++++++++++++++++++++++++++
// Medidor de Nível com Ultrassom HC-SR04 e RF 433 MHz
// RF TX - 433 MHz
//Joao Francisco
// Data: 10/07/2016
// v.1.0
//Codigo do transmissor com display 16x2
//+++++++++++++++++++++++++++++++++++++++++++++++++++++

#include <VirtualWire.h>//Carrega a biblioteca do emissor receptor


#include <Ultrasonic.h>//Carrega a biblioteca do sensor ultrassonico
#include <LiquidCrystal.h> //Carrega a biblioteca LCD
const int LED = 13;
const int TX = 10;// Declarando os pinos para transmissao (RF TX 433 MHz)
#define pino_trigger 8
#define pino_echo 7
Ultrasonic ultrasonic(pino_trigger, pino_echo);//Inicializa o sensor nos pinos definidos acima
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Define os pinos que serão ligados ao LCD
int cmMsec;

//------------------------------------------------------------
void setup() {
// Comunicacao com o Serial Monitor
Serial.begin(9600); // baud-rate
Serial.println("\nLendo dados do sensor...");
lcd.begin(16,2); //Inicializa LCD
// Inicializando E/S do transmissor
vw_set_tx_pin(TX);
vw_set_ptt_inverted(true); // Requerido para DR3100
vw_setup(2000); // Bits por segundos

}
//--------------------------------------------------------------

void loop() {
// Funcoes do Sensor - Calculos
float cmMsec;
long microsec = ultrasonic.timing();
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
// imprimindo no display 16x2
Serial.print("Nivel e:");
Serial.println(cmMsec);
lcd.setCursor(1, 0);
lcd.print("Nivel e:");
lcd.setCursor(0, 1);
lcd.print(cmMsec);
//---------------------------------------------
// Envio de dados via RF 433 mhz
// Convertendo int para char
char SensorCharMsg[10];
itoa(cmMsec, SensorCharMsg,10);
digitalWrite(LED, HIGH); // Pisca LED no pino 13 enquanto esta transmitindo
vw_send((uint8_t *)SensorCharMsg, strlen(SensorCharMsg));
vw_wait_tx(); // Espera o envio da informacao
digitalWrite(LED, LOW);

delay(1000);
}
//-------------------------------------------

14
7.2 – MÓDULO RECEPTOR
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Medidor de Nivel com Ultrasom HC-SR04 e RF 433 MHz
//RF TX - 433 MHz
//Joao Francisco
//Data: 12/07/2016
// v.1.0
//Codigo do receptor com display 16x2
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//Carrega a biblioteca do emissor receptor


#include <VirtualWire.h>
#include <Adafruit_GFX.h>
#include <SWTFT.h>
//Portas de leitura das coordenadas do touch
#define YP A1
#define XM A2
#define YM 7
#define XP 6

//Associa o nome das cores aos valores correspondentes


#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF

SWTFT tft;
//Armazena o estado dos botões
#define BOXSOZE 40
#define PENRADIUS 3
int color, currentcolor;
int val = 0;
int cmMsec;
const int LED = 13;
const int RX = 11;

void setup() {
// Comunicacao com o Serial Monitor
Serial.begin(9600);
Serial.println("Receptor");
tft.reset();
uint16_t identifier = tft.readID();
Serial.print(F("LCD driver chip: "));
Serial.println(identifier, HEX);
tft.begin(identifier);
pinMode(13, OUTPUT);

// Inicializando E/S do receptor


vw_set_rx_pin(RX);
vw_set_ptt_inverted(true); // Requerido para DR3100
vw_setup(2000); // Bits por segundo
vw_rx_start(); // Inicia a recepcao

}
void loop() {

uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;

if (vw_get_message(buf, &buflen)) { // Sem bloqueios na recepcao


digitalWrite(LED, HIGH); // Pisca LED no pino 13 se receber a mensagem integra
Serial.print("Msg. OK - Joao "); // Verifica checksum. Se mensagem integra, escreve Msg. OK - :

char SensorCharMsg[10]; // conteudo da transmissao


for (int i = 0; i < buflen; i++) {
SensorCharMsg[i] = (char)buf[i];
}
//verifica se terminou a transmissao
SensorCharMsg[buflen] = '\0';

//Convertendo char para inteiro


int cmMsec = atoi(SensorCharMsg);

//--------------------------------------------
//box de medida da altura do nivel do liquido
tft.fillScreen(BLACK );
tft.setRotation(1);
tft.setTextSize(3); // tamanho da fonte
tft.setCursor(156,63); // posição do texto
tft.setTextColor(BLUE); //cor do texto mostrado
tft.println("Cm");
tft.setRotation(1);
tft.setTextSize(5); // tamanho da fonte
tft.setCursor(15,48); // posição do tex
tft.println(cmMsec); // varivel convertida
15
// box de medida
tft.setRotation(1);
tft.setTextSize(2); // tamanho da fonte
tft.setCursor(10,20); // posição do texto
tft.setTextColor(BLUE); //cor do texto mostrador
tft.println(" Altura Medida:");
tft.setCursor(10, 140);
tft.setTextSize(2);
tft.setTextColor(WHITE);
tft.println(" Deivid ");
tft.println(" Joao Francisco ");
tft.println(" Maicon ");
tft.println(" Carlos ");
tft.setTextSize(2);
tft.setRotation(0);
//--------------------------------------------

tft.fillRect(26, 247,(cmMsec),41,RED); //Este recebe a variavel medida mostrando a barra de nivel


variando de 0% a 100%

tft.drawRoundRect(200, 10, 25, 185, 0, WHITE);//Box mostrador de dados


tft.drawRoundRect(142, 10, 59, 185, 0, WHITE);//Box mostrador de dados
tft.drawRoundRect(0, 0, 230, 310, 0, RED); //box borda da tela ----------
tft.drawRoundRect(0, 0, 231, 311, 0, GREEN); //box borda da tela ----------
tft.drawRoundRect(0, 0, 232, 312, 0, GREEN); //box borda da tela ----------
tft.drawRoundRect(0, 0, 233, 313, 0, GREEN); //box borda da tela ----------
tft.drawRoundRect(0, 0, 234, 314, 0, GREEN); //box borda da tela ----------
tft.drawRoundRect(0, 0, 235, 315, 0, GREEN); //box borda da tela ----------
tft.drawRoundRect(0, 0, 236, 316, 0, GREEN); //box borda da tela ----------
tft.drawRoundRect(0, 0, 237, 317, 0, GREEN); //box borda da tela ----------
tft.drawRoundRect(0, 0, 238, 318, 0, GREEN); //box borda da tela ----------
tft.drawRoundRect(0, 0, 239, 319, 0, GREEN); //box borda da tela ----------
tft.drawRoundRect(0, 0, 240, 320, 0, WHITE); //box borda da tela----------
tft.drawRoundRect(25, 245, 163, 45, 0, WHITE);// Box de nivel

//--------------------------------------------
// Box do Nivel
tft.setRotation(1);
tft.setTextSize(1);
tft.setTextColor(RED);
tft.setCursor(216,65);
tft.println("100%-");
tft.setCursor(220,97);
tft.println("75%-");
tft.setCursor(220,129);
tft.println("50%-");
tft.setCursor(220,161);
tft.println("25%-");
tft.setCursor(220,193);
tft.println("00%-");
//-----------------------------
// Texto do nivel
tft.setRotation(1);
tft.setCursor(250,32); // posição do texto
tft.setTextColor(RED); //cor do texto mostrador
tft.println(" Nivel");
tft.setTextSize(1); // tamanho da fonte
tft.setCursor(213,43); // posição do texto
tft.setTextColor(RED); //cor do texto mostrador
tft.println(" Em porcentagem:");
delay(1000);

Serial.print("Nivel: ");
Serial.print(cmMsec);
Serial.println(" Cm");
digitalWrite(LED, LOW);

}
}

*O código é de compilação de vários outros implementados para caso, não espere algo do assunto totalmente original, já que estamos lidando com hardware e software de código livre,
sempre disponível na comunidade Arduíno.

16
8- CRONOGRAMA DE EXECUÇÃO

9 - PAGINAS DE WEB COMO REFERÊNCIA BIBIOGRAFICA


http://www.newtoncbraga.com.br/index.php/robotica/5169-mec071a
http://www.mercadolivre.com.br/
https://www.youtube.com/?gl=BR&hl=pt
https://www.eecis.udel.edu/~portnoi/academic/academic-files/pwm.html
http://www.newtoncbraga.com.br/

10 - REFERÊNCIA BIBIOGRAFICA

BOYLESTAD, Robert L.; NASHELSKY, Louis. Dispositivos Eletrônicos e Teoria


de Circuitos. 8ª ed. São Paulo: Pearson. 696 p.

MALVINO, Albert Paul. Eletrônica - Vol. 1 e 2. 4ª ed. São Paulo: Pearson.

11 - APENDICE A

PULSE WIDTH MODULATION (PWM)

De acordo o teorema da amostragem, um sinal limitado em faixa, isto é, um


sinal com largura de banda limitada em B Hz, é especificado completamente por
seus valores espaçados a intervalos uniformes de 1/(2B) segundos, ou menos.
Ao invés de transmitir todo o sinal continuamente, necessita-se transmiti-lo
apenas em um número finito de instantes (2B por segundo ou 2B Hz). A
informação na amostra pode ser transmitida usando modulação de pulso.

Existem várias formas de modulação de pulso, a saber:

Modulação por Amplitude de Pulso (PAM)

17
Modulação por Posição de Pulso (PPM)

Modulação por Código de Pulso (PCM)

Modulação por Largura de Pulso (PWM)

Esta pesquisa objetiva tratar a Modulação por Largura de Pulso (PWM)


qualitativamente e apresentar um exemplo de circuito modulador.

Modulação de largura de Pulso

Também conhecida por PWM, do inglês Pulse Width Modulation, este tipo de
modulação mantém a amplitude dos pulsos constantes e varia-se a sua largura
proporcionalmente aos valores de f(t)(sinal modulador) nos instantes
correspondentes, como mostra a Figura 1.

Figura 1: Modulação PWM.

RETIRADO DO SITE

https://www.eecis.udel.edu/~portnoi/academic/academic-files/pwm.html

Todos os direitos aos autores, foi suprimida as partes que foge do escopo do texto.

Albert Moreira, Thiago Negreiros, Marcos Portnoi

18

You might also like