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