Escolar Documentos
Profissional Documentos
Cultura Documentos
07/12/2013
void loop()
{
cont++;
if (cont >= 10)
{
cont=0;
Serial.println(" Inicio de contagem");
}
escreve(saida[cont]); // escreve o byte nos 8 leds
Serial.print("Valor em Hexadecimal = ");
Serial.println(saida[cont], HEX);
delay(tempo);
}
void escreve(byte h) // escreve um byte nos 8 leds
{
// inverte o valor no led
digitalWrite(pinos[8], !digitalRead(pinos[8]));
for (int d=0; d<8; d++)
digitalWrite(pinos[d], bitRead(h, d));
}
}
07/12/2013
Mdulo de 4 display
Resistor para
Limitar a corrente
https://sites.google.com/site/grcbyte/electronica/arduino/segment-4-digit
Mdulo de 4 display
Mdulo de 4 display
Mdulo de 4 display
Para fazer este efeito podemos verificar os valores assumidos por cada display em cada
situao:
Display de milhar:
m[12 ] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0x30}
Display de centena:
c[12 ] = { 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00}
Display de dezena:
d[12 ] = { 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00}
Display de unidade:
u[12 ] = { 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0C, 0x08, 0x00, 0x00, 0x00, 0x00}
Situao 5
Valores assumidos pelos dgitos durante o efeito
07/12/2013
Mdulo de 4 display
Como fazer a multiplexao dos dgitos?
Tempo1 = tempo entre cada situao
Tempo2 = tempo de multiplexao.
A cada tempo 2:
1. Habilitar um dos dgitos atravs de seu catodo comum e desabilitar os demais, em
forma de escalonamento;
2. Escrever no display, relativo ao valor da situao e ao dgito do momento, dentro da
multiplexao. Exemplo: para situao 5
- escrever 0x00 no milhar, 0x00 na centena, 0x00 na dezena e 0x06 na unidade
A cada tempo 1:
- Incrementar a situao e se maior que 11, zera a situao
07/12/2013
10
Mdulo de 4 display
07/12/2013
11
Mdulo de 4 display
No exemplo da tela anterior utilizamos o CI 74LS595 para economizar pinos do
arduno. Trata-se de um conversor Serial Paralelo de 8 bits com reteno. Os
pinos principais deste CI so:
Pinos
13
10
Pino de limpar todas as sadas. Neste caso, colocamos este pino no Vcc.
14
11
Pino de clock para gravao do dado na serial. Um pulso neste pino, grava
o bit presente nas entradas de dados serial em todos os flipflops. Este pino
est ligado no pino A3 do arduno.
12
07/12/2013
12
Mdulo de 4 display
A seguir apresentaremos alguns trechos de cdigos, para arduno, referente ao
exemplo apresentado.
Rotina para escrever um byte no
74LS595:
Algumas definies:
int unidade
int dezena
int centena
int milhar
=
=
=
=
6;
7;
5;
4;
int latchPin = 9;
int dataPin = 11;
int srclk
= A3;
void mostra(byte w)
{
for (int y=0; y<8; y++)
{
digitalWrite(dataPin, bitRead(w, 7-y)); // pino 14 do 595 => D7, D6, ..., D0
delayMicroseconds(10);
digitalWrite(srclk, HIGH);
// pulso de gravao
delayMicroseconds(10);
digitalWrite(srclk, LOW);
// pino 11 do 595
}
07/12/2013
digitalWrite(latchPin, HIGH);
delayMicroseconds(10);
digitalWrite(latchPin, LOW);
13