Flera LED-Display modul (4 / 6 steg)
Steg 4: programmering
För programmering måste du komma ihåg några viktiga begrepp om designen för hårdvara och om övergång registrera 74HC595.
74HC595 huvudsakliga funktion är att omvandla 8-bitars följetong-i in i 8 parallell-Out SKIFT.
Alla seriella data gå in Pin #14 och på varje klocksignal bitar gå till dess motsvarande parallel-out stift (Qa till Qh).
Om du fortlöpande för att skicka mer data, bitarna ska flyttas en i taget till Pin #9 (Qh ") som seriell utgång igen och på grund av den här funktionen kan du sätta en annan chips ansluten i kaskad.
Viktigt:
I detta projekt har vi tre ICs för 74HC595. Två första fungerar för att styra kolonnerna (med positiv logik) och den sista att kontrollera fodrar (med negativ logik på grund av PNP transistorerna funktion).
Positiv logik innebär att du måste skicka en hög nivå signal (+ 5V) från Arduino och negativ logik innebär att du måste skickas en låg nivå signal (0V).
- Matrisskrivare av lysdioder
- Först är för utgångarna av katoder av röda lysdioder (8 x) >> Kolumn RED (1 till 8).
- Andra är för outputL av katoder av gröna lysdioder (8 x) >> Kolumn grön (1 till 8).
- Den sista är för produktionen av anoder av alla lysdioder (08 x röd & grön) >> linjer (1 till 8).
Till exempel om du vill vända på bara grön LED av kolumn 1 och linje måste 1 du skicka följande sekvens av seriella data:
1º) LINJER
~10000000 (bara den första raden är inställd på på) - symbolen ~ är att Invertera alla bitar från 1 till 0 och vice versa.
2 °) kolumn grön
10000000 (endast den första kolumnen i grön LED är inställd på på)
3º) KOLUMN RÖD
00000000 (alla kolumner av röda lysdioder är avstängda)
-Arduino uttalanden:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000); Negativ logik för rader
shiftOut (dataPin, clockPin, LSBFIRST, B10000000); Positiv logik för grön kolumner
shiftOut (dataPin, clockPin, LSBFIRST, B00000000); Positiv logik för kolumnerna röd
Anmärkning:
Du kan också kombinera båda LED (grön och röd) för att producera den gula färgen enligt följande:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
- 7 segment visar
För dessa typer av visar är sekvensen samma. Den enda skillnaden är att du inte behöver använda den gröna lysdioder.
1º) siffra (1-4 från vänster till höger)
~ 10000000 (ange siffran #1)
~ 01000000 (set digit #2)
~ 00100000 (set digit #3)
~ 00010000 (set digit #4)
2 °) INTE ANVÄNDS
00000000 (alla bitar värdet noll)
3º) segment (A till F och DP - kontrollera din display datablad)
10000000 (set segment A)
01000000 (set segment B)
00100000 (set segment C)
00010000 (set segment D)
00001000 (set segment E)
00000100 (set segment F)
00000010 (set segment G)
00000001 (set up)
-Arduino exempel att ställa in displayen #2 med nummer 3:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B01000000); Ställa in displayen 2 (negativ logik)
shiftOut (dataPin, clockPin, LSBFIRST, 0); Ange data till noll (används inte)
shiftOut (dataPin, clockPin, LSBFIRST, B11110010); Ställa in segment A, B, C, D, G)
Slutligen, tillämpa denna process kan du styra alla LED av skärmen och du kan också skapa några specialtecken som du behöver.