Tachometer til drejebænk
Efter mange mislykkedes forsøg, har jeg nu endelig en løsning, som virker tilfredsstillende - i hvertfald til den installeres i det støjfyldte miljø på værkstedet.
Tachometeret er bygget op omkring en PIC16F628, og det er mit første projekt, hvor jeg anvender microcontroler. Det er utroligt, at det kan gøres med så få komponenter - specielt med min første konstruktion in mente - den var lavet med 74XX og fuldstændig ubrugelig pga. støjproblemer..
Udlæsningen foregår via en 4 X 7-segment LED med multiplexing på de 4 cifrer - det er dog ikke vist på diagrammet her.
Programmet til processoren er bygget vha. FlowCode, hvor man tegner et flowchart, og så genereres koden automa-tisk - genialt for en novice på området !
Tachometeret er bygget op omkring en PIC16F628, og det er mit første projekt, hvor jeg anvender microcontroler. Det er utroligt, at det kan gøres med så få komponenter - specielt med min første konstruktion in mente - den var lavet med 74XX og fuldstændig ubrugelig pga. støjproblemer..
Udlæsningen foregår via en 4 X 7-segment LED med multiplexing på de 4 cifrer - det er dog ikke vist på diagrammet her.
Programmet til processoren er bygget vha. FlowCode, hvor man tegner et flowchart, og så genereres koden automa-tisk - genialt for en novice på området !
En omskifter, S1, anvendes til at skifte mellem en simpel tæller og et tachometer. Når opstillingen virker som tæller, kan, S2, anvendes til at fryse displayet, medens tælleren tæller videre, og holdes S2 nede tilstrækkelig længe, nulstil-les tælleren.
Lige før nulstilling blinker displayet kraftigt, så man kan må at slippe, hvis der alligevel ikke skal nulstilles.
Hvis signalet til tachometeret overskrider det maksimale måleområde, viser displayet ordet FEJL, og S2 anvendes i så fald til at resette denne fejl-visning.
Jeg har monteret en induktiv føler i gearkassen på drejebænken, hvor den nu i et år har siddet i det oliemættede miljø. Hvis den ikke har taget skade, skal jeg have monteret resten og lavet en test - men det bliver nok ikke før vinteren 2011/12.
Lige før nulstilling blinker displayet kraftigt, så man kan må at slippe, hvis der alligevel ikke skal nulstilles.
Hvis signalet til tachometeret overskrider det maksimale måleområde, viser displayet ordet FEJL, og S2 anvendes i så fald til at resette denne fejl-visning.
Jeg har monteret en induktiv føler i gearkassen på drejebænken, hvor den nu i et år har siddet i det oliemættede miljø. Hvis den ikke har taget skade, skal jeg have monteret resten og lavet en test - men det bliver nok ikke før vinteren 2011/12.
FlowChart for hovedprogrammet

Der er brugt en del makroer, men det vises med symbolerne.
Her testes på, om der er indstillet til TÆLLER eller RPM
Den venstre gren (No) er så for TÆLLER-delen, og den højre gren (Yes) er for RPM-delen.
Her testes på, om der er indstillet til TÆLLER eller RPM
Den venstre gren (No) er så for TÆLLER-delen, og den højre gren (Yes) er for RPM-delen.
Flowchart for TÆLLER-delen - selve tælleren

Den består igen af en del makroer, og skal teste på, om displayet skal fryses eller det skal nulstilles.
Flowchart til UpdateDisplay

Opdatering af displayet sker ét ciffer af gangen, og først beregnes de enkelt cifre i en makro, hvorefter de beregnede cifre opdateres i selve displayet - igen med makroer.
Beregning af de enkelte cifre

Ved et dobbeltklik på symbolet i flowchartet vises nærmere enkeltheder vedr. det pågældende symbol - her selv formlerne, der er anvendt til beregning af de enkelte cifre.
Opdatering af cifrene

En parameter bestemmer, hvilket af de 4 cifrer, der skal opdateres, og opdateringen foretages herefter på det pågældende ciffer.
Flowchart for RPM-delen

Denne gren af flowchartet vedr. RPM-delen, og består igen af en del makroer, som specificeres efterfølgende.
Ideen er, at de indkommende impulser optælles i en tidsperiode, som bestemmes af en timer (TMR0).
Tidsperioden og det optalte antal pulser, kan herefter bruges til beregning af RPM, som så vises i displayet.
Ideen er, at de indkommende impulser optælles i en tidsperiode, som bestemmes af en timer (TMR0).
Tidsperioden og det optalte antal pulser, kan herefter bruges til beregning af RPM, som så vises i displayet.