Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[LedMatrix]Aansluiting op microcontroller

Pagina: 1 2 Laatste
Acties:
  • 934 views sinds 30-01-2008
  • Reageer

  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
net als dat a/b/c van de bc550, geldt dat -16 -40 voor de bc327... hoe hoger, des te hoger de stroomverstekingsfactor...
Aangezien jij transistoren als schakelaars gaat gebruiken, heb je dat liefst zo hoog mogelijk... de -40 dus..

maar die bc327 heeft een max Ic van 0,5 A!!! dat is dus niet genoeg... je wilt minimaal 0,75 hebben voor de pnp.
en die bd680.... dat is dus ook een pnp... je kiest nu twee pnp transistoren...

je hebt dus 25 NPN transistoren nodig... ik raad dus de bc550 van voti.nl aan... dan kost het maar 2 euro voor 30...
en je hebt dus 7 PNP tranisitoren nodig. neem dan de bd140 van voti (kan 1,5 A aan en heeft maar een Vbe van 1 volt..Hfe is niet zo hoog, maar dat kan de uC wel hebben)... kost 1,68 euro voor 7...

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Hmmzz farnell foutje denk ik dan, had toch echt op npn geklikt, maar daarna op vervanger ergens geclicked (dacht dit dan wel npn bleef, blijkbaar niet) 8)7 . Ik heb geen ervaring met voti, maar ik kan denk ik beter dat ook bestellen bij farnell ? Daar bestel ik ook de microcontroller en de ledmatrixxen.
In ieder geval bedankt !
MeMoRy schreef op vrijdag 07 juli 2006 @ 12:16:
je hebt dus 25 NPN transistoren nodig... ik raad dus de bc550 van voti.nl aan... dan kost het maar 2 euro voor 30...
en je hebt dus 7 PNP tranisitoren nodig.
Volgens mij heb ik 25 PNP's nodig voor elke kolom (deze moeten 1 led aan kunnen, 30 mA)
en 7 NPN's voor elke rij ? (deze moeten 25 leds aan kunnen=0.75 ampere)
Of zit ik weer mis :X

[ Voor 53% gewijzigd door Shuisman op 07-07-2006 13:19 ]


Verwijderd

Ikzelf zou voor de rows (of de colums) stroombronnen gebruiken. Dan hoef je geen rekening te houden met de spanningsval over de LED's. En het beperken van de tijd dat een row (of column) "aan" is, lijkt me ook een goed idee. 1 ogenblik van onoplettendheid tijdens het programmeren, en je merkt dat groene LED's ook rood licht kunnen verspreiden - voor korte tijd... ;)
'k Heb snel een schema'tje in mekaar gefrutseld:

Afbeeldingslocatie: http://home.tiscali.be/prosje/Ledmatrix.png

"Nóg meer componenten?" hoor ik al iemand vertwijfeld roepen; ik weet echte geen andere manier om de schakeling bedrijfszeker en veilig te maken.
Oh, ja, de waarde van XR hangt af van de spanningsval over de bijbehorende LED en de benodigde stroom. Verder zou ik tussen elke row-column combinatie voor een korte periode alles uitschakelen; zo vermijdt je spookbeelden. Verder is de waarde van de condensators in de row-aansturing niet kritiek; die zijn er enkel om software-fouten op te vangen.
Wat de stroombron-transistors betreft: denk er aan dat ze de taak van een weerstand overnemen; liever iets zwaarder dan nodig...

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Verwijderd schreef op vrijdag 07 juli 2006 @ 21:47:
Ikzelf zou voor de rows (of de colums) stroombronnen gebruiken. Dan hoef je geen rekening te houden met de spanningsval over de LED's. En het beperken van de tijd dat een row (of column) "aan" is, lijkt me ook een goed idee. 1 ogenblik van onoplettendheid tijdens het programmeren, en je merkt dat groene LED's ook rood licht kunnen verspreiden - voor korte tijd... ;)
'k Heb snel een schema'tje in mekaar gefrutseld:

[afbeelding]

"Nóg meer componenten?" hoor ik al iemand vertwijfeld roepen; ik weet echte geen andere manier om de schakeling bedrijfszeker en veilig te maken.
Oh, ja, de waarde van XR hangt af van de spanningsval over de bijbehorende LED en de benodigde stroom. Verder zou ik tussen elke row-column combinatie voor een korte periode alles uitschakelen; zo vermijdt je spookbeelden. Verder is de waarde van de condensators in de row-aansturing niet kritiek; die zijn er enkel om software-fouten op te vangen.
Wat de stroombron-transistors betreft: denk er aan dat ze de taak van een weerstand overnemen; liever iets zwaarder dan nodig...
Aardig impressive moet ik zeggen! , wat ik me afvroeg, waar zijn de groene leds voor ? of kunnen die ook worden vervongen door gewone diodes ? Bovendien ziet deze schakeling er niet zo lastig uit, kan wel aardig solderen al zeg ik hetzelf ;) Snap alleen niet precies HOE de schakeling werkt, zou je iets kunnen vertellen ? De kolom is wel duidelijk (alhoewel dat bij mij rijen zijn). Ze zijn net andersom geschakeld in de ledmatrix.

[ Voor 6% gewijzigd door Shuisman op 08-07-2006 00:19 ]


  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
te vroeg...

ik begrijp het ook niet...

[ Voor 71% gewijzigd door MeMoRy op 08-07-2006 00:35 ]

U vraagt, wij antwoorden.


Verwijderd

De groene LED's bepalen, samen met de emitterweerstanden, de stroom die door de matrix-LED's loopt. Een tweetal dioden, is serie geplaatst, kunnen hetzelfde werk doen.

Afbeeldingslocatie: http://home.tiscali.be/prosje/Stroombron.png

De werking is eenvoudig: stel dat over D1 1.6Volt blijft staan (dat kan iets meer of iets minder zijn, afhankelijk van de LED). Tussen basis en emitter van T1 zal zo'n 0.6Volt vallen, zodat er 1.0Volt tussen de voedingsspanning en de emitter van T1 overblijft. Als je daar een weerstand van 100Ohm plaatst, wordt de stroom die T1 aan z'n collector kan leveren begrenst tot 10mA.
Voordelen: voedingsspanning moet niet gestabiliseerd zijn. Schakelt sneller, want de transistor wordt niet in verzadiging gestuurd.
Als je dergelijke stroombronnen voor een LED-matrix wil toepassen, zorg er dan wel voor dat alle LED's uit hetzelfde lot komen, zodat hun karakteristieken gelijk zijn. Idem met de transistors.

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Slim bedacht!, alleen dan moet ik dus nog wel goede waardes, en goede transistoren vinden; die het aankunnen, maar ik hoop dat je me daarmee kan helpen, Het schema van MeMoRy spreekt mij meer aan, namelijk; iets wat nog te begrijpen is :P . Dit wordt telkens maar ingewikkelder, voor een (dat was het idee) een simpel ledmatrixje ;)
Ik hoop vandaag mijn o.a. ledarray + AVR binnen te krijgen (gisteren 1700 besteld @ farnell).

  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
ik dacht dat je er maar 5 zou bestellen? nou ja, 1700 kan ook... ik heb hier ook 2300 leds liggen voor een groot matrix projectje...

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
MeMoRy schreef op zaterdag 08 juli 2006 @ 12:10:
ik dacht dat je er maar 5 zou bestellen? nou ja, 1700 kan ook... ik heb hier ook 2300 leds liggen voor een groot matrix projectje...
haha :P met 1700 bedoel ik de tijd :+ 5 uur 's middags :P Anders is het wel ERG veel soldeerwerk })
Dit had je toch wel door ?

[ Voor 18% gewijzigd door Shuisman op 08-07-2006 17:37 ]


Verwijderd

Wat transistors betreft: als ik het goed begrijp wil je 25 kolommen van elk 7 LED's. Ik heb het schema een beetje aangepast, zodat het meer overeenkomt met het jouwe:
Afbeeldingslocatie: http://home.tiscali.be/prosje/LedMatrix2.png
Als we uitgaan van een gemiddelde LED-stroom van 10mA, moet T1 gemiddeld (10 x 25) 250mA kunnen schakelen (piek = 1.750A). Dan zou ik meteen voor een BD135 gaan; die kan 1.5A continu aan, en zal met die piek ook geen probleem hebben. Kost 0.40 euro (BD135-10 en BD135-16 bestaan ook, hebben een hogere stroomversterking, maar kosten 50% meer).
T2, die de kolommen stuurt, moet maximum 7 LED's voor zijn rekening nemen - 70mA, dus. Daar staat tegenover dat hij --als stroombron gebruikt-- meer vermogen in warmte omzet dan een transistor die enkel in- en uitschakelt. Met Vcc = 5Volt is dat ((5 - 1.5) x 0.07) 0.245Watt. Dat zou een BC560 nog aankunnen, denk ik.
Wat T3 betreft, om te vermijden dat een programmeerfout gans de boel in rook laat opgaan, zit er een condensator in de basisleiding. Mede hierdoor zou ik de voorkeur geven aan een BC517, een darlington. Die kan je aansturen met een hoogohmige weerstand, waardoor de condensator ook klein mag blijven. De waarden van de R en de C hangen uiteraard af van de schakelfrequentie, maar ik denk dat 47k met 22n voldoet voor een ruim frequentiebereik. De vrijloopdiode mag een gewone schakeldiode zijn.

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Verwijderd schreef op zaterdag 08 juli 2006 @ 18:20:
T2, die de kolommen stuurt, moet maximum 7 LED's voor zijn rekening nemen - 70mA, dus. Daar staat tegenover dat hij --als stroombron gebruikt-- meer vermogen in warmte omzet dan een transistor die enkel in- en uitschakelt. Met Vcc = 5Volt is dat ((5 - 1.5) x 0.07) 0.245Watt. Dat zou een BC560 nog aankunnen, denk ik.
Wat T3 betreft, om te vermijden dat een programmeerfout gans de boel in rook laat opgaan, zit er een condensator in de basisleiding. Mede hierdoor zou ik de voorkeur geven aan een BC517, een darlington. Die kan je aansturen met een hoogohmige weerstand, waardoor de condensator ook klein mag blijven. De waarden van de R en de C hangen uiteraard af van de schakelfrequentie, maar ik denk dat 47k met 22n voldoet voor een ruim frequentiebereik. De vrijloopdiode mag een gewone schakeldiode zijn.
t2 die de kolommen aanstuurt, hoeven maximaal 20 mA aan (1 led); ik wissel in mijn software per rij, dus per rij bouw ik mijn beeld op;
alles uit:
rij 1 aan:
bovenste 25 leds aan/uit
alles uit:
rij 2 aan:
25 leds aan/uit
alles uit
rij 3 aan
etc
etc

dus de bovenste (noem ze de kolom-transistoren), hoeven slechts 20mA aan te kunnen ;)

Verwijderd

Uiteraard hoeft T2 slechts voor 1 LED stroom te leveren; waar was ik met mijn gedachten? ;)
Wat die stroom betreft: zodra je de LED's hebt, doe dan eens een test of je het verschil ziet tussen 10mA en 20 mA. Met high-efficiency LED's merk je het nauwelijks.
(Na even nadenken) je kan natuurlijk meteen voor 20mA kiezen, en softwarematig de AAN-tijd verkorten en/of de pauze verlengen. Ik zit me tevens af te vragen, of het doenbaar is, met een ADC-pin een T te sturen en, gedurende een pause-tijd, met dezelfde pin de spanning over een LDR uit te lezen; zo kan je de helderheid van je LED's afhankelijk maken van het omgevingslicht...

[Update]
Verstrooid als ik vaak ben, heb ik T3 toegevoegd. Idioot, want die heb je enkel nodig als de voedingsspanning voor de LED's hoger is dan die van je avr. Zoals op het gewijzigde schema te zien is, gaat het ook met minder onderdelen. Voor T2 zou ik dan wel een BC516 nemen, de tegenpool van de BC 517, omwille van zijn hoge versterking.

[ Voor 23% gewijzigd door Verwijderd op 08-07-2006 20:56 ]


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Verwijderd schreef op zaterdag 08 juli 2006 @ 19:56:
Uiteraard hoeft T2 slechts voor 1 LED stroom te leveren; waar was ik met mijn gedachten? ;)
Wat die stroom betreft: zodra je de LED's hebt, doe dan eens een test of je het verschil ziet tussen 10mA en 20 mA. Met high-efficiency LED's merk je het nauwelijks.
(Na even nadenken) je kan natuurlijk meteen voor 20mA kiezen, en softwarematig de AAN-tijd verkorten en/of de pauze verlengen. Ik zit me tevens af te vragen, of het doenbaar is, met een ADC-pin een T te sturen en, gedurende een pause-tijd, met dezelfde pin de spanning over een LDR uit te lezen; zo kan je de helderheid van je LED's afhankelijk maken van het omgevingslicht...
30mA zijn ze volgens de specs max,daar moeten ze toch wel op draaien, mede omdat de duty slechts 1/7 is.
ADC-pin :?
een T sturen :?
Je denkt te ver na , het moest een simpel projectje worden :P

[ Voor 3% gewijzigd door Shuisman op 10-07-2006 22:57 ]


Verwijderd

SHuisman schreef op zaterdag 08 juli 2006 @ 20:50:
[...]

30mA zijn ze volgens de specs,daar moeten ze toch wel minimaal op draaien, mede omdat de duty slechts 1/7 is.
LED's verschillen tegenwoordig nogal wat op gebied van lichtopbrengst. En een gemiddelde stroom van 10 (of 30) mA dien je in jouw project met 7 te vermenigvuldigen.
ADC-pin :?
een T sturen :?
Je denkt te ver na , het moest een simpel projectje worden :P
Dan had je beter het ding in stille eenzaamheid tot een goed einde gebracht! ;)
Een ATmega32 heeft 32 digitale I/O pinnen. Maar allen hebben ze een tweede functie, die je naar believen kan in- of uitschakelen. Zo kunnen PA0 ... PA7 een analoge spanning aan hun ingang omzetten naar een binair getal (0 ... 1023) waarop je bv. het knooppunt van een LDR en een weerstand kan aansluiten om het omgevingslicht te meten.

Verder staat "een T sturen" gelijk met "een transistor sturen". En nee, ik denk niet te veel na, ik denkt te veel vooruit... ;)

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Verwijderd schreef op zaterdag 08 juli 2006 @ 21:20:
LED's verschillen tegenwoordig nogal wat op gebied van lichtopbrengst. En een gemiddelde stroom van 10 (of 30) mA dien je in jouw project met 7 te vermenigvuldigen.
Dan had je beter het ding in stille eenzaamheid tot een goed einde gebracht! ;)
Een ATmega32 heeft 32 digitale I/O pinnen. Maar allen hebben ze een tweede functie, die je naar believen kan in- of uitschakelen. Zo kunnen PA0 ... PA7 een analoge spanning aan hun ingang omzetten naar een binair getal (0 ... 1023) waarop je bv. het knooppunt van een LDR en een weerstand kan aansluiten om het omgevingslicht te meten.
Verder staat "een T sturen" gelijk met "een transistor sturen". En nee, ik denk niet te veel na, ik denkt te veel vooruit... ;)
Aah een AD-convertor :-P Got it ;)
Ik denk dat ik hem eerst mooi op 30 mA laat, als me dit te zwak is kan ik door wat weerstandjes aan te passen altijd nog 160mA (absolute maximum v/d leds) erdoorheen jagen ;)

code:
1
2
3
4
_   _
 | |
 | |
 |_|

Als ik me niet vergis houdt dit in dat je het signaal er geinverteerd op moet zetten...?!
Anders zie ik precies het tegenovergestelde van wat ik wil zien :9

Ik zie nu dat ik 'slechts' 1 transistor per kolom, en 1 transistor per rij, dat is mooi, schilt weer hoopje onderdelen ;) Die diode in sper moet ook op elke kolom lijkt me ?

[ Voor 21% gewijzigd door Shuisman op 08-07-2006 21:39 ]


Verwijderd

code:
1
2
3
4
_   _
 | |
 | |
 |_|

Als ik me niet vergis houdt dit in dat je het signaal er geinverteerd op moet zetten...?!
Anders zie ik precies het tegenovergestelde van wat ik wil zien :9
Een PNP stuur je idd. aan door zijn basis negatief te maken tov. zijn emitter. Inverteren is dus de leuze...

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Daarnet even op farnellsite rondgesneupt er zijn 2 dure, 3 goedkope BD135 typen.
Ik wil ze graag 1.5A 'ready' hebben zodat ik de leds 60mA kan geven als ik dat wil. (25*60mA)
Dus dan blijven er 2 dure en 1 goedkope over;
2 dure die 1.5 ampere aan kunnen:
BD135
BD135
1 goedkope die 3 ampere aan kan:
BD135-16

Ik kan nog steeds de BC560 voor de kolom gebruiken? En kan ik die groene leds ook vervangen door gewone diodes, anders krijg ik daar ook mijn scherm op te zien (alleen dan supersnel veranderd 8) )

[ Voor 28% gewijzigd door Shuisman op 08-07-2006 22:03 ]


  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 29-10 06:07

Sprite_tm

Semi-Chinees

Ik liep me net te bedenken:
1. Je zit met leds die je multiplexed met persistence-of-vision: als je een led met 50% duty-cycle laat knipperen, brandt 'ie maar heel iets minder enthousiast. Het zou dus best kunnen zijn dat je de hele zaak gewoon 10mA per ledje kan voeren en dat 't alsnog wel redelijk fel lijkt.
2. Voor de practische uitvoering, vergeet vooral het bestaan van chippies als de ULN2803 niet. Die kunnen je Veeltm soldeerwerk besparen.

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


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Sprite_tm schreef op zaterdag 08 juli 2006 @ 22:04:
Ik liep me net te bedenken:
1. Je zit met leds die je multiplexed met persistence-of-vision: als je een led met 50% duty-cycle laat knipperen, brandt 'ie maar heel iets minder enthousiast. Het zou dus best kunnen zijn dat je de hele zaak gewoon 10mA per ledje kan voeren en dat 't alsnog wel redelijk fel lijkt.
2. Voor de practische uitvoering, vergeet vooral het bestaan van chippies als de ULN2803 niet. Die kunnen je Veeltm soldeerwerk besparen.
1. Voor het software gedeelte, ik neem dus een duty van 1/7, wat is dan een redelijke tijd 1/100 1/1000 per rij ?
2. Ik zal eens ff kijken, had er ergens anders ook al wat over gehoord ;)

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 29-10 06:07

Sprite_tm

Semi-Chinees

@1: Om een goed beeld te krijgen? Dat heeft er niet zoveel mee te maken :) ik zeg alleen dat je zelfs met 1/7e duty cycle en 10mA nog prima beeld te geven :) Het voordeel daarvan is dat je je niet hoeft druk te maken om softwarefouten en de hele hardwarebeveiliging die pros voorstelt weg kan doen, en als alles werkt kan je door een stel weerstanden te vervangen alsnog je oorspronkelijke helderheid terugkrijgen. Om je net gestelde vraag te beantwoorden: je wil een verversingsfrequentie van plm. 100Hz hebben, dat betekent dus 10/7~=1mS per rij.

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


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Sprite_tm schreef op zaterdag 08 juli 2006 @ 23:39:
@1: Om een goed beeld te krijgen? Dat heeft er niet zoveel mee te maken :) ik zeg alleen dat je zelfs met 1/7e duty cycle en 10mA nog prima beeld te geven :) Het voordeel daarvan is dat je je niet hoeft druk te maken om softwarefouten en de hele hardwarebeveiliging die pros voorstelt weg kan doen, en als alles werkt kan je door een stel weerstanden te vervangen alsnog je oorspronkelijke helderheid terugkrijgen. Om je net gestelde vraag te beantwoorden: je wil een verversingsfrequentie van plm. 100Hz hebben, dat betekent dus 10/7~=1mS per rij.
Die schakeling van Pros is zeker mooi, maar die van mij MeMoRy is 'stukken' simpeler, aangezien mijn electronicakennis niet al te hoog is zit ik nu voor een dilemma...
Ik zou toch graag bij mijn eerste design blijven(verbeterd door MeMoRy) denk ik, tenzij iemand me kan overtuigen natuurlijk !

Verwijderd

SHuisman schreef op zaterdag 08 juli 2006 @ 21:57:
Dus dan blijven er 2 dure en 1 goedkope over;
2 dure die 1.5 ampere aan kunnen:
BD135
BD135
1 goedkope die 3 ampere aan kan:
BD135-16
Da's raar. De Elektuur-datakaart, die hier voor m'n neus ligt, zegt dat de BD135-16 net als zijn companen 1.5A aan kan. Het verschil zou enkel de hogere versterkingsfactor zijn.
Ik kan nog steeds de BC560 voor de kolom gebruiken? En kan ik die groene leds ook vervangen door gewone diodes, anders krijg ik daar ook mijn scherm op te zien (alleen dan supersnel veranderd 8) )
Als je de wijze raad van Sprite_tm opvolgt, en de stroom door de LED's zodanig kiest dat hij geen beschadiging kan aanrichten, kan je gerust de BC560 gebruiken, de condensator in de basisleiding weglaten, en de basisweerstand wat kleiner nemen: 4k7 of zoiets.
De groene LED's heb je enkel nodig, als je de PNP's als stroombron wil schakelen. Je kan ze ook vervangen door telkens 2 dioden in serie te zetten.
Of je kan ze gewoon weglaten. Laat dan de weerstand waar hij nu zit, maar kies hem wat groter (R = (5 - 1.5) / I). Dat scheelt toch een pak in de kosten...

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Verwijderd schreef op zondag 09 juli 2006 @ 10:55:
Als je de wijze raad van Sprite_tm opvolgt, en de stroom door de LED's zodanig kiest dat hij geen beschadiging kan aanrichten, kan je gerust de BC560 gebruiken, de condensator in de basisleiding weglaten, en de basisweerstand wat kleiner nemen: 4k7 of zoiets.
De groene LED's heb je enkel nodig, als je de PNP's als stroombron wil schakelen. Je kan ze ook vervangen door telkens 2 dioden in serie te zetten.
Of je kan ze gewoon weglaten. Laat dan de weerstand waar hij nu zit, maar kies hem wat groter (R = (5 - 1.5) / I). Dat scheelt toch een pak in de kosten...
Ik denk dat ik maar niet met stroombronnen ga beginnen, heb er namelijk nog nooit mee gewerkt, bovendien werkt het ook met de schakeling met 'gewoon' 2 transistoren;
1 voor elke kolom (25x) en 1 voor elke rij (7x), en een zootje weerstanden.
Voor de kolommen kan ik dus de BC560 gebruiken ? (ze zijn namelijk maar 8 centen bij farnell, kwantumkorting vanaf 25 :P )

[ Voor 14% gewijzigd door Shuisman op 09-07-2006 11:46 ]


Verwijderd

SHuisman schreef op zondag 09 juli 2006 @ 11:41:
[...]

IVoor de kolommen kan ik dus de BC560 gebruiken ? (ze zijn namelijk maar 8 centen bij farnell, kwantumkorting vanaf 25 :P )
De BC560 is OK voor de job.

Verwijderd

Wat ik nog vergeten was: als je de "LED"-weerstanden tussen de emitters van de PNP-transistors en de positieve voedingsrail laat zitten, kan je de basisweerstanden van deze transistors gewoon weglaten (de basis rechtstreeks met een pin v/d ATmega32 verbinden). Dat scheelt weeral in de kosten en het soldeerwerk.
Dit gaat uiteraard niet op, als je de weerstanden tussen de transistors en de LED's plaatst, noch als je de transistors als stroombron wil inzetten!

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Ik denk dat ik maar aan mijn 'simpele' schema hou:
Afbeeldingslocatie: http://members.home.nl/sghuisman/load/ledmatrix3.PNG
,zoals eerder gepost in dit topic.
ik heb de bovenste (de kolom, de pnp) transistor nu dus uitgezocht; de BC560.
Ik hoop dat ik morgen mijn spul binnenkrijg, alhoewel het volgens UPS nu in brussel ligt ;)

[ Voor 4% gewijzigd door Shuisman op 09-07-2006 20:53 ]


  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
dan moet je de weerstand (R3) voor de leds bovenaan plaatsen, bij de bc560... anders heb je 1 weerstand voor alle leds... in totaal 7 weerstanden is niet voldoende... je moet er 25 hebben.
je schakelt dan immers per rij... anders krijg je intensiteitsverschil...

[ Voor 28% gewijzigd door MeMoRy op 09-07-2006 21:26 ]

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
MeMoRy schreef op zondag 09 juli 2006 @ 21:25:
dan moet je de weerstand (R3) voor de leds bovenaan plaatsen, bij de bc560... anders heb je 1 weerstand voor alle leds... in totaal 7 weerstanden is niet voldoende... je moet er 25 hebben.
je schakelt dan immers per rij... anders krijg je intensiteitsverschil...
Daar heb je een goed punt !, dat me dat niet eerder is opgevallen, zal het meteen verbeteren!
Afbeeldingslocatie: http://members.home.nl/sghuisman/load/ledmatrix4.PNG

[ Voor 7% gewijzigd door Shuisman op 09-07-2006 23:21 ]


  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Je kunt echt best elk ledje van een weerstand voorzien, immers:
(verhaal bij 1 R per rij/kolom)
hoe meer ledjes in een kolom/rij aan zijn
-> hoe lager de U is over je R
-> hoe lager de I is door je R
-> hoe lager de I door je leds
-> hoe zwakker je leds gaan branden.

Dus ga je een verschil zien of je nu 1 led of 25/7 leds aan zijn per rij/kolom.
Dus zou ik 25x7 R's bestellen als ik van jou was.

[ Voor 9% gewijzigd door kluyze op 09-07-2006 23:41 ]


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
er is altijd slechts 1 kolom tegelijk aan(omdat het gemultiplexed wordt), dus staat er ook maximaal 1 led aan per kolom ;) Bovendien krijg ik me led-array in 5x7 formaat al, dus er tussen prutsen kan niet eens ;)

[ Voor 50% gewijzigd door Shuisman op 10-07-2006 00:00 ]


  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Hmm, je gaat het dus aansturen gelijk een beeldscherm. Volgens mij gaat die code redelijk moeilijk worden om te schrijven :X Alhoewel, een vga aansturen is ook niet zo hèèl moeilijk
(schoolproject aansturen van vga via een fpga).
Maar dan heb je idd maar 1 R nodig per rij/kolom.

offtopic:
Wat doe je nog zo laat op tweakers? 8) 8)7

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
kluyze schreef op maandag 10 juli 2006 @ 00:06:
Hmm, je gaat het dus aansturen gelijk een beeldscherm. Volgens mij gaat die code redelijk moeilijk worden om te schrijven :X Alhoewel, een vga aansturen is ook niet zo hèèl moeilijk
(schoolproject aansturen van vga via een fpga).
Maar dan heb je idd maar 1 R nodig per rij/kolom.

offtopic:
Wat doe je nog zo laat op tweakers? 8) 8)7
Code valt wel mee, heb er al een beetje over zitten nadenken;
Voor de tijd een interrupt timer van 1 sec
voor de refresh van de rows 1/1000 sec per row dmv interrupt timer
-elke keer volgende rij nemen uit de buffer, en laten zien
Main programma:
Je slaat je data (die je wil laten showen) op in een 'buffer'
Je kan 25 bits per keer laten zien, dus dat 7 keer, en voila beeld (doe dat supersnel en hopla :P )
Ik ben niet de enige hier op GoT zo laat ;) er zijn mensen die zitten nog te posten om 3-4 uur 's nachts ;)

[ Voor 9% gewijzigd door Shuisman op 10-07-2006 00:27 ]


  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
het uitschrijven van mem naar display is eitje... een loopje van een paar regels code...

de code die iets in het geheugen schrijft is veel complexer... ik heb het opgelost door een pic-je met dual port memory te nemen, waarbij ik de ene port volschrijf met data vanuit de computer en de andere kant uitleed naar de display... ascii karakters in een picje programmeren was mij toch iets te veel van het goede...

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
MeMoRy schreef op maandag 10 juli 2006 @ 12:50:
het uitschrijven van mem naar display is eitje... een loopje van een paar regels code...

de code die iets in het geheugen schrijft is veel complexer... ik heb het opgelost door een pic-je met dual port memory te nemen, waarbij ik de ene port volschrijf met data vanuit de computer en de andere kant uitleed naar de display... ascii karakters in een picje programmeren was mij toch iets te veel van het goede...
Gelukkig kan ik in C programmeren met avr studio; ik ken nog bijna geen C, echter ken ik wel veel van Visual Basic. Bovendien heb ik met een pic en asm ook al eens wat simpels gemaakt, als asm lukt, dan moet c ook lukken denk ik ;)
Ik denk dat ik er een klok van maak, met wat effecten, en eventueel de datum ook laat zien elke x seconden. Maar ja dat is het software gedeelte, de hardware zit ik veel meer over in :P

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Daarnet weer ff in de online farnell catalogus rondgeneusd; dit maal voor de rij-transistoren(750mA minimaal (25x30mA), npn). En ik kwam dan uit op de
bc337-16 ordercode 1017669 @ Farnell
Is dit een goede keuze? Heb een beetje zitten filteren en kwam toen hier op. Maar misschien hebben jullie ervaring met andere betere?!


*bc337-16....bijna 1337 8)

\/ \/
Ik keek naar de typical forward voltage; deze was 2Volt , en toen in de grafiek op het einde, bij 2V zuipt ie 20mA, maar als je er iets van 2.1 volt van maakt zuipt ie 30mA.

word gek, de 1 zegt 10ma, ik 20ma maar het is 30ma :X

[ Voor 23% gewijzigd door Shuisman op 11-07-2006 00:25 . Reden: zootje hierboven verbeterd, ]


  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
hou nou eens op met die 20 mA!!!! het is 30mA continu en als je ze niet continu laat branden, dus met dutycycle, kan je er zelfs iets meer doorheen laten stromen... alles minder en ze branden niet op volle intensiteit...

0,03 * 25 = 0,75A dus... nou kan die 337 tot 0,8 A hebben (niet 1A zoals op de farnell pagina!), maar hij zal wel warm worden...

[ Voor 27% gewijzigd door MeMoRy op 10-07-2006 23:37 ]

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
MeMoRy schreef op maandag 10 juli 2006 @ 23:35:
hou nou eens op met die 20 mA!!!! het is 30mA continu en als je ze niet continu laat branden, dus met dutycycle, kan je er zelfs iets meer doorheen laten stromen... alles minder en ze branden niet op volle intensiteit...

0,03 * 25 = 0,75A dus... nou kan die 337 tot 0,8 A hebben (niet 1A zoals op de farnell pagina!), maar hij zal wel warm worden...
Gelukkig staat ie 1/7 van de tijd maar 'aan', of is het beter om naar een 1-1.5A of zelfs 2A versie te kijken? (deze worden natuurlijk ook warmer als de 0.8A varianten, daarom)

  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
Zoals je zegt... hij staat niet continu aan, dus het zal wat minder erg zijn...

Als jij een (veel) sterkere transistor wilt heb je een paar opties:

powertransistor (BC serie): deze transistoren kunnen vaak 1 tot 1,5 A aan, maar hebben meestal niet zo'n hoge stroomversterkingsfactor (Hfe, beta of Bf). Daarom belasten ze de uitgang van de uC wat meer...

Darlington transistoren (BD serie): dit zijn eigenlijk twee transistoren achter elkaar in 1 behuizing. Daarom is de stroomversterkingsfactor ook erg hoog... maar omdat het twee transistoren achter elkaar zijn, kan de verzadigings spannigsval ( Vce(sat) en Vbe(sat) ) nogal hoog zijn. Dat kan ervoor zorgen dat je sowieso niet genoeg spanning meer overhebt voor de leds. Kwestie van datasheets goed doorlezen.

Mosfets (BUZ/IRF serie): kunnen hoge vermogen schakelen, maar zijn vaak duur. Nog een voordeel is dat ze een heel lage spanningval kunnen hebben, aangegeven door de weerstand (Rds).

Koeling is behuizingafhankelijk... zo'n TO-92 behuizing is moeilijk te koelen aangezien je niet weet hoe je een koellichaam vast moet maken. Je zou er een fan op kunnen richten. Een TO-126, TO-220 of TO-247 is duidelijker: die kan je zo op een koellichaam schroeven.

Overigens is spanningsval maal stroom door de transistor = Vce(sat) * Ic = het vermogen dat gedissipeerd wordt in de transistor... Dat is bij jou dus max 0,7 V * 0,75 A = 0,525 W... dat is niet veel.. maak je geen zorgen

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Oke dat is dan goed nieuws; heb ff schakeling geupdate (kon het niet laten namelijk :P )
Afbeeldingslocatie: http://img183.imageshack.us/img183/2831/ledmatrix5gd8.th.png
Zal vanmiddag een fbprg maken, en uittesten.


***UPDATE***
Programmer schijnt te werken; heb een mix van de hierbovengenoemde, en degene uit dit topic. Weet nog niet als het werkt als ik fuses op external crystal zet; denk dat het wel goed gaat ;) Pin 5(lpt stekker) kan aan/uit worden gezet door middel van jumper, verders een crystal tussen xtal1 en xtal2 á 4MHz.

[ Voor 73% gewijzigd door Shuisman op 27-08-2006 22:16 ]


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Doet een poging om de weerstandswaarden te berekenen:

totale spanning over led,transistoren, weerstand = 5volt
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
BC560:
VCE(sat): typ -90mV max -300mV  @ ic=-10mA
          typ -250mV max -650mV  @ ic=-100mA
          van 200mV uitgegaan
VBE:  -800mV
HFE: is minimaal 110 tot max 800(van minimum uitgegaan), 

LED:
spanning = 2.05 volt
stroom = 30 mA

BC337-16:
HFE: 80 (uit grafiek figure 3)
VCE(sat): max 0.7 Vdc


er moet 30mA door de bc560, dat delen door 110.. 30mA/110 =0.27mA (Ib) op de basis;
5-0.8= 4.2V over weerstand, met 0.27mA kom je op: 4.2/(0.27*10^-3)=140000/9 = 15.6 KOhm R1

5-2.05-0.7-0.2 = 41/20=2.05 volt bij 30mA => 2.05/(30*10^-3)=205/3=68.33 Ohm R3

Er gaat max 750mA door heen,
met een HFE van 80, is dat een basisstroom van 750/80=9.375 mA
Nu volgens mij
5-Vce = 5-0.7 = 4.3 volt @ 9.375 mA ==> 459 Ohm R2


Farnell linkjes:
BC560
BC337-16
Zal wel een hoop fouten in zitten, die datasheet bevatten altijd zo veel nummertjes :P

[ Voor 10% gewijzigd door Shuisman op 11-07-2006 21:38 ]


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Daarnet ff programmatje in microcontroller gedaan die en delay van 30 sec moet doen, om te zien als ik het goede crystal te pakken heb, schijnt te kloppen; 30.12 seconden op de stopwatch ;) . Programmeren doet het nu ook in C met AVR studio schijnbaar moet je eerst:
winavr installeren dan dit installeren en dan dit. Anders werkt het niet. Ik programmeer nu met AVREAL, werkt opzich goed, soms alleen 'can't resync' error. oplossing: eerst leegmaken, en dan opnieuw proggen :P .

Verwijderd

SHuisman schreef op dinsdag 11 juli 2006 @ 11:58:
Oke dat is dan goed nieuws; heb ff schakeling geupdate (kon het niet laten namelijk :P )
[afbeelding]
Als je nou telkens R3 tussen 5Volt en de emitter van je transistor plaatst, kan je R1 met een gerust hart weglaten. Dat scheelt een stel weerstanden en soldeerwerk.

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Verwijderd schreef op woensdag 12 juli 2006 @ 20:18:
[...]


Als je nou telkens R3 tussen 5Volt en de emitter van je transistor plaatst, kan je R1 met een gerust hart weglaten. Dat scheelt een stel weerstanden en soldeerwerk.
Dit gaat altijd goed, of is dat puur toeval ? Loopt er dan niet teveel stroom door de basis ? Zou wel mooi wezen, schilt weer 25 stuks (50x solderen dus :9 )

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Nope, naar het schijnt zit er een overstroom beveiliging (wist ik ook nie, hier op GOT geleerd dat je die mag misbruiken daarvoor) in een µC die de spanning ineen pitst. Waardoor deze op 0,6V (of wat Ube ook is) + 1.6V (van 1 led) komt te liggen, en de R dus idd niet nodig is

[ Voor 16% gewijzigd door kluyze op 12-07-2006 21:09 ]


  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
stuur voor de zekerheid maar 1 mA door die BC560.... zodadelijk zit je niet in het saturation gebied... weerstandswaarden willen wel eens afwijken bijv... 1mA kan de uC makkelijk hebben... R1=4,2 kohm..

en je bent de Vbe van de BC337 vergeten... je gebruikt de Vce, waar je de Vbe moet gebruiken... de Vbe(sat) van de BC337 = 1,2 V (max) dus 5V-1,2V=3,8V

En hoe kom je op een Hfe van 80? Volgend datasheets is de Hfe van de BC337-16 minimaal 100!
Maar ja, stuur er maar 10mA door... dat is dus R2= 3,8V/10mA= 380 ohm

R3 klopt wel...

Ga je nog een 4-bit naar 10 decoder gebruiken? die 74HCT42?

edit: ik lees net pas die reacties van die mensen die zeggen dat je de weerstanden weg mag laten... volgens mij gaat dat niet werken, die overstroombeveiliging is onvoorspelbaar. maar goed, het is jouw keuze...

[ Voor 15% gewijzigd door MeMoRy op 12-07-2006 23:21 ]

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
MeMoRy schreef op woensdag 12 juli 2006 @ 23:18:
stuur voor de zekerheid maar 1 mA door die BC560.... zodadelijk zit je niet in het saturation gebied... weerstandswaarden willen wel eens afwijken bijv... 1mA kan de uC makkelijk hebben... R1=4,2 kohm..
en je bent de Vbe van de BC337 vergeten... je gebruikt de Vce, waar je de Vbe moet gebruiken... de Vbe(sat) van de BC337 = 1,2 V (max) dus 5V-1,2V=3,8V
En hoe kom je op een Hfe van 80? Volgend datasheets is de Hfe van de BC337-16 minimaal 100!
Maar ja, stuur er maar 10mA door... dat is dus R2= 3,8V/10mA= 380 ohm
R3 klopt wel...
Ga je nog een 4-bit naar 10 decoder gebruiken? die 74HCT42?

edit: ik lees net pas die reacties van die mensen die zeggen dat je de weerstanden weg mag laten... volgens mij gaat dat niet werken, die overstroombeveiliging is onvoorspelbaar. maar goed, het is jouw keuze...
Aah bedankt voor de correctie, ben niet altijd even handig met datasheets B) . Ik vind het idee wel leuk om 25 resistors weg te laten, maar als ik naar andere design's kijk, voeg ik toch liever een weerstand toe, ik weet niet hoe leuk een microcontroller het vindt om 25 poorten (max) aan te sturen, en dan maar te gokken dat zijn 'stroombegrenzer' werkt zoals ie moet (alle poortjes evenveel stroom, allemaal netjes). Bovendien zijn er meer mensen geweest die zoiets hebben gemaakt, deze doen ook allemaal weerstanden voor hun transistoren ivm overbelasting van chips, dus het lijkt me een goed plan om dat ook maar te doen ;)

Ik denk dat ik maar eens zo'n bcd ga proberen; misschien dat ik met die andere poorten nog knopjes kan maken ofzo mbv interrupt poorten ;) (voor tijd instellen bijvoorbeeld :9 ).

Edit:
Zit net de datasheet van die BCD chip te bekijken, maar als ik die gebruik moet ik de uitvoer inverteren ! alle poorten zijn High, behalve diegene die je wil hebben, die is low, dit zou andersom moeten wezen, zal zoeken als de chip ook een broertje heeft waarbij de uitgangs polariteit omgekeerd.

Edit2:
Ik denk dat ik een HCF4028BEY (of pdf) moet hebben dan (btw ook nog goedkoper). Deze inverteerd zijn uitgangen niet.

[ Voor 25% gewijzigd door Shuisman op 13-07-2006 00:37 ]


  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
... damn... had je eigenlijk bij de pnp transistoren moeten hebben :D

je hebt de 74LS154, maar die heeft precies hetzelfde probleem!!!


gevonden! de 74HCT237 doet wat jij wilt... een 3-bit naar 8 decoder!

edit: oh, die ander kan ook... kies zelf maar, of vraag het aan je elektroboer...

[ Voor 17% gewijzigd door MeMoRy op 13-07-2006 00:39 ]

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
MeMoRy schreef op donderdag 13 juli 2006 @ 00:37:
... damn... had je eigenlijk bij de pnp transistoren moeten hebben :D
je hebt de 74LS154, maar die heeft precies hetzelfde probleem!!!

gevonden! de 74HCT237 doet wat jij wilt... een 3-bit naar 8 decoder!
edit: oh, die ander kan ook... kies zelf maar, of vraag het aan je elektroboer...
de 74HCT237 hebben ze niet bij farnell; helaas hebben ze geen 3-bit naar 8 decoder, dat zou mooier wezen, alhoewel het natuurlijk weinig uitmaakt, paar lege poortjes is niet erg.
Best wel apart dat ze vele van die chips standaard inverteren...
Dus dan ga ik wel voor de HCF4028BEY , toch bedankt voor zoeken :+

**Update**
Daarnet ff wat aan het klooien geweest met Paint en een 78 KB groot plaatje gemaakt :P
Afbeeldingslocatie: http://img183.imageshack.us/img183/3995/ledmatrixtotaalix7.th.png
*Clickable (watch out big pic)
Volgens mij heb ik nu alles wat ik nodig heb?!

Fear my 1337 MSPaint skillz

[ Voor 30% gewijzigd door Shuisman op 27-08-2006 22:14 ]


Verwijderd

SHuisman schreef op woensdag 12 juli 2006 @ 20:40:
[...]


Dit gaat altijd goed, of is dat puur toeval ? Loopt er dan niet teveel stroom door de basis ? Zou wel mooi wezen, schilt weer 25 stuks (50x solderen dus :9 )
De magie in de transistor zal de basisstroom beperken tot een veilige waarde. Daar zorgt de emitterweerstand (R3) voor. In het geval van een BC560 betekent dat een basistroom van minder dan 1 mA (op 5Volt, met een emitterweerstand van 100Ohm).

  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
Paint?!?!? Man, je moet EAGLE Layout Editor of zo'n soort programma gaan gebruiken! drag&drop....

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
MeMoRy schreef op donderdag 13 juli 2006 @ 10:55:
Paint?!?!? Man, je moet EAGLE Layout Editor of zo'n soort programma gaan gebruiken! drag&drop....
Al eens aan gedacht, maar is er nooit van gekomen..Zal het eens een poging geven :P
EDIT:
Daarnet ff geprobeerd, ik denk dat het programma niet echt werkt (probably all human error), zal nog een keer proberen op rustig moment, frustrerend programma :P

[ Voor 27% gewijzigd door Shuisman op 13-07-2006 17:04 ]


  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
wat wil je precies laten zien met je matrix? als in: moet je niet knoppen aan de poorten hangen? of een rs232 interface?

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
MeMoRy schreef op donderdag 13 juli 2006 @ 15:09:
wat wil je precies laten zien met je matrix? als in: moet je niet knoppen aan de poorten hangen? of een rs232 interface?
Ik denk eerste een simpele klok met eventueel effecten denk aan., scrollen, naar beneden verdwijnen, opeten door pacman :+ , datum, AM PM aanduiding. Misschien later nog eens met de 3 (4?) overgebleven poorten wat gaan kloten betreft knoppen of misschien wel een interface met pc (heel misschien, heb namelijk geen idee hoe dat moet :P ).

EDIT:
Daarnet ff transistoren, weerstanden en 4->10 chip,printplaatjes besteld. Morgen binnen als het goed is, en dan solderen maar >:) .
Weerstanden gingen per 50, dus heb nog een heel zootje over.

[ Voor 17% gewijzigd door Shuisman op 13-07-2006 17:08 ]


  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
Kan je leuke poppetjes mee maken
Afbeeldingslocatie: http://www.anybodyburns.com/pathlight/images/resistorman3.jpg

U vraagt, wij antwoorden.


  • RedPixel
  • Registratie: Januari 2004
  • Laatst online: 20-11 21:19
offtopic:
ik vind de elektronica porno veel grappiger

I see red pixels.


Verwijderd

SHuisman schreef op donderdag 13 juli 2006 @ 17:04:
[...]

Ik denk eerste een simpele klok met eventueel effecten denk aan., scrollen, naar beneden verdwijnen, opeten door pacman :+ , datum, AM PM aanduiding. Misschien later nog eens met de 3 (4?) overgebleven poorten wat gaan kloten betreft knoppen of misschien wel een interface met pc (heel misschien, heb namelijk geen idee hoe dat moet :P ).
Als je een klok wil maken, zal je om te beginnen datum en tijd moeten instellen. Dat kan je via de vrije pinnen doen (met een stel drukknoppen), via de PC of met een DCF77-atoomklokmodule. Met die laatste ben je 100% zeker van de juiste tijd. Tenzij het ergens onweert tussen jou en de zender... ;-)
Maar dat laatste valt met wat controle-logica wel op te vangen.
Communicatie met de PC kan (voor zover mij bekend) op 3 manieren: serieel (heb je minstens 2 vrije pinnen en een MAX232 nodig), serieel via de 2 I2C-pinnen van de ATmega (daarvoor misbruik je de seriele poort van de PC, 2 weerstanden en 2 zenerdioden vormen de "interface) en USB (hierbij heb je 2 weerstanden en 3 pinnen nodig; nadeel is, dat je AVR op 3.3V moet draaien).
Het mooiste is natuurlijk, als je een DCF-77 module gebruikt, en via 1 of andere interface de PC gelijkzet met je zelfgebrouwde atoomklokontvanger...

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Verwijderd schreef op donderdag 13 juli 2006 @ 21:08:
[...]Als je een klok wil maken, zal je om te beginnen datum en tijd moeten instellen. Dat kan je via de vrije pinnen doen (met een stel drukknoppen), via de PC of met een DCF77-atoomklokmodule. Met die laatste ben je 100% zeker van de juiste tijd. Tenzij het ergens onweert tussen jou en de zender... ;-)
Maar dat laatste valt met wat controle-logica wel op te vangen.
Communicatie met de PC kan (voor zover mij bekend) op 3 manieren: serieel (heb je minstens 2 vrije pinnen en een MAX232 nodig), serieel via de 2 I2C-pinnen van de ATmega (daarvoor misbruik je de seriele poort van de PC, 2 weerstanden en 2 zenerdioden vormen de "interface) en USB (hierbij heb je 2 weerstanden en 3 pinnen nodig; nadeel is, dat je AVR op 3.3V moet draaien).
Het mooiste is natuurlijk, als je een DCF-77 module gebruikt, en via 1 of andere interface de PC gelijkzet met je zelfgebrouwde atoomklokontvanger...
Ik denk dat ik hem om 12 AM laat beginnen, en dan gewoon inpluggen :P Ik weet niet hoe precies het is, maar ik dacht eraan om een interrupt timer op 1 sec te zetten, en zo de tijd bij te houden. Interface-able met pc is wel mooi, alleen niet als die niet dicht bij een pc staat. Dan zou ik eigenlijk een ethernet chip er in moeten doen ofzo :P

  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
'k heb ooit iets gehoord over dat er teveel afwijking is voor een betrouwbare klok

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
MeMoRy schreef op donderdag 13 juli 2006 @ 21:58:
'k heb ooit iets gehoord over dat er teveel afwijking is voor een betrouwbare klok
Ik dacht eraan om hem precies 1 dag te laten draaien, en dan te corrigeren erop, in een dag maakt zo'n ding 16*10^6*60*60*24=1.38*10^12 cycles, ik neem aan dat dat wel een goed gemiddelde is ? Natuurlijk moet ik wel zorgen voor een stabiele voeding(gebruik nu een oude pc voeding), echter komt dat in 1 dag ook weer op een gemiddelde ;) . Anders moet ik iets anders erop gaan verzinnen (wat weet ik nog niet, atoomclock synchronizer is wel wat erg overdreven denk ik, als mensen het met tandwielen en gewichtjes kunnen, dan moet het met een uC toch ook lukken :P )

Edit:
Ik meende ergens gelezen te hebben dat de interne clock tot wel 10% kan afwijken (loopt op 1 MHz volgens specs), dan zou de tijd per uur 6 minuut kunnen afwijken (wil je dus niet :P ). Ik denk dat ik gewoon ga zien hoe 'strak' het gaat anders plan b >:) (not sure what exactly...)

[ Voor 19% gewijzigd door Shuisman op 14-07-2006 14:09 ]


  • joca
  • Registratie: Oktober 2000
  • Laatst online: 12-07 20:25
Een ATMega32 heeft nog een extra klok ingang waar je een 32KHz kristal op aan kan sluiten, zie voor meer info: http://www.atmel.com/dyn/...rod_documents/doc1259.pdf

  • IWriteCode
  • Registratie: Juli 2000
  • Laatst online: 18-09 13:34

IWriteCode

Less = more

MeMoRy schreef op donderdag 13 juli 2006 @ 21:58:
'k heb ooit iets gehoord over dat er teveel afwijking is voor een betrouwbare klok
Dat ligt er maar aan hoe je je microprocessor aanstuurt. Krijgt de microprocessor een frequentie van een Weerstand/Condensator combinatie... dan is het niet echt betrouwbaar. Gebruikt je een frequentie crystal, dan kan het net zo nauwkeurig zijn als een horloge.

Less = more


Verwijderd

Een andere mogelijkheid is de netfrequentie, die zeer stabiel is; zeker over lange tijd.
Tenslotte zal SHuisman zijn schakeling ergens mee moeten voeden. Als dat een klassieke voeding met een trafo wordt, is niets eenvoudiger dan de nuldoorgangen te dedecteren, en daarmee bv. een interrupt bij de AVR te genereren. De interrupt-routine kan dan een teller verhogen en aan de hand daarvan tijd en datum aanpassen. Het hoofdprogramma hoeft dan niets anders te doen dat deze uit te lezen en op het display te plaatsen.
De frequentie rechtstreeks van de netspanning --via een optocoupler-- aftakken is ook een mogelijkheid als er geen trafo bij te pas komt.

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Verwijderd schreef op vrijdag 14 juli 2006 @ 19:21:
Een andere mogelijkheid is de netfrequentie, die zeer stabiel is; zeker over lange tijd.
Tenslotte zal SHuisman zijn schakeling ergens mee moeten voeden. Als dat een klassieke voeding met een trafo wordt, is niets eenvoudiger dan de nuldoorgangen te dedecteren, en daarmee bv. een interrupt bij de AVR te genereren. De interrupt-routine kan dan een teller verhogen en aan de hand daarvan tijd en datum aanpassen. Het hoofdprogramma hoeft dan niets anders te doen dat deze uit te lezen en op het display te plaatsen.
De frequentie rechtstreeks van de netspanning --via een optocoupler-- aftakken is ook een mogelijkheid als er geen trafo bij te pas komt.
Ik had nog niet aan de netfrequentie gedacht, maar is makkelijk te implementeren; zootje weerstanden condensators, diodes en transistoren, en je hebt een piekgenerator :P Heb helaas geen oscilloscoop tot mijn beschikking, dat is namelijk wel handig als je zulk soort spul wil uittesten ;)

Verwijderd

Ik denk niet dat je veel nodig hebt, om een deftige INT te genereren. Dit bv:
Afbeeldingslocatie: http://home.tiscali.be/prosje/IntSturing.png

Je kan de avr zo instellen, dat een INT-pin reageert op een neergaande flank. Het is dus onnodig er zelf een smalle puls van te maken. De condensator van 2n2 verbetert de flanksteilheid enigzins, zoals op deze detailopnamen te zien is:
Afbeeldingslocatie: http://home.tiscali.be/prosje/snapshot4.png

Afbeeldingslocatie: http://home.tiscali.be/prosje/snapshot5.png

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Ik zit net even die BCD chip te testen, maar er treden nogal vreemde dingen op; Als ik alleen A hoog maak 9 zou enkel poort 1 open moeten gaan, bij mij gaan poort 1 en 3 op 1.9 volt. Mijn voedspanning is 5 volt, vanuit een oude voeding.(12 volt als voeding geeft ook vreemde resultaten) Als ik B alleen omhoog doe, zitten de meeste poortjes op 30mV (en low), maar er zijn een 3 tal die op 0.9 volt komen. Dus ik weet nog niet als ik wel die chip ga gebruiken, heb btw 2 besteld, maar beide 'werken' niet. Iemand ervaring met zulke chips ? Anders gewoon maar alle poortjes gebruiken ;)

  • Schapie
  • Registratie: Februari 2004
  • Laatst online: 19-02 21:48

Schapie

Bleh...

En als je die andere pootjes eens naar gnd trekt? Heb je dan ook nog dezelfde problemen?
Kan me voorstellen dat dat ic'tje zwevende poorten niet zo lekker vind. ;) (Zie ook pagina 9 van de datasheet waarin dit ook is getekend.)

No signature found


  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
Hang er idd even grote weerstanden naar gnd aan.. 1k-10k ohm ofzo... dan zie je misschien wel de gewenste resultaten.

dus niet direct op gnd aansluiten... dat heet kortsluiten nml

[ Voor 26% gewijzigd door MeMoRy op 17-07-2006 00:22 ]

U vraagt, wij antwoorden.


  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Inderdaad, dikwijls wordt een zwevend ingangs pootje gewoon als hoog gezien door een ic. maar de ingangen mag je gewoon door een kabeltje naar de gnd verbinden, hoeft helemaal geen R tussen, uitgangen wel, anders heb je inderdaad kortsluiting.

[ Voor 4% gewijzigd door kluyze op 17-07-2006 00:32 ]


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
kluyze schreef op maandag 17 juli 2006 @ 00:32:
Inderdaad, dikwijls wordt een zwevend ingangs pootje gewoon als hoog gezien door een ic. maar de ingangen mag je gewoon door een kabeltje naar de gnd verbinden, hoeft helemaal geen R tussen, uitgangen wel, anders heb je inderdaad kortsluiting.
Als ie direct met de ground verbonden is, kan ik hem ook geen signaal meer aanbieden denk ik ?! Want dan wordt het signaal direct naar de aarde getrokken, dat wil ik denk ik ook niet, het is toch meer om die capaciteiten van die poorten te drainen ?
Schapie schreef op zondag 16 juli 2006 @ 23:10:
En als je die andere pootjes eens naar gnd trekt? Heb je dan ook nog dezelfde problemen?
Kan me voorstellen dat dat ic'tje zwevende poorten niet zo lekker vind. ;) (Zie ook pagina 9 van de datasheet waarin dit ook is getekend.)
Welke datasheet heb je ? Ik heb namelijk 2 stuks, maar in geen van beide zie ik op pagina 9 weerstanden van de ingangen naar de ground :P

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Je moet een schakelaar gebruiken die bij een 0 de ingang aan de gnd hangt en bij een 1 aan de voeding, daarbij liefst nog een dender vrije schakelaar zodat niet bij elke verandering van 1-0 0-1 het ic 100 keren schakelt.

Dus, niet gebruikte ingangen moet je aan de gnd hangen (of aan de voeding als ze actief laag zijn :P)

[ Voor 20% gewijzigd door kluyze op 17-07-2006 11:28 ]


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Heb net alles gesoldeerd: (aardig werkje nog wel, omdat de pinout van die ledmatrixen zo handig zijn ;) .

Van de 25 transistoren van de kolommen, is er 1 rot, zal hem vervangen :)
Ik kon helaas die ledmatrixen niet strak tegenelkaar krijgen, (tenzij je 5 aparte printplaten gebruikt natuurlijk), maar ik denk dat het niet zo erg is, als je er eenmaal troep op laat zien ;) (misschien opvullen met plamuur kit, iets dergelijks, Ik weet niet hoe het staat, maar als je een diffuus stuk plexiglas eroverheen doet... ? )


EDIT:
BCD chip net ff getest, hij werkt wel als ik de inputs 'ground' met een weerstand (4.2 KOhm genomen; had ik nog zootje van over :+ ), dus de 5-7.5 pF wordt nu 'weggezogen' en werkt oke :)

[ Voor 49% gewijzigd door Shuisman op 27-08-2006 22:07 ]


Verwijderd

SHuisman schreef op maandag 17 juli 2006 @ 12:30:

Ik kon helaas die ledmatrixen niet strak tegenelkaar krijgen, (tenzij je 5 aparte printplaten gebruikt natuurlijk), maar ik denk dat het niet zo erg is, als je er eenmaal troep op laat zien ;) (misschien opvullen met plamuur kit, iets dergelijks, Ik weet niet hoe het staat, maar als je een diffuus stuk plexiglas eroverheen doet... ? )
Als je het achter een stuk rode plexi plaatst (ik neem aan dat het rode LED's zijn?) merk je van de behuizing niets meer. Daarnaast zal je display veel beter af te lezen zijn, zeker in een omgeving met veel licht.

  • Schapie
  • Registratie: Februari 2004
  • Laatst online: 19-02 21:48

Schapie

Bleh...

SHuisman schreef op maandag 17 juli 2006 @ 10:30:

[...]

Welke datasheet heb je ? Ik heb namelijk 2 stuks, maar in geen van beide zie ik op pagina 9 weerstanden van de ingangen naar de ground :P
In deze sheet trekken ze hem ook niet via een weerstandje naar beneden, maar direct naar de ground met een wisselcontactje. In de praktijk gebruik je dan dus gewoon een pulldownweerstandje om hem niet te laten zweven, maar dit had je zelf ook al door. ;)
Verder vind ik het wel een intressant topic enkele klasgenoten van mij wouden ook zoiets maken, maar waren niet verder gekomen dan de display's bestellen. :X

No signature found


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Schapie schreef op maandag 17 juli 2006 @ 23:49:
[...]

In deze sheet trekken ze hem ook niet via een weerstandje naar beneden, maar direct naar de ground met een wisselcontactje. In de praktijk gebruik je dan dus gewoon een pulldownweerstandje om hem niet te laten zweven, maar dit had je zelf ook al door. ;)
Verder vind ik het wel een intressant topic enkele klasgenoten van mij wouden ook zoiets maken, maar waren niet verder gekomen dan de display's bestellen. :X
Heb inmiddels de bcd chip al gesoldeerd, en de poorten 0 tot 6 aangesloten, standaard (alle 4 inputs low) staat dan regel 1 aan, en ik kan met een ground draadje(voor de pnp transistoren) alle leds aan doen die ik maar wil ;). Dus de BCD chip doet het wel ;) .Ga vandaag(morgen?) bezig met het solderen van de microcontroller. Zodra ik beeld heb post ik wel ff foto'tje :*)
Bestellen is wel een grote stap; dan is er geen weg meer terug; OF je hebt geld 'weggegooid' OF je gaat door en maakt iets cools.

EDIT:
ik ga de 4 pinnen (die naar de BCD chip gaan) ergens anders aansluiten, zodat ik 2 interrupt poorten over hou.

[ Voor 16% gewijzigd door Shuisman op 18-07-2006 10:25 ]


  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Hoe ga je nu die BCD chip aansluiten? Dat naar de gnd trekken is waarschijnlijk alleen nodig als je aan het testen bent. Als het ic aan een µC hangt dan doet de µC dit waarschijnlijk voor je.

  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
uhm... de ingangen hoeven niet naar gnd getrokken te worden hoor... hij hnagt alleen de ingangen aan de uC...

maar goed, als je dus direct aansluit aan de NPN's hoef je idd niet meer naar gnd te trekken...afaik

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Daarnet de 25 kolommen aangesloten aan de uC, en de 4 datalijnen naar de BCD, (heb de 4 ingangen van de BCD 'geground' met 4.2 KOhm, en werkt perfect) Heb allereerst ff een progje in VB geschreven die voor mij C code produceert, om het leven wat makkelijker te maken:

Als testje dacht ik maar aan wat wiskundig:
√9=3 :-)
Heb ff een delayloop gemaakt waar je het aantal milliseconden op kan geven is wel handig ,anders krijg je van die hele grote getallen ;)

Die in de uC gezet, en uitgetest:
Afbeeldingslocatie: http://img183.imageshack.us/img183/3042/workingyz8.th.jpg
*Clickable
Doet het dus :*) De foto is niet al te best, maar als je flitst worden de foto's niet beter van, in gewoon licht is de display duidelijk te zien.

Voor de mensen die de achterkant willen zien:
Afbeeldingslocatie: http://img183.imageshack.us/img183/2687/finaldradenlv1.th.jpg
*Clickable
Nu komt het leukere deel: (alhoewel alles aanelkaar bakken ook wel 'cool' is) programmeren!
Dus ik zal allereerst mijn C kennis wat moeten verhogen, om o.a. interrupt timers te maken voor mijn clock. (Sample codes voor atmega32 uiteraard welkom)

EDIT:
100ste post in dit topic

[ Voor 23% gewijzigd door Shuisman op 27-08-2006 22:12 ]


  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Hij zegt nochtans heel duidelijk:
SHuisman schreef op maandag 17 juli 2006 @ 12:30:
BCD chip net ff getest, hij werkt wel als ik de inputs 'ground' met een weerstand (4.2 KOhm genomen; had ik nog zootje van over :+ ), dus de 5-7.5 pF wordt nu 'weggezogen' en werkt oke :)
Voor het testen en zelf de ingangen te veranderen moet je niet gebruikte ingangen 'laag' maken (afhankelijk van: actief hoog, laag) omdat een ic nogal de nijging kan hebben om zwevende ingangen als 'hoog' te zien. Maar als het ic achter een µC of een andere schakeling hangt moet dit niet. Dan doet de schakeling dat wel.

Of was dat wat je bedoelde, in dat geval mijn excuses, maar ik heb net een paar uur chemie achter de kiezen. Niet bepaald het lievelingsvak van een industrieel electronica :r :?

edit:
Was nog reactie op MeMoRy, ik had niet gezien dat er al een 2de pagina was. Die was er ook niet, ik was nog aan het posten terwij hij op verzenden had gedrukt.

[ Voor 17% gewijzigd door kluyze op 18-07-2006 17:55 ]


  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
JEEY!!!!! _/-\o_

Gefeliciteerd! Veel programmeer plezier!! :D

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
MeMoRy schreef op dinsdag 18 juli 2006 @ 21:15:
[...]
JEEY!!!!! _/-\o_
Gefeliciteerd! Veel programmeer plezier!! :D
Bedankt :) , en ook bedankt voor alle transistorkeuze hulp etc.

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Heb daarnet de interrupt timer voor elkaar gekregen,
Hij draait op 16MHz, dat delen met een divider van 128, krijg je 8μs per tick, en dan timer compare interrupt op 125, zodat je per 1ms een interrupt krijgt!

Nu kom ik op 6-7 seconden afwijking per 15 minuut, meer mensen ervaring met zulke dingen ? Of denk ik verkeerd met de code ?

[ Voor 6% gewijzigd door Shuisman op 21-07-2006 15:17 ]


  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
misschien kost de interrupthandler een (paar) extra kloktik(ken)?

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
MeMoRy schreef op vrijdag 21 juli 2006 @ 15:39:
misschien kost de interrupthandler een (paar) extra kloktik(ken)?
Zover ik het begrijp;
Het frequentiesignaal wordt gekopieerd; gedeeld door jouw divider, dan opgeteld in je timer, en dan vergeleken met een waarde die je opgeeft (OCR2 in dit geval). En als de timer dan die waarde is gaat hij interupten.
16MHz met een divider van 128 => 125000Hz , met een timer compare interrupt van 125 => 1000Hz.

Ik probeer zo even 124 ipv 125 (OCR2)(in case hij anders werkt dan ik denk), en zien wat er dan gebeurt ;)

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Hmm, ik heb zo in der tijd ook iets moeten maken in asm c (het is niet asm, maar c, veel te lang geleden :X )
Ik heb die code wel nog ergens.
Maar dit is de code van de leerkracht in kwestie, is wel voor een stappenmotor, maar ik denk dat je dat deel wel eruit kan filteren. Het is ook wel voor een atmel 8535 besef ik nu juist :X maar op zich zal veel van de code bruikbaar zijn

Mocht je erin geinteresserd zijn natuurlijk :p

[ Voor 25% gewijzigd door kluyze op 21-07-2006 17:30 ]


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
kluyze schreef op vrijdag 21 juli 2006 @ 16:48:
Hmm, ik heb zo in der tijd ook iets moeten maken in asm c (het is niet asm, maar c, veel te lang geleden :X )
Ik heb die code wel nog ergens.
Maar dit is de code van de leerkracht in kwestie, is wel voor een stappenmotor, maar ik denk dat je dat deel wel eruit kan filteren. Het is ook wel voor een atmel 8535 besef ik nu juist :X maar op zich zou veel van de code bruikbaar zijn

Mocht je erin geinteresserd zijn natuurlijk :p
iig bedankt, zal er zo ff naar kijken, heb snel ff de tijd erin gedaan; die tikt nu binair:
PORTA=sec
PORTB=min
PORTC=hour
Zal eens zien hoeveel hij nu afwijkt met OCR2=124 ipv 125 ;)

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
No problem, ik zie trouwens juist dat je een Atmega32 gebruikt (ik dacht misschien een PIC) dan zal de code zeker bruikbaar zijn.

Laat je zo rap mogelijk je resultaten weten :p

Ik denk dat BCD over verschillende poorten het simpelste gaat worden ja.

[ Voor 18% gewijzigd door kluyze op 21-07-2006 17:31 ]


  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 21-11 14:23

Atmoz

Techno!!

SHuisman schreef op dinsdag 18 juli 2006 @ 17:47:
Daarnet de 25 kolommen aangesloten aan de uC, en de 4 datalijnen naar de BCD, (heb de 4 ingangen van de BCD 'geground' met 4.2 KOhm, en werkt perfect) Heb allereerst ff een progje in VB geschreven die voor mij C code produceert, om het leven wat makkelijker te maken:

Als testje dacht ik maar aan wat wiskundig:
√9=3 :-)
[afbeelding]
*Clickable
Zoals wellicht te zien is, doe ik per rij 1 milliseconde pauze, dus hij ververst het hele scherm ongeveer met 1/0.007 = ~143 Hz
Heb ff een delayloop gemaakt waar je het aantal milliseconden op kan geven is wel handig ,anders krijg je van die hele grote getallen ;)

Die in de uC gezet, en uitgetest:
[afbeelding]
*Clickable
Doet het dus :*) De foto is niet al te best, maar als je flitst worden de foto's niet beter van, in gewoon licht is de display duidelijk te zien.

Voor de mensen die de achterkant willen zien:
[afbeelding]
*Clickable
Nu komt het leukere deel: (alhoewel alles aanelkaar bakken ook wel 'cool' is) programmeren!
Dus ik zal allereerst mijn C kennis wat moeten verhogen, om o.a. interrupt timers te maken voor mijn clock. (Sample codes voor atmega32 uiteraard welkom)

EDIT:
100ste post in dit topic
Ziet er heel erg leuk uit!! 8)
Zet je op iedere print die je maakt zo'n dure IC houder met hefboom?
Of kun je die op een of andere manier weer hergebruiken?

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
atmoz schreef op vrijdag 21 juli 2006 @ 18:02:
[...]
Ziet er heel erg leuk uit!! 8)
Zet je op iedere print die je maakt zo'n dure IC houder met hefboom?
Of kun je die op een of andere manier weer hergebruiken?
De reden voor een IC houder met hefboom is dat ik de chip telkens moet herprogrammeren; heb er namelijk geen ISP circuitje aanvast gemaakt ;) Ik haal de chip eruit, doe hem in mijn programmer, en weer terug erin. Als je een gewoon voetje zou doen, worden alle pootjes krom,krommer, en dan na een tijdje heel kort ;)

Verwijderd

SHuisman schreef op vrijdag 21 juli 2006 @ 15:04:
Nu kom ik op 6-7 seconden afwijking per 15 minuut, meer mensen ervaring met zulke dingen ? Of denk ik verkeerd met de code ?
Je kan de frequentie van het X-tal lichtjes tunen door 1 van de condensators die tussen het X-tal en GND staan te vervangen door een instelbaar type. Dit, voor het geval software-tweaking de afwijking niet 100% kan opheffen.
Voor de rest ben je goed bezig, zie ik. Ik ben benieuwd naar het eindresultaat!

  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Verwijderd schreef op vrijdag 21 juli 2006 @ 21:23:
[...]
Je kan de frequentie van het X-tal lichtjes tunen door 1 van de condensators die tussen het X-tal en GND staan te vervangen door een instelbaar type. Dit, voor het geval software-tweaking de afwijking niet 100% kan opheffen.
Voor de rest ben je goed bezig, zie ik. Ik ben benieuwd naar het eindresultaat!
Ik denk er over na om het volgende te doen;
De divider op 128 houden; en de timer compare interrupt op 1, zo krijg 125000 interrupts per seconde.
Deze tel ik op in een variabele elke 125000 keer wordt er bij de 'secondewijzer' 1 opgeteld, blijkt na een dag 3 seconden te snel te gaan; dan kan ik hem hoger instellen op bijv. 125004, en zo kan ik een dag op 0.7 seconde precies krijgen, wat (opzich) wel aardig is denk ik! (4.5 minuten per jaar is dat dus)
Als dit niet wil voor wat voor reden dan ook, dan ga ik probably 50Hz signaal aftappen van het lichtnet en dat gebruiken, hopen dat dat stabiel genoeg is. Eventueel kan de divider ook naar beneden; zodat het nog precieser te corrigeren is. Je kan hem meende ik zelfs dividen met 1, ook al lijkt me dat vreemd want dat wordt hij bij elke 'frequentiepuls' geinterrupt(wat niet kan lijkt me)

Instelbare condensator is natuurlijk een optie, echter liever niet, want je kan hem toch niet precies krijgen zoals jij wilt, dan kan ik beter in de software iets schrijven dat hij elke week 1 seconde 's nachts om 4 uur ofzo weglaat :P

[ Voor 10% gewijzigd door Shuisman op 22-07-2006 01:15 ]


  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
dat tunen zal toch nog moeilijk worden... die 0.7sec/dag is zo fijn dat je het nauwelijks ziet...

U vraagt, wij antwoorden.


  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 19:33
Als je een nauwkeurig klokje wil, ben je het best uit met een RTC chipje. Hang er een lithium batterijtje aan, voeden met 5V en 2 draadjes om I2C te praten, en eenmaal ingesteld loopt ie jaren lang goed.
Als je het kan vertegenwoordigen om te samplen (je bent student elektronica, werkt in de elektronica, ...) kan je gewoon gratis een RTC samplen bij maxim, kristal zit ingebouwd en wordt automagisch bijgetuned volgens de temperatuur.

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
Je kan het ook ff vragen aan Sprite... die heeft een topic waarin hij een klok bouwt parallel lopen met die van jou.

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
MeMoRy schreef op zaterdag 22 juli 2006 @ 11:08:
Je kan het ook ff vragen aan Sprite... die heeft een topic waarin hij een klok bouwt parallel lopen met die van jou.
Heb ik al :9

  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
:X

offtopic:
note to self: LEZEN 8)7

U vraagt, wij antwoorden.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Heb de code aangepast, zowiezo moest OCR2 wel op 124 ipv 125 kwam ik achter, heb hem nu op 0, dus bij elke 16000000/128 gaat hij interrupten (elke 8 μS dus). Bij elke interrupt wordt een variabelen opgeteld, als deze 125000 is , dan hebben we 1 sec gehad. Ik heb hem om 11:15 ingesteld, en daar laten beginnen. Hij laat de seconden op regel1, de minuten op regel2, en de uren op regel3, de rest allen uit. Nu ga ik morgenvroeg om 11:15 weer ff checken (43200 seconden later) en check hoeveel hij afwijkt, en dan die 125000 aanpassen, ik zal ook nog ff dieper in mijn voeding kijken, met andere woorden is deze wel stabiel genoeg ?

EDIT:
Daarnet de tijd 'opgenomen' de tijd loopt 24 seconden voor na 43200 seconden, dus heb de 125000 iets verhoogt; naar 125069 om precies te zijn. Laat hem nu weer een dag aan staan en zien als ie nu klopt :) Daarna zal ik me bezig moeten houden met multidimensional arrays in C ;) .

[ Voor 19% gewijzigd door Shuisman op 23-07-2006 11:26 ]


Verwijderd

SHuisman schreef op zaterdag 22 juli 2006 @ 23:21:
k zal ook nog ff dieper in mijn voeding kijken, met andere woorden is deze wel stabiel genoeg ?
Als die voeding gestabiliseerd wordt met een 7805 of een LM317 valt er weinig aan te verbeteren, vrees ik. De temperatuur zal meer invloed uitoefenen op je kristal dat de afwijking van dergelijke spanningsregelaars.
Misschien valt een kristaloven te overwegen? ;-)

  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 19:33
Verwijderd schreef op maandag 24 juli 2006 @ 20:48:
[...]
Misschien valt een kristaloven te overwegen? ;-)
Een RTC is toch heel wat handiger hoor, en vooral tig keer goedkoper (zoveel zal de nauwkeurigheid niet schelen). Je RTC blijft ook gewoon lopen als de spanning afvalt met een simpel batterijtje (zoals in je PC). Je vraagt de tijd, en je krijgt em, met 1 chipje en 1 batterijtje, dat is pas luxe.

[ Voor 6% gewijzigd door naftebakje op 25-07-2006 01:34 ]

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


  • Shuisman
  • Registratie: Maart 2004
  • Laatst online: 01-09 10:12
Daarnet ff de grafische clock gemaakt, en getest; hij werkt, echter is de afwijking van die timerinterrupts nu wel te merken. Hij werkt niet zoals ik dacht; elke hz-puls van de kristal telt hij op, en deelt hem automatisch met de divider etc...Maar blijkbaar werkt het anders; heb namelijk nu veel meer code in het programma, maar nu is die interrupt-interval veel groter dan daarvoor (met korte code). Ik ga denk ik (waarschijnlijk) de 50 Hz van het lichtnet gebruiken voor het bijhouden van de tijd, of ik ga me verdiepen in die rtc chip (nog nooit mee gewerkt, geen idee hoe ze werken)

  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 19:33
SHuisman schreef op donderdag 27 juli 2006 @ 21:35:
..., of ik ga me verdiepen in die rtc chip (nog nooit mee gewerkt, geen idee hoe ze werken)
Gewoon via I2C (al noemen ze het in de datasheet geen I2C om geen licentiegelden te moeten betalen). Adres zenden, registernummer en data (seconden, minuten, uur, dag, maand, jaar of instellingen), en vanaf dan kan je gewoon alle tijdsinformatie opvragen via I2C. Er zit (bij de high precisions waar het kristal ingebouwd zit) een temperatuursensor in, die de afwijking van het kristal door de temperatuur compenseert, die kan je ook uitlezen (kan wel een leuke extra zijn).

Let wel op dat je clock stretching ondersteund in je µC, dat staat niet in de datasheet van die RTC's maar ze gebruiken het wel, clock stretching is een methode zodat de slave kan zeggen aan de master "ff wachten makker, ik ben nog niet klaar", daartoe trekt ie de kloklijn naar de massa. In hogere talen met I2C library zet je gewoon voor elke verzending een wachtlusje tot "I2C_Idle = true".

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.

Pagina: 1 2 Laatste