Een beginnersgids voor Arduino (13 / 15 stap)

Stap 13: Rijden motoren


Gelijkstroommotoren

Met de technieken uitgelegd in de vorige stap, kunt u alleen de motor in één richting draaien. Als u wilt wijzigen de richting, moet u een H-brug (ook wel een volledige brug genoemd). Het bestaat uit 2 NPN en 2 PNP transistors, of 2 N-kanaal en 2 P-kanaal FETs.

Neem een kijkje op de afbeelding voor een typische MOSFET H-brug-circuit.

Opmerking: u kunt niet alleen vervangen de MOSFETs in dit schema door transistoren: Transistors huidigemoeten baseren, FETs moeten poort spanning.

Kom te weten hoe dit circuit werkt:

We noemen de linker input input A, en de juiste is input B.

Wanneer de input A slinkt, voeren transistor Q1 niet. Dit betekent dat de poorten van Q2 en Q3 hoog zijn (ze zijn verbonden met VSS via R1). Q3 is een N-kanaal MOSFET, dus het begint uitvoeren (omdat er een positieve gate spanning). Q2 is een P-zenders MOSFET, zodat het niet voeren (omdat er geen spanningsverschil tussen de poort en de bron, beide zijn verbonden met VSS).
De linker terminal van de motor is nu gekoppeld aan grond, via Q3.

Wanneer input B hoog is, voert de Q4. Dit betekent dat de poorten van V5 en V6 laag zijn. (Ze zijn aangesloten op de grond door Q4 en R2 niet belangrijk in dit geval). Q6 is een N-kanaal MOSFET, zodat het niet voeren (omdat er geen spanningsverschil tussen de poort en de bron, beide zijn aangesloten op de grond).
Q5 is een P-zenders MOSFET, dus het begint uitvoeren (omdat het een negatieve gate spanning, ten opzichte van de bron heeft).
De juiste terminal van de motor is nu verbonden met VSS via Q5.

In dit geval zal de motor draaien linksom.

Het tweede beeld is een gelijkwaardig circuit voor deze situatie.

Je kunt al raden dat als input A hoog is, en B laag is, de motor zal met de klok mee draaien. Als A en B zowel hoog of beide laag zijn, zal niet de motor draaien, omdat beide terminals zijn verbonden met VSS of grond. (dus geen spanningsverschil)

Hoewel u dit circuit zelf bouwen kon, is het veel gemakkelijker te gebruiken een IC. Bijvoorbeeld, heb ik wat L6202 chips uit een oude printer. Een andere chip van de H-brug is L298 of L293.
Ze rechtstreeks verbinden met 2 digitale pinnen op de Arduino, en de meeste van hen hebben ook een 'inschakelen' pin, die u met een derde pin voor pwm, gebruiken kunt waarmee de snelheid van de motor.

Adafruit heeft een echt goede tutorial over hoe ze te gebruiken: https://learn.adafruit.com/adafruit-arduino-lesson...

Stappenmotoren

Een andere veel gebruikte motor is de stappenmotor.

Een normale DC-motor heeft een draaiende spoel binnen twee permanente magneten. Stappenmotoren hebben aan de andere kant, een bewegende magneet (de rotor) en sommige stationaire spoelen (de "stator"). Door het activeren van de spoelen in een bepaalde volgorde, zal de rotor draaien.

De volgende video's zal je helpen begrijpen hoe het werkt:

Voor het besturen van een unipolairestepper, je moet gewoon 4 NPN-transistors, of 4 N-kanaal MOSFETs. (zie afbeelding)

Vind de pinout voor uw stepper, opzoeken van het gegevensblad, of gebruik een multimeter en meet de weerstand tussen de draden. Sommige combinaties van de draad zal hebben een weerstand die 2 keer hoger is dan de anderen, dit zijn de buitenste twee draden in het schema.

De twee center draden verbinden met de positieve draad van de voeding en de buitenste draden aan de verzamelaars van de transistoren van de schijf (zie schema). Berekenen van de juiste basis weerstanden, zoals uitgelegd in de vorige stap, en hen verbinden met pinnen 8, 9, 10, 11 van de Arduino. Vergeet niet om de grond van de voeding verbinden met de grond van je Arduino.

Voor het besturen van een bipolairestappenmotoren, moet u 2 H-bruggen. Sluit de uitgangen van elke H-brug met een spoel van de stepper. De ingangen van de H-bruggen verbinden met pinnen 8, 9, 10, 11 van de Arduino. Vergeet niet om de grond van de voeding verbinden met de grond van je Arduino. VSSverbinden met de regel inschakelen.

Opmerking: stappenmotoren trekken veel stroom, dus u niet de ingebouwde voeding van de Arduino kunt. U moet ook high-power transistoren of MOSFETs gebruiken. Controleer de temperatuur van de transistors en een heat sink toevoegen indien nodig.

Open nu het voorbeeld van de stepper_oneRevolution (bestand > voorbeelden > Stepper) en wijzigen van het aantal stappen per omwenteling aan uw motor.

Op de top van het bestand is er een lijn

#include <stepper.h >

Dit voegt net de code o het Stepper.h bestand om de schets, zodat u de functies kunt gebruiken. Dit heet de stepper bibliotheek.

Op regel 24 maken we een exemplaar van de Stepper efficiëntieklasse Het aanleg heet ' myStepper'(deze naam is enkel willekeurige), en heeft 5 parameters: het aantal stappen in een revolutie (360°), en de 4 pennen die verbinding maken met de grondslagen van de transistors.

Een klasse heeft een aantal functies, een functie voor een bepaalde instantie uit te voeren, een periode (full stop) wordt gebruikt: instance.function(arguments);

myStepper.setSpeed(60);

Herinner Serial.print (...)? Dit werkt op een soortgelijke manier.

De setSpeed(rpm) funnction wordt de snelheid ingesteld in rotaties per minuut (dus het hangt af van het aantal stappen per omwenteling).

Een andere functie van de klasse van de Stepper is step(steps), blijkt net de motor voor een gegeven aantal stappen. Als dit getal positief is, zal het met de klok mee, verplaatsen dat als het negatief is, zal het tegen de klok in verplaatsen.

Upload het voorbeeld aan de Arduino, en de motor moet draaien 360° met de klok mee, dan 360° tegen de klok in, en zo verder. Als het niet, maar alleen trilt, probeer swappen 2 output pinnen, tot het werkt. U kunt de fysieke pinnen aan de Arduino ruilen of verander gewoon de volgorde van de pins op regel 24. (9, 8, 10, 11 in plaats van 8, 9, 10, 11)

Het gebruik van klassen maakt het zeer eenvoudig om meerdere exemplaren van de Stepper te maken. Neem een kijkje op voorbeeld _2steppers_oneRevolution.

Wanneer een stapfunctie niet beweegt is, blijft het één spoel op blok de motor, zodat het niet verplaatsen. Dit trekt veel stroom, echter, en de stepper zelf en de transistors kunnen erg warm krijgen.
Om dit te stoppen, kunt u alleen uitvoeren van een digitalWrite (pin, LOW) op de 4 pennen van de stepper.

Als u een IC-station (zoals een H-brug of een darlington-matrix), kon u de pin inschakelen ook aansluiten op je Arduino. Als u het hoge, de motor zal worden geactiveerd, en wanneer u het laag ingesteld, zal er geen spanning over de motor helemaal.

U kunt uw eigen kleine functie te zetten van de stepper, zoals ik deed in voorbeeld Stepper_stop

voidstepperOff() {}
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
}

Hier kun je functies die vrij veel om het even wat, bijvoorbeeld als je moet uitvoeren van een bepaalde reeks van commando's meerdere malen in uw programma. Een goede tutorial over klassen, functies en bibliotheken is de bibliotheek Tutorial over de Arduin

Arduino Referentie: Stepper bibliotheek

Gerelateerde Artikelen

Een beginnersgids voor Kolrosing, door een beginner.

Een beginnersgids voor Kolrosing, door een beginner.

* Dit is mijn inzending voor de wedstrijd "Houtbewerking". Als je van wat ik hier heb gedaan gelieve te stemmen! Bedankt! *Dus je zo ongeveer klaar met uw houtbewerkingsproject bent, hebt misschien je gemaakt enkele lepels, een mooie doos, een m
Visie: Een fakkel voor de personen met gezichtsstoornissen

Visie: Een fakkel voor de personen met gezichtsstoornissen

Visie is een apparaat van de fakkel gevormd om te helpen blinden navigeren met meer comfort, snelheid en vertrouwen, terwijl maken gebruik van ultrasone golven te detecteren in de buurt van hindernissen en hoogte te stellen van de gebruiker door midd
Digitale multimeter shield voor Arduino

Digitale multimeter shield voor Arduino

Dit instructable beschrijft een schild, die "Arduino" board in een digitale multimeter (DMM converteert).Het schild kan worden ingevoegd in "Arduino" UNO und Duemilanove planken. Het kan werken in drie modi:standalone - de meting gegev
How to Build een schild voor de Linkit One

How to Build een schild voor de Linkit One

Hallo mensen! Pure koolstof hier met een ander Instructable. Vandaag zal ik u tonen hoe te bouwen van een aangepaste schild voor het Linkit één Board. Voordat we in dat krijgen maar moet ik u vertellen waarom ik ging op dit streven in de eerste plaat
Een Absolute beginnersgids voor de Intel Edison

Een Absolute beginnersgids voor de Intel Edison

Hey daar! Onlangs ontving ik een Intel Edison board van Instructables, als een aardige gift. Als je afvraagt wat dat is, is de Intel Edison een kleine computer de grootte van een SD-kaart (dat is serieus klein), voor elektronica en computer hobbyiste
ArduDroid: Een eenvoudige 2-weg Bluetooth gebaseerde Androïde Controller voor Arduino

ArduDroid: Een eenvoudige 2-weg Bluetooth gebaseerde Androïde Controller voor Arduino

UPDATES:19 nov. 2031: advies: de fantastische synergie tussen Arduino & Android.30 oktober 2013: Andruino is nu officieel ARDUDROID en zal binnenkort beschikbaar op Google Play. Deze naamswijziging te vermijden conflict met een andere app op Google P
Het maken van een androïde toepassing voor Arduino (LED Turn on/off)

Het maken van een androïde toepassing voor Arduino (LED Turn on/off)

hier hebben we een androïde toepassing die gebruikmaakt van ecllipsedeze toepassing inschakelen leidde op arduino.deze toepassing werkt ook in je LAN.Hardware vereist:1: arduino uno2: arduino ethernet Shield3: RJ45-kabel4: LED5. android telefoonDe so
SensoDuino: Zet uw Androïde telefoon in een draadloze sensoren Hub voor Arduino

SensoDuino: Zet uw Androïde telefoon in een draadloze sensoren Hub voor Arduino

UPDATES23 november 2013: SensoDuino 0.160 krijgt een links.19 nov. 2031: advies: de fantastische synergie tussen Arduino & Android.19 november 2013: SensoDuino 0.159 is uit. Android telefoon datum (y, m, d) en tijd (h, m, s) worden ondersteund als se
Gemakkelijk, omkeerbare Motor controle voor Arduino (of een Microcontroller)

Gemakkelijk, omkeerbare Motor controle voor Arduino (of een Microcontroller)

dit project maakt gebruik van slechts drie hoofdcomponenten voor voorwaartse en omgekeerde bepalen voor een interne motor.  U kunt het gemakkelijk interface naar een Arduino of elke andere microcontroller.Het is zo eenvoudig - u kunt het draad van "f
AVRSH: Een tolk opdrachtshell voor Arduino/AVR.

AVRSH: Een tolk opdrachtshell voor Arduino/AVR.

Ooit wilde worden "aangemeld" bij uw AVR microcontroller? Ooit gedacht dat het zou gaaf zijn aan de "kat" een register om te zien van de inhoud ervan? Hebt u altijd al wilde een manier om de nodige energie en individuele perifere sub-s
Een Complete gids voor Onboard Jumpers op de Intel Edison kit voor Arduino

Een Complete gids voor Onboard Jumpers op de Intel Edison kit voor Arduino

De Intel® Edison kit voor Arduino kunt de Intel® Edison verenigbaar met Arduino shields ontworpen voor de UNO R3. De Arduino Expansion Board omvat verschillende jumper headers configureren van de Raad van bestuur met verschillende instellingen zoals
Een kleine Tea Timer (TTT) machine voor Arduino en ATtiny

Een kleine Tea Timer (TTT) machine voor Arduino en ATtiny

De TinyTeaTimmer (TTT) is een implementatie voor een kleine accessoire die gemakkelijk kan worden gemonteerd en geprogrammeerd d.m.v. een schakelaar, een knop, 1 of 2 LED's, een kleine servomotor en een Arduino board of een ATTiny-processor.De schets
Een gids voor het beheren van dingen met wisselende inbreng (via arduino)

Een gids voor het beheren van dingen met wisselende inbreng (via arduino)

het hart van dit project is een) aansluiten van een sensor op de analoge ingang van de arduino en b) programmeren met de if... else-statement.dit specifieke project toont een computer koelsysteem te handhaven bepaalde temperatuur binnen een computer
Een gids voor Raspberry Pi Arduino mededeling in Embedded systemen

Een gids voor Raspberry Pi Arduino mededeling in Embedded systemen

Dit is een gids voor verschillende methoden voor communicatie tussen de Raspberry Pi en Arduino. Deze handleiding is gemaakt van alles wat die ik heb geleerd van de oprichting van een forest capaciteiten. De post van het project kan worden gezien, ee