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 Resultado de imagem para protoboard 830v

No mínimo utilizar protoboard com 830 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   Resultado de imagem para potenciômetro

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 R3 Arduino UNO 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 (download) e TimerOne (download).

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 <TM74HC595Display.h> // inclui a biblioteca do módulo TM74HC5995
#include <TimerOne.h>

// 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

Compartilhe:

Doações

Contribua pra manter o site online :)

Inscreva-se no canal Squids

Squids Arduino News

Básico - Projeto 98 Módulo Matriz de Led rítmico - MAX7219 Objetivo O objetivo deste projeto é criar um circuito para fazer com que os leds de uma matriz de leds pisquem de acordo com o ritmo d...

Básico - Projeto 97 Leds piscam de acordo com o som Objetivo O objetivo deste projeto é criar um circuito para fazer piscar vários leds de acordo com o ritmo de uma música. Para isso, vamos uti...

Desafio 89 - Projeto I13 Dez efeitos de iluminação com controle remoto Com base no projeto I13 - Como usar o Controle Remoto Infravermelho com Arduino resolva o seguinte desafio: 1. Com base...

Intermediário - Projeto 13 Usando o Controle Remoto IR com Arduino com leds Objetivo Utilizar o Controle Remoto Infravermelho junto com o Arduino e um fotorreceptor IR para controlar 6 leds de ...

Desafio 88 - Projeto I12 Cronômetro contador de voltas com sensor infravermelho Com base no projeto I12 - Cronômetro com pause controlado por leds infravermelhos - Arduino resolva os seguintes ...

Outros artigos

Mais: Projetos Básicos Desafios Projetos Intermediários Básico

Você está preparado?

Topo