Styra 8st LED-7segment

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
FS
Inlägg: 245
Blev medlem: 14 januari 2005, 23:35:45

Styra 8st LED-7segment

Inlägg av FS »

Hur går man tillväga för att styra 8st LED-7segment med en PIC 16F876A? Portarna räcker ju knappast till för att styra varje segment för sig. Den har väl 22 I/O kanaler och tre-fyra av dessa behöver jag till "annat".

Antar att man använder nån slags extern krets som låter en få flera utgångar. Vad är tricket? Hur få I/O kanaler kan man använda utan att varken hårdvaran eller mjukvaran blir allt för komplicerad?

Tex. dessa segment: http://www.elfa.se/elfa-bin/setpage.pl? ... 011619.htm
Användarvisningsbild
Noddan
Inlägg: 257
Blev medlem: 23 september 2004, 16:28:12
Ort: Göteborg
Kontakt:

Inlägg av Noddan »

Du använder någonting som kallas för multiplexning, dvs du aktiverar först den första displayen och lägger ut värdet som den ska ha och sen aktiverar du display nr 2 och lägger ut dess värde. Detta görs födelaktigt genom att du har sju utpinnar (om du inte har någon extern drivkrets) för att styra segmenten. Dessa sju kopplas till samtliga element. Sedan tar du åtta pinnar till och kopplar kadoden (eller anoden), den enda ensamma pinnen, från varje display och in till en pinne på mikroprocessorn. Sedan är det bara att gå snabbt igenom de alla.

Det är iaf den grundläggande principen på hur du gör det.

Såg att inlägget blev lite konstigt, men du förstår säkert. I annat fall är det bara att hojta till!
FS
Inlägg: 245
Blev medlem: 14 januari 2005, 23:35:45

Inlägg av FS »

Det verkar ju smart, då kommer det med andra ord att gå åt 15 utpinnar. Kan någon säkert säga mig hur många pinnar det finns tillgängligt på en PIC 16F876A för detta ändamål?

Hur kopplar man den ensamma pinnen? Den går väl på jordsidan av displayen eller?

Hur snabbt behöver jag gå igenom displayen för att den inte ska flimmra?
FS
Inlägg: 245
Blev medlem: 14 januari 2005, 23:35:45

Inlägg av FS »

Hur blir det med strömmen till dem föresten? Säg att de vill ha 20mA. Om jag då låter alla 56 segmenten vara tända samtidigt blir detta 1.12A! Låter rätt mycket, eller?
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

16F876A har 22 iopinnar och allihopa verkar vara dubbelriktade.

Eftersom du kommer att multiplexa displayerna så kan max 7 st segment (en display) vara på åt gången. Så din totala ström blir tack och lov bara 7*20mA = 0.14 A
FS
Inlägg: 245
Blev medlem: 14 januari 2005, 23:35:45

Inlägg av FS »

Skönt! Vad tror du om hur fort den måste gå igenom de olika segmentmodulerna för att det inte ska flimmra?

Hur kopplar jag den ensamma pinnen?
Användarvisningsbild
Icecap
Inlägg: 26628
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Du ska hålla en uppdateringsfrekvens om minst 30Hz, gärna 60 om det går.
Det betyder alltså att du ska hinna med att uppdatera alla modulerna minst 30 gg/sek. eller (helst) mer.

Edit: Kom ihåg att för att undvika "skuggning" ska man stänga av all drivning en liten stund och sen tända nästa kombination, då hinner driverna att stänga av så föregående tal inte "skuggas".
Användarvisningsbild
Tony
Inlägg: 1038
Blev medlem: 9 november 2003, 16:08:47

Inlägg av Tony »

140mA är för mycket för en pinne på Pic så det krävs en transistorswitch imellan.

Istället för multiplex kan man ha shiftregister för att få serie till parallell-omvandling.
(2 pinnar till hur många displayer som helst, nästan)
FS
Inlägg: 245
Blev medlem: 14 januari 2005, 23:35:45

Inlägg av FS »

Har hittat en koppling för gemensam anod:
Bild

Men hur kopplar man för gemensam katod? Den med gemensam katod var nämligen mycket billigare på elfa http://www.elfa.se/elfa-bin/setpage.pl? ... 011619.htm

Är det nån nackdel/fördel med någon av kopplingarna?
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

För gemensam katod byter du ut transistorerna mot NPN-transistorer, och kopplar dom mot 0V istället för 5V.
Användarvisningsbild
Xerxes
Inlägg: 248
Blev medlem: 25 januari 2004, 22:55:05
Ort: Lund
Kontakt:

Inlägg av Xerxes »

Testa ICM7212, en 7-segmentsdrivare som klarar 4 displayer och sköter all multiplexing själv, det enda man behöver göra är att uppdatera siffrorna när man vill ändra dem.
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1675/ln/
FS
Inlägg: 245
Blev medlem: 14 januari 2005, 23:35:45

Inlägg av FS »

Den verkar bra! Om jag förstod det rätt sköter den även strömförsörjningen, eller?

Den verkar dock inte kunna styra decimalpunkten men det kanske går att lösa direkt från PIC:en
Användarvisningsbild
Garfield
Inlägg: 65
Blev medlem: 17 mars 2004, 01:45:46

Inlägg av Garfield »

Du kan använda 4094 en till varje display dvs 8st sen skickar du data via seriellt gränsnitt bara 3 pinnar använder man från processorn. Kretsen är billig 2-3kr st. Sen är det lätt att expandera flera displayer utan att man använder flera pinnar på processorn.
FS
Inlägg: 245
Blev medlem: 14 januari 2005, 23:35:45

Inlägg av FS »

Hänger inte med riktigt hur man ska använda 4094:an. Hur skickar man data till den? Om man skickar den datan som motsvarar en "8" kommer den då tända alla segment i displayen?

8st 4094:or blir ungefär lika dyrt som en ICM7212 om man handlar hos Elfa. Vilken kommer vara enklast att få igång?
Användarvisningsbild
Icecap
Inlägg: 26628
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Ska du ha lite kul kan du kolla in på Maxim's hemsida (http://www.maxim-ic.com/), de har en hel del drivkretsar till LED-display och det finns typer där man kan dimma osv. och sen finns det ju gratis varuprov..... :D

Edit: Kolla in MAX6955, MAX6954, MAX6951, ICM7218C/D, ICM7228B/D och lite annat t.ex. Det finns en hel del som kan vara kul att kolla på och de gratis varuprov är 2 kretsar av varje, dock max. 4 kretsar per beställning och man har ju familj, kompisar osv....
Skriv svar