Binaire klok

Arduino specifieke Software
Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Binaire klok

Berichtdoor nicoverduin » 29 Okt 2013, 20:53

Nou ik vrees dat er van dat schema toch nog een gemaakt moet worden waarin alle draden doorgetrokken zijn en niet allemaal met netlabels. Dan zie je hoe het verloop is en kun je bepalen of er niet een alternatief is. Alleen ik ga die plaat niet voor je maken :)
Alternatief is zelf een andere bedrading maken (je hebt volgens mij pinnen genoeg en dan wat meer recht toe recht aan.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Advertisement

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: Binaire klok

Berichtdoor Rudi » 01 Nov 2013, 13:06

Ik heb het boeltje ook eens op een breadboard nagemaakt en krijg hetzelfde resultaat. Weliswaar met de Leonardo maar dat maakt hier niets uit.
Ghosting van de ledjes kan verminderd worden door de LEDRefreshRate waarde te verhogen naar 10 of 15 maar dan knippert de boel als gek zoals was te verwachten.

Verder heb ik het led schema uitgetekend, daar is niets fout mee. De Fritzing tekening van de maker vertoont wel een foutje (verbinding naar kathode van de tweede groene led klopt niet) maar op zijn breadboard foto's is het correct.

Ik heb zo een vermoeden dat er teveel tijd verloren gaat in de functie LightLED.
Snelheid kan je winnen door onmiddellijk de poortregisters aan te spreken, dus niet via digitalWrite() functie (zie o.a. PortManipulation ).

Een tijdje geleden had ik het LoL shield nagebouwd (lees hier en hier). Dat shield heeft 126 gecharlieplexte leds. Daar heb ik geen last van ghosting maar sommigen die het shield hadden gekocht dan weer wel. De software maakt gebruik van een library die o.a. de poortregisters rechtstreeks stuurt.

Al bij al ben ik niet zo'n grote fan van Charlieplexing maar is het een mooie oplossing als je weinig poorten ter beschikking hebt.

Oh, en dit las ik ook nog ergens, voor wat het waard is:
Third, in a charlieplexed array, every pin that's not actively doing something is still hooked up to the LEDs through a weak ("high impedance") connection. And while the connection is weak, it's nonzero. Suppose that you have 25 I/O pins connected to a grid of LEDs. If you light one LED-- taking one of those 25 lines high and one of those 25 lines low, that leaves 23 high-impedance lines. Each place that the high I/O line goes through an LED to a neutral line, there's some possibility to leak current. Not much. Maybe a microamp here or there. But with modern, efficient LEDs, that's often enough to create visible ghosting.
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Binaire klok

Berichtdoor nicoverduin » 01 Nov 2013, 15:17

JE kan ook nog beter gaan spelen met een paar schuifregisters. Die kosten geen drol en voor je het weet heb je er zo een bak poorten bij via I2C
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 21
Geregistreerd: 27 Feb 2013, 15:17

Re: Binaire klok

Berichtdoor Dedier » 01 Nov 2013, 17:00

Rudi bedankt voor deze handige tip. Ik had ook gespeeld met de LEDRefreshRate, maar zoals jij ook al zei dan knippert alles als een gek.
Maar het zou best wel kunnen dat LightLED gewoon een te langzame functie is. Maar ik snap niet helemaal hoe je dat kan doen met PortManipulation. Want dan moet je die hele funtie veranderen toch omdat je iedere keer weer een andere poort als input, output wilt hebben. Of zie ik dit nu verkeerd?

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: Binaire klok

Berichtdoor Rudi » 01 Nov 2013, 20:46

Dan zal je inderdaad wat moeten wijzigen in de sketch.
Voor je daar zou aan beginnen zal je je eerst dieper in deze materie moeten verdiepen om het goed te begrijpen alvorens aan het programmeren te gaan.
Zoals Nico aangeeft kan je beter met enkele schuifregisters werken om extra uitgangen te verkrijgen. Iedere uitgang stuurt dan 1 ledje aan. Ook dan zal je sowieso de sketch moeten aanpassen.
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Binaire klok

Berichtdoor nicoverduin » 01 Nov 2013, 20:52

Rudi schreef:Zoals Nico aangeeft kan je beter met enkele schuifregisters werken om extra uitgangen te verkrijgen. Iedere uitgang stuurt dan 1 ledje aan. Ook dan zal je sowieso de sketch moeten aanpassen.

En wordt je code veel overzichtelijker..... eenvoudiger.....
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: Binaire klok

Berichtdoor Rudi » 02 Nov 2013, 09:00

Een ander alternatief zou de digitalWriteFast library kunnen zijn?
Heb niet dadelijk de tijd om uit te proberen maar ik denk dat de sketch dan eenvoudig kan aangepast worden.
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Berichten: 21
Geregistreerd: 27 Feb 2013, 15:17

Re: Binaire klok

Berichtdoor Dedier » 02 Nov 2013, 15:38

Ik heb zojuist geprobeerd de digitalWriteFast library toe te passen. Maar helaas heeft dit niet gewerkt (bij mij teminste) het zou kunnen zijn dat ik deze fout heb toegepast. Maar ik denk het eerlijk gezegd niet. Wat er nu gebeurde is dat alle "gosht lights" nog veller aan gingen dan dat ze van te voren al deden. Ik ben bang dat charlyplexen geen succes is voor dit project. Dus ik denk dat het dan overstappen op schuifregisters wordt. Tenzij iemand nog een plan van aanpak heeft ;).

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Binaire klok

Berichtdoor shooter » 09 Nov 2013, 00:32

toch maar even reageren op dat charlieplexen
je speelt met xpoorten en ypoorten als je een poort verzet dan gaat er een ghostledje heel even aan omdat het even duurt voordat je de andere poort goed zet.
kun je voorkomen door eerst alle sources uit tezetten, dan de sinks verzetten en dan weer de sourcepoort weer aanzetten. dat vraagt echter wel een extra stap voor het uitzetten, maar het helpt wel.
paul deelen
shooter@home.nl

Vorige

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 15 gasten