- Descrição: O Módulo Piezoelétrico Sensor de Vibração e Toque é um…
Como usar com Arduino – Display de 7 Segmentos (Anodo Comum)
– Descrição:
O Display de 7 Segmentos (Anodo Comum) é um componente eletrônico utilizado em projetos que seja necessário apresentar informações de forma visual. Este display possui apenas um dígito, sendo que cada segmento deste dígito pode ser acionado de forma independente. A configuração deste display é anodo comum.
– Especificações e características:
– Modelo: HS-5101BS
– Tensão de operação: 5VDC
– Corrente de operação: 30mA
– Potência dissipada: 60mW
– Configuração: anodo comum
– Temperatura de operação: -20º a 80º celsius
– Aplicações:
Projetos com Arduino ou outras plataformas microcontroladas em que seja necessário a construção de um relógio ou contador, por exemplo.
– Proposta da prática:
Utilizar o Display de 7 Segmentos (Anodo Comum) em conjunto com o Arduino para exibir a contagem de 0 a 9 e algumas letras do alfabeto.
– Lista dos itens necessários:
01 – Arduino com Cabo USB
01 – Display de 7 Segmentos (Anodo Comum)
08 – Resistor de 220Ω
01 – Protoboard
09 – Cabos Jumper macho-macho
– Esquema de ligação da prática:
– Tutorial de instalação e configuração do ambiente de programação do Arduino:
Arduino – Instalação e Configuração da IDE no Windows
– Código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
byte seven_seg_digits[16][7] = { { 0,0,0,0,0,0,1 }, //DIGITO 0 { 1,0,0,1,1,1,1 }, //DIGITO 1 { 0,0,1,0,0,1,0 }, //DIGITO 2 { 0,0,0,0,1,1,0 }, //DIGITO 3 { 1,0,0,1,1,0,0 }, //DIGITO 4 { 0,1,0,0,1,0,0 }, //DIGITO 5 { 0,1,0,0,0,0,0 }, //DIGITO 6 { 0,0,0,1,1,1,1 }, //DIGITO 7 { 0,0,0,0,0,0,0 }, //DIGITO 8 { 0,0,0,1,1,0,0 }, //DIGITO 9 { 0,0,0,1,0,0,0 }, //DIGITO A { 1,1,0,0,0,0,0 }, //DIGITO B { 0,1,1,0,0,0,1 }, //DIGITO C { 1,0,0,0,0,1,0 }, //DIGITO D { 0,1,1,0,0,0,0 }, //DIGITO E { 0,1,1,1,0,0,0 } //DIGITO F }; void setup(){ pinMode(2, OUTPUT); //PINO 2 -> SEGMENTO A pinMode(3, OUTPUT); //PINO 3 -> SEGMENTO B pinMode(4, OUTPUT); //PINO 4 -> SEGMENTO C pinMode(5, OUTPUT); //PINO 5 -> SEGMENTO D pinMode(6, OUTPUT); //PINO 6 -> SEGMENTO E pinMode(7, OUTPUT); //PINO 7 -> SEGMENTO F pinMode(8, OUTPUT); //PINO 8 -> SEGMENTO G pinMode(9, OUTPUT); //PINO 9 -> SEGMENTO PONTO ligaPonto(0); } void ligaPonto(byte dot){ //FUNÇÃO QUE ACIONA O PONTO DO DISPLAY digitalWrite(9, dot); } void ligaSegmentosDisplay(byte digit){ //FUNÇÃO QUE ACIONA O DISPLAY byte pino = 2; for (byte contadorSegmentos = 0; contadorSegmentos < 7; ++contadorSegmentos){ //PARA "contadorSegmentos" //IGUAL A 0, ENQUANTO "contadorSegmentos" MENOR QUE 7, INCREMENTA "contadorSegmentos" digitalWrite(pino, seven_seg_digits[digit][contadorSegmentos]); //PERCORRE O ARRAY E LIGA OS //SEGMENTOS CORRESPONDENTES AO DIGITO ++pino; //INCREMENTA "pino" } ligaPonto(1); //LIGA O PONTO DO DISPLAY delay(100); //INTERVALO DE 100 MILISSEGUNDOS ligaPonto(0); //DESLIGA O PONTO DO DISPLAY } //MÉTODO RESPONSÁVEL PELA CONTAGEM DE 0 A 9 E CONTAGEM DE "A" ATÉ "F" (NA CONTAGEM HEXADECIMAL "A"=10 // "B"=11 / "C"=12 / "D"=13 / "E"=14 / "F"=15) void loop() { for (byte contador = 0; contador < 16; contador++){ //PARA "contador" //IGUAL A 0, ENQUANTO "contador" MENOR QUE 16, INCREMENTA "contador" delay(500); //INTERVALO DE 500 MILISSEGUNDOS ligaSegmentosDisplay(contador); //FAZ A CONTAGEM } delay(2000); //INTERVALO DE 2 SEGUNDOS } |
– Resultado final:
Gostou desta prática? Então deixa seu comentário, dúvida ou sugestão aí embaixo!
Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop
Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.
Obrigado e até a próxima!
Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.
Postagem anterior: Como usar com Arduino – Sensor (Detector) de Chuva
Próxima postagem: Componentes Passivos – Resistor – Parte 2
Eu encontrei aqui na sucata um display, totalmente diferente as pinagens, localizei o GND e testei cada led ABCDEFG, depois de localizado todos conectei nas portas do Arduino com resistor de 1K (marrom preto vermelho)… dai vei o problema, tudo diferente a ordem binaria, então enchi de zero os 7 segmentos e coloquei 1 em cada uma posição, gavei e anotei, até descobrir a ordem de cada um… depois disso, foi moleza… agora da até pra bricar de efeitos com o display. Muito bom, to gostando muito desse trem. Obrigado.
Como eu faço pra colocar um potenciometro no circuito ?
Olá Carlos.
Agradeço pelo comentário!
Tente mesclar o tutorial do link abaixo com este do display:
https://blogmasterwalkershop.com.br/arduino/arduino-utilizando-o-potenciometro-linear/
Faça as alterações para aplicar ao seu projeto.
O mano vlw vey tava procurando isso
Vou pelo CI externo. Muito obrigado.
Ola. Estou iniciando com Arduino, mas desejo fazer um contador de 0-99. Isto é, utilizando 2 displays de 7 segmentos (CPS056AR). Porém vejo que meu Arduino Uno não possui mais 7 portas disponíveis para o segundo display. Alguma dica de como gerenciar isso? Muito obrigado.
Olá Douglas.
Agradeço pelo comentário!
Você pode utilizar os pinos analógicos como digitais ou pode utilizar um circuito integrado externo para ampliar os pinos digitais.
Oi Douglas, vc conseguiu? Pode compartilhar comigo como você fez? Abs
No caso da placa Arduíno Mega, que possui várias portas digitais, qual seria a pinagem / codigo? Obrigado!
Olá Adelson.
O esquema de ligação e o código disponível nesta prática são compatíveis com o Arduino Mega.
Ola, eu estou tentando fazer exatamente o esquema da figura, mas nao consegui. Na apostila de voces, a sugestao são resistores de 220 ohm ou 150 ohm, eu mesclei os dois na configuração. Enfim, não funcionou, não acendeu nada.
Dai, então, pra tirar a prova, o fio vermelho que vai no 5V do arduino, joguei pro GND, pra ver o que acontecia. Dai enfim funcionou. Entretanto, ele funcionou de uma forma diferente. Meio que inverteu os sinais, acendendo onde devia ta apagado e deixando apagado onde devia estar aceso. Por exemplo, para formar o “1” ele devia acender os dois da direita, mas ele acende o resto e deixa apagado os 2 da direita. Entao no que devia ser um “1”, ele forma um “E”, onde devia ser um “8”, com tudo aceso, ele deixa tudo apagado e assim em diante.
Pra solucionar isso, no codigo eu troquei o “0”(zero) pelo “1” (um). Entao, para sair o digito zero no display, por exemplo, troquei no codigo o “{ 0,0,0,0,0,0,1 }, //DIGITO 0” por “{ 1,1,1,1,1,1,0 }, //DIGITO 0”. Dai deu tudo certo.
Alguém sabe dizer o que aconteceu? Pois pelo visto todos conseguiram aqui. Sera que deu pau no meu 5V do arduino? Dai usando GND ele inverte os sinais e por isso tenho que trocar “0” por “1” no codigo? Agradeço se puderem ajudar.
Olá Diogo.
Acredito que o display que recebeu é catodo comum e por este motivo ao ligar no 5V não obteve sucesso, mas ao ligar no GND o display funcionou.
Para display catodo comum é necessário fazer esta inversão no código (de 0 pra 1 e 1 para 0).
Na expedição devem ter confundido na separação das peças do seu KIT
O valor dos resistores esta errado. Na ilustração é exibido 7 resistores de 220 ohm.
Olá Francisco.
Agradeço pela informação!
Já foi alterado a relação de itens necessários para a montagem e agora está de acordo com o esquema de ligação.
Show de bola…
Consegui! Valeu