Início
/
Projetos Arduino
/
Squids Hub
/
Básico
/
Hub 008 - Usando o módulo display 4 digitos 74HC595 - Arduino
Hub 008 - Usando o módulo display 4 digitos 74HC595 - Arduino
Angelo Luis Ferreira | 28/12/2020
Acessos: 5.078
Básico - Hub 008
Usar o módulo display 4 dígitos 74HC595
Sugerido por: Tim Santos ENVIAR SUGESTÃO
Objetivo
O objetivo é adaptar o Projeto 63 - Usando o módulo TM1637 (display 4 dígitos) com Arduino e utilizar o módulo display 4 dígitos 74HC595 para exibir o valor lido em uma porta analógica do Arduino.
Ao usarmos um potenciômetro, o display de 4 dígitos irá exibir os valores de tensão entre 0 e 5V que são interpretados pelo ADC (Conversor Analógico para Digitar) do Arduino como valores entre 0 e 1023.
Ao clicarmos no botão, esses valores serão convertidos em números entre 0 e 5, representando o valor da tensão enviada ao Arduino. No projeto, os valores da tensão serão exibidos com 2 casas decimais (tipo de dados = float).
Componentes necessários
Referência
|
Componente
|
Quantidade
|
Imagem
|
Observação
|
Protoboard |
Protoboard 830 pontos |
1 |
|
No mínimo utilizar protoboard com 400 pontos
|
Jumpers |
Kit cabos ligação macho / macho |
1 |
|
|
Módulo 74HC595 |
Módulo 74HC595 com Display 4 Digitos
|
1 |
|
– Controlador 74HC595 (datasheet) – Alimentação: 3.3 à 5V DC – Display 7 segmentos 4 dígitos catodo comum – Permite ligação em cascata – Dimensões: 40 x 24 x 12mm – Dimensões do display: 30 x 14mm |
Push Button |
Push button 6X6X5mm
|
3 |
|
|
Potenciômetro |
Potenciômetro 1K |
|
|
Você poderá experimentar valores diferentes do potenciômetro, entre 1K a 100K
A tensão resultante do potenciômetro aumenta quando giramos o eixo do componente no sentido do polo negativo para o polo positivo.
|
Arduino UNO |
Arduino UNO R3 |
1 |
|
Você poderá utilizar uma placa Arduino UNO original ou similar
|
Montagem do Circuito
Bibliotecas
Para controlarmos o módulo 74HC595 vamos precisar das bibliotecas TM74HC595Display e TimerOne:
DOWNLOAD - TM74HC595-4dig-display.zip e DOWNLOAD - TimerOne-master.zip
Instalando a biblioteca pelo IDE do Arduino
Após fazer o download dos arquivos das bibliotecas com todos os arquivos compactados no formato zip, abra o IDE do Arduino e siga o tutorial: Como incluir uma biblioteca no IDE do Arduino.
Para conhecer outras bibliotecas para módulos veja a Tabela Biblioteca para Módulos.
Referências
Projeto 63 - Usando o módulo TM1637 (display 4 dígitos) com Arduino
Código do Projeto (Sketch)
Faça o download e abra o arquivo hub008.ino no IDE do Arduino: DOWNLOAD - hb008.ino
Ou se preferir, copie e cole o código abaixo no IDE do Arduino:
/* *************************************
* Hub 008 - Adaptar o projeto 63 com o módulo display 74HC595
* Autor: Angelo Luis Ferreira
* 28/12/2020
* http://squids.com.br/arduino
*
*************************************** */
#include // inclui a biblioteca do módulo TM74HC5995
#include
// Portas saída Arduino - controle do módulo
const byte SCLK = 7;
const byte RCLK = 6;
const byte DIO = 5;
// Porta de entrada digital - pushButton
const byte pin_but = 2;
// Porta de entrada analógica - potenciômetro
const byte pin_pot = A0;
// Variáveis de controle
boolean estado = 0;
boolean controle = 0;
// Variáveis principais
float valor;
float tensao;
// Inicializa o display
TM74HC595Display disp(SCLK, RCLK, DIO);
void setup() {
Serial.begin(9600);
// habilita entradas do Arduino
pinMode(pin_but, INPUT_PULLUP); // pullup interno
pinMode(pin_pot, INPUT); // opcional (porta analógica é input por padrão)
//limpa o display
disp.clear();
//Definicao dos digitos de 0 a 9 (conforme biblioteca)
unsigned char LED_0F[10];
LED_0F[0] = 0xC0; //0
LED_0F[1] = 0xF9; //1
LED_0F[2] = 0xA4; //2
LED_0F[3] = 0xB0; //3
LED_0F[4] = 0x99; //4
LED_0F[5] = 0x92; //5
LED_0F[6] = 0x82; //6
LED_0F[7] = 0xF8; //7
LED_0F[8] = 0x80; //8
LED_0F[9] = 0x90; //9
Timer1.initialize(1500); // set a timer of length 1500
Timer1.attachInterrupt(timerIsr); // attach the service routine here (chama a rotina timeIsr)
}
void loop() {
// le o estado pushbutton: ligado (LOW) ou desligado (HIGH)
estado = digitalRead(pin_but);
// verifica se o botão foi pressionado e muda o controle
if (!estado) {
controle = !controle; // inverte valor de controle (0 ou 1)
while(!digitalRead(pin_but)) {} // espera soltar o botão
delay(50);
}
//lê o valor do potenciômetro
valor = analogRead(pin_pot); // 0 a 1023
//converte a tensão entre 0 e 5
tensao = (valor * 5) / 1023; // equivale a map(valor, 0, 1023, 0, 5)
//exibe os valores no módulo
if (controle == 0) {
//exibe o valor lido no potenciômetro (int)
disp.digit4(valor);
delay(10);
} else {
//exibe o valor da tensão calculado (float)
disp.dispFloat(tensao,2);
delay(10);
}
//limpa o display
disp.clear();
//mostra valor potenciômetro e tensão no monitor serial
Serial.print(valor);
Serial.print(" | ");
Serial.println(tensao, 2);
}
//rotina timeIsr (conforme documentação biblioteca)
void timerIsr() {
disp.timerIsr();
}
Obs. Ao abrir o monitor serial do IDE do Arduino visualizaremos os valores lidos diretamente pelo potenciômetro e suas respectivas tensões.
Vídeo
O anúncio abaixo ajuda a manter o Squids Arduino funcionando
Comentários