Nieuws:

Nu in MSM 244 REPORTAGE: De Nederlandse Modelspoordagen * A4 Dioramawedstrijd * Virtuele Messe 2024

Hoofdmenu

Waar zijn we nu mee bezig ? Microcontrollers

Gestart door ToThePoint, 13 januari 2012, 10:27:28 AM

PeterC

Klaas, de herhalingsfrequentie is 49,99 Hz (zonder kristal op de processor toch vrij nauwkeurig met kistal 4MHz! - verwarrend: 3 PIC projecten gelijkertijd op mijn breadboard [^]) en de pulsduur is tot op 1 ?s in te stellen: 1 ms geeft 1000 (+/-1)?s, 2 ms geeft 2000 (+/-1)?s. Dit volgens berekeningen en de meetresultaten (Fluke).

Het huidig programma is heel eenvoudig: opstarten geeft 1.5 ms (neutraal), na 1 seconde gaat de servo naar links (rechts?) bij 1.0 ms pulsduur, gevolgd door 1.5 ms (neutraal - terug na ??n seconde) en dan naar 2ms (rechts).  Daarna in een loop naar links - neutraal - rechts - neutraal - links...

Enkele eenvoudige testen laten al het verschil zien tussen een servo (kleine 's') en een Servo (grote 'S')!  Conradjes van enkele Eurootjes ratelen en schreeuwen tijdens de test.  Oer-oude-Robbe/Graupner-servo's (prijs=Conrad*20) doen het veel rustiger en stiller...
Groetjes, Peter


Klaas Zondervan

Peter, ik zie ook dat de herhalingsfrequentie 49,99 Hz is. En die is zo mooi stabiel omdat die is afgeleid uit de kristalfrquentie.
Maar in je vorige bijdrage wekte je, althans voor mij, de indruk dat de nauwkeurigheid van de herhalingsfrequentie belangrijk is. En daar reageerde ik op door te stellen dat die er weinig toe doet.
Je zou zelfs de opvolgingstijd voor de pulsen kunnen vari?ren, b.v. achtereenvolgens 18, 20, 19 en 21 ms maken.
Je zal zien dat de servo daar geen last van heeft. In de servo zit nl. niets wat die opvolgingstijd controleert. De servo kijkt alleen naar de lengte van de puls, en verwacht na enige tijd een "opfrisser". Maar hoe lang "enige tijd" is, dat is niet kritisch.

argilla

klinkt zeer interessant weer een stukje bijgeleerd zie [:)]
argilla
H0, On30, 1/29, Gn15

Havoc

citaat:
Al een tijdje zit ik met de gedachte om een I2C signaalgever/sniffer te ontwerpen die de I2C signalen omzet in een seri?el signaal om via USB naar een terminalprogramma op de PC met I2C bouwstenen te kunnen communiceren (zonder een ingewikkelde testomgeving te bouwen) en om 'onbekende' I2C signalen te kunnen 'hacken' (oa de I2C communicatie tussen een IB en keyboard 6040 - om die zelf te kunnen maken).


Dit is een handig en goedkoop ding dat we op het vorige werk daarvoor soms gebruikten: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en028600
Met vakantie voor onbepaalde duur.

PeterC

Een 'spielerei' gekocht maar ik heb geen idee hoe ik er moet aan beginnen...
Ik zou twee van die matrixen achter elkaar willen zetten.  Volgens mijn bescheiden mening kom ik dan op 40 poorten (8rood + 8groen + 8rood + 8groen + 8common) die ik moet aansturen???  Zal wel eenvoudiger kunnen zeker?
Ik wil zoveel mogelijk vanuit een controller gaan sturen, dus zeker geen gebruik gaan maken van 4 naar 16 multiplexers.  Voor de common wil ik eventueel nog een 3 naar 8 mux inzetten (via schakeltransistoren).

De eerste versie van de servotester is af.  Nu nog de HTML pagina's maken [xx(]

[Edit]: Voor wie 'spielereien' of degelijk materiaal zoekt: http://www.watterott.com/ (geen reclame - ik plaats de link enkel omdat er nogal wat 'speciallekes' in hun aanbod zitten).
Groetjes, Peter


PeterC

citaat:
Geplaatst door Klaas Zondervan

...De servo kijkt alleen naar de lengte van de puls, en verwacht na enige tijd een "opfrisser"...


Ja en nu ondervonden dat die vrij kritisch naar die puls kijkt. Een variatie van slechts 2?s in de puls en de servo staat reeds te 'jitteren'.  Vooral 'goedkopere' servo's hebben er last van.  De afwijking in de pulslengte was het gevolg van luiheid: een ontkoppelcondensator van 100nF over de spanningslijnen van de controller doen wonderen [^].
Groetjes, Peter


PeterC

citaat:
Geplaatst door Havoc

Dit is een handig en goedkoop ding dat we op het vorige werk daarvoor soms gebruikten: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en028600


Johan, zo te zien doet de 'Bus Pirate' net hetzelfde (en nog enkele extra zaken) maar is de prijs ervan minder dan de helft dan die van Microchip.
Groetjes, Peter


Havoc

citaat:
Ik zou twee van die matrixen achter elkaar willen zetten. Volgens mijn bescheiden mening kom ik dan op 40 poorten (8rood + 8groen + 8rood + 8groen + 8common) die ik moet aansturen??? Zal wel eenvoudiger kunnen zeker?


Hoeft niet, je kan toch de rood en groen van beiden samen nemen. Dan heb je 8 rood, 8 groen en 16 common. Je zou ook nog kunnen rood en groen multiplexen, dan heb je 8 r/g + select en 16 common. Die 16 common zouden via een shuifregister kunnen. Die andere ook, hangt wat af van hoeveel io je hebt/wil/kan gebruiken.

Klopt van die bus pirate, maar de microchip hadden we liggen in de kast.
Met vakantie voor onbepaalde duur.

PeterC

citaat:
Geplaatst door Havoc

citaat:
Ik zou twee van die matrixen achter elkaar willen zetten. Volgens mijn bescheiden mening kom ik dan op 40 poorten (8rood + 8groen + 8rood + 8groen + 8common) die ik moet aansturen??? Zal wel eenvoudiger kunnen zeker?


Hoeft niet, je kan toch de rood en groen van beiden samen nemen. Dan heb je 8 rood, 8 groen en 16 common. Je zou ook nog kunnen rood en groen multiplexen, dan heb je 8 r/g + select en 16 common. Die 16 common zouden via een shuifregister kunnen. Die andere ook, hangt wat af van hoeveel io je hebt/wil/kan gebruiken...



Ik heb wat in een ver verleden zitten zoeken toen er nog busbuffers bestonden.  Een 74241 (niet-inverterende-buffer) is 8 bit en heeft een output-enable.  Zo vier stuks parallel en ik kan de anodes al aansturen (8 bits data + 4 stuurlijnen).  Voor de kathodes zal ik wel een darlington-array moeten gebruiken (er kunnen 8 leds gelijkertijd branden = 160 mA - een inverterende array kan ik positief aansturen).

Nu vraag ik mij af met dergelijke schakeling: de led zal slechts 1/32? van de tijd oplichten(4 * 8 kolommen, 8 rijen).  Ga ik dan nog genoeg lichtopbrengst hebben (het is de bedoeling om er glasvezels voor te zetten voor een 'spielerei').  Geven rood en groen gemultiplexed nog effectief geel?  Wat is de 'ideale' minimum tijd dat een gemuiltiplexte led nodig heeft om het goed te doen?

Met datgene dat ik nu voor ogen heb, heb ik 2 * 8 bits poorten nodig + 4 voor de buffers aan te sturen + communicatielijnen.  Ik denk dat ik dan al beter een 40 pins PIC neem en een 8 bits poort extra inzet.  Heeft als voordeel dat de led 2 maal zo lang kan branden.

Groetjes, Peter


Havoc

Kan je niet beter iets met een latch gebruiken? Bvb een 74hc595 (8 bit shift met latch) of 74hc574 (8 bit latch)? Een HC gaat ook maar 24mA driven trouwens. Misschien beter demultiplexing en driven scheiden? Anders moet je naar iets als een ABT gaan die 64mA aankan.

Voor de lichtopbrengst kan je de stroom opdrijven. Gepulst kunnen leds heel wat meer verdragen dan DC. Alhoewel je datasheet er niet veel over zegt buiten max 30 mA piek bij 1/10 dutycycle en 10 kHz. Jij zit bij 1/32, maar welke frequentie ga je halen? (en als er iets mis gaat ga je snel moeten zijn!)

De inkoppeling in vezels gaat ook nog verlies geven.
Met vakantie voor onbepaalde duur.

PeterC

citaat:
Geplaatst door Havoc

...De inkoppeling in vezels gaat ook nog verlies geven...



En het zijn dan nog van die 'plastieken vezels', gerecycleerd van zo'n - hoe noem je dat - wonderlamp [:)] waar een stevige halogeenspot met kleurschijf voor de 'wonder' verlichting zorgt...

Die 10 KHz lijkt me wel haalbaar (20 MHz klok; ??n instructie per 1/4 klok).
Groetjes, Peter


Havoc

Die plastieken vezels zijn nog geen ramp, maar de koppeling met de led gaat lastig zijn. Als je er geen meters van gebruikt. Er is hier al ergens in een draadje over gediscussieerd. En een goede uitlijning is toch wel het minste. Met zo'n array is dat lastiger dan met 1 led.
Met vakantie voor onbepaalde duur.

Gerolf

Een dutycycle van 1/32 is te weinig, Peter. Heb ik al ondervonden [:I] Te weinig lichtopbrengst ...
Ik denk dat het beter is om je microcontroller delen van je matrix tegelijk te laten aansturen.
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw

PeterC

citaat:
Geplaatst door Gerolf

Een dutycycle van 1/32 is te weinig, Peter. Heb ik al ondervonden [:I] Te weinig lichtopbrengst ...
Ik denk dat het beter is om je microcontroller delen van je matrix tegelijk te laten aansturen.



Met een ULN 2803a kan ik 500mA aansturen (= 16 leds op (kortstondig!) 30mA).  Dat worden dus al 2 darlingtonbuffers voor de 32 leds in een rij.  De rijen aansturen via een 74xx374 kan 'slechts' 20 mA per pin 'sourcen'.  4 latches voor telkens 8 leds.  De rijaansluitingen op dezelfde datalijnen als de kolomaansturing betekent dit nog 8 + 4 latchenables + 2 rijenable = 14 bits!  Zelfs een heel keine PIC kan dit aan.  Een dutycycle van 1/8 (minus de aansturing van de latches en de busbuffers - minder kan ik niet).  Wel heel wat externe hardware...

Het (spieler)ei moet verder broeden...

Ondertussen dergelijke modules met RGB gevonden...  8 bits per module extra... [xx(]

citaat:
Geplaatst door Havoc

Die plastieken vezels zijn nog geen ramp, maar de koppeling met de led gaat lastig zijn. Als je er geen meters van gebruikt. Er is hier al ergens in een draadje over gediscussieerd. En een goede uitlijning is toch wel het minste. Met zo'n array is dat lastiger dan met 1 led.



Enig idee welk draadje?  De uitlijning kan ik (CNC) laten doen.  De fiberkes zelf zouden in een heel kleine matrix moeten ondergebracht worden en 128 gaatjes perfect uitgelijnd boren...  Daarvoor heb ik het materiaal niet (wel de nodige vrienden die dat materiaal in huis hebben [;)]).
Groetjes, Peter


patrick smout

citaat:


Met een ULN 2803a kan ik 500mA aansturen (= 16 leds op (kortstondig!) 30mA).  Dat worden dus al 2 darlingtonbuffers voor de 32 leds in een rij.  De rijen aansturen via een 74xx374 kan 'slechts' 20 mA per pin 'sourcen'.  4 latches voor telkens 8 leds.  .... Wel heel wat externe hardware...




Bekijk de TLC5916 (of variant) eens. Ook verkrijgbaar via ondermeer mouser in PDIP. Volgens mij is dit wat je nodig hebt. [;)]

http://nl.mouser.com/Search/Refine.aspx?Keyword=TLC5916

mvg,

Patrick Smout
Met vriendelijke groeten,

Patrick Smout