Charlieplexing 7-segment displays (1 / 3 stap)

Stap 1: Theorie van de operatie


ik zal niet zeggen hier algemene informatie over SSDs, de segment-naming convention of het concept van gewone SSD multiplexing en waarom het werkt; die allemaal kunnen gemakkelijk worden gevonden in de bestaande middelen.

Ervan uitgaande dat een goed begrip van deze achtergrond, is hier het schema met behulp van de pinout van de Radio Shack gemeenschappelijke kathode SSD deel 276-0075. Zorgvuldig observeren hoe de twaalf SSD LED verbindingen (elke acht anoden en de vier gemeenschappelijke kathoden) zijn verbonden met de lijnen van negen selecteren (Sel). Bijvoorbeeld, er rekening mee dat de gemeenschappelijke kathode van SSD0 (de "ones" positie van de 4-cijferig display) en de anoden van segment 'a' van de andere drie SSDs delen selecteren lijn Sel0.

Wat staten hebben de Sel lijnen aan het veroorzaken van het cijfer '1' worden weergegeven op gewoon SSD0? Enige segmenten "b" en "c" zijn moet worden verlicht, zodat Sel2 en Sel3 moeten hoge (H) met Sel1, Sel4, Sel5, Sel6, Sel7 en Sel8 laag (L). De gemeenschappelijke kathode van SSD0 is verbonden met Sel0, dus Sel0 ook L. moet Onder deze omstandigheden, wordt een "1" inderdaad weergegeven op SSD0.

Charlieplexing is niet zonder complicaties. Op dit punt, er rekening mee dat de kathoden van SSD2 en SSD3 H omdat ze ook met Sel2 en Sel3 respectievelijk verbonden zijn. Anoden van het segment "a" LED's zijn aangesloten op de Sel0 die momenteel L. Het segment "a" LEDs zijn dus omgekeerd-bevooroordeeld. Hoewel deze voorwaarde geen te verlichten veroorzaakt, is het belangrijk om te begrijpen dat de LEDs zijn onderworpen aan (en moet worden beoordeeld voor) de maximaal mogelijke reverse spanning. De Arduino H + 5V en dat is ook de maximale omgekeerde spanning waardering gegeven voor de 276-0075.

Maar een probleem blijft. In plaats van wordt onverlichte, SSD1 zal ook '1' te tonen!  Dit is een raadsel. Sel1 L te houden segment moet worden "a" van wordt verlicht maar omdat Sel1 ook met de gemeenschappelijke kathode van SSD1 verbonden is, het moet H of zowel SSD0 en SSD1 actief zal zijn.

Duidelijk kan een select pin niet zowel L en H gelijktijdig. Echter als we verbreken Sel1 krijgen we het gewenste resultaat. Een verbroken lijn is niet H noch L-het is in een derde land van de "open-circuit" waardoor alle de aangesloten LED's worden uitgeschakeld. Een verbroken Sel1 levert geen stroom aan het segment 'a' anoden en biedt ook geen terugkeer pad naar grond voor de gemeenschappelijke kathode van SSD1. Geweldig! Dus hoe koppel wij pinnen selectief?

Hier is waar de Arduino maakt dit gemakkelijk. Elke Arduino pin kan worden geprogrammeerd als of een ingang als een uitgang. Als een input, kan het bron noch huidige zinken. We gebruiken de pin niet voor zijn input eigenschappen; alleen voor het feit dat een invoer pin niet een uitgang Pins is en daarom "disconnected" uit de matrix LED. Deze afhankelijkheid tristate pinnen is een kenmerk van charlieplexing. Dus de programmering regels eenvoudig zijn: Stel de select pinnen H voor de segmenten worden weergegeven, ingesteld het overige segment select pinnen als ingangen en de SSD Selecteer pin L.

Gerelateerde Artikelen

Charlieplexing 7 segment worden weergegeven

Charlieplexing 7 segment worden weergegeven

dit instructable beschrijft hoe te charlieplex leidde een stelletje 7-segment displays.Charlieplexing voor discrete leds is het onderwerp van een paar andere instructables geweest. De Charlieplexing LED's - de theorie en het hoe te rijden een heleboe
Arduino digitale klok (met Charlieplexing LED's, 7 segment Displays)

Arduino digitale klok (met Charlieplexing LED's, 7 segment Displays)

dit is mijn tweede instructable. Ik had net een stemming van het maken van een digitaal horloge. Maar wilde het een leerproces. Had ik al een sanguino ik kon gemakkelijk gebruikt hebben die Atmega644 chip. het zou zijn geweest meer dan genoeg.  Maar
DIY groot LED verlicht 7 Segment Display

DIY groot LED verlicht 7 Segment Display

een vriend van mij die middelbare school wetenschap leert in opdracht wil maken van een gevaar stijl quiz game controller met een grote timer display en knoppen voor spelers. De beste soort timer die ik kon bedenken was een grote 7-segment display me
Hoe ontwerp zeven segment display driver chip op VLSI consept voor de eerste keer!?

Hoe ontwerp zeven segment display driver chip op VLSI consept voor de eerste keer!?

Vandaag, ga ik u tonen hoe het ontwerpen van een 7 segment display elektronische component stuurprogramma die vergelijkbaar is met 7447 chip. Dit project was ik deed wanneer in mijn universiteit is vorig jaar, dankzij mijn docent, leerde ik hoe desig
DIY 7 Segment Display

DIY 7 Segment Display

De reden voor dit Instructable is omdat ik vond het erg moeilijk te vinden een tutorial over hoe te maken van een 7 Segment Display.Ik weet het, iedereen is met behulp van de fancy geïntegreerde displays, gemaakt door Kingbright of sommige andere ger
Arduino Nano en Visuino: 7 Segment Display klok met MAX7219 en DS1307 Real Time Clock(RTC)

Arduino Nano en Visuino: 7 Segment Display klok met MAX7219 en DS1307 Real Time Clock(RTC)

DS1307 Real timerklok zijn wijd-beschikbaar low-cost I2C RTC modules. Ze komen met een klok en een kleine batterij, en wanneer aangesloten op de Arduino, annuleerteken vieren voetspoor van real-time zelfs wanneer de Arduino board is niet aangedreven.
Arduino: een gemakkelijkere manier om te werken met zeven segment displays

Arduino: een gemakkelijkere manier om te werken met zeven segment displays

ooit hebben moeite programmeercode voor zeven displays segment? Ze maakten ook de 4511 om dingen te maken een stuk makkelijker. Wat de 4511 doet is neemt een 4-cijferige binaire invoerwaarde (enen en nullen), en zet deze om in een decimale waarde op
Zeven Segment Display Tutorial

Zeven Segment Display Tutorial

hoeveel TV-shows en films hebben een mysterieuze apparaat tellen naar beneden tot nul die hiermee zijn 7 segment displays. Met de 7 segment displays kunt u een willekeurig getal of sommige letters die uw hartje begeert.Op het beheersen van de eerste
Zeven Segment Display Thermometer - Arduino gebaseerd

Zeven Segment Display Thermometer - Arduino gebaseerd

Vandaag zal ik u tonen hoe te maken van uw eigen 7 segment - 2 digit - thermometer met Arduino uno en DS18B20 temperatuursensor.Ik verkies om te bouwen van mijn eigen arduino gebaseerd circuit met behulp van de ATmega328p uno bezitter, maar dit is op
Arduino temperatuur en vochtigheid scherm met 7-Segment Display

Arduino temperatuur en vochtigheid scherm met 7-Segment Display

Hallo iedereen.Deze istructables is voor de beginners die zijn aangegaan op het ecosysteem van de ArduinoIn dit instructable, ik ga ter dekking van een paar onderwerpen over DHT11 vochtigheid en temperatuursensor en Multiplexing 4 7-Segment Displays.
Arduino temperatuur en vochtigheid op 7 Segment Display

Arduino temperatuur en vochtigheid op 7 Segment Display

Dit is een apparaat van de werken maakte ik die weergegeven temperatuur of vochtigheid door het indrukken van een drukknop-schakelaar.Als de schakelaar wordt ingedrukt het weergegeven vochtigheid anders temperatuur wordt weergegeven.Stap 1: INTRODit
Zeven Segment Display met LED's

Zeven Segment Display met LED's

Hallo mensen!Dit is mijn allereerste Instructable evenals mijn eerste Arduino project dat ik geprobeerd. Ik begon met de zeer basic LED knipperende schets/code en dacht dat het zou geweldig zijn om een aantal LEDs samen. Het allereerste ding dat kwam
Arduino 7 Segment Display Clock (+ geluid activering)

Arduino 7 Segment Display Clock (+ geluid activering)

In dit instructable ik zal u tonen hoe te maken van uw eigen Arduino gebaseerd 7 segment display (4 cijfers) klok met geluid activering functie!Het circuit wordt gebruikt voor de ATmega328p micro-controller (hetzelfde als de Arduino uno bestuur) en d
Naam op 7-segment Display Atmel Avr

Naam op 7-segment Display Atmel Avr

In dit instructable (mijn eerste one!) Ik wil je laten zien iets wat die ik voor een schoolproject gemaakt. De oorspronkelijke opdracht was als volgt: "In MSVS (of Microsoft visual studio) code in assembler: invoeren van uw naam als een ASCII-hexadec