Hoi,

Ik wil graag met een tandriem met een slede erop, een lineaire verticale beweging van +/- 500 mm uitvoeren. Het homen van de slede wil ik gaan doen met een microswitch, dit lijkt me de simpelste manier en een positioneer nauwkeurigheid van +/- 1 tot 2mm is voldoende. De aandrijving wordt waarschijnlijk een 24V motor of een drie-fasen motor. Mijn vraag is nu of ik met een infraroodsensor die ik de tanden van de (fijngetande) riem laat detecteren, de afgelegde weg van de slede kan bepalen met behulp van de ingebouwde counter van een Atmel microcontroller (bv ATMega)? Dus kan deze de "pulsen" van de infraroodsensor tellen? Andere adviezen zijn ook altijd welkom.

De meeste ATmega's hebben een TO-ingang, waarmee je een interne teller kan klokken. Bij overfow van die teller kan een interrupt-routine een variabele met 1 verhogen, zodat geen telpuls verloren gaat.
Daarnaast kan je de interne teller zowel op- of af laten tellen. Wat wil je nog meer?

[Correctie]
Ik ben wat al te geestdriftig geweest, vrees ik. Met de ATmega88 als voorbeeld zie ik, dat de teller in "normal mode" enkel optelt. Dat valt echter softwarematig op te lossen.
Je kan ook een interrupt-pin gebruiken als teller-ingang. De bijbehorende ISR kan dan het telwerk op zich nemen.

[Bericht gewijzigd door pros op (10%)]

Bedankt voor de snelle reactie. Dus met een ATMega met 16-bits teller kan ik 65536 pulsen laten tellen, voordat ik met interrupts moet gaan werken? Met als pulsen het signaal van een ("snelle") infraroodsensor die de tanden detecteert?
En wat betreft de aandrijving, een 24V motor aangestuurd door de ATMega m.b.v een solid state relais voor aandrijving van de tandwielen lijkt me een betere oplossing dan een driefasenmotor, of is een driefasenmotor ook redelijk eenvoudig aan te sturen met een ATMega?

[Aanvulling]
In principe hoef ik alleen de heengaande beweging te positioneren dus terugtellen is niet echt vereist aangezien ik de slede bij een bepaalde eindwaarde van de teller terug kan sturen naar het homing-punt.

[Bericht gewijzigd door m-i-k-e op (18%)]

Let er wel op, dat enkel de grotere 'megas (ATmega32 bv.) een 16-bit teller hebben die over een externe klok-ingang beschikt. Bij de ATmega88 is dat enkel een 8-bit teller.

Wat de motor betreft: wil je ook diens snelheid regelen? Met een seriemotor is dat eenvoudig: je knijpt z'n voedingsspanning af met behulp van een PWM-regeling. Bij driefasenmotors moet je de frequentie regelen, hetgeen niet zo eenvoudig is.
Als het enkel een ON/OFF-sturing moet zijn, heeft de driefasenmotor het voordeel dat je geen hinder hebt van koolborstels. Het omkeren van de draairichting is bij beiden eenvoudig.