Ik wil uiteindelijk een 4 x 7 segment aansturen met een pic (een klok of iets anders)
Mijn 7 segment is common anode (20-25 mA). Na wat rondsurfen in diverse topics snap ik het niet meer: common anode wordt dus de +5 Volt uit mn voeding. Ok dat begrijp ik. Hoe stuur ik die 7 segment dan aan direct met mn PIC? Als een uitgang “laag”is van een PIC (16f628a)is hij dan 0 volt of gewoon een dood einde? Ik zag in de topics dat het handiger/beter is als je common anode heb (die heb ik dus) maar ik denk juist dat common kathode handiger is of niet? Dan doe je gewoon per pic knaal 5 volt erop zetten. Mag je dan stroom weg laten vloeien via de pic dan bij common anode? De stroom gaat dan de andere kant op…….

Als ik 4x7 segment wil aansturen in alle mogelijke cijfers dan heb ik toch echt 7 uitgangen nodig toch? Elke cycle laat een dgit zien en dan 4 cycle’s later is de 1ste weer aan de beurt toch? (dat gaat zo snel dat je het niet merk toch) is dr ergens een schema met een 7 segmant pic klok aansturing?

Hallo Hoihoi,

Er zijn ic's die je uitgangen van een pic besparen.
Dat wil zeggen in plaats van 7 uitgangen voor elk
segment nu maar 4.
Oftewel je set 4 bits en je ic uit de 4000 of 7400 familie
zet dit goed om.

Een cycle gaat inderdaad snel en op de langere duur (of kortere duur als je een fout maakt) kom je er achter
wat een goede delaysubroutine is.

Heel toevallig ben ik hier ook mee bezig. :)
http://flierp.student.utwente.nl/~fenix/datasheets_4000.html

Een uitgang van een pic kan meer sinken dan sourcen vandaar dat er voor common anode display's gekozen wordt.
Als je een nul naar een uitgang stuurt wordt deze ook nul volt. Bij een 1 wordt hij 5 volt(niet exact nul en ook niet exact 5V overigens). De stroom loopt dus via de plus door de display naar ground via de uitgang van de pic.

Het multiplexen heb je door. Je hebt echter ook nog uitgangen nodig voor display selectie dus voor 4 display's heb je minimaal 7 + 2 = 9uitgangen nodig.

Groeten,

Rik.

Laag is 0 Volt, dus de stroom loopt de PIC in (simpel gezegd).
En ik denk dat je 11 pinnen nodig hebt, kijk eens naar de aansluitingen van het display.

Op 15 april 2005 19:54:39 schreef Rik_J:
Een uitgang van een pic kan meer sinken dan sourcen vandaar dat er voor common anode display's gekozen wordt.

Was waar voor de oude 16F84, die nieuwe modellen kunnen allemaal 25 mA sinken en sourcen, dus maakt het niet meer uit.

[Bericht gewijzigd door JoWi op ]

Een common anode wordt gestuur door een open collector oftewel een NPN transistor. Dit is vrij normaal voor een TTL IC maar ook voor een ULN2803. Met een pic kan dit ook. Dit noemt men ook wel sinken. Door een uitgang laag te maken zal een segment aangaan en door hem weer hoog te maken gaat deze weer uit. Voor 4x7 segment heb je 7 + 4 uitgangen nodig indien je geen extra IC's wil gebruiken.

Als je uitgangen te kort hebt kan je ook met een 4543 de 7 segmenten aansturen. Je stuur dan de informatie binair en dit kost dan 4 uitgangen. Door nu ook de selectie van de segmenten binair te doen kan dit ook met 2 uitgangen. Je hebt nog wel een extra ic nodig. Bijv de 4028 die binair omzet in decimaal. Ook een 4017 is mogelijk dmv de reset en de clock ingang kan je een segment selecteren. Dus je kan het terugbrengen tot 6 uitgangen.

Nog een optie is via serieel parallel omzetters.
je hebt 4x4094 nodig en 3 PIC uitgangen. Nadeel is 4094 kan niet zoveel stroom leveren (ik dacht maximaal 8mA) maar je hoeft dan niet te multiplexen en misschien is 8mA dan wel genoeg.

Edit: typenummer ic gewijzigd

Op 15 april 2005 19:54:39 schreef Rik_J:
Het multiplexen heb je door. Je hebt echter ook nog uitgangen nodig voor display selectie dus voor 4 display's heb je minimaal 7 + 2 = 9uitgangen nodig.
Rik.

hi, het multiplexen heb ik nog niet helemaal door or :-). bedoel je met display selectie dat je een 00, 01, 10 en 11 nodig heb? dus 2 poorten? dus je heb per display een ic nodig? en die ic's hang je aan de pic? die ic's kunnen zelf ook "tellen" dus de pic hoeft alleen maar een kloksignaal aan te bieden, maar dat wil ik niet. ik wil dat de pic zelf de segmenten aanstuurt omdat ik ook andere dingen wil doen (timer, stopwatch, enz).
dus dan heb ik het volgende nodig toch? (om eerst een klok te maken): 7 uitgangen + 2 uitgangen (houd ik er nog 7 over om andere dingen mee te doen) maar hoe zit de display selectie in elkaar? (ik heb kaas gegeten voor poorten enzo, dat wel...) hoe ziet het gedeelte er dan uit tussen de 7 pic poorten en de 4 x 7 segm displays dmv de display selectie? (er moet vast een schema van zijn lijk mij) http://www.mikroelektronika.co.yu/english/product/books/PICbook/7_08ch… deze zag ik ook maar dan worden er 2 uitgangen gebruikt om 1 v/d 2 displays aan te sturen........oohh wacht even.....: een 2x nand chip zou het moeten kunnen om 1 van de 4 displays te selecteren of niet...hhmmnn (ik hou er van om "live"te typen namelijk :-)
welke chip zou dan tussen de displays moeten om d.m.v. 2 pic poorten 4 displays aan te sturen?

in deze discussie staat een schema met een oplossing

http://www.circuitsonline.nl/forum/view/15777/4

Je hebt voor 4 display's maar 2 i/o lijnen nodig die je verbind met een 4 uit 2 decoder zoals bijv 74139. Die stuur je aan met 00, 01 ,10 en 11 zoals je al uitgevogeld had. Als je i/o over hebt kun je dat natuurlijk ook met 4 lijnen doen maar dat is niet efficient maar bespaart wel een ic.

@jowi
Ik heb inderdaad nooit meer gekeken of dat bij nieuwe type's ook nog het geval is maar is zeker handig om te weten!

Op 15 april 2005 23:38:54 schreef Willie Worteltje:
in deze discussie staat een schema met een oplossing

http://www.circuitsonline.nl/forum/view/15777/4

ik heb alle datascheten van ic2 t/m ic5 bekeken van bovenstaande topic-adres. ik kan opzich de darlington array ic eruit laten want ik heb genoeg aan 20 mA en mn pic kan 25 mA sinken en sourcen, ja toch?
ook ic 4 kan ik weglaten dan toch?
ik heb dus eigenlijk een 4543 nodig (7 segment driver) en een 4 uit 2 decoder, maar ik kan nergens een 74139 vinden wat Rik_J zei. welke chip is een 4 uit 2 decoder? die 25mA kan sourcen? ik kan ook een 4028 kopen en deze gebruiken als 4 uit 2, toch. klopt al dit bovenstaande dat ik dus gewoon 2 ic's kan weglaten?

Let op.

Het is het niet verstandig de + van de display (common anode) direct te voeden uit de 4028. Deze kan max 10mA sturen. Als je dit nog moet verdelen over 7 segmenten (in geval van getal 8) kom je op 1,25 mA per segment. Daarom moet je in ieder geval aan de anodezijde een buffer ic gebruiken. In het schema staat een TD62783 maar een UDN2981 moet ook kunnen.

Je gaat multiplexen dus elk display is maar 1/4 van de tijd aan. De gemiddelde stoom is dus geen 25 maar 25/4. Wil je dat de gemiddelde stroom uitkomt op 25mA per display dan moet je gaan multiplexen met 100mA en dan moet je dus die ULN2803 gebruiken.

Advies: niet weglaten die IC's anders krijg je te zwak licht.

Op 16 april 2005 21:29:58 schreef Willie Worteltje:
Let op.

Het is het niet verstandig de + van de display (common anode) direct te voeden uit de 4028. Deze kan max 10mA sturen. Als je dit nog moet verdelen over 7 segmenten (in geval van getal 8) kom je op 1,25 mA per segment. Daarom moet je in ieder geval aan de anodezijde een buffer ic gebruiken. In het schema staat een TD62783 maar een UDN2981 moet ook kunnen.

Je gaat multiplexen dus elk display is maar 1/4 van de tijd aan. De gemiddelde stoom is dus geen 25 maar 25/4. Wil je dat de gemiddelde stroom uitkomt op 25mA per display dan moet je gaan multiplexen met 100mA en dan moet je dus die ULN2803 gebruiken.

Advies: niet weglaten die IC's anders krijg je te zwak licht.

ah ok snap je verhaal (1 ste stuk dan). intressant, bedankt. i.p.v. de TD62783AP kan ik ook 4 x een tor gebruiken toch dan?

en nog snap ik die ULN2803 niet: je kan toch niet over gemiddelde stromen gaan praten toch? zodra er een lijntje aan staat blijft het 20 mA ook al is het maar heel kort. het blijft 20 mA door elk segment. kan de 2543 niet tegen 20 mA per kanaal afvloeien dan? (kan ik niet vinden in datasheet)

ingeving edit:
of zit het zo?: er komen positieve pulsjes uit de pic naar de 2543 en die geeft dus ook positieve pulsjes maar er moet iets positiefs worden afgevloeit, naar gnd dus. en daar zorgt de uln voor, dus de 20 mA per segmentje wordt afgevloeid via de uln naar gnd en niet via de pic?

[Bericht gewijzigd door Hoihoi op ]

Je hebt het over een 2543 terwijl je een 4543 bedoeld? Deze 4543 kan per kanaal maar 10mA leveren. Je hebt gelijk als je zegt dat er dan kortstondig 10mA wordt geleverd. Maar het gemiddelde zakt naar 2,5mA per display. Dit omdat elk display maar 25% van de tijd aanstaat. Dus 10mA x 25% = 2,5 mA. Om nu toch de displays op gemiddeld 20mA te laten werken moet je 80mA sturen. Hiervoor is de uln2803.

Op 16 april 2005 23:35:38 schreef Willie Worteltje:
Je hebt het over een 2543 terwijl je een 4543 bedoeld? Deze 4543 kan per kanaal maar 10mA leveren. Je hebt gelijk als je zegt dat er dan kortstondig 10mA wordt geleverd. Maar het gemiddelde zakt naar 2,5mA per display. Dit omdat elk display maar 25% van de tijd aanstaat. Dus 10mA x 25% = 2,5 mA. Om nu toch de displays op gemiddeld 20mA te laten werken moet je 80mA sturen. Hiervoor is de uln2803.

en die 80mA bepaal je dan met die weesrtanden toch? die displays worden gevoed van de 9 volt via de TD62783ap, weerstand en uln2803 naar gnd, maar ik weet niet wat de spanningsval is van de TDxxxx en de ULN....hoe kom je dan aan de 80 mA, zorgt die ULN daar zelf automatisch voor dan? vind het nog steeds vaag sorry |:(

Die 80mA is idd wel een beetje vaag, want je stuurt toch 20mA zal je denken. Maar de effectiefe stroom(lees gemiddelde stroom) is bij 20mA maar 5mA. Dus om 20mA effectief te krijgen moet je 80mA sturen. Die 80 krijg je inderdaad door een weerstand er tussen te zetten.

Ik zelf zou een UDN2981 nemen want de TD62783 kan maar tot 5 Volt.

Ik denk dat je dat zo kan berekenen:
9V - spanningsval uln2803(0,1V volledige geleiding) - spanningsval UDN2981(1,4V darlingtontransistor) - spanningval led (2V) /(stroom =80mA) = 68 Ohm.

Op 17 april 2005 11:52:43 schreef Willie Worteltje:
Die 80mA is idd wel een beetje vaag, want je stuurt toch 20mA zal je denken. Maar de effectiefe stroom(lees gemiddelde stroom) is bij 20mA maar 5mA. Dus om 20mA effectief te krijgen moet je 80mA sturen. Die 80 krijg je inderdaad door een weerstand er tussen te zetten.

Ik zelf zou een UDN2981 nemen want de TD62783 kan maar tot 5 Volt.

Ik denk dat je dat zo kan berekenen:
9V - spanningsval uln2803(0,1V volledige geleiding) - spanningsval UDN2981(1,4V darlingtontransistor) - spanningval led (2V) /(stroom =80mA) = 68 Ohm.

ok bedankt. ik ga es naar de chip boer en koop wat ic's en dan ga ik lekker lopen vogelen. Een sourcecode in basic of .asm zou ik ook wel willen hebben om te kijken hoe ze dat nou in elkaar wordt geflansd dat multiplexen (anders heb ik nog niks). heeft iemand een code waarin is te izen hoe ze dat nou doen (een voorbeeld dus) hopelijk kijkt er iemand mee in de "digitaal" topic. zou zo'n code wel erg waarderen.

Ik heb nog wel een aantal tips.
Laat die 4543 en 4028 weg.

Waarom de 4028 weg:
Je kan direct een 7 segment aan of uit zetten. Met de 4028 maak je met 2 pinnen 4 uitgangen. Er is er altijd 1 hoog dus altijd een display aan. Je kan ze dus niet uitzetten. Wil je dit wel kunnen dan kost dat weer een extra uitgang.

Waarom de 4543 weg?
Je zal zien dat je veel vrijer bent in je display sturing.
Je kan op 4 x 7 segment dan ook kleine worden schrijven zoals StOP, PLAY, HOI, LOL enz. Dit is al wel voor de gevorderde programma maker maar wel leuker. De omzetting van BCD naar 7 segment doe je dan in code.

Laatste tip.
Begin eerst met weerstanden die maximaal 20mA doorlaten op de display. Mocht je multiplexing niet goed werken blijven je display's tenminste heel. Heb je dit goed onder de knie dan lekker die weerstanden aanpassen tot 80mA.(Spreek uit eigen ervaring) Een programmafout zit in een klein tikfoutje of denkfoutje.

Ik heb nog wel ergens code liggen van een dartteller
* 6 x 7 segment displays
* 3x4 matrix keypad
* compleet met woordjes op de display (LEtS PLAY dARtS)
* display selectie dmv een 4017
* binair naar BCD
* 16 bits rekenen (aftrekken).
* 16F628 of 16F84 (weet niet meer)

Zit misschien wel wat bruikbaars in.

Op 17 april 2005 11:52:43 schreef Willie Worteltje:
Ik zelf zou een UDN2981 nemen want de TD62783 kan maar tot 5 Volt.

De TD62783 en de UDN2981 zijn equivalenten met dezelfde specs (verkrijgbaar bij Voti).

Ik denk dat je dat zo kan berekenen:
9V - spanningsval uln2803(0,1V volledige geleiding) - spanningsval UDN2981(1,4V darlingtontransistor) - spanningval led (2V) /(stroom =80mA) = 68 Ohm.

De ULN2803 heeft ongeveer 0.9V VCEsat.

CD :)

Op 18 april 2005 06:33:22 schreef Willie Worteltje:
Ik heb nog wel een aantal tips.
Waarom de 4028 weg:
Je kan direct een 7 segment aan of uit zetten. Met de 4028 maak je met 2 pinnen 4 uitgangen. Er is er altijd 1 hoog dus altijd een display aan. Je kan ze dus niet uitzetten. Wil je dit wel kunnen dan kost dat weer een extra uitgang.

Wel als je Q0 niet gebruikt...

Ik blank mijn displays (individueel) door een waarde tussen 0xA en 0xF naar de 4543 te sturen.

CD :)

Op 18 april 2005 06:33:22 schreef Willie Worteltje:

Ik heb nog wel ergens code liggen van een dartteller
* 6 x 7 segment displays
* 3x4 matrix keypad
* compleet met woordjes op de display (LEtS PLAY dARtS)
* display selectie dmv een 4017
* binair naar BCD
* 16 bits rekenen (aftrekken).
* 16F628 of 16F84 (weet niet meer)

Zit misschien wel wat bruikbaars in.

oh, dat zou ik wel waarderen ja als als je die code voor me heb om het te bekijken/leren. kan er allicht wat uithalen. ik kan .asm en .bas omzetten naar hex voor mn pic (max 50 lines voor .bas files ivm de lite versie). (ik heb een 16f84a en een 16f628a, dus moet wel lukken dan.
het eerste wat ik wil maken is een normale 4x7 klok en daarna een afteller (een timer) en dan uiteindelijk een stopwatch met 4x7 segment + 2x7 segment voor de honderdsten van een seconde. als je het wil sturen dan kan het gewoon naar mn mail adres die bekend is in mn profiel (viespeuk@tiscali.nl) hopelijk kan ik er wat uit halen uit die code......ben benieuwd

@turbokeu: ook bedankt voor de xtra info!

Hier is de link voor de ASM file waar ik het over had.
Dit is de volledige versie.

Hier is de link voor een versie die een text van maximaal 256 karakter kan laten zien op dezelfde harware.

Schema's van de hardware heb ik niet meer. Dus het is effe uitzoeken hoe alles zit. Ik ben van plan het nog op mijn site zetten met meer info en schema's maar dit zal nog effe op zich laten wachten.

suc6

laatste kleine vraag. wat is het type nummer van een ic die van 2 digitale ingangen 4 uitgangen kan maken?
door dmv 00, 01, 10, 11 te sturen door een pic bijv, waardoor 4 uitgangen ontstaan?
hoe noemt men zo'n ic familie?

- deleted- NVT

[Bericht gewijzigd door Hoihoi op (95%)]

Schop vanuit 2005, onderwerp is van toepassing en ik was de TS.

Het had even in de koelkast gelegen, maar ik ben van plan uiteindelijk een grote 7 segment klok te bouwen. Aan de hand van dit schema.

Ik heb eerst een proefbord gemaakt om te kunnen "spelen". Zie foto.
Door middel van ULN2903A en een 4543 en een TD62783AP met een 4028 heb ik het nu zo voor elkaar dat ik 4 bits nodig heb voor een 7 segment en 2 bits voor de display selectie. Door middel van een PIC krijg ik apart elk cijfer aan etc, dus dat is een goed begin.

Nu komt het multiplexen waar ik mee stoeide in 2005: Het principe snap ik, alleen ik zoek een voorbeeld code.

Ik schrijf in Proton (basic). Ik heb me rot gezocht op google, etc en kwam qua basic code niet verder dan http://melabs.com/resources/articles/ledart.htm. Er zijn wel voorbeelden van assembler te vinden, maar dat snap ik niet.

Mijn vraag is:
Heeft iemand een voorbeeld basic (.bas) code voor multiplexing 4 stuks 7 segment met klok functie. Ik heb nog geen knopjes aan de print hangen dus als hij start op 00:00 en begint te lopen ben ik helemaal blij. De dcf77/knopjes/extra ledjes zoek ik wel uit, maar omdat ik de ballen snap van multiplexing code voor een pic zoek ik een voorbeeld.

Alvast erg bedankt.