|
Descri��o:
Nesse projeto vamos utilizar um sensor ultrass�nico HC-SR04, juntamente com um servo motor e um LCD 16x2, de forma que, quando o sensor detectar algum objeto em sua linha de a��o,
a dist�ncia ser� registrada no LCD e o eixo do servo motor ser� girado para os graus determinados pelas dist�ncias programadas para o sensor, ou seja, para cada dist�ncia pr�-estabelecida
para o sensor, o eixo do servo ser� girado para um determinado grau, e essas informa��es ser�o mostradas no display. Para efeito de confer�ncia, o resultado tamb�m ser� exibido no Monitor
serial do Arduino.
Mas agora vamos conhecer os componentes que far�o parte desse projeto.
Sensor Ultrass�nico HC-SR04:
O sensor ultrass�nico HC-SR04 permite que voc� fa�a leituras de dist�ncias entre 2 cm e 4 metros, com precis�o de 3 mm. Ele � um componente muito utilizado em projetos eletr�nicos,
principalmente com o Arduino. Ele permite detectar a presen�a de qualquer obst�culo que se encontre em sua linha de a��o, dependendo da dist�ncia programada, e acionar portas do microcontrolador,
acionar alarmes e rel�s, acender LEDs ou l�mpadas, etc.
Podemos calcular a dist�ncia do objeto com base no tempo tomado pela onda de ultrassom para retornar de volta para o sensor. Uma vez que o tempo e a velocidade do som s�o conhecidos, podemos
calcular a dist�ncia percorrida pela seguinte f�rmula:
dist�ncia = (tempo x velocidade do som) / 2 (A velocidade do som � 340 m/s)
O valor � dividido por dois tendo em vista que a onda se desloca para a frente e para tr�s cobrindo a mesma dist�ncia. Esse tipo de sensor � muito utilizado em autom�veis para detectar a
dist�ncia que se encontra de outro carro ou de um obst�culo qualquer. Muito utilizado tamb�m em resid�ncias e empresas para detectar a presen�a de intrusos, entre outras aplica��es.
O funcionamento desse sensor se baseia no envio de sinais ultrass�nicos atrav�s do terminal Trig, que aguarda o retorno do sinal atrav�s do terminal Echo, e com base no tempo entre envio
e retorno, calcula-se a dist�ncia entre o sensor e o objeto detectado.
Existe no mercado v�rios tamanhos e formatos desse tipo de sensor, mas, o que vamos utilizar no nosso projeto � o mostrado na Figura 6.1:

Figura 6.1 � Sensor ultrass�nico HC-SR04 Frente e verso.
(Imagem: do Autor)
Vejamos algumas especifica��es t�cnicas desse componente de acordo com o fabricante:
� Tens�o de funcionamento: 5v (DC).
� Corrente est�tica: Menos de 2mA.
� Sinal de sa�da: Sinal de frequ�ncia el�trica, n�vel alto 5V, n�vel baixo 0V.
� �ngulo do sensor: n�o mais que 15 graus.
� Dist�ncia de detec��o: 2cm-450cm.
� Alta precis�o: at� 0.3 cm.
� Sinal de disparo de entrada: 10us impulso TTL.
� Sinal de eco: sa�da TTL sinal PWL.
Pinagem:
Esse sensor disp�e de apenas quatro pinos (ou terminais). Considerando a imagem de frente do sensor, temos:
� VCC � 5V.
� Trig � envia o sinal.
� Echo � recebe o sinal.
� GND � terra.
Servo Motor:
Um servo motor � um componente muito utilizado em projetos eletr�nicos. Ele � com-posto de um pequeno motor, um circuito e v�rias engrenagens no seu interior, e o giro do seu eixo
pode variar entre 0 e 180 graus. Ele � muito utilizado em aeromodelismo, nautimodelis-mo, rob�tica, abertura de portas, entre outras aplica��es. Por fora podem ser fixados alguns acess�rios
que normalmente o acompanham. Para a conex�o com o Arduino ele disp�e de tr�s fios: um para a tens�o (fio vermelho), um para o terra (fio marrom) e outro para o sinal (geral-mente de cor laranja
ou amarelo, mas pode variar de acordo com o modelo e o fabricante).
Existe no mercado v�rios tipos de servo motores quanto ao tamanho, formato e torque, mas o que vamos utilizar no nosso projeto � o Tower Pro 9g, mostrado na Figura 6.2:

Figura 6.2 � Servo Motor Tower Pro 9g
e acess�rios.
(Imagem: do Autor)
Display LCD 16x2:
Esse componente � utilizado para exibir informa��es provenientes de resultados obtidos da leitura de outros componentes, como sensores de movimento, ultrass�nicos, infravermelho,
de temperatura, etc. Essas informa��es ser�o exibidas em um visor de cristal l�quido contendo 16 colunas por 2 linhas. Esse componente poder� ser usado com v�rios tipos de placas
e microcontroladores, tais como Arduino, Raspberry PI, PIC, entre outros. O tamanho, as cores de fundo e dos caracteres variam de acordo com o modelo e o fabricante. Entretanto,
essas caracter�sticas n�o afetam a finalidade do nosso projeto.
O tipo de display que vamos utilizar em nosso projeto � o mostrado na Figura 6.3:

Figura 6.3 � Display LCD 16x2
(Imagem: do Autor)
Vejamos algumas especifica��es t�cnicas desse componente de acordo com o fabricante:
� M�dulo I2C 1602 LCD Azul 16x2.
� Tela de cristal l�quido para Arduino e outros microcontroladores.
� Com o conversor serial I2C, o m�dulo usa o chip pcf8574.
� Ele permite que voc� use este LCD com apenas 4 pinos. H� uma luz de fundo que levaria um quinto pino se voc� quiser ligar e desligar.
� Tela retro iluminada azul de 16x2 caracteres.
� O conversor I2C inclu�do salva os pinos no seu projeto.
� O LCD e o conversor s�o componentes separados com os pinos soldados no conversor.
� Ser� necess�rio soldar o conversor no LCD.
Agora que voc� j� conhece o componente essencial para esse projeto, vejamos o material necess�rio para sua execu��o:
� 1 Arduino Uno (recomendado) ou compat�vel.
� 1 Protoboard.
� 1 Sensor ultrass�nico HC-SR04.
� 1 Servo Motor TowerPro 9g.
� 1 Display LCD 16x2.
� Alguns jumpers.
Conectando os componentes ao Arduino:
Estando com todo o material em m�os, conecte-os de acordo com o esquema mostrado na Figura 6.4, mas antes certifique-se que o cabo USB do
Arduino esteja desconectado do computador:

Figura 6.4 � Conex�o esquem�tica dos componentes com o Arduino e a protoboard.
(Imagem: do Autor)
Fa�a as conex�es da seguinte forma:
� Arduino � conecte o pino 5V a um dos pinos da trilha vermelha da protoboard (fio vermelho), e o pino GND a um dos pinos da trilha preta da protoboard
(fio preto).
� Sensor Ultrass�nico (considerando o verso do sensor e n�o a frente) � conecte o primeiro pino da esquerda (GND) a um dos pinos da trilha preta
da protoboard (fio azul), o segundo pino (Echo), conecte � sa�da digital 9 do Arduino (fio laranja), o terceiro pino (Trig), conecte � sa�da digital 10 do Arduino (fio verde), e finalmente
o quarto pino (VCC), conecte � trilha vermelha da protoboard (fio lil�s).
� Display LCD � conecte o primeiro pino da esquerda, VSS (Ground), a um dos pinos da trilha preta da protoboard (fio marrom), o segundo pino, VDD (5V),
conecte a um dos pinos da trilha vermelha da protoboard (fio azul), o terceiro pino, VE (Contrast), deixe desconectado, ou utilize para conectar um potenci�metro para ajustar a luminosidade
do LCD. O quarto pino RS conecte � sa�da digital 12 do Arduino (fio lil�s), o quinto pino, RW, conecte a um dos pinos da trilha preta da protoboard (fio ciano), o sexto pino, conecte � sa�da
digital 11 do Arduino (fio verde), deixe os pr�ximos 4 pinos desconectados (D0 a D3), o pino D4, conecte � sa�da digital 5 do Arduino (fio laranja), o pino D5, conecte � sa�da digital 4 do
Arduino (fio azul), o pino D6, conecte � sa�da digital 3 do Arduino (fio verde), o pino D7, conecte � sa�da digital 2 do Arduino (fio vermelho), o pen�ltimo pino, Backlight Anode, conecte
� um dos pinos da trilha vermelha da protoboard (fio vermelho), e finalmente o pino, Backlight Cathode, conecte � um dos pinos da trilha preta da protoboard (fio preto).
� Servo Motor � conecte o terminal de cor marrom do servo a um dos pinos da trilha preta da proto-board (fio verde), o terminal de cor vermelha
conecte a um dos pinos da trilha vermelha da protoboard (fio vermelho), e o terminal de cor amarela � sa�da digital 7 do Arduino (fio amarelo).
Para facilitar a conex�o do LCD 16x2 com o Arduino e a protoboard, consulte a tabela a seguir:

Tabela 6.1 � Conex�o dos pinos do LCD 16x2 com o Arduino e a protoboard.
(Imagem: do Autor)
Veja nas Figura 6.5, 6.6 e 6.7 o mesmo projeto na vers�o real:

Figura 6.5 � Vis�o real das conex�es dos componentes com o Arduino e a protoboard.
(Imagem: do Autor)

Figura 6.6 � LCD mostrando a dist�ncia capturada pelo sensor e o �ngulo
do servo motor.
(Imagem: do Autor)

Figura 6.7 � Posi��o do sensor na protoboard.
(Imagem: do Autor)
Criando o sketch:
Para a cria��o do nosso sketch, voc� precisa primeiro baixar e instalar a seguinte biblioteca no Arduino necess�ria para a execu��o do projeto. Se a mesma j� estiver instalada,
execute o passo seguinte:
Instalando a biblioteca Ultrasonic:
� Fa�a o download da biblioteca Ultrasonic no link:
Biblioteca Ultrasonic
E salve-a em algum lugar de sua prefer�ncia.
� Descompacte o arquivo e mova ou copie a pasta MFRC522 para o diret�rio libraries do Arduino (onde ele foi instalado).
� Execute o Arduino e verifique se a biblioteca instalada faz parte da lista de bibliotecas utilizando o menu: Sketch >> Incluir Biblioteca.
Ela deve estar no final da lista com o nome: Ultrasonic.
OBS.: Se o Arduino j� estiver sendo executado ser� necess�rio fech�-lo e execut�-lo novamente para que a biblioteca seja inclu�da na lista.
Agora que a biblioteca est� devidamente instalada e os componentes conectados, digite o c�digo da Listagem 6.1 (desconsidere os n�meros � esquerda,
s� servem como refer�ncia), ou carregue o arquivo (leitor_rfid) utilizando o link:
Sensor com Servo e LCD
E abra no editor do Arduino.
Listagem 6.1
Salve esse projeto com o nome (sugest�o) de: sensor_lcd_servo.
Alguns coment�rios sobre o c�digo:
1) Na linha 7 foi inclu�da a biblioteca Ultrasonic.
2) Na linha 9 inclu�mos tamb�m a biblioteca do servo, e na linha 11 inclu�mos a biblioteca do LCD, necess�rias para a execu��o do nosso projeto.
3) Na linha 13 definimos os pinos do Arduino onde ser�o conectados os pinos do LCD.
4) Nas linhas 17 e 18 definimos as constantes trigPin e echoPin para as conex�es dos pi-nos do sensor com os pinos 10 e 9 do Arduino, respectivamente.
5) Na linha 20 declaramos a vari�vel inteira servoPin para definir a conex�o com o pino 7 do Arduino.
6) Na linha 22 criamos um objeto do tipo Ultrasonic para inicializarmos os pinos do sen-sor.
7) Na linha 24 declaramos a vari�vel inteira angulo para armazenar o �ngulo do servo.
8) Na linha 28 inicializamos o LCD definindo o n�mero de colunas e linhas.
9) Na linha 32 definimos o �ngulo que o servo ser� iniciado toda vez que o c�digo for executado, ou seja, zero graus.
10) Nas linhas 33 a 35 definimos os pinos de entrada e sa�da do sensor e do servo. Na fun-��o loop() descrevemos v�rias situa��es onde o eixo do servo dever�
girar de acordo com as dist�ncias preestabelecidas no c�digo.
Executando o projeto:
Inicialmente conecte o cabo USB no computador, selecione uma porta utilizando o menu Ferramentas/Porta, e em seguida fa�a o upload do c�digo para o
Arduino clicando no �cone Carregar (ou utilize o menu Sketch >> Carregar). Se o seu c�digo apresentar algum tipo de erro, ele ser� identificado
com uma tarja sobre a linha onde se encontra o erro e/ou no rodap� do Editor, isso vai depender do tipo de erro. Cabe a voc� procurar saber que tipo de erro ocorreu e consert�-lo.
Testando o projeto:
Ap�s a execu��o do c�digo, o projeto dever� mostrar no Monitor serial as dist�ncias captadas pelo sensor e os respectivos giros do eixo do servo (em graus), conforme mostra
a (Figura 6.8):

Figura 6.8 � Monitor mostrando a dist�ncia detectada pelo sensor
e o giro do eixo do servo motor (em graus).
(Imagem: do Autor)

Atividade:
1) Adicione quatro LEDs (de cores diferentes) ao projeto, e altere o c�digo de forma que, um LED fique aceso para cada giro do eixo do servo (por exemplo: 30, 60, 90 e 120 graus),
e mostre no Monitor serial e no LCD a cor do LED referente a cada giro. Quando o eixo do servo estiver na sua posi��o original (zero grau), todos os LEDs dever�o ficar apagados.
D�vidas:
E-mail: [email protected]
WhatsApp: (55) 84-99988-4136

|
|