Inhoudsopgave:

Willekeurige DC-motor PWM-experimenten + Encoder-probleemoplossing: 4 stappen
Willekeurige DC-motor PWM-experimenten + Encoder-probleemoplossing: 4 stappen

Video: Willekeurige DC-motor PWM-experimenten + Encoder-probleemoplossing: 4 stappen

Video: Willekeurige DC-motor PWM-experimenten + Encoder-probleemoplossing: 4 stappen
Video: Остановить двигатель постоянного тока на 4000 об / мин менее чем за 1 секунду? 2024, Juli-
Anonim
Willekeurige DC-motor PWM-experimenten + Encoder-probleemoplossing
Willekeurige DC-motor PWM-experimenten + Encoder-probleemoplossing

Er zijn vaak momenten waarop iemands afval de schat van een ander is, en dit was een van die momenten voor mij.

Als je me volgt, weet je waarschijnlijk dat ik een enorm project heb aangenomen om mijn eigen 3D-printer CNC te maken van schroot. Die stukken waren gemaakt van oude printeronderdelen en verschillende stappenmotoren.

Deze printerwagen is afkomstig van een dot-matrixprinter van Texas Instruments uit de jaren 80. Helaas weet ik niet meer wat het model was, maar ik heb wel het motornummer, 994206-0001. Deze DC-motor is ook uitgerust met een encoder, wat handig zou zijn voor moderne toepassingen. In mijn haast om dit geheel te herstellen, heb ik het alleen verwijderd en een foto gemaakt van waar het was aangesloten.

In deze Instructable zal ik proberen te zien of de motor en encoder echt werken en waar de pin-outs voor zijn.

Benodigdheden:

DC-motor met encoder

Arduino UNO, NANO

L298N H-brug

DC Buck-converter

Voeding die geschikt is voor de bijbehorende spanning(en) die u mogelijk nodig heeft (een oude pc-ATX kan een haalbare optie zijn)

Kabels

PC met arduino IDE

Multimeter

Notitieboekje!!

Stap 1: Een snelle blik op de montage

Een snelle blik op de vergadering
Een snelle blik op de vergadering
Een snelle blik op de vergadering
Een snelle blik op de vergadering
Een snelle blik op de vergadering
Een snelle blik op de vergadering

Foto 1 toont de hoofdhelft van het rijtuig. Het was uitgerust met de montage, de motor met de encoder en de rails voor de oude dot-matrix papierinvoer. Ik heb de sporen en een deel van de onderste montage verwijderd. Het onderste stuk dat ik verwijderde was de stalen steunbalk, die eigenlijk best zwaar was (ze lijken ze tegenwoordig niet zo te maken).

Afbeelding twee laat zien waar J8 (de encoderconnector) & en J6 (de motorconnector) van de besturingskaart werden verwijderd. Ik heb er zelf een foto van gemaakt naar school op de sporen en IC's van het 'moederbord'.

Op afbeeldingen 3 en 4 ziet u respectievelijk de motor- en encoderconnectoren.

Nadat ik de sporen op de encoder in kaart had gebracht en het schema had gereproduceerd, kon ik mijn eigen diagram maken dat ik direct beschikbaar had. De pin-out van de encoder was het belangrijkste voor mij om te bepalen en is de focus van dit instructable voor het oplossen van problemen. We zullen dit in de volgende sectie zien.

Stap 2: De encoder-pin-out begrijpen

De encoder-pin-out begrijpen
De encoder-pin-out begrijpen
De encoder-pin-out begrijpen
De encoder-pin-out begrijpen
De encoder-pin-out begrijpen
De encoder-pin-out begrijpen

Nu moet ik uitzoeken wat de pin-out is op de encoder. Ik heb willekeurig pinnen 1 tot en met 8 gemarkeerd en ik beschrijf ze in de laatste foto. Wat ik veronderstel, als ik naar de besturingskaart en de sporen op de encoder zelf kijk, is dat pin 1 en 6 zijn geaard en 5 is Vcc (vermogen, 5V). De aansluiting voor 2 is uitgeschakeld, dus dat is nutteloos en 3, 4, 7 en 8 zijn de uitgangen voor de diode-array. WAARSCHUWING: ik maak een gewaagde veronderstelling met mijn test! Ik heb aarde met aarde verbonden op mijn stroombron, maar dan sluit ik 5 V rechtstreeks aan op de encoder. Vanaf dit hoge niveau kan een spanning je encoder mogelijk vernietigen als je niet weet wat de spanning is die hij nodig heeft (zoals hoe ik het niet wist). Dus misschien wil je beginnen met een lagere spanning zoals 3,3 V. Nadat ik mijn 5 V-voedingsbron heb aangesloten op de encoder-pin 5 en aarde op pin 1, plak ik mijn multimeter-aarde op pin 1 en pin 5 om ervoor te zorgen dat de stroom aanwezig is, foto 2. Dan begin ik met het testen van pin 3, waarvan ik aannam dat het een van de fotodiode-arrays was, foto's 3-5. Zoals je kunt zien, varieert de spanning van bijna 0 V tot bijna 5 V terwijl ik de motoras laat draaien. Dat was een goed teken om te bewijzen dat mijn hypothese juist was! Ik deed hetzelfde voor pinnen 4, 7 en 8 en kreeg dezelfde resultaten. Dus nu heb ik bepaald wat de uitgangspinnen zijn voor mijn encoder.

Je zou hetzelfde kunnen doen met elke optische sensor die je uit een printer haalt waarvan je onderdelen zou kunnen redden, aangezien de meeste geen 8-pins connectoren hebben. Voor moderne thuisprinters lijken het 3- of 4-pins typen te zijn. HomoFaciens heeft een geweldige YouTube-video over het bepalen van een onbekende pin-out voor optische sensoren.

Stap 3: Eenvoudige Arduino-schets voor het heen en weer bewegen van de motor

Eenvoudige Arduino-schets voor het heen en weer bewegen van de motor
Eenvoudige Arduino-schets voor het heen en weer bewegen van de motor
Eenvoudige Arduino-schets voor het heen en weer bewegen van de motor
Eenvoudige Arduino-schets voor het heen en weer bewegen van de motor
Eenvoudige Arduino-schets voor het heen en weer bewegen van de motor
Eenvoudige Arduino-schets voor het heen en weer bewegen van de motor

Nu ik gegevens heb voor de motor-encoder, is het tijd om te zien hoe de motor zelf zal lopen. Om dit te doen, heb ik een heel eenvoudige schets voor de Arduino geschreven, foto's 3 - 5. Ik definieer mijn invoer voor pulsbreedtemodulatie van de L298N als 'enB'. Voor pinnen 3 en 4 heb ik het ingesteld om de motor zo nodig van richting te laten wisselen. Dit zal

A. Zet de motor aan

B. Beweeg 2 seconden in één richting

C. Wissel gedurende 2 seconden van richting, en

D. Herhaal

Ik wil gewoon de set-up en functionaliteit testen en dit bleek succesvol (na het veranderen van de puls van 50 naar 100, zie foto hierboven).

De volgende schets verhoogt de versnelling, foto's 6 - 8. Ik start PWM vanaf 100 (zoals bepaald vanaf de eerste schetsrun) en versnel naar 255. Dit zal

A. Versnel pin 3 (CW-richting) van 100 naar 255 op PWM gedurende 0,1 seconde

B. Vertraag van 255 naar 100 gedurende 0,1 seconde

C. Wissel richting, pin 4 (CCW)

D. Versnellen/vertragen, hetzelfde als pin 3

E. herhalen

Dit proces is (soort van) te zien op de laatste foto, maar raadpleeg de video voor een beter beeld.

Deze basisschetsen kunnen ook worden aangepast aan uw gelijkstroommotor. Ik denk dat veel mensen dit type schets gebruiken voor het besturen van robots of een ander soort rollend apparaat. Ik wilde alleen de werking verifiëren en voor mezelf een beter begrip krijgen of deze motor wel of niet zal draaien.

Stap 4: Laatste gedachten (voor nu)

Dit is waar ik zou zeggen, fase 1 is voltooid.

Ik weet dat de encoder werkt en dat de motor met PWM op de Arduino zal draaien.

Het volgende voor mijn ultieme toepassing zou zijn om:

1. Bepaal de puls per omwenteling (PPR) van de encoder voor zijn A & B-pad, Top & Bottom. Ik weet zeker dat er ergens een schets is waar ik mijn PWM zou kunnen uitvoeren samen met een teller voor encoderpulsen, CW & CCW, maar ik moet er nog een vinden. (Alle opmerkingen over waar een Arduino-schets te vinden is, worden zeer op prijs gesteld!)

2. Bepaal hoe deze DC-motor/encoder op GRBL moet worden bediend en kalibreer onvermijdelijk de assen. (Nogmaals, geef commentaar als je het ergens weet) Ik zou dit graag willen doen met een door Microsoft uitgevoerde laptop. Ik heb er een paar gevonden die Linux gebruiken, maar dat zal me niet helpen.

3. Ontwerp de machine om te werken als onderdeel van een hele CNC.

Alle gedachten voor dit doel zijn zeker aan te raden als je ze in de comments wilt achterlaten. Bedankt voor het kijken en ik hoop dat dit iemand helpt/inspireert.

Aanbevolen: