Arduino - 74HC595 4-cijferig 7-segmentdisplay

Een standaard 4-cijferig 7-segmentdisplay is nodig voor klok-, timer- en telprojecten, maar het vereist meestal 12 aansluitingen. De 74HC595-module maakt het gemakkelijker doordat slechts 5 aansluitingen nodig zijn: 2 voor de voeding en 3 voor het aansturen van de segmenten.

Deze handleiding zal u niet overladen met diepgaande hardwaredetails. In plaats daarvan leren we hoe u het 4-cijferig 7-segmentdisplay aansluit op de Arduino, en hoe u het programmeert zodat het toont wat u wilt.

Arduino 74HC595 4-cijferig 7-segmentdisplay

In deze tutorial gebruiken we het 4-punt 4-cijferig 7-segmentdisplaymodule dat in staat is drijvende-komma waarden weer te geven. Wilt u een dubbele punt als scheidingsteken weergeven, gebruik dan de TM1637 4-digit 7-segment Display Module.

Hardware Nodig

1×Arduino Uno R3
1×USB 2.0-kabel type A/B
1×74HC595 4-cijferig 7-segmentdisplay
1×Jumperdraden
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables STEM V3 Starterskit (Arduino inbegrepen)
1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over 74HC595 4-cijferig 7-segmentdisplay

Een 74HC595 4-cijferig 7-segmentdisplaymodule bestaat doorgaans uit 4 zeven-segment LEDs, 4 puntvormige LEDs, en een 74HC595 driver per cijfer. Het is ideaal voor het weergeven van temperatuur of andere decimale waarden.

Pinout

De 74HC595 4-cijferig 7-segmentdisplaymodule bevat 5 pins:

  • SCLK pin: dit is de klok-ingangspin. Verbind met een willekeurige digitale pin op de Arduino.
  • RCLK pin: dit is ook een klok-ingangspin. Verbind met een digitale pin op Arduino.
  • DIO pin: dit is een Data In/Out pin. Verbind met een digitale pin op Arduino.
  • VCC pin: levert voedingsspanning aan de module. Verbind met een voeding van 3.3V tot 5V.
  • GND pin: dit is de aarde/ground pin.
74HC595 module pinout

Bedradingsschema

In onderstaande tabel ziet u de verbindingen tussen de Arduino-pinnen en de 74HC595 4-cijferig 7-segmentdisplay pinnen:

Arduino 74HC595 7-segmentdisplay
5V5V
7SCLK
6RCLK
5DIO

Als u andere pinnen op de Arduino gebruikt, pas dan ook de pin-nummers in de code aan.

Arduino 74HC595 Module Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Bibliotheek Installatie

Om het programmeren van het 74HC595 4-cijferig 7-segmentdisplay te vereenvoudigen, dient u de DIYables_4Digit7Segment_74HC595 bibliotheek van DIYables.io te installeren. Volg de onderstaande stappen:

  • Ga in de Arduino IDE naar het icoon Libraries in de linker zijbalk.
  • Zoek naar “DIYables_4Digit7Segment_74HC595”, en vind de DIYables_4Digit7Segment_74HC595 bibliotheek van DIYables.io
  • Klik op de knop Install.
Arduino 74HC595 4-cijferig 7-segmentdisplay bibliotheek

U kunt ook de bibliotheek bekijken op Github

Hoe Programmeren voor 74HC595 4-cijferig 7-segmentdisplay met Arduino

  • Voeg de bibliotheek toe
#include <DIYables_4Digit7Segment_74HC595.h>
  • Definieer de Arduino-pinnen die verbonden zijn met SCLK, RCLK en DIO van het displaymodule. Bijvoorbeeld pin D7, D6 en D5
#define SCLK 7 // Arduino pin verbonden met SCLK #define RCLK 6 // Arduino pin verbonden met RCLK #define DIO 5 // Arduino pin verbonden met DIO
  • Maak een display-object aan van het type DIYables_4Digit7Segment_74HC595
DIYables_4Digit7Segment_74HC595 display = DIYables_4Digit7Segment_74HC595(CLK, DIO);
  • Daarna kunt u gehele getallen weergeven met optie voor nulvulling, inclusief negatieve getallen:
display.printInt(-13, false); // toont een waarde van -999 tot 9999
  • U kunt ook drijvende-komma getallen tonen met decimaalpositie, nulvulling en negatieve getallen ondersteunen:
display.printFloat(-9.2, 1, false);
  • Tevens is het mogelijk afzonderlijke getallen, decimale punten en tekens cijfer-voor-cijfer weer te geven met de lagere niveau functies:
// toon 9.3°C display.clear(); display.setNumber(1, 9); // zet 9 op het 1e cijfer display.setDot(1); // zet . op het 1e cijfer display.setNumber(2, 3); // zet 3 op het 2e cijfer display.setChar(3, SegChars::DEGREE); // zet ° op het 3e cijfer display.setChar(4, SegChars::C); // zet C op het 4e cijfer display.show(); // toon op het display
  • Omdat het 74HC595 4-cijferig 7-segmentdisplay gebruikmaakt van multiplexing om de afzonderlijke segmenten en LEDs te besturen, MOET de Arduino-code:
    • De functie display.show() in de hoofdloop aanroepen
    • Geen delay() functie gebruiken in de hoofdloop

    Meer details vindt u in de bibliotheekreferentie

Arduino Code - Weergeven van Gehele Getallen

/* Created by DIYables This example code is in the public domain Product page: https://diyables.io/products/4-digit-7-segment-display-led-74hc595-driver-with-4-dots */ #include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library #define SCLK 7 // The Arduino pin connected to SCLK #define RCLK 6 // The Arduino pin connected to RCLK #define DIO 5 // The Arduino pin connected to DIO DIYables_4Digit7Segment_74HC595 display(SCLK, RCLK, DIO); void setup() { Serial.begin(9600); display.printInt(-13, false); // you can display a value from -999 to 9999 //display.printInt(-132, false); //display.printInt(9132, false); //display.printInt(132, false); //display.printInt(32, false); //display.printInt(2, false); //display.printInt(2, true); } void loop() { display.loop(); // MUST call the display.loop() function in loop() // DO SOMETHING HERE // NOTE: do NOT use the delay() function in loop because it affects to the multiplexing }

Snelle Stappen

  • Kopieer de bovenstaande code en open deze met de Arduino IDE
  • Klik op de knop Upload in de Arduino IDE om de code op de Arduino te zetten
  • Bekijk de weergave op het 7-segmentdisplay

Arduino Code - Weergeven van Kommagetallen

/* Created by DIYables This example code is in the public domain Product page: https://diyables.io/products/4-digit-7-segment-display-led-74hc595-driver-with-4-dots */ #include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library #define SCLK 7 // The Arduino pin connected to SCLK #define RCLK 6 // The Arduino pin connected to RCLK #define DIO 5 // The Arduino pin connected to DIO DIYables_4Digit7Segment_74HC595 display(SCLK, RCLK, DIO); void setup() { Serial.begin(9600); display.printFloat(-9.2, 1, false); //display.printFloat(-92.4, 1, false); //display.printFloat(-9.24, 2, false); //display.printFloat(192.4, 1, false); //display.printFloat(19.24, 2, false); //display.printFloat(1.924, 3, false); } void loop() { display.loop(); // MUST call the display.loop() function in loop() // DO SOMETHING HERE // NOTE: do NOT use the delay() function in loop because it affects to the multiplexing }

Arduino Code - Weergeven van Temperatuur

/* Created by DIYables This example code is in the public domain Product page: https://diyables.io/products/4-digit-7-segment-display-led-74hc595-driver-with-4-dots */ #include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library #define SCLK 7 // The Arduino pin connected to SCLK #define RCLK 6 // The Arduino pin connected to RCLK #define DIO 5 // The Arduino pin connected to DIO DIYables_4Digit7Segment_74HC595 display(SCLK, RCLK, DIO); void setup() { Serial.begin(9600); // display 9.3°C by controlling digit by digit display.clear(); display.setNumber(1, 9); // set 9 at the 1st digit display.setDot(1); // set . at the 1st digit display.setNumber(2, 3); // set 3 at the 2nd digit display.setChar(3, SegChars::DEGREE); // set ° at the 3rd digit display.setChar(4, SegChars::C); // set C at the 3rd digit display.show(); // show on the display } void loop() { display.loop(); // MUST call the display.loop() function in loop() // DO SOMETHING HERE // NOTE: do NOT use the delay() function in loop because it affects to the multiplexing }

Het resultaat is als op onderstaande afbeelding:

Arduino 74HC595 module toont temperatuur

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Reacties

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!