Ací teniu el fitxer Fritzing.
El descodificador que hem utilitzat nosaltres és el 74LS47, ací el datasheet i aquest és un esquema del seu patillatge (vista superior) i baix una taula amb les funcions de cada pin:
PIN'S | NOM | FUNCIÓ |
---|---|---|
7, 1, 2, 6 | A, B, C, D | Entrada del número en BCD a ser mostrat pel display. Connectarem l'exida BCD que està comptant-nos el comptador. |
3 | LT' | Lamp Test. Al activar-se (posar-se a 0) s'encenen tots els segments. No utilitzada, la connectarem a positiu. |
4, 5 | BI', RBI' | Blank Input i Ripple Blank Input. S'utilitzen per apagar les xifres més a l'esquerra quan estan a 0 (xifres no significatives) quan tenim varis dígits, per mostrar 25 en lloc de 0025, per exemple. No utilitzades al nostre circuit, les connectarem a positiu. |
8 | GND | Ground. És el negatiu d'alimentació del C. I. |
13, 12, 11, 10, 9, 15, 14 | a', b', c', d', e', f', g' | Són les eixides, en lògica negativa, per activar cada segment (a través d'una resistència limitadora d'intensitat). Són en lògica negativa (actives a 0) per que estan pensades per displays d'ànode comú. |
16 | +Vcc | És el positiu d'alimentació del C. I. +5 Volts, ja que estem en nivells TTL. |
Vam aprendre una funció nova: bitRead().
Ací podeu baixar-vos el programa exemple següent:
/*
Control d'un display de 7 segments amb DESCODIFICADOR des d'Arduino.
Ara el display va connectat a un descodificador BCD-7 segments: el 74LS47
Aquest descodificador te les 4 entrades binaries connectades a 4 pins de l'Arduino.
El programa treu per cada pin d'eixida el digit binari de la xifra que volem mostrar.
*/
int pinsDisplay[4]={1, 2, 4, 8}; //A quins pins connecte cada entrada del descodificador,
// començant per la de menor pes
void treuXifra(int xifra){ //Funcio que treu per les eixides el binari de xifra
for(int index=0; index<=3; index++)
digitalWrite(pinsDisplay[index], bitRead(xifra, index)); //bitRead(variable, n) treu la xifra binaria (0 o 1)
} //de la posicio n de variable
void setup(){
for(int index=0; index<=3; index++) //Definim els quatre pins com eixides
pinMode(pinsDisplay[index], OUTPUT);
}
void loop(){
//Anem comptant de 0 a 9
for(int num=0; num<=9; num++){
treuXifra(num);
delay(1000);
}
}
Cap comentari:
Publica un comentari a l'entrada