Multiplexage 74HC95 | AndroLogiciels
Maybe your like


- Vcc Up to 6V (needs to be the same voltage as your microcontroller) – Usually 3.3 / 5v
- QA to QH Shift Register Outputs.
- SER: (Serial) Input for the next pin that gets shifted in.
- SRCLK (Serial Clock) When this pin is pulled high, it will shift the register.
- RCLK (Register Clock) Needs to be pulled high to set the output to the new shift register values, This must be pulled high directly after SRCLK has gone LOW again.
- SRCLR (Serial Clear) Will empty the whole Shift Register if pulled LOW, must be pulled High to enable.
- OE (Output Enable) This pin enables the output when tied to GND, & disabled when HIGH.




Avec des résistances de 460 Ohms
Librairie :
https://github.com/Simsso/Shift-Register-74HC595-Arduino-Library
Pour modifier l’intensité lumineuse il suffit de relier la broche 13 du HC à une broche PWM de l’Arduino et faire varier la valeur de 0 à 255
pinMode(outputEnablePin, OUTPUT);
void setBrightness(byte brightness)
{ analogWrite(outputEnablePin, 255-brightness);}
https://learn.adafruit.com/adafruit-arduino-lesson-4-eight-leds/brightness-control
////////////// // Test d'un afficheur 7 segments à 4 chiffres // Avec un interrupteur relié en PIN 22 /////////////////////////////////////// #include <ShiftRegister74HC595.h> const int SEG0 = 5; const int SEG1 = 4; const int SEG2 = 3; const int SEG3 = 2; const int numberOfShiftRegisters = 1; // number of shift registers attached in series const int serialDataPin = 8; // DS const int clockPin = 9; // SHCP const int latchPin = 10; // STCP ShiftRegister74HC595 sr (numberOfShiftRegisters, serialDataPin, clockPin, latchPin); const int buttonPin = 22; // the number of the pushbutton pin int buttonState = 0, prevUpState = 0; int nB = 0; int tab[4]; ////////////////////////// void setup() { Serial.begin(9600); pinMode(SEG0, OUTPUT); pinMode(SEG1, OUTPUT); pinMode(SEG2, OUTPUT); pinMode(SEG3, OUTPUT); sr.setAllHigh(); // Eteinds all pins // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); Serial.println("Init..."); } /////////////// void loop() { buttonState = digitalRead(buttonPin); if (prevUpState != buttonState) // has the state changed from { // HIGH to LOW or vice versa prevUpState = buttonState; if (buttonState == HIGH) // If the button was pressed { nB++; tab[3] = nB % 10; tab[2] = nB / 10; tab[1] = nB / 100; tab[0] = nB / 1000; Serial.print("Nb="); Serial.print(nB); Serial.print(":"); Serial.print(tab[0]); Serial.print(tab[1]); Serial.print(tab[2]); Serial.println(tab[3]); //delay(50); } } compte(); } /////////////// void compte() { for (int Digit = 1; Digit < 5; Digit++) { switch (Digit) { case 1: digitalWrite(SEG0, HIGH); digitalWrite(SEG1, LOW); digitalWrite(SEG2, LOW); digitalWrite(SEG3, LOW); Analyse(tab[0]); break; case 2: digitalWrite(SEG0, LOW); digitalWrite(SEG1, HIGH); digitalWrite(SEG2, LOW); digitalWrite(SEG3, LOW); Analyse(tab[1]); break; case 3: digitalWrite(SEG0, LOW); digitalWrite(SEG1, LOW); digitalWrite(SEG2, HIGH); digitalWrite(SEG3, LOW); Analyse(tab[2]); break; case 4: digitalWrite(SEG0, LOW); digitalWrite(SEG1, LOW); digitalWrite(SEG2, LOW); digitalWrite(SEG3, HIGH); Analyse(tab[3]); break; } delay(3); } } void Analyse(int NbA) { switch (NbA) { case 1 : un(); break; case 2 : deux(); break; case 3 : trois(); break; case 4 : quatre(); break; case 5 : cinq(); break; case 6 : six(); break; case 7 : sept(); break; case 8 : huit(); break; case 9 : neuf(); break; default : zero(); break; } } //////////// // LOW = Allumé // HIGH = Eteinds /////////////// void un() { sr.setAllHigh(); sr.set(0, HIGH); sr.set(1, HIGH); sr.set(2, LOW); sr.set(3, LOW); sr.set(4, HIGH); sr.set(5, HIGH); sr.set(6, HIGH); sr.set(7, HIGH); } void deux() { sr.setAllHigh(); sr.set(0, HIGH); sr.set(1, LOW); sr.set(2, LOW); sr.set(3, HIGH); sr.set(4, LOW); sr.set(5, LOW); sr.set(6, HIGH); sr.set(7, LOW); } void trois() { sr.setAllHigh(); sr.set(0, HIGH); sr.set(1, LOW); sr.set(2, LOW); sr.set(3, LOW); sr.set(4, LOW); sr.set(5, HIGH); sr.set(6, HIGH); sr.set(7, LOW); } void quatre() { sr.setAllHigh(); sr.set(0, HIGH); sr.set(1, HIGH); sr.set(2, HIGH); sr.set(3, LOW); sr.set(4, HIGH); sr.set(5, HIGH); sr.set(6, LOW); sr.set(7, LOW); } void cinq() { sr.setAllHigh(); sr.set(0, HIGH); sr.set(1, LOW); sr.set(2, HIGH); sr.set(3, LOW); sr.set(4, LOW); sr.set(5, HIGH); sr.set(6, LOW); sr.set(7, LOW); } void six() { sr.setAllLow(); sr.set(0, HIGH); sr.set(1, HIGH); sr.set(2, HIGH); } void sept() { sr.setAllHigh(); sr.set(0, HIGH); sr.set(1, LOW); sr.set(2, LOW); sr.set(3, LOW); sr.set(4, HIGH); sr.set(5, HIGH); sr.set(6, HIGH); sr.set(7, HIGH); } void huit() { sr.setAllLow(); sr.set(0, HIGH); } void neuf() { sr.setAllLow(); sr.set(0, HIGH); sr.set(5, HIGH); } void zero() { sr.setAllLow(); sr.set(0, HIGH); sr.set(7, HIGH); }
| Affichage | Bit 8 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Héxadecimal |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0x3F |
| 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0x06 |
| 2 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0x5B |
| 3 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0x4F |
| 4 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0x66 |
| 5 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0x6D |
| 6 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0x7D |
| 7 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0x07 |
| 8 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0x7F |
| 9 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0x6F |
| A | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0x77 |
| B | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0x7C |
| C | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0x39 |
| D | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0x5E |
| E | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0x79 |
| F | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0x71 |
Références :
http://circuits4you.com/2016/12/14/segment-display-interfacing-arduino/http://circuits4you.com/2016/12/14/segment-display-interfacing-arduino/
http://bildr.org/2011/02/74hc595/
https://www.instructables.com/id/Different-methods-of-driving-7-Segment-LED-display/
Partager:
- X
Tag » Arduino Afficheur 7 Segments 4 Digits 74hc595
-
74HC595 Et 4 Digit 7 Segment Création Horloge - Arduino Forum
-
Problemen D'affichage Sur Un Afficheur 4digits 7 Segments Et ...
-
Utilisation D'un Afficheur 4×7 Segments Avec Arduino - AranaCorp
-
Arduino 4-Digit 7 Segment Display 74HC595 Module
-
[GUIDE] Arduino Utiliser Registre à Décalage 74HC595
-
Comment Contrôler Un Afficheur 7 Segments Avec Le Registre ...
-
74HC595, Afficheur 7 Segments Et Arduino ( Programmer ... - YouTube
-
Driving 7 Segments Using Arduino Shift And Register 74HC595
-
Gestion Autonome D'un Afficheur Led 7 Segments 4 Caractères
-
Interface ESP32 With 74HC595 And 4-Digit 7 Segment Display
-
[Résolu] [Arduino] 74HC595 + Afficheur à Segments - Page 1
-
Commander 4 Chiffres 7segment LED De L'Affichage à L'aide De ...
-
Tube D'affichage Numérique À 8 Chiffres, Module 74hc595 7 ...