Inhoudsopgave:

DIY roterende encoder: 4 stappen
DIY roterende encoder: 4 stappen

Video: DIY roterende encoder: 4 stappen

Video: DIY roterende encoder: 4 stappen
Video: Переработка энкодера колеса прокрутки мыши и его тестирование с помощью Arduino Nano 2024, Juli-
Anonim
DIY roterende encoder
DIY roterende encoder

Sorry voor het gebrek aan foto's, ik heb pas besloten om hier een tutorial over te maken toen ik er bijna klaar mee was.

Overzicht:

Roterende encoders gebruiken twee of meer sensoren om de positie, draairichting, snelheid en het aantal omwentelingen dat het apparaat heeft gedraaid te detecteren. Deze specifieke maakt gebruik van hall-effectsensoren en magneten. Dit specifieke type kan eenvoudig waterdicht worden gemaakt door de sensoren in te kapselen of op een andere manier waterdicht te maken. Hall-effect roterende encoders met een bepaalde smaak worden in sommige voertuigen gebruikt voor zowel de wielsnelheidssensor als de krukaspositiesensor voor de motor, en wordt ook gebruikt in sommige windmeters. Er zijn drie hoofdtypen roterende encoders:

1. Elektrisch, met behulp van geleidende sporen en borstels

2. Optisch, met behulp van een licht en sensor

3. Magnetisch, gebruikmakend van een soort magnetische sensor en een magnetisch materiaal, zoals hall-effectsensoren en magneten. Het eigenlijke roterende deel kan ook worden gemagnetiseerd.

en.wikipedia.org/wiki/Rotary_encoder

Een lineaire encoder kan op vrijwel dezelfde manier worden gemaakt als een roterende encoder.

Ik heb de encoder die ik heb gemaakt tot ~ 1500 RPM getest met de python-code op een raspberry pi. Een link voor de code en het schema staat aan het einde. De specificaties van de fabrikant op de boormachine die ik gebruikte om het te testen, zeiden een maximale snelheid van 1500 RPM en de snelheid die ik kreeg was ~1487 RPM van de encoder, zowel vooruit als ~1485 achteruit. Dit kan komen doordat de batterij niet volledig is opgeladen of de slechte timing die inherent is aan raspberry pi's. Een Arduino zou beter zijn om te gebruiken, maar degene die ik had hield niet van 12v op de analoge pin haha oeps.

Materialen/Gereedschappen:

1. Een roterend ding (ik gebruikte een boorkop van een elektrische boormachine)

2. Twee of meer hall-effectsensoren (afhankelijk van de resolutie die u nastreeft)

3. Vier magneten (afhankelijk van de resolutie die je nastreeft)

4. Lijm

5. Draad (ik gebruikte een paar connectoren van een aantal kapotte servo's die ik had)

6. Soldeer

7. Soldeerbout

8. Krimpkous, isolatietape of ander isolerend materiaal voor draden, naar jouw smaak

9. Markeerapparaat zoals een marker of een afschrijver

Stap 1: Lijm de magneten op

Lijm de magneten op
Lijm de magneten op
Lijm de magneten op
Lijm de magneten op

Stap 1: Markeer gelijke punten rond de buitenkant van het draaiende deel en lijm de magneten in de juiste richting op deze punten. Het helpt om de polariteit van de magneten te markeren. In mijn geval was het elke 90 graden (0, 90, 180 en 270 graden) voor een resolutie van 4/rotatie, wat meer dan genoeg was voor mijn toepassing, maar het kan voor jou anders zijn, afhankelijk van de resolutie die je fotografeert voor. Een goede manier om de afstand te berekenen is: (360 graden/aantal magneten) als je in graden gaat, of (omtrek/aantal magneten) als je gaat meten. In mijn geval waren de pallen voor de handgreep al vrij goed uit elkaar geplaatst voor mijn toepassing, dus ik hoefde niets te meten.

Stap 2: Sluit de sensoren aan

Bedrading van de sensoren
Bedrading van de sensoren

Soldeer draden op de sensoren, isoleer en krimp ze door warmte. Zorg ervoor dat u de sensor niet te heet krijgt en test hem om te zien of hij nog werkt nadat u klaar bent. Het testen is eenvoudig, sluit gewoon de stroom aan en sluit een LED aan op de signaaldraad. Als de LED aangaat wanneer een magneet met de juiste oriëntatie ernaast wordt gebracht en uitgaat wanneer deze wordt weggetrokken (niet-vergrendelend type), of de tegenovergestelde pool van de magneet wordt toegepast (vergrendelend type), dan is het goed om Gaan. De specifieke sensor die ik heb gebruikt, is niet-vergrendelend en maakt verbinding met aarde (-) wanneer deze wordt geactiveerd.

Stap 3: Markeer voor de sensoren

Image
Image
Lijm de sensoren op
Lijm de sensoren op

Maak markeringen waar de sensoren moeten komen. Voor deze specifieke opstelling was dit op 1/16e delen van de omtrek (0, 1/16e). De reden hiervoor is dat de ene sensor voor de andere moet vuren, maar op een manier dat de controller de timingverschillen tussen vooruit en achteruit kan onderscheiden. Ik probeerde het oorspronkelijk op de 1/8e markering, maar ik kon niet zeggen in welke richting het ging omdat de timingverschillen hetzelfde waren. Het helpt om de sensoren tijdelijk vast te plakken totdat u de juiste positionering hebt en vervolgens de markeringen te maken. Je zou de 1/8e divisie kunnen doen, je hebt geen richtingsdetectie, maar je hebt een dubbele resolutie. Een ding dat gedaan zou kunnen worden is een tweede set van twee sensoren te gebruiken die verschoven zijn met 1/8e delingsafstand aan de andere kant bij de 5/16e en 7/16e divisie van de andere sensoren om een resolutie van 16 pulsen/draai te krijgen, maar Ik had die goede resolutie niet nodig. Een timing demonstratie is in de video.

Stap 4: Lijm de sensoren op

Lijm de sensoren op
Lijm de sensoren op

Lijm de sensoren op de markeringen en plak ze op hun plaats totdat de lijm is uitgehard. Zorg ervoor dat er ruimte tussen de magneten en de sensoren blijft zodat ze elkaar niet raken en zorg er ook voor dat de sensoren zijn uitgelijnd met de magneten en in de juiste richting. Wacht tot de lijm droog is en je bent klaar.

Om het schema en de python-code voor een raspberry pi te krijgen om de rotatiesnelheid in RPM, de draairichting en het aantal beurten te meten, ga hier, en om de PDF hiervoor te krijgen, ga hier of hier.

De reden dat ik de code in rekening breng, is dat het ~ 4 dagen duurde om alles goed te laten werken, terwijl de rest van het project, inclusief alle documentatie, slechts ~ 7 uur duurde (waarvan 5 de documentatie was), bovendien $ 1 is niet veel en het helpt bij het ondersteunen van grotere en complexere projecten, in feite is dit het enige project waarvoor ik nog iets in rekening heb gebracht, op het moment dat dit werd gepost natuurlijk.

Aanbevolen: