Академический Документы
Профессиональный Документы
Культура Документы
CARREGADORES
BATERIA
FONTES
ALIMENTAO
ILUMINAO
RDIO CIRCUITOS
0
PICS
Display 7 segmentos Arduino
Arduino
ENGLISH
There are no translations available.
Em termos de hardware, cada led funciona de forma individual, por isso, cada uma dos segmen
tem de levar uma resistncia limitadora, neste caso concreto, cada digito tem uma tenso de
funcionamento de 2.2V e um consumo de 20mA. Se a tenso 5volts, necessitamos que no
resistor caia 5-2.2=3.8V, pela lei de ohm podemos calcular, R=Vres/Iled R=3.8/0.020= 190 +/-20
(vamos usar um resistor com 220). Isto aplica-se a este display usado como exemplo SA56-
11GWA, outros podem ter valores diferentes, ser til calcular o valor da resistncia necessria.
Decimal A A3 A2 A1
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
Isto converte o nosso valor decimal para binrio, por exemplo, supondo que temos nmeros com
mais de 2 digitos, 27 ser 0010 0111 (2 - 7 em BCD). Se tivermos apenas um algarismo o 2 por
exemplo, teremos 0010.
Isto permite-nos atuar sobre um ci decoder(4511) e usar o cdigo BCD de apenas 4 sadas do
arduino, podemos assim converter um valor resultado de uma contagem, ou de qualquer entrad
para o digito.
/*
Exemplo de um contador de 0 a 9 que soma cada
vez que existe uma entrada em A0
void setup() {
pinMode(A0, INPUT);
pinMode(A, OUTPUT); //LSB
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT); //MSB
}
void loop() {
if (digitalRead(A0) == LOW) //se o boto for premido na entrada A0
{
count++;
delay(200); //o delay impede multiplas contagens
if (count == 10) //contador de 0 a 9
count = 0;
to_BCD(); //converter para binrio
}
if (count == 10)
count = 0;
void to_BCD()
{
if (count == 0) //write 0000
{
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
}
void setup()
{
for (int i =0;i<8;i++)
{
pinMode(ledpins[i],OUTPUT);
digitalWrite(ledpins[i], HIGH);
}
}
void loop()
{
for (int i =0;i<10;i++)
{
displayDigit(i);
delay(1000);
alloff();
delay(500);
}
}
void alloff()
{
for (int i =0;i<8;i++)
{
digitalWrite(ledpins[i], HIGH);
}
}
Neste caso no se usaram as sadas BCD mas sim um cdigo binrio direto nos 8 bits (um por
cada led ligado)
Foi usado um nvel 1(HIGH) quando o segmento acende e 0 (LOW) quando apagado. O ltimo
dgito sempre um 0 representa o ponto decimal que no est a ser usado.
displayDigit () liga o segmento certo para cada dgito. A funo bitread l os bits do nmero bin
comeando com o bit mais direita. por isso que o 7-i usado. Quando utilizar a instruo
digitalWrite (), podemos escrever 1 quando queremos ALTA e um 0 quando queremos LOW. Est
o oposto de como os nossos nmeros binrios esto a funcionar. O operador ! inverte o valor.
Seguinte >
Sponsored Links
Curso Eletrnica
Digital
Curso de Eletrnica com Anlise
de Circuitos.Treinamento Prtico
em SP