[7-segment display's] Hoe aansturen?

Pagina: 1
Acties:
  • 546 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 15-05 06:36

Atmoz

Techno!!

Topicstarter
Beste mensen,

Wie weet hoe ik het beste mijn 3 stuks 7-segment display's kan aansturen?

Ik heb een print met daarop 3 (vrij grote) 7-segment display's. Deze werken op 12 volt. Er zitten 11 aansluitpinnen op de print:

3 stuks GND voor de 3 display's.
8 stuks voor alle segmenten aan te sturen + de punt.

Als ik GND op één van die 8 pinnen zet en +12 volt op één van die 8 pinnen dan gaat er ergens een segment branden. (common kathode als ik me dus niet vergis).

In mijn microcontroller zit een getal tussen 0 en 255 dat ik op de display's wil laten zien. Hoe moet ik dit nu aansturen? Ik snap dat er drivers (Maxim enzo) zijn, maar ik heb de juiste nog niet gevonden. Ik kom er alleen maar tegen die alle 3 de display's apart aansturen. Maar ze moeten juist heel snel achter elkaar omstebeurt worden aangestuurd zodat het lijkt dat ze toch allemaal tegelijk aanstaan. Dus ik zoek een chip die steeds tussen die 3 GND's schakelt en dan de juiste data doorstuurd naar de display's (de 8 andere pinnen). En de ingangen moeten er denk ik 8 (bits) zijn. Anders kun je een getal van 3 cijfers niet doorsturen.

Ik zoek me al de hele middag te pletter maar kom er niet uit. Ook heb ik in gedachte gehad om gewoon alle 24 (3x8) de segmenten los aan te sturen met de microcontroller, maar dat gaat niet omdat ze op 12 volt werken en met een transistor (pnp) kun je dat niet aansturen.

Dus hoe moet ik dus oplossen?

Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 24-05 13:05

Sprite_tm

Semi-Chinees

Errmmm... met een pnp lukt je dat misschien niet, maar dan pak je toch gewoon een npn? :) Ik zie het probleem niet.

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 15-05 06:36

Atmoz

Techno!!

Topicstarter
npn schakeld toch de min? En de display's moeten juist + hebben geschakeld ;)

Acties:
  • 0 Henk 'm!

  • virus.elektro
  • Registratie: Januari 2002
  • Laatst online: 28-05 23:28

virus.elektro

profesionele monitor sloper

zijn ze wel echt 12 volt ik vind het wat hoog namelijk(voorschakelweerstand. er zijn ook fetjes trouwens, die hebben bijna geen weerstand en belasten de microcontroller amper

elektrotechniek is leuk (nog wel). ik ga dus weer verder met leuke dingen ontwerpen. amd 2200+ 256mb 333mhz,gf4 440mx, 120gb,16X dvd. jarr-url


Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 15-05 06:36

Atmoz

Techno!!

Topicstarter
virus.elektro schreef op zondag 15 mei 2005 @ 20:55:
zijn ze wel echt 12 volt ik vind het wat hoog namelijk(voorschakelweerstand. er zijn ook fetjes trouwens, die hebben bijna geen weerstand en belasten de microcontroller amper
Ja, want als ik er 5 volt opzet branden ze echt niet. (ook niet zonder voorschakelweerstand).

Acties:
  • 0 Henk 'm!

  • virus.elektro
  • Registratie: Januari 2002
  • Laatst online: 28-05 23:28

virus.elektro

profesionele monitor sloper

vreemd, zit de weerstand soms al ingegoten. of hebben ze soms meerdere diodes in serie geschakeld. hoe groot zijn ze eigenlijk

elektrotechniek is leuk (nog wel). ik ga dus weer verder met leuke dingen ontwerpen. amd 2200+ 256mb 333mhz,gf4 440mx, 120gb,16X dvd. jarr-url


Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 24-05 13:05

Sprite_tm

Semi-Chinees

Ow, waitasecond, ik snap het probleem. Nog niet zo'n probleem, je gaat gewoon een 2e zwikkie torren nodig hebben:

Afbeeldingslocatie: http://sprite.student.utwente.nl/~jeroen/tmp/tmb-7segdriver.jpg

Die torren het dichtst bij de uC zou ik trouwens vervangen door zo'n ULN2803 ofzo, is minder solderen :)

Edit: Oeps, het pijltje bij de 3 torren onder het display ben ik vergeten, dat zijn natuurlijk NPN-torren, met de emitter naar gnd toe.

[ Voor 16% gewijzigd door Sprite_tm op 15-05-2005 21:07 ]

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 15-05 06:36

Atmoz

Techno!!

Topicstarter
virus.elektro schreef op zondag 15 mei 2005 @ 21:04:
vreemd, zit de weerstand soms al ingegoten. of hebben ze soms meerdere diodes in serie geschakeld. hoe groot zijn ze eigenlijk
De 3 display's bij elkaar zijn zo'n 6x15 CM groot.
Alleen de punt (maar één LED) gaat branden op 5 volt.

Ik moet ze dus echt aan 12 volt hangen...

[edit]
Sprite_tm schreef op zondag 15 mei 2005 @ 21:05:
Ow, waitasecond, ik snap het probleem. Nog niet zo'n probleem, je gaat gewoon een 2e zwikkie torren nodig hebben:

[afbeelding]

Die torren het dichtst bij de uC zou ik trouwens vervangen door zo'n ULN2803 ofzo, is minder solderen :)
Dat zou idd zo kunnen ALS de microcontroller verder niets hoefde te doen. Het probleem is echter dat deze ook soms bezig is met andere dingen (langer dan 1 seconde). Hierdoor kan hij in die tijd niet de display's aansturen en staan deze dus uit. Niet echt wat ik wil dus.

Het probleem is best groot want ik zie nog niet zo 123 een oplossing hiervoor...

[ Voor 51% gewijzigd door Atmoz op 15-05-2005 21:09 ]


Acties:
  • 0 Henk 'm!

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
Met de meeste transistoren is wel degelijk 12 V te schakelen, even goed op letten wat de Uce is...
Verder kun je deze 3 segmenten aansturen door te multiplexen, als je de frequentie hoog genoeg zet is het net of de segmenten continu branden.

Edit: precies zoals Sprite_tm zegt een paar posts hierboven

[ Voor 12% gewijzigd door El_kingo op 15-05-2005 21:07 ]


Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 15-05 06:36

Atmoz

Techno!!

Topicstarter
sparcky schreef op zondag 15 mei 2005 @ 21:07:
Met de meeste transistoren is wel degelijk 12 V te schakelen, even goed op letten wat de Uce is...
Verder kun je deze 3 segmenten aansturen door te multiplexen, als je de frequentie hoog genoeg zet is het net of de segmenten continu branden.

Edit: precies zoals Sprite_tm zegt een paar posts hierboven
Ja, maar kan ik een PNP schakelen met 5 volt (van de uC) terwijl de emitter aan 12 volt hangt?

Acties:
  • 0 Henk 'm!

  • sebastius
  • Registratie: September 2000
  • Laatst online: 29-05 15:39

sebastius

Laten we lekker link gaan doen

Dan heb je een BCD naar 7 segments decoder nodig, een driver en ook nog iets wat de toestand vasthoud (bijvoorbeeld een schuifregister).

Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 24-05 13:05

Sprite_tm

Semi-Chinees

atmoz schreef op zondag 15 mei 2005 @ 21:06:
[...]
Dat zou idd zo kunnen ALS de microcontroller verder niets hoefde te doen. Het probleem is echter dat deze ook soms bezig is met andere dingen (langer dan 1 seconde). Hierdoor kan hij in die tijd niet de display's aansturen en staan deze dus uit. Niet echt wat ik wil dus.

Het probleem is best groot want ik zie nog niet zo 123 een oplossing hiervoor...
Errrmmm... je hebt toch wel een timerinterrupt op je uC? Gebruik die om de displays aan te sturen (als timer dan schop even de data voor het volgende display naar de datalijnen toe) en je bent er. Als je eeeecht geen klokcycli kwijt kan kan je ook nog altijd een 2e uC inschakelen voor het aansturen van het display, geen idee welke uC je precies gebruikt maar atmels en pics kosten tegenwoordig toch geen enkele drol meer.

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
atmoz schreef op zondag 15 mei 2005 @ 21:10:
[...]


Ja, maar kan ik een PNP schakelen met 5 volt (van de uC) terwijl de emitter aan 12 volt hangt?
jazeker is dat mogelijk, moet je alleen wel zorgen dat beide massa's aan elkaar liggen...

Acties:
  • 0 Henk 'm!

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
Sprite_tm schreef op zondag 15 mei 2005 @ 21:13:
[...]


Errrmmm... je hebt toch wel een timerinterrupt op je uC? Gebruik die om de displays aan te sturen (als timer dan schop even de data voor het volgende display naar de datalijnen toe) en je bent er. Als je eeeecht geen klokcycli kwijt kan kan je ook nog altijd een 2e uC inschakelen voor het aansturen van het display, geen idee welke uC je precies gebruikt maar atmels en pics kosten tegenwoordig toch geen enkele drol meer.
of anders een paar schuifregisters gebruiken i.p.v een 2de μC en de data serieel inklokken, scheelt je ook weer een paar datalijnen op je μC

[ Voor 1% gewijzigd door El_kingo op 15-05-2005 21:21 . Reden: sorry ik dacht dat ik het edit knopje had ]


Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 24-05 13:05

Sprite_tm

Semi-Chinees

Dat kan niet, de displays moeten namelijk gemultiplexed worden en dat wil 'ie z'n uC niet laten doen, en met een paar schuifregisters kan je niet even een complete multiplexende displaycontroller maken ben ik bang :)

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 15-05 06:36

Atmoz

Techno!!

Topicstarter
sebastius schreef op zondag 15 mei 2005 @ 21:13:
Dan heb je een BCD naar 7 segments decoder nodig, een driver en ook nog iets wat de toestand vasthoud (bijvoorbeeld een schuifregister).
Hmzzz. Nogal wat onderdelen dus... effe kijken of het niet met wat minder kan.
Sprite_tm schreef op zondag 15 mei 2005 @ 21:13:
[...]


Errrmmm... je hebt toch wel een timerinterrupt op je uC? Gebruik die om de displays aan te sturen (als timer dan schop even de data voor het volgende display naar de datalijnen toe) en je bent er. Als je eeeecht geen klokcycli kwijt kan kan je ook nog altijd een 2e uC inschakelen voor het aansturen van het display, geen idee welke uC je precies gebruikt maar atmels en pics kosten tegenwoordig toch geen enkele drol meer.
Ik gebruik een PIC 18F452. Hoe dat met timerinterrupt werkt heb ik geen idee van. De microcontroller is soms andere dingen aan het doen. Kan die dan (ondanks dat'ie bezig is) toch nog de hele tijd die uitgangen besturen voor de display's aan te sturen?
sparcky schreef op zondag 15 mei 2005 @ 21:16:
[...]


jazeker is dat mogelijk, moet je alleen wel zorgen dat beide massa's aan elkaar liggen...
Oh, dan moet ik dat maar proberen. Dan lijkt me dat de beste oplossing. Gewoon 24 transistors aan de uC hangen en die schakelen de segmenten. Maar die transistors schakelen als de basis met een weerstand aan de aarde wordt gehangen. Dan moet ik dit dus effe checken of de uC dat ook kan. Als ik een pin laag maak op de uC, zou dan de PNP gaan schakelen?

Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 15-05 06:36

Atmoz

Techno!!

Topicstarter
Wat me net opvalt:
sparcky schreef op zondag 15 mei 2005 @ 21:16:
[...]


jazeker is dat mogelijk, moet je alleen wel zorgen dat beide massa's aan elkaar liggen...
PNP's hangen toch helemaal niet aan massa? Hoe moet ik dan zorgen dat beide massa's aan elkaar liggen? Jij hebt een NPN in gedachte he?

[edit]
Dat idee met die 24 transistors gaat dus ookal niet op...

[ Voor 12% gewijzigd door Atmoz op 15-05-2005 21:28 ]


Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 24-05 13:05

Sprite_tm

Semi-Chinees

atmoz schreef op zondag 15 mei 2005 @ 21:24:
[...]
Ik gebruik een PIC 18F452. Hoe dat met timerinterrupt werkt heb ik geen idee van. De microcontroller is soms andere dingen aan het doen. Kan die dan (ondanks dat'ie bezig is) toch nog de hele tijd die uitgangen besturen voor de display's aan te sturen?
Daar is het Vast Wel mee te doen. Wat je code't is ongeveer het volgende: je reserveert 4 variabelen voor je interrupt-routinetje: 1 om bij te houden bij welk display 'ie is (ik noem \m nu even 'd') en 3 voor de waarden van het display (genaamd i1, i2, i3). Je stelt je timer zo in dattie ongeveer 100 keer per seconde (snelheid is niet zo boeiend) afgaat, en dat 'ie zodra dat gebeurt een interrupt aanroept. In de interrupt kijk je naar d: als d=1 dan maak je de 1e ground actief en zet je i1 op je segment-data-pinnetjes, als d=2 dan maak je de 2e ground actief en zet je i2 op je segment-pinnetjes, en hetzelfde idee voor d=3. Daarna hoog je d met 1 op, als 'ie 4 is maak je er weer 1 van en je exit je interruptroutine waarna je hoofdprogramma weer vrolijk doorfietst.

Je hoofdprogramma kan je dan verder gewoon coden als je al deed, als 'ie een getal wil veranderen kan 'ie dat in i1-i3 doen, en eens in de 10 mS update't de uC volautomatisch het display even.

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
Sprite_tm schreef op zondag 15 mei 2005 @ 21:22:
Dat kan niet, de displays moeten namelijk gemultiplexed worden en dat wil 'ie z'n uC niet laten doen, en met een paar schuifregisters kan je niet even een complete multiplexende displaycontroller maken ben ik bang :)
Tuurlijk wel, eventueel geholpen door een Johnson decade counter op een timer interupt, of met behulp van een NE555 timer

Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 24-05 13:05

Sprite_tm

Semi-Chinees

Mmm, je hebt gelijk als je schuifregisters met output enables hebt, maar dan ben je alsnog minimaal 5 ICtjes verder (4 als je van de timer-interrupt gebruikmaakt, maar hey, dan kan je het beter alsnog softwarematig doen)

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 15-05 06:36

Atmoz

Techno!!

Topicstarter
Sprite_tm schreef op zondag 15 mei 2005 @ 21:31:
[...]


Daar is het Vast Wel mee te doen. Wat je code't is ongeveer het volgende: je reserveert 4 variabelen voor je interrupt-routinetje: 1 om bij te houden bij welk display 'ie is (ik noem \m nu even 'd') en 3 voor de waarden van het display (genaamd i1, i2, i3). Je stelt je timer zo in dattie ongeveer 100 keer per seconde (snelheid is niet zo boeiend) afgaat, en dat 'ie zodra dat gebeurt een interrupt aanroept. In de interrupt kijk je naar d: als d=1 dan maak je de 1e ground actief en zet je i1 op je segment-data-pinnetjes, als d=2 dan maak je de 2e ground actief en zet je i2 op je segment-pinnetjes, en hetzelfde idee voor d=3. Daarna hoog je d met 1 op, als 'ie 4 is maak je er weer 1 van en je exit je interruptroutine waarna je hoofdprogramma weer vrolijk doorfietst.

Je hoofdprogramma kan je dan verder gewoon coden als je al deed, als 'ie een getal wil veranderen kan 'ie dat in i1-i3 doen, en eens in de 10 mS update't de uC volautomatisch het display even.
Hmzz, klinkt erg interessant :)
Maar zoveel weet ik helaas niet van uC's af. Ik ben al blij dat ik GPS data kan inlezen en parsen en dat op een gewoon hd47780 LCD kan neerzetten ;) ipv dat LCD wil ik dus die 7 segments gaan gebruiken.

Maar stel ik krijg dit werkend en is ook mogelijk met mijn programmeertaal (JALcc). Wat gebeurt er dan als de uC bezig is met de GPS data te ontvangen? Wordt dat dan onderbroken en gaat de uC de 7-segmentdisplay's aansturen? Dan mag ook niet, want dan krijg ik niet de hele data-string van de GPS binnen...

Acties:
  • 0 Henk 'm!

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
Sprite_tm schreef op zondag 15 mei 2005 @ 21:36:
Mmm, je hebt gelijk als je schuifregisters met output enables hebt, maar dan ben je alsnog minimaal 5 ICtjes verder (4 als je van de timer-interrupt gebruikmaakt, maar hey, dan kan je het beter alsnog softwarematig doen)
Helemaal met je eens, en zeker als je een 'vette' pic hebt als een 18F452 is software matig een mooiere en betere oplossing, maar ik wist nog niet dat hij deze pic had...
Voor de topic starter dus: kijk goed naar de post van Sprite_tm en probeer het op die manier.

Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 24-05 13:05

Sprite_tm

Semi-Chinees

atmoz schreef op zondag 15 mei 2005 @ 21:41:
Maar stel ik krijg dit werkend en is ook mogelijk met mijn programmeertaal (JALcc). Wat gebeurt er dan als de uC bezig is met de GPS data te ontvangen? Wordt dat dan onderbroken en gaat de uC de 7-segmentdisplay's aansturen? Dan mag ook niet, want dan krijg ik niet de hele data-string van de GPS binnen...
Je uC is waarschijnlijk een instructie of 15 bezig met het updaten van het display. GPS-data komt op 4800 baud binnen, je uC zit dus tijdens het ontvangen van een GPS-string 99% van de tijd te wachten totdat de byte eindelijk binnen is. Daar kan 'ie echt wel even het display tussendoor updaten zonder dat je de byte kwijtraakt hoor.

Edit: Da's aangenomen dat je PIC een hardwarematige uart heeft en je die gebruikt. Met een softwarematige uart kan het ook wel trouwens, zolang 'ie niet heel brak opgezet is.

[ Voor 12% gewijzigd door Sprite_tm op 15-05-2005 21:47 ]

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 15-05 06:36

Atmoz

Techno!!

Topicstarter
Sprite_tm schreef op zondag 15 mei 2005 @ 21:45:
[...]


Je uC is waarschijnlijk een instructie of 15 bezig met het updaten van het display. GPS-data komt op 4800 baud binnen, je uC zit dus tijdens het ontvangen van een GPS-string 99% van de tijd te wachten totdat de byte eindelijk binnen is. Daar kan 'ie echt wel even het display tussendoor updaten zonder dat je de byte kwijtraakt hoor.

Edit: Da's aangenomen dat je PIC een hardwarematige uart heeft en je die gebruikt. Met een softwarematige uart kan het ook wel trouwens, zolang 'ie niet heel brak opgezet is.
Ja, klopt. Ik gebruik de hardware uart. Dus dat zou goed moeten zijn.
GPS-data komt op 4800 baud binnen, je uC zit dus tijdens het ontvangen van een GPS-string 99% van de tijd te wachten totdat de byte eindelijk binnen is.
hahaha vet 8)

Dankjewel Sprite_tm. Ik zal gaan proberen met interrupt te werken. Toevallig iemand een idee of dit met JALcc kan? Inderdaad is een software oplossing veel mooier. Want met transistors alle segmenten apart aansturen is echt heel veel werk want dan komen er 48 transistors bij kijken aangezien ik PNP niet kan aansturen met de uC. Dus moeten er eerst nog 24 NPN's voor....

Acties:
  • 0 Henk 'm!

Anoniem: 131655

Als je het TTL IC 7446 neemt heb je een BCD to 7 segments display driver met open collector.
Dit wil zeggen dat deze chip 4 bits informatie 0 t/m 9 omzet naar een 7 segment code.
Omdat het een open colector is kan je hem dus mey 5 volt aansturen en kan die dus direct 12 volt via een pull up weerstand naar nul trekken.
Je zou dus 3 van deze chips nodig hebben.
Er bestaan ook chips die direct drie segmenten aansturen maar die kan ik zo snel even niet vinden.

Als je zoekt op BCD drivwer en open collector op google dat moet je wel wat vinden.

Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 15-05 06:36

Atmoz

Techno!!

Topicstarter
Anoniem: 131655 schreef op zondag 15 mei 2005 @ 22:01:
Als je het TTL ic 7446 neemt heb je een BCD to 7 segments display driver met open ollector.
Dit wil zeggen dat deze chip 4 bits informatie 0 t/m 9 omzet naar een 7 segment code.
Omdat het een open colector is kan je hem dus mey 5 volt aansturen en kan die dus direct 12 volt via een pull up weerstand naar nul trekken.
Je zou dus 3 van deze chips nodig hebben.
Er bestaan ook chips die direct drie segmenten aansturen maar die kan ik zo snel even niet vinden.

Als je zoekt op BCD drivwer en open collector op google dat moet je wel wat vinden.
Oke bedankt.
Maar wat bedoel je met "12 volt via pull up weerstand naar nul trekken" ??
Ik moet juist 12 volt maken voor de display's.

En daarbij komt nog dat de chip CONTINU moet worden aangestuurd om de segments te laten branden, en dat kan niet omdat mijn uC ook andere dingen moet doen. (tenzij ik dat werkend krijg met interrupt, maar dan kan ik niet zo goed zonder die chip werken).

Acties:
  • 0 Henk 'm!

  • jeronimo
  • Registratie: September 2003
  • Laatst online: 31-05 20:24
Een heel andere benadering is het gebruik van een 74C925. (http://www.fairchildsemi.com/ds/MM/MM74C926.pdf), een couter ic met ingebouwde latch en multiplexer. Je kunt dan met 3 lijnen de data op het display zetten: reset, count en latch.
Volgorde is dan
1 counter resetten
2 aantal pulsjes op de countingang geven
3 data latchen

Voordeel is, dat zolang de data niet veranderd het display niet aangestuurd hoeft te worden.

Acties:
  • 0 Henk 'm!

  • Springuin
  • Registratie: Juli 2002
  • Laatst online: 31-05 14:32
nadeel is dat als je van 1 naar 255 wilt je 254 keer met die count ingang op en neer moet stuiteren.

Acties:
  • 0 Henk 'm!

  • virus.elektro
  • Registratie: Januari 2002
  • Laatst online: 28-05 23:28

virus.elektro

profesionele monitor sloper

kan je niet gewoon c-mos ic's gebruiken. die werken op alles tussen de 5 en 15 volt. de 12 volt voor het display zou dan geen probleem meer zijn volgens mij

elektrotechniek is leuk (nog wel). ik ga dus weer verder met leuke dingen ontwerpen. amd 2200+ 256mb 333mhz,gf4 440mx, 120gb,16X dvd. jarr-url


Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 15-05 06:36

Atmoz

Techno!!

Topicstarter
jeronimo2003 schreef op maandag 16 mei 2005 @ 22:20:
Een heel andere benadering is het gebruik van een 74C925. (http://www.fairchildsemi.com/ds/MM/MM74C926.pdf), een couter ic met ingebouwde latch en multiplexer. Je kunt dan met 3 lijnen de data op het display zetten: reset, count en latch.
Volgorde is dan
1 counter resetten
2 aantal pulsjes op de countingang geven
3 data latchen

Voordeel is, dat zolang de data niet veranderd het display niet aangestuurd hoeft te worden.
Hmzzz, dat lijkt me in mijn geval de beste oplossing. Dit staat er in de datasheet:
The MM74C925 and MM74C926 CMOS counters consist
of a 4-digit counter, an internal output latch, NPN output
sourcing drivers for a 7-segment display, and an internal
multiplexing circuitry with four multiplexing outputs. The
multiplexing circuit has its own free-running oscillator, and
requires no external clock. The counters advance on negative
edge of clock. A HIGH signal on the Reset input will
reset the counter to zero, and reset the carry-out LOW. A
LOW signal on the Latch Enable input will latch the number
in the counters into the internal output latches. A HIGH signal
on Display Select input will select the number in the
counter to be displayed; a LOW level signal on the Display
Select will select the number in the output latch to be displayed.
The MM74C925 is a 4-decade counter and has Latch
Enable, Clock and Reset inputs.
The MM74C926 is like the MM74C925 except that it has a
display select and a carry-out used for cascading counters.
The carry-out signal goes HIGH at 6000, goes back LOW
at 0000.
toon volledige bericht
Kan 4 7-segment display's aansturen. Ik gebruik er maar 3, maar dat mag volgens mij niets uitmaken. Als het zo is dat hij data blijft uitsturen naar de display's dan is het goed. Als de uC dan bezig is met andere dingen, dan blijft toch netjes het getal erop staan. Zit er dan alleen weer mee hoe ik dan naar 12 volt ga.
virus.elektro schreef op dinsdag 17 mei 2005 @ 08:53:
kan je niet gewoon c-mos ic's gebruiken. die werken op alles tussen de 5 en 15 volt. de 12 volt voor het display zou dan geen probleem meer zijn volgens mij
Ja, zeker is dat beter. Maar welke IC's zijn dat? Bestaat van ieder IC een "c-mos" edition? Hier ben ik nog niet zo helemaal van op de hoogte. Want naar 12 volt gaan is toch een groter probleem dan gedacht. Of ik moet met steeds 2 transistors gaan werken.

Acties:
  • 0 Henk 'm!

  • virus.elektro
  • Registratie: Januari 2002
  • Laatst online: 28-05 23:28

virus.elektro

profesionele monitor sloper

in principe zijn er 2 ic series:
74xx: TTL logica
4xxx: C-MOS
Voorzover ik weet bestaat er van 74xx ic een 4xxx ic. wel zijn de nummers vaak anders. let wel op C-MOS is langzamer dan TTL daar tegenover staat wel een lager stroom verbruik en een groter voltage bereik

elektrotechniek is leuk (nog wel). ik ga dus weer verder met leuke dingen ontwerpen. amd 2200+ 256mb 333mhz,gf4 440mx, 120gb,16X dvd. jarr-url


Acties:
  • 0 Henk 'm!

  • jeronimo
  • Registratie: September 2003
  • Laatst online: 31-05 20:24
Wederom een voorzetje. 2 stuks CD40109B van TI voor het omzetten van signalen van 5V naar 12/15V, gevolgd door een buffer trapje. Het is dan afhankelijk welke stroom je door een segment wilt sturen of je kiest voor een discrete opbouw (losse torren) of een buffer is. Persoonlijk zou ik losse torren gebruiken omdat je toch een vrij hoge piekstroom in je segment wilt hebben

Acties:
  • 0 Henk 'm!

  • Sine
  • Registratie: Juni 2001
  • Laatst online: 31-05 00:22
Sprite_tm schreef op zondag 15 mei 2005 @ 21:22:
Dat kan niet, de displays moeten namelijk gemultiplexed worden en dat wil 'ie z'n uC niet laten doen, en met een paar schuifregisters kan je niet even een complete multiplexende displaycontroller maken ben ik bang :)
Wrom niet ? het zijn toch drie losse displays ?

Waarom zou je ze dan muxen ?

schuifregistertje of schuifreg + dec naar 7 seg drivertje er achter.

Repareren doe je zo.


Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 24-05 13:05

Sprite_tm

Semi-Chinees

Nope, dat zijn het dus niet, het zijn 3 displays waarbij de segment-lijnen samengeknoopt zijn.

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • Sine
  • Registratie: Juni 2001
  • Laatst online: 31-05 00:22
Vergeef me mijn scheelheid, je hebt helemaal gelijk. ;)

Is de 4553 niks dan ?

Als je daar een 4511 oid bij gooit heb je een 3 digit counter + latch + mux + 7seg driver

[ Voor 5% gewijzigd door Sine op 18-05-2005 01:44 ]

Repareren doe je zo.


Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 15-05 06:36

Atmoz

Techno!!

Topicstarter
Thanks allen!!
Waar ik eigenlijk naartoe wil is een opstelling zodat de uC NIET ALTIJD data hoeft te sturen naar de chip wat eraan hangt. Ik wil dus GPS data laten inlezen, dan bewerken (parsen en omrekenen enzo) en dan effe de display updaten (mag best 1 seconden duren ofzo) en dan weer snel GPS data inlezen. Maar hij moet niet de hele tijd een clock of iets moeten geven, want zo goed ben ik niet in programmeren. (interrupt waar we het al over hadden) dat wil ik dus liever niet.

Dus ik moet zoieso een chipje hebben met een soort "geheugen" functie....

Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 15-05 06:36

Atmoz

Techno!!

Topicstarter
Het is gelukt. Ik heb bij m'n pa uit de kast een ICM7218A genomen. Deze chip kan 8 7-segmentdisplay's aansturen. Ik heb er maar 3 nodig dus is wat overkill, maarja hij lag er toch maar te liggen >:) De data wordt gewoon eens in de zoveel tijd erin gezet en de chip zorgt dat het netjes (en snel) wordt gemuxed. Het werkt nu perfect. Alleen branden de segmenten helemaal niet zo fel meer. Dit zal wel komen omdat ze eigenlijk maar 1/8 deel van de stroom krijgen. Ik moet dus effe de weerstanden gaan vervangen door kleinere. Nu zitten er 680 Ohms in. Weet iemand welke ik in de plaats kan nemen? 270 Ohm leverde niet veel "licht winst" op. Misschien 100 Ohm eens proberen? Of is dat te weinig? Of moet ik rekenen op 680/8 = 85 Ohm? Wie weet dit?

Nog een vraagje: ik heb een 7805 gebruikt om van 12 volt netjes 5 volt te maken. Maar zodra ik de GPS print aansluit wordt de 7805 erg heet. Zonder GPS gaat het wel goed. In de datasheet van de GPS staat die'ie 300mA gebruikt. Moet ik dan een andere 7805 nemen die minder warm wordt? (bestaan die wel?) bijvoorbeeld eentje die meer ampére aankan, en dus minder warm wordt? Iemand hier een idee over? De hulp wordt erg gewaardeerd _/-\o_

[ Voor 5% gewijzigd door Atmoz op 21-05-2005 14:03 . Reden: Url van datasheet erbij gezet voor mensen die dat leuk vinden ]


Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 24-05 13:05

Sprite_tm

Semi-Chinees

Je kunt bij multiplexen er inderdaad vanuitgaan dat je bij een duty cycle van 1/8, zoals jij hebt, je de stroom door de ledjes 8x zo groot mag maken. Pas wel op though; als je klok om wat voor reden ooit stil komt te staan gaan de ledjes dat niet fijn vinden.

Voor de 7805 kan je misschien beter een schakelende oplossing pakken; Texas Instruments had daar IIRC wel leuke oplossingen voor, en afaik zijn die ook vaak nog es free samplebaar.

[ Voor 15% gewijzigd door Sprite_tm op 21-05-2005 14:16 ]

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • jeronimo
  • Registratie: September 2003
  • Laatst online: 31-05 20:24
Heb je de 7805 wel op een heatsink gezet? Hij moet wel alleen al voor je gps (12-5)Vx0.3A=2.1W dissiperen. Zonder koeling gaat dat niet.

Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 15-05 06:36

Atmoz

Techno!!

Topicstarter
Sprite_tm schreef op zaterdag 21 mei 2005 @ 14:12:
Je kunt bij multiplexen er inderdaad vanuitgaan dat je bij een duty cycle van 1/8, zoals jij hebt, je de stroom door de ledjes 8x zo groot mag maken. Pas wel op though; als je klok om wat voor reden ooit stil komt te staan gaan de ledjes dat niet fijn vinden.

Voor de 7805 kan je misschien beter een schakelende oplossing pakken; Texas Instruments had daar IIRC wel leuke oplossingen voor, en afaik zijn die ook vaak nog es free samplebaar.
Dus ik mag gewoon een 100 Ohm weerstand proberen zonder dat er iets kapot gaat? (ervanuitgaande dat idd de klok blijft lopen) ;)
jeronimo2003 schreef op zaterdag 21 mei 2005 @ 14:13:
Heb je de 7805 wel op een heatsink gezet? Hij moet wel alleen al voor je gps (12-5)Vx0.3A=2.1W dissiperen. Zonder koeling gaat dat niet.
Aha, kijk dat wist ik niet. Dus ik moet toch iets van een kleine heatsink erop/eraan monteren? Dan ga ik maar eens wat zoeken. Bedankt. Ik dacht al dat ik een andere 7805 moest hebben die meer stroom aankon.
Pagina: 1