Arduino para Iniciantes

Cursos


Simulados


P&R

Arduino-36 Projetos

Ajude-nos a manter este site sempre atualizado com novos Cursos, Tutoriais, Simulados e Projetos. Agradecemos a sua colaboração.


Projetos Arduino - Sensores - Projeto 5

Como utilizar um Sensor RFID-RC522 para
acionar um Servo Motor

  Descrição:

  Nesse projeto vamos utilizar o mesmo sensor do projeto anterior juntamente com um servo motor e um LCD 16x2, de forma que, quando alguém autorizado aproximar o cartão do leitor o eixo do servo motor deverá ser girado em 90 graus. No caso do chaveiro nada aconte-cerá, isso significa que o chaveiro não está autorizado ao acesso. A liberação ou não do acesso será mostrada no LCD. Você poderia adaptar esse projeto e criar um mecanismo para abrir uma porta qualquer ou uma cancela para alguém entrar em algum recinto, por exemplo. Para efeito de conferência, o resultado também será exibido no Monitor serial do Arduino. Para ajustar a luminosidade do LCD vamos adicionar também um potenciômetro.

  Essas informações serão mostradas também no Monitor serial. Podemos encontrar esse tipo de sensor sendo utilizado nos pedágios de estradas e pontes, aberturas de portas, em produtos, em cartões para acesso ao transporte coletivo, entre outras aplicações. As etiquetas (ou tags como são também conhecidas) RFID podem conter vários dados sobre o proprietário do cartão, como nome, endereço e telefone, e no caso de produtos, informações sobre procedência, valor e data de validade, apenas para citar alguns exemplos.

  Mas agora vamos conhecer os componentes que farão parte desse projeto.

  Leitor RFID-RC522:

  RFID significa Radio Frequency Identification (Identificação por Radiofrequência). Além da identificação e acesso de pessoas a determinados lugares, como já dissemos anteriormente, esse leitor pode ser também utilizado para identificar produtos e equipamentos, seja por meio de crachás ou etiquetas aplicadas a esses produtos. Você também poderá utilizar esse sensor para ligar motores, outros sensores, lâmpadas ou LEDs, entre outros dispositivos. As tags RFID podem ser embutidas facilmente em vários objetos, nos mais variados tamanhos e for-matos. Cada etiqueta (ou tag) do leitor RFID tem a sua própria identificação (UID).

  Esse leitor é composto de três partes: um sensor, uma tag no formato de chaveiro e uma tag no formato de cartão. Toda tag que acompanha o leitor é identificada com um código hexadecimal único, que você poderá utilizar para cadastrar as pessoas, produtos, peças, etc. Nenhum código é igual a outro. Você poderá adquirir vários cartões e vários chaveiros para utilizar com um mesmo leitor.

  O tipo de leitor que vamos utilizar no nosso projeto é o mostrado na Figura 5.1:


Figura 5.1 – Leitor RFID-RC522, Chaveiro e Cartão.
(Imagem: do Autor)

  Vejamos algumas especificações técnicas desse componente de acordo com o fabricante:

  • Corrente de pico: & lt; 30mA.
  • Umidade relativa: 5% -95%.
  • Corrente: 13-26mA/DC 3.3V.
  • Corrente ociosa: 10-13mA / DC 3.3V.
  • Frequência de operação: 13.56MHz.
  • Dimensões: 40mm x 60mm.
  • Temperatura de armazenamento do ambiente: -40 ~ 85 graus Celsius.
  • Temperatura de operação ambiental: -20 ~ 80 graus Celsius.
  • Tipos de cartões suportados: mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro, mifare Desfire.

  Pinagem:

  Esse componente dispõe de oito pinos para a conexão com o Arduino, conforme mostra a Figura 5.2:


Figura 5.2 – Leitor RFID-RC522.
(Imagem: do Autor)

A partir da esquerda (parte superior), temos:

  • Pino 3.3 – alimentação: 3.3V.
  • Pino RST – porta 9 do Arduino.
  • Pino GND – terra.
  • Pino NC – Não conectado.
  • Pino MISO – porta 12 do Arduino.
  • Pino MOSI – porta 11 do Arduino.
  • Pino SCK – porta 13 do Arduino.
  • Pino SDA – porta 10 do Arduino.

  Lembrete: A tensão desse sensor é de 3.3V, e não 5V como é de costume na maioria dos componentes. Portanto, cuidado para não conectá-lo no pino errado, senão poderá danificar o componente.

  Servo Motor:

  O servo motor que vamos utilizar no nosso projeto é o mesmo já utilizado em projetos anteriores, ou seja, um Tower Pro 9g, conforme mostra a Figura 5.3:


Figura 5.3 – Servo Motor Tower
Pro 9g e acessórios.
(Imagem: do Autor)

  Pinagem:

  Esse componente dispõe apenas de três fios: um para a tensão (fio vermelho), um para o terra (fio marrom) e outro para o sinal (geralmente de cor laranja ou amarelo, mas pode variar de acordo com o modelo e o fabricante):

  Potenciômetro:

  Um potenciômetro é um sensor analógico com um botão giratório ajustável entre um valor mínimo e um máximo. É como se fosse um resistor variável. Seus valores variam entre 0 e 1023, e você poderá utilizar esse componente para controlar o volume de um som, a veloci-dade de um motor, a intensidade de um LED ou de uma lâmpada, entre outras aplicações. Sua tensão pode variar entre 3,3V e 5V. Existem vários tipos, tamanhos e formatos desse componente no mercado, e você poderá utilizar qualquer um que seja compatível com o que vamos utilizar em nosso projeto, conforme mostra a Figura 5.4:


Figura 5.4 – Potenciômetro.
(Imagem: do Autor)

  Pinagem:

  Esse componente dispõe de três pinos (ou terminais) para a conexão com o Arduino. A partir da esquerda, temos:

  • GND – terra.
  • VCC – 5V.
  • SIG – sinal.

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


Figura 5.5 – 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 Leitor RFID-RC522.
  • 1 Tag Cartão.
  • 1 Tag Chaveiro.
  • 1 Display LCD 16x2.
  • 1 Servo Motor TowerPro 9g.
  • 1 Potenciômetro de 10K.
  • 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 5.6, mas antes certifique-se que o cabo USB do Arduino esteja desconectado do computador:


Figura 5.6 – 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 marrom).
  • Leitor RFID-RC522 – conecte o primeiro pino da esquerda (SDA) ao pino 10 do Arduino (fio verde), o segundo pino (SCK), conecte ao pino 13 do Arduino (fio vermelho), o pino MOSI, conecte ao pino 11 do Arduino (fio verde), o pino MISO, conecte ao pino 12 do Arduino (fio vermelho), o pino NC, deixe desconectado, o pino GND, conecte a um dos pinos da trilha preta da protoboard (fio azul), o pino RST, conecte ao pino 9 do Arduino (fio laranja), e finalmente, o pino 3.3, conecte ao pino 3.3V do Ar-duino (fio verde).
  • Display LCD – conecte o primeiro pino da esquerda, VSS (Ground), a um dos pinos da trilha preta da protoboard (fio azul), o segundo pino, VDD (5V), conecte a um dos pinos da trilha vermelha da protoboard (fio azul), o terceiro pino, VE (Contrast), conecte o potenciômetro (veja abaixo), o quarto pino RS conecte à saída digital 6 do Arduino (fio laranja), o quinto pino, RW, conecte a um dos pinos da trilha preta da protoboard (fio marrom), o sexto pino (E), conecte à saída digital 7 do Arduino (fio lilás), deixe os próximos 4 pinos (D0 a D3) desconectados, o pino D4, conecte à saída digital 5 do Arduino (fio verde), 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 azul), o terminal de cor vermelha conecte a um dos pinos da trilha ver-melha da protoboard (fio vermelho), e o terminal de cor amarela à saída digital 8 do Arduino (fio laranja).
  • Potenciômetro – conecte o terminal da esquerda (SIG) ao pino VE (Constrast) do LCD (fio amarelo), o segundo terminal (VCC) conecte à trilha vermelha da protoboard (fio ver-melho), e o último (GND) conecte a um dos pinos da trilha preta da protoboard (fio laranja).
  Para facilitar a conexão do LCD 16x2 com o Arduino e a protoboard, consulte a tabela a seguir:


Tabela 5.1 – Conexão dos pinos do LCD 16x2
com o Arduino e a protoboard.
(Imagem: do Autor)

  Veja nas Figura 5.7, 5.8, 5.9 e 5.10 o mesmo projeto na versão real:


Figura 5.7 – Visão real das conexões dos
componentes com o Arduino e a protoboard.
(Imagem: do Autor)


Figura 5.8 – Mensagem inicial quando o código é executado.
(Imagem: do Autor)


Figura 5.9 – Mensagem quando o cartão
é aproximado do leitor.
(Imagem: do Autor)


Figura 5.10 – Mensagem quando o chaveiro
é aproximado do leitor.
(Imagem: do Autor)

  Criando o sketch:

  Para a criação do nosso sketch, precisamos primeiro baixar e instalar a biblioteca do RFID no Arduino necessária para a execução do projeto. Se a biblioteca já estiver instalada execute o passo seguinte:

   Instalando a biblioteca MFRC522:

  • Faça o download da biblioteca MFRC522 no link:

   Biblioteca MFRC522

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

  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 5.1 (desconsidere os números à esquerda, só servem como referência), ou carregue o arquivo (leitor_rfid_servo) utilizando o link:

   Leitor RFID-RC522

  E abra no editor do Arduino.


Listagem 5.1

  Salve esse projeto com o nome (sugestão) de: leitor_rfid_servo.

  Alguns comentários sobre o código:

  1) Nas linhas 6 a 9, incluímos as bibliotecas necessárias para a execução do nosso projeto.
  2) Nas linhas 10 e 11, definimos as saídas digitais do Arduino para as conexões dos pinos SDA e RST do leitor.
  3) Na linha 37, chamamos a função criada no final do código para imprimir no LCD a mesma mensagem da linha 35.
  4) Na linha 43, criamos uma condição para procurar por novos cartões. Se não houver, o programa retornará ao início do loop.
  5) Na linha 48, criamos outra condição para selecionar um cartão. Se houver algum, a UID será impressa no Monitor serial.
  6) Na linha 65, criamos outra condição para sabermos se a UID do cartão confere com o código cadastrado. Se for o caso, o eixo do servo será girado em 90 graus, e o acesso será libe-rado, e as respectivas mensagens serão impressas no Monitor e no LCD.
  7) Na linha 84, criamos mais uma condição para sabermos se o código do chaveiro está autorizado ou não. As mensagens da não autorização serão também impressas no Monitor e no LCD.
  8) Finalmente, na linha 98, criamos uma função para imprimir no LCD a mesma mensa-gem da linha 35 (no Monitor serial) sempre que nenhuma tag for aproximada do leitor.

  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 os códigos hexadecimais do cartão e do chaveiro e suas respectivas mensagens, autorizadas ou não, como também o ângulo do eixo do servo, conforme mostra a (Figura 5.11):


Figura 5.11 – Monitor mostrando a situação das tags
e o movimento do eixo do servo motor.
(Imagem: do Autor)


  Atividade:

  1) Adicione um LED vermelho e um alarme ao projeto, e altere o código de forma que, se a pessoa não estiver autorizada (no caso, o chaveiro) para acionar o servo, o LED deverá ficar aceso e o alarme deverá disparar, caso contrário, nada deverá acontecer.

  Dúvidas:

  E-mail: jorge.eider@gmail.com

  WhatsApp: (55) 84-99988-4136



Tutoriais


Programas



Projetos


O Catador de Lixo Arduino para Iniciantes Programando com Arduino-12 Projetos
Cursos

Android
C
C++
CSS3
HTML
Java
JQuery
JScript
PHP
SQL
P&R

Android
CSS3
HTML
Java
JQuery
JScript
PHP
Python
Simulados

Android
Arduino
C
C++
CSS3
HTML
Java
JQuery
JScript
PHP
Python
SQL
Tutoriais

Android
App Inventor 2
Arduino
C
C++
CSS3
HTML
Java
JQuery
JScript
PHP
Python
Programas

Android
App Inventor 2
C
Java
JQuery
JScript
PHP
Python
Projetos

Android
App Inventor 2
Arduino

Copyright 2020 - Simulados & Tutoriais - Todos os Direitos Reservados.