Por Fernando Koyanagi

Documentos relacionados
Por Fernando Koyanagi

Por Fernando Koyanagi

Por Fernando Koyanagi

Por Fernando Koyanagi

Por Fernando Koyanagi

Por Fernando Koyanagi 1

Projeto para interligação do Teclado Matricial 4X3 o módulo PIC PCI-208 Princípio de Funcionamento:

#include <SoftwareSerial.h> SoftwareSerial myserial(2, 3); // RX, TX

Cerne Tecnologia e Treinamento

Por Fernando Koyanagi. ESP32 + chip SX1276

Por Fernando Koyanagi 1

Introdução ao Arduino ESCOLA DE ARTES VISUAIS DO PARQUE LAGE. Núcleo de Arte e Tecnologia. julio lucio martin. Aula 07

DESENVOLVIMENTO DE UM CLAVICULÁRIO ELETRÔNICO

Comunicação Serial 1

Kit controle remoto IR acionando 3 Led com Arduino

Plano de Aula. 1 o semestre. Aula número 011 Periféricos Display LCD, Conversor AD e conversor DA (PWM)

Plano de Aula. 1 o semestre. Aula número 012 Periféricos Comunicação Serial. Conhecer os princípios de comunicação serial

Computação Eletrônica. Strings. Prof: Luciano Barbosa. CIn.ufpe.br

Comando Switch. Embora a escada if else-if possa executar testes de várias maneiras, ela não é de maneira nenhuma elegante.

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Por Fernando Koyanagi

int pinosensor = A0; //define a variável como entrada analógica //no pino A0 para o sensor LM35.

Por Fernando Koyanagi 1

Por Fernando Koyanagi

Over the Air OTA. Por Fernando Koyanagi

C:\Users\House\Desktop\fluxo.c 1: /****************************************************************************** 2: * Objetivo: Este projeto visa

Depois de configurada nossa comunicação serial podemos enviar vários comandos para comunicação entre o computador e o Arduino:

SENSOR DE LUMINOSIDADE Com indicador de intervalo

CONFIGURAÇÃO DO MICROTERMINAL BEMATECH FIT LIGHT

ROBÓTICA 1 INTRODUÇÃO A PROGRAMAÇÃO NO ARDUINO

Programação em Linguagem C

Por Fernando Koyanagi

3.1 - Funções para manipular dados de entrada e saída padrão

Programação em Linguagem C

Robótica com Arduino

Introdução. O que é o Arduino?

Por Fernando Koyanagi

Por Fernando Koyanagi 1

Linguagem C Controle do Fluxo de Execução. Lógica de Programação

Por Fernando Koyanagi 1

Seleção Múltipla Laços (while, do-while, for) AULA 05

Por Fernando Koyanagi

Estruturas de Repetição

INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY

Este tutorial mostra como utilizar as ferramentas Send Mail e Web Commands.

Métodos Computacionais. Strings (Vetor de Caracteres)

Acendendo o Led com Arduino.

Por Fernando Koyanagi

LCDs Inteligentes. LCD Inteligente. Gabriel Kovalhuk DAELN / UTFPR

Usando display LCD tipo 16x2

Tratamento de Caracteres

Vetores, Matrizes e String

Oxímetro Bluetooth e LCD 16 2 em Python

Por Fernando Koyanagi 1

Algoritmos e Programação

Curso de Básico Arduino! Ministrado por: Wellington Cássio Faria Contato:

Algoritmos e Programação

Por Fernando Koyanagi

Controlando até 68 pontos Com Arduino Mega e ESP8266. Por Fernando Koyanagi

Arduino - Primeiros Passos

Atividade de laboratório 004. Prof: Carlos Eduardo de Brito Novaes 6 de maio de Alunos RA Nome Curso Semestre

Por Fernando Koyanagi 1

arduino = new roboticalivre(); Arduino Marcus Fazzi

Arduino. Introdução aos Componentes Básicos. Leonardo Mauro P. Moraes. Universidade Federal de Mato Grosso do Sul - UFMS.

Curso de robótica 2. Novos conceitos de programação

Curso: Tecnologias educacionais de baixo custo. Conector Ciência:

TS C Display Gráfico Serial Colorido

introdução Olá, Após alimentar você deve enviar comandos AT para verificar que o modulo está funcionando e comunicando via serial.

Unidade 3: Estruturas de Controle Parte 2 - Lógica, SWITCH, FOR, WHILE e DO WHILE Prof. Daniel Caetano

Manual Técnico Arduino Supervisório RTC (Real Time Clock)

MSP430 Lab 06 Comunicação com display de 40 2 e análise das formas de onda no analisador lógico

Aula 4 Estruturas de Controle

Para começar, iremos visualizar todas as informações no monitor serial. Portanto, a primeira montagem que devemos fazer na protoboard é a seguinte:

Robótica com Arduino Professor: Paulo Marcos Trentin

Estruturas de Controle em c#

Por Fernando Koyanagi

COMANDOS DE DECISÕES. O COMANDO if. O comando if instrui o computador a tomar uma decisão simples. Forma Geral: if (expressão de teste) instrução;

Estrutura de Seleção Múltipla Switch

CCO 016 / COM 110 Fundamentos de Programação

EL08D - MICROCONTROLADORES

Sintaxe Básica de Java Parte 2

TERMÔMETRO COM O LM35 Parte I

TECLADO MATRICIAL. Universidade Tecnológica Federal do Paraná - UTFPR Sistemas Microcontrolados Monitor da disciplina: Luís Paulo Custódio

Usando Display Gráfico com C18 e C30

OFICINA Uso da plataforma Arduino no Ensino de Ciências

Aula 1 Apresentação e Conceitos Iniciais. Wellington Cássio Faria fb.com/wellingtoncf

Transcrição:

Por Fernando Koyanagi

Objetivo Nosso objetivo será criar um programa que recebe uma senha digitada pelo usuário através do teclado matricial e compara com a senha correta para exibir uma mensagem de correto ou incorreto, a senha e as mensagens serão mostradas no display LCD 2x16.

Arduino UNO 3

Em www.fernandok.com Download arquivo PDF dos diagramas Download arquivo INO do código fonte 4

Display LCD 2x16 Serial 5

Teclado Matricial 4x4 6

Montagem

Vamos ao código Começaremos definindo as bibliotecas e constantes que utilizaremos durante nosso código. //biblioteca responsável pela comunicação com o display LCD #include <SoftwareSerial.h> //biblioteca responsável por capturar a tecla que foi pressionada no teclado #include <Keypad.h> // pino inválido apenas usado no construtor do SoftwareSerial #define RX_PIN 255 // pino TX da nossa ligação Arduino x Display LCD #define TX_PIN 3 // inverte a lógica dos pinos Rx e Tx, tratando LOW como HIGH e vice-versa //alguns drivers para amplificar o sinal usam a entrada com lógica invertida #define INVERTED 1

Para nos comunicar com o display, temos algumas coisas importantes a pontuar antes. Baud rate com velocidade de 2400 Para qualquer comando que seja instrução ao display (não dados), devemos preceder com o prefixo 254. (Manual pode ser encontrado Aqui )

Abaixo vemos alguns comandos para o display que utilizaremos durante o código. Respeitando sempre o prefixo 254 antes de cada instrução. //comando para limpar toda a tela do display const char limpartela[ ] = { 254,1}; //comandos de configuração inicial /* 254,254 --> acende o backlight 254,1 --> limpa a tela 254,253,1 --> configura o contraste em nível alto 254,13 --> liga o cursor para ficar piscando */ const char configinicial[ ] = { 254,254, 254,1, 254,253,1, 254,13};

Dados referentes ao teclado matricial const byte LINHAS = 4; //número de linhas do teclado const byte COLUNAS = 4; //número de colunas do teclado //define uma matriz com os símbolos que deseja ser lido do teclado char SIMBOLOS[LINHAS][COLUNAS] = { {'A','1','2','3'}, {'B','4','5','6'}, {'C','7','8','9'}, {'D','c','0','e'} // c = CLEAR e = ENTER }; byte PINOS_LINHA[LINHAS] = {8, 9, 10, 11}; //pinos que indicam as linhas do teclado byte PINOS_COLUNA[COLUNAS] = {4, 5, 6, 7}; //pinos que indicam as colunas do teclado //instancia de Keypad, responsável por capturar a tecla pressionada Keypad customkeypad = Keypad( makekeymap(simbolos), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);

A seguir veremos as variáveis de controle para a senha digitada e a correta para comparação. Além do construtor do objeto (displayserial) que fará a comunicação com o display. //variáveis responsáveis por armazenar as senhas const String SENHA_ESPERADA = "1234ABCD"; String SENHA_DIGITADA = ""; //instancia de SoftwareSerial para nos comunicar com o Display via serial SoftwareSerial displayserial = SoftwareSerial(RX_PIN, TX_PIN, INVERTED);

Setup Na função setup(), vamos configurar o baud rate do objeto serial e chamar os primeiros comandos para inicializar o display. void setup() { //inicializando a serial de comunicação com o display //importante o baud rate ser de 2400 displayserial.begin(2400); //tempo de espera pela inicialização do display delay(700); //seta a configuração inicial do display displayserial.print(configinicial); delay(10); inicio(); } //função responsável por imprimir na tela a mensagem para digitar a senha. //é chamada toda vez q a senha foi digitada e comparada, também quando //a tecla limpar display foi pressionada. void inicio(){ displayserial.print("senha:"); }

Loop Na função loop(), teremos um objeto verificando o teclado a todo momento para verificar se alguma tecla foi pressionada. A partir daí, verificaremos a tecla através do comando switch e manipularemos os dados de acordo com nosso objetivo. //captura a tecla pressionada do teclado char customkey = customkeypad.getkey(); //caso alguma tecla foi pressionada if (customkey){ } switch(customkey) { /.../ }

Loop Por dentro do comando switch : parte 1 switch(customkey) { //caso alguma das teclas imprimíveis foi pressionada case 'A': case 'B': case 'C': case 'D': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': //concatena o novo símbolo a senha que estamos digitando SENHA_DIGITADA+=customKey; //imrpime na tela o símbolo pressionado displayserial.print(customkey); break;

Loop Por dentro do comando switch : parte 2 //caso a tecla CLEAR tenha sido pressionada case 'c': //limpa a variável que guarda a senha que está sendo digitada SENHA_DIGITADA = ""; //chama o comando para limpar a tela displayserial.print(limpartela); //configura a mensagem para digitar a senha inicio(); break;

Loop Por dentro do comando switch : parte 3 //caso a tecla ENTER seja pressionada, devemos comparar as senhas case 'e': //limpa a tela displayserial.print(limpartela); //se a senha digitada foi igual a ESPERADA if(senha_esperada==senha_digitada) { //imprime mensagem de senha correta displayserial.print("senha Correta!!!"); } //caso senha esteja errada else{//imprime mensagem de senha incorreta displayserial.print("senha Incorreta!"); } //aguarda 2 segundos para limpar a tela novamente e esperar uma nova senha ser digitada delay(2000); displayserial.print(limpartela); SENHA_DIGITADA = ""; inicio(); break;

Em www.fernandok.com Download arquivo PDF dos diagramas Download arquivo INO do código fonte 18