Top 10 artikler
On oktober 12, 2021 by adminFor nylig offentliggjorde vi et Arduino-projekt på begynderniveau med et enkelt 7-segment LED-display. Selv om det er et fantastisk DIY-projekt, bemærkede vi, at de fleste læsere leder efter mere avancerede kredsløb, der bruger flere syv-segment lysdiode-displays med lysdioder med syv segmenter. Her er et simpelt, men nyttigt kredsløb af en Arduino 4-cifret 7-segment LED-display-enhed med 4 cifre. Det modul, der anvendes her, er et selvstændigt, kompakt modul med fælles katode, der indeholder fire 7-segment LED-talsdisplays.
Hvert segment i displaymodulet er multiplexet, hvilket betyder, at det deler de samme anodeforbindelsespunkter. Og hvert af de fire cifre i modulet har deres eget fælles katodeforbindelsespunkt. Dette gør det muligt at tænde eller slukke hvert enkelt ciffer uafhængigt af hinanden. Desuden forvandler denne multiplexingsteknik det enorme antal mikrocontrollerstifter, der er nødvendige for at styre et display, til blot elleve eller tolv (i stedet for toogtredive)!
Displayets LED-segmenter kræver strømbegrænsende modstande, når de forsynes med strøm fra en 5 V logisk pin. Modstandens værdi er typisk mellem 330 og 470 ohm. Og det anbefales at anvende drivertransistorer til at levere yderligere strøm til LED-segmenterne, da hver pin på en mikrocontroller kun kan levere eller sænke en strøm på næsten 40 mA. Når alle (syv) segmenter af displayet tændes på én gang (tallet 8), vil strømbehovet overstige denne grænse på 40 mA. Billedet nedenfor viser det grundlæggende ledningsdiagram for strømbegrænsningsmodstandene og drivertransistorerne.
Næst følger Hookup-diagrammet for Arduino 4-cifret 7-segment LED-display, efterfulgt af Arduino-skitsen. Følg omhyggeligt hookup-diagrammet for at færdiggøre din hardware,og upload derefter skitsen til Arduino ved hjælp af Arduino IDE som sædvanlig. Det færdige kredsløb kan vise tal fra 0 til 1023 i forbindelse med en 10K-forudindstillingspotte, der er tilsluttet den analoge indgang A0 på Arduino-kortet.
Denne sektion med 4 -cifret 7-segment-display er koblet omkring fire 7-segment LED-displays med fælles katode og fire BC547 npn-transistorer. 1K-modstandene bruges til basisstrømbegrænsning, og 390R-modstandene begrænser LED-displaysegmenternes driftstrøm.
I Arduino-kortet bruges de digitale udgange fra D2 til D8 til at drive segmenter (a til g), og de digitale udgange D9 til D12 bruges til cifrene (D0-D3) i 4×7 LED-displayet. Bemærk, at her er decimalpunktet (dp) ikke brugt, men inkluderet i skitsen. D13 på Arduino’en er reserveret til decimalpunktsegmentet. Potentiometeret på 10K er tilsluttet den analoge indgang AO, som angivet i tilslutningsdiagrammet.
Prototype @ Work
/** Arduino 4x7 LED Display* Displays numbers ranging from 0 through 1023* Test Code displays the value of a sensor connected to the analog input A0* Inspired by a code found in the Arduino Cookbook* Tested at TechNode Protolabz/July 2014*/// bits representing segments A through G (and decimal point) for numerals 0-9const int numeral = { //ABCDEFG /dp B11111100, // 0 B01100000, // 1 B11011010, // 2 B11110010, // 3 B01100110, // 4 B10110110, // 5 B00111110, // 6 B11100000, // 7 B11111110, // 8 B11100110, // 9};// pins for decimal point and each segment// DP,G,F,E,D,C,B,Aconst int segmentPins = { 13,8,7,6,5,4,3,2 };const int nbrDigits= 4; // the number of digits in the LED display//dig 0 1 2 3const int digitPins = { 9,10,11,12 };void setup(){ for(int i=0; i = 0; digit--) { if(number > 0) { showDigit( number % 10, digit) ; number = number / 10; } } }} // Displays given number on a 7-segment display at the given digit positionvoid showDigit( int number, int digit){ digitalWrite( digitPins, HIGH ); for(int segment = 1; segmentShare this:
Skriv et svar