6 x 7-segmenten klok

Dag iedereen,

Ik wil graag een klok maken waarbij uren minuten en seconden weergegeven worden (HH:MM:SS) na hééél lang zoeken kwam ik terecht op deze site: http://www.blueroomelectronics.com/Dragonfly.htm
het schema kan hier gevonden worden: http://www.blueroomelectronics.com/downloads/Dragonfly%20Assembly%20In…
nu vroeg ik me enkel af of dit een goed schema was en waarvoor de drukknoppen dienen?
Er zijn veel schema's van klokken te vinden, maar er zijn er maar weinig waarbij ook de seconden weergegeven worden.

bvd

Eerst waren het atomen, dan waren het protonen, neutronen, elektronen, nog later waren het quarks en nu blijken het snaren te zijn...

Ik vermoed dat de I/O pinnen A5-6 en B0-5 deels als uitgang en deels als ingang gebruikt worden. In het programma van de PIC zullen deze dan als ingang geconfigureerd worden samen met interne pullups. Wanneer je dan op de toetsen drukt komen de ingangen aan massa te liggen. De functie van de knoppen zal dus in het programma verduidelijkt zijn.
[edit]lukt mij niet zo goed om scheef naar een schema te kijken :)[/edit]

True story bro!

Even het .asm bestand lezen?

code:


;** Button (1) Hours+1, (3) Minutes+1, (5) Seconds+1
;** Button (6) increments Resets Seconds to zero & holds clock
klein is fijn

Moderator

Op 17 januari 2009 15:45:52 schreef eagle987:
nu vroeg ik me enkel af of dit een goed schema was en waarvoor de drukknoppen dienen?

;** Button (1) Hours+1, (3) Minutes+1, (5) Seconds+1
;** Button (6) resets Seconds to zero & holds clock till released

van programmeren kannek nog niks dus had ik ook niet direct behoefte om in die code te gaan snuffelen, misschien moetek dat toch eens beginnen doen :)

Eerst waren het atomen, dan waren het protonen, neutronen, elektronen, nog later waren het quarks en nu blijken het snaren te zijn...

is het moeilijk om het programma te veranderen zodanig dat digit 5 omgekeerd geplaatst moet worden en dat het punt oplicht, zodanig dat er tussen uur, minuten en seconden telkens een dubbele punt is (HH:MM:SS). digit 3 is al omgekeerd maar ik weet niet of dit ook opgenomen is in het programma. Alsook vroeg ik me af of de dubbele punt knippert of niet?

alvast bedankt

edit: niemand? :'(

Eerst waren het atomen, dan waren het protonen, neutronen, elektronen, nog later waren het quarks en nu blijken het snaren te zijn...

ondertussen is er al wat verandert :D
ik ben begonnen met me te verdiepen in pic's en heb de pickit2 van microchip gekocht, een eerste experiment werkt al zeer goed (men frequentiemeter op men functiegenerator programmeren, het was wel maar al te simpel aangezien ik de hex file al had :))
daarom zou ik om het programmeren wat beter te leren zelf een klok willen programmeren, ik had gedacht om dit met mplab te doen en gebruik te maken van de pic16F628
nu vroeg ik me enkel af of deze pic genoeg uitgangen had om dit te doen en of er ergens goeie boeken zijn (of sites) om de basisinstructies te leren die ik nodig heb om eraan te beginnen
het is wel de bedoeling dat uren, minuten en seconden weergegeven worden
grofweg had ik gedacht aan 14 uitgangen (voor de sturing van de 7-segmenten leds) en 2 ingangen (voor de voeding van de pic) klopt dit?

bvd

[Bericht gewijzigd door eagle987 op zondag 8 februari 2009 18:12:25 (15%)

Eerst waren het atomen, dan waren het protonen, neutronen, elektronen, nog later waren het quarks en nu blijken het snaren te zijn...

Begin rustig, niet meteen teveel willen.
Lees eerst eens de PIC cursus:
www.picbasic.nl/beginners1.htm

Hierna kun je (met behulp van dit fantastische Circuits Online forum) proberen de klok te bouwen.

Ohm sweet Ohm | www.picbasic.nl

Mooie site Frits :)
'k heb de cursus doorlezen en dit is wat ik er van gemaakt heb:

code:

DEVICE 16F628A                ;De 16F628A wordt gebruikt
CONFIG WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF, HS_OSC 
ALL_DIGITAL TRUE              ;Alle ingangen digitaal
XTAL 20                       ;Kristal van 20MHz

SYMBOL num = PORTB            ;B poorten noemen nu num

DIM Sec     AS BYTE   	       ;Maak variabele LedTeller aan
DIM Min     AS BYTE   	       ;Maak variabele LedTeller aan
DIM Hrs     AS BYTE           ;Maak variabele LedTeller aan

CLEAR
;        76543210
PORTA = %00000000             ;PIC opstarten met alle PORTA poorten laag
TRISA = %11111011             ;Maak PORTA.2 uitgang voor LED aansturing


;Hoofdprogramma
Opnieuw:

WHILE 1 = 1                   ;Oneindige lus
  WHILE Sec < 59
 	INC Sec + 1	       ;Sec + 1
 	DELAYMS 1000	       ;per seconde
  WEND
	IF Sec = 60 THEN     ;om de 60 sec min + 1
	INC Min
	IF Min = 60 THEN 	;om de 60 min hrs + 1
	INC Hrs
	IF Sec = 60 THEN 
	CLEAR Sec	
	IF Min = 60 THEN 
	CLEAR Min	
	IF Hrs = 24 THEN 
	CLEAR Hrs	
  GOTO Opnieuw
WEND

END

Nu enkel nog de getallen vormen en de link leggen naar het 7-segmentendisplay, maar hoe kan ik multiplexen in picbasic?

Eerst waren het atomen, dan waren het protonen, neutronen, elektronen, nog later waren het quarks en nu blijken het snaren te zijn...

Ik ben van plan om grote segmenten te gebruiken (10 cm, groen)
zou het dan mogelijk zijn om ze op deze manier te sturen?
Als Q1 en Q2 hoog zijn brandt (in dit geval) A, Q2 is er om de segmenten te kunnen multiplexen
http://img5.imageshack.us/img5/7702/kloksturing.png
Aangezien de mogelijkheid om met batterijen te voeden bij dit soort segmenten wegvalt zou ik graag gebruikmaken van de netfrequentie om de schakeling stabiel te maken. Zou ik dit dan zo kunnen doen?

Dim teller AS BYTE
SYMBOL sec = PORT???
SYMBOL net = PORT???

IF net = HIGH THEN INC teller
IF teller = 100 THEN INC sec

Eerst waren het atomen, dan waren het protonen, neutronen, elektronen, nog later waren het quarks en nu blijken het snaren te zijn...
Turbokeu

Golden Member

1. De segmenten van 10cm of 5" displays bestaan uit (meestal) vijf LED's in serie, dus met 5V voedingspanning kom je er niet.
Afhankelijk van de kleur heb je, met wat reserve voor serieweerstand en spanningsval over de drivers, minstens zo'n 12V (groen) à 22VDC (blauw en wit) nodig om de displays aan te sturen.

2. Q1 zal niet werken met 5V logische aansturing, daarvoor heb je een 'high side driver' nodig zoals de schakeling rond T1-T2 in volgend schema.

http://www.turbokeu.com/myprojects/flowmeter/flowmeter1.gif

Vergeet een weerstand (10-tal K) in de basis van T1 niet (in bovenstaand schema reeds ingebouwd in de 74C925).

I love watching conspiracy theorists use the airtight logic of the argument from incredulity: "Well I don't understand how it works so it can't be real!!!"

wat die spanning betreft, daar had ik zelf nog niet erg op gelet maar kan eenvoudig aangepast worden. Waarschijnlijk zal ik 12V nemen met 460R voor de segmenten a tot g en voor dp neem ik 1k (DP is maar 1 LED). (http://www.leds-buy.nl/segment-display-groen-p-304.html)
Ik vraag me enkel af waarom de voorgestelde aansturing niet zou werken?
Als ik nu nog een weerstand van 10K aan de basis zou hangen van Q1 en Q2 dan kan er stroom vloeien als de basis hoog is t.o.v. de emitter, als ik die 2 basissen aanstuur met een microcontroller kan ik toch ook de segmenten aansturen?

het schema zelf moet nog aangepast worden maar het programma is geschreven, hopelijk zitten er geen fouten meer in, maar ik vrees ervoor
Zou iemand alvast eens willen kijken of hij ergens fouten ziet?
http://www.uploadarchief.net/files/download/klok%20programma.doc
ik gebruik de netfrequentie om per seconde een seconde erbij te tellen, nu vroeg ik me enkel af (aangezien we hier met dubbel tarief zitten) of de puls die ze 'savonds en 'sochtens geven hier geen invloed zal op hebben?

Lees http://www.circuitsonline.net/forum/faq#topickicks eens!

[Bericht gewijzigd door Henry S. op maandag 23 februari 2009 18:28:58 (33%)

Eerst waren het atomen, dan waren het protonen, neutronen, elektronen, nog later waren het quarks en nu blijken het snaren te zijn...

Oeps khad er niet op gelet van die topickicks, sorry daarvoor

Weet er iemand hoe ik Op men microcontroller 2 programma's tegelijk kan laten lopen?
Ik moet een apart circuitje hebben dat elke seconde er een seconde bijtelt, anders loopt de klok achter doordat het programma doorlopen ook z'n tijd nodig heeft, om dit te voorkomen zou de pic dus 2 programma's tegelijk moeten kunnen laten draaien.
Zou er hiervoor een andere oplossing zijn? Ik las al veel over interrupts maar hoe dat precies in elkaar zit en wat het doet weet ik nog niet (ik werk met picbasic)

alvast bedankt

Eerst waren het atomen, dan waren het protonen, neutronen, elektronen, nog later waren het quarks en nu blijken het snaren te zijn...

voila de finale versie is af: http://www.uploadarchief.net/files/download/klok%20prog.doc (hopelijk is alles juist :))
Is er iemand die weet hoelang het zo duurt voor een programma is doorlopen? Dan kan ik dit incalculeren in het programma zodat hij 99,99% juist loopt

mvg

Eerst waren het atomen, dan waren het protonen, neutronen, elektronen, nog later waren het quarks en nu blijken het snaren te zijn...
Henry S.

Moderator

Sinds wanneer is een stuk broncode in .doc formaat? Je kan toch gewoon de .bas file uploaden...

Sorry, maar dit is geen klok, eerder een teller die een klok na-aapt. Deze krijg je nooit gelijk lopend.

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.
klein is fijn

Moderator

Sorry, maar dit is een van de smerigere codes die ik ooit gezien heb.. En dan is PIC basic nog geeneens mijn standaard taal!

7 segments los je op met een lookup table. Gewoon 1 (!) lookup table, die decimal punten kan je simpel later met 4 ASM instructie aanzetten. De 6 digits sla je op in een array van 6 bytes. Het enige dat de mainloop hoeft te doen is 4 bits manipuleren om de punten aan te zetten en het spul op het scherm zetten in een eindeloze loop. Kost nog geen 15 regels code.

Klokken bouw je met timers, niet met loops.
Timing en knoppen doe je in interrupts, mainloop hoeft alleen maar display te updaten.
Als je Clear hebt neergezet hoe je niet NOG een keer alles handmatig op 0 te zetten..
Plus nog een sloot dingen..

[Bericht gewijzigd door klein is fijn op donderdag 26 februari 2009 02:11:23 (71%)

Dat van die interrupts heb ik al dikwijls gelezen, maar jammer genoeg wordt er nooit uitgelegd wat ze doen en hoe je ze dient te programmeren, op picbasic.nl vond ik hier ook niks van terug. Zijn er andere sites waar het gebruik van interrupts in picbasic wordt uitgelegd?

e/
op http://www.picbasic.nl/frameload.htm?http://www.picbasic.nl/interrupt_… heb ik dan toch nog iets gevonden :)
dan kan ik nu de klok herprogrammeren, van die lookup table heb ik er wel 2 nodig aangezien ik enkele segmenten omgekeerd ga zetten om zo de : te krijgen tussen HH:MM:SS

Eerst waren het atomen, dan waren het protonen, neutronen, elektronen, nog later waren het quarks en nu blijken het snaren te zijn...
klein is fijn

Moderator

Op 26 februari 2009 10:58:45 schreef eagle987:
van die lookup table heb ik er wel 2 nodig aangezien ik enkele segmenten omgekeerd ga zetten om zo de : te krijgen tussen HH:MM:SS

Heb je m'n post uberhaupt wel gelezen?

Iets met BSF en asm / endasm..

Er begint al vorm in te komen, ik vraag me enkel nog 1 ding af, m'n segmenten moeten sowieso gemultiplext worden zonder onderbreking, als ik dan elke seconde er een seconde wil bij hebben zou ik daar ook nog een klein progje voor moeten hebben
dus zowel het progje van de multiplexing als dat van de tijdsbasis moeten continu draaien, maar een pic kan toch maar 1 ding tegelijk doen? hoe doe ik dit dan?
kan je dit ook oplossen met interrupts?
alsook vraag ik me af of er iemand een voorbeeld heeft waarin een timer interrupt gebruikt wordt (t0if) zodat ik kan zien hoe dat juist geprogrammeerd moet worden

bvd

Eerst waren het atomen, dan waren het protonen, neutronen, elektronen, nog later waren het quarks en nu blijken het snaren te zijn...

Ik gebruik zelf de SAA1064 voor dit soort werk.
Je kan max 4 7segment displays aan 1 SAA1064 hangen, het hele mp'xen doe hij zelf, en kan zelfs ook de helderheid regelen..
Aansturen via i2c en gaan met die banaan :)

marcob

Golden Member

tip: Maak eerst een klok op een lcd schermpje, zodra het je lukt om deze een etmaal (liefst langer) redelijk op tijd laat lopen dan zit je goed.
Het volgende project wordt een teller op een 4x 7 segment display.

Heb je dit werkend, ga je het proberen samen te voegen.

People tend to overestimate what can be done in one year and to underestimate what can be done in five or ten years

jawel zeker 10 x doorlezen maar de termen zijn mij te onbekend om zinnig te antwoorden :)

Eerst waren het atomen, dan waren het protonen, neutronen, elektronen, nog later waren het quarks en nu blijken het snaren te zijn...
klein is fijn

Moderator

En het is ook niet bij je opgekomen om eens naar die termen te zoeken op het internet?