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

Propellor klok software

Pagina: 1
Acties:

  • NjitsSs
  • Registratie: Oktober 2007
  • Laatst online: 22:22
Goedemiddag heren,

Als eindwerk moet ik een propellor klok maken.
Hardwarematig is alles af (spanningsoverdracht, printplaatje...) en werkt ook allemaal.
Nu zit ik echter een beetje in de knoei met de software kant van het geheel.

Momenteel doe ik het zo:
Als de IR fototransistor een interrupt geeft (PCINT0), start ik een timer (Timer1) en laat deze lopen. Bij de volgende interrupt lees ik deze timer uit, en weet ik hoe lang 1 rotatie heeft geduurd.
Door dan deze timer terug op nul te zetten, kan ik in mijn main routine heel de tijd deze timer uitlezen, delen door de totale tijd en dat vermenigvuldigen met het aantal plaatsen dat ik heb in mijn afbeelding-array:
code:
1
2
3
4
5
Do
Positie = Timer1 / Rondetijd
Positie = Positie * 120
Portd = Img(positie)   'Op Portd zitten de leds aangesloten
Loop

De array IMG is gedimd als 120 bytes.
Op de juiste plaatsen in de array plaats ik dan streepjes die de wijzers van de klok voorstellen.

Nu neem ik aan dat dit niet de meest efficiënte manier is om een propellor klok te maken... Heeft er misschien iemand een tip waarmee het beter kan? Ik gebruik een Atmega168 microcontroller, geprogrammeerd in Bascom, met een 16MHz kristal. De tijd wordt bijgehouden door een DS1307.

Alvast bedankt,

Stijn

  • SlinkingAnt
  • Registratie: December 2001
  • Niet online
Een soortgelijk iets gebruik ik in m'n led-fan aansturing (link), ik snap je probleem wel een beetje ;)

Je hebt dus elke 3 graden een 'positie' waarop je kan aansturen. Wat je nodig hebt is hoeveel 'tikken' de timer maakt voor 1 positie. Oftewel, als je een interupt krijgt, lees je de waarde van Timer1 uit, en reset deze.
Vervolgens deze waarde door 120 delen, zoals je zelf al aangeeft.

Het enige wat je hierna moet doen is via een timer-counter-interrupt je ledjes aan/uit schakelen. Hoe je dit gaat doen, moet je zelf uitzoeken ;)

Intel C2Q 9450@3.3 | Gigabyte P35-DS4 | Sapphire R280x | 4x 2GiB PC6400 Kingston DDR2 | 1x Intel 320SSD 240GB | 2x Spinpoint F1 320GiB


  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 15:08
Efficiëntste is wellicht het gebruiken van een synchroonmotor, waardoor je gewoon vaste tijden kan gebruiken in je code, zodra de synchroonmotor op het correct toerental is staat je klok stil. Maar financieel is dat dan wellicht minder interessant.

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.


  • NjitsSs
  • Registratie: Oktober 2007
  • Laatst online: 22:22
Mwa, ik gebruik momenteel wel een kooiankermotor en de methode die ik beschrijf werkt wel (niet optimaal zoals ik zou willen maar bon...), maar ik heb meer vertrouwen in de fotokoppeling methode dan in de vaste tijden...
Toch alvast bedankt voor de suggesties! Mocht er nog iemand tips kwijt willen dan zijn deze meer dan welkom!

  • guus.assmann
  • Registratie: Augustus 2006
  • Laatst online: 27-04-2021
Gebruik Google eens om Bob Blick te vinden.
Hij heeft ook de source code van de klok op zijn website staan.
En je zou ook eens Henk Soubry kunnen benaderen.
Zijn klok werkt ook prima en kan zelfs een tekst laten zien.
Hij is vast wel bereid om de source aan je te sturen.

Guus Assmann


  • ReneK
  • Registratie: Juni 2007
  • Laatst online: 21:38
Voor geinteresseerden:

Hier de link naar Bob Blick (de moeder van alle propellor klokken?):

http://www.bobblick.com/techref/projects/propclock/propclock.html

En hier nog een andere site, met onderaan een heleboel links
naar allerlei propellor klokken:

http://www3.sympatico.ca/surfin.dude/creative/clocks/propclk/blick.html

Hoe heb je trouwens de spanningsoverbrenging gedaan? Sleepcontacten? Lijkt me nog best
lastig dit mechanisch op te lossen.

  • NjitsSs
  • Registratie: Oktober 2007
  • Laatst online: 22:22
Bedankt voor de reacties!

Ik heb al mijn moed bij mekaar geschraapt en heb de Assembly code van Henk Soubry onder de loep genomen. Het was geen gemakkelijke opgave, maar ondertussen krijg ik toch al redelijk wat beeld op m'n propellor. :)

Mijn spanningsoverdracht doe ik met 2 spoelen. De primaire wordt aangestuurd met een H-brug die blokjes maakt op 33kHz.

Iedereen: bedankt voor de links, jullie hebben me aardig wat vooruit geholpen! :)
Pagina: 1