servo's aansturen

Als U een gezamenlijk project wil starten of aan projecten van anderen mee wilt werken.
Berichten: 2
Geregistreerd: 05 Dec 2016, 22:55

servo's aansturen

Berichtdoor mms » 05 Dec 2016, 23:35

Hallo allemaal,

Ik weet dat er heel veel te vinden is op het internet betreffende arduino.
En voor het aansturen van verlichting m.b.v. LED's is het ook prima gelukt.
Maar voor servo's zie ik door alle informatie het niet meer zitten.
Daarom deze noodkreet, wie kan mij helpen.

Ik ben op zoek naar een sketch waarmee ik servo's kan heen en weer laten bewegen.
Zelf heb ik de sweep sketch al bewerkt en deze functioneert voor zo'n vier servo's.
Ter info de servo's bewegen modelspoor figuren zoals poppetjes met bezems, kolenschop, mattenklopper, schoorsteenveger en in de toekomst nog veel meer.

Dan nu het probleem, ik kan alleen de arduino voeden met een USB kabel. Zodra ik een voeding eraan hang dan begint de boel te roken.
Ik heb geen aparte shield gebruikt, wellicht dat dit beter is zodat er een aparte voeding naar de servo's kan plaatsvinden.
Maar dan wordt het programmeren nog veel moelijker. HELP!!

Ook gaan nu de servo's altijd volgens dezelfde volgorde hun programma af.
Dus eerst servo 1 heen, dan servo 2 heen, servo 1 weer terug, servo 3 heen, servo 4 heen, servo 2 weer terug,......
Maar er gaat steeds maar één servo een beweging doen en dus niet twee servo's gelijktijdig in beweging.
Deze beweging hoeft maar 10 tot 40 graden te zijn maar liefst in verschillende snelheden.

Ook heb ik geprobeerd het programma te starten met een push-button. Dit werd helemaal een fiasco.

Ik gebruik Chinese arduino uno en micro servo SG90 9g.

Kan iemand mij helpen????

Advertisement

Gebruikers-avatar
Berichten: 1482
Geregistreerd: 06 Aug 2016, 01:03

Re: servo's aansturen

Berichtdoor Koepel » 06 Dec 2016, 00:01

O nee, de magische rook is ontsnapt !
Je kent misschien de running gag onder elektronica mensen. Als de magische rook is ontsnapt dan werkt het apparaat niet meer, dus dat betekent dat alles werkt op magische rook :lol:

De stroom voor de servo motoren heeft niet met de code in de sketch te maken (gelukkig maar).

Een Arduino board is eigenlijk niet eens geschikt om één servo motor van stroom te voorzien. Je hebt dus echt een aparte 5V of 6V voeding nodig voor de servo motors. Ik noem die nu even: "servo voeding".
Dus de Arduino van stroom voorzien via een aparte adapter of via de USB kabel.
De Arduino GND aan de GND van de servo voeding. Alle servo signalen gewoon van de Arduino naar de servo motors (gele of oranje draad).
De +5V van de servo voeding naar de servo motors (rode draad) en de GND van de servo voeding naar de servo motors (zwarte of bruine draad).

Dus +5V van de servo voeding alleen naar de servo motors (rode draad), niet op de een of andere manier nog naar het Arduino board.

Je kunt zelf een sketch maken die de servo motors laat bewegen, ook tegelijkertijd, en zelfs om dat langzaam te doen. Je kunt daar ook een library voor gebruiken.
Veel mensen zetten het signaal uit als de servo motor niet meer beweegt met detach(). Is dat de reden dat je maar één servo motor tegelijk kunt bewegen, omdat je wacht totdat je een detach() kunt geven ?

Laat je sketch eens zien, en gebruik de knop "Code" of de drop-down list "Select a Syntax" (kies C++), zodat we de sketch als code kunnen zien.

Berichten: 2286
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: servo's aansturen

Berichtdoor shooter » 06 Dec 2016, 23:56

het beste is een 5 V voeding daar kun je dan de servos direct mee voeden, (dan heb je ook geen PC meer nodig)
de USB zou je kunnen gebruiken door nog een USB kabel en daarvan de buitenste te gebruiken die gaan dan naar de rode en zwarte van de servos.
de signaaldraad kan inderdaad direct uit de UNO komen.
voor elke servo schrijf je een aparte functie met switch case en in de loop een paar timers.
starten kan zeker met een pushbutton doe dan een pin aansluiten en de knop naar gnd schakelen.
in de setup komt dan pinmode(xx,INPUT_PULLUP);
als de knop aan is geweest, dan start een timer (dan loopt alles gedurende een tijdje)
een servo moet je telkens een commando geven als deze moet bewegen. dus telkens 1 graad, en dan weer even wachten.
paul deelen
shooter@home.nl

Berichten: 2
Geregistreerd: 05 Dec 2016, 22:55

Re: servo's aansturen

Berichtdoor mms » 10 Dec 2016, 09:15

Hallo allemaal,

Bedankt voor de reacties.
Ik heb inmiddels een voeding van 5 volt aangesloten en de servo's daarmee gevoed.
Het programmeren ben ik nog aan het proberen, met name de verschillende commando's vind ik verwarrend. Welke gebruik je wanneer.
Maar hier heeft de kerstman wellicht een boekje voor. ;)

Die pushbutton s nog onzeker of die er gaat komen, of dat het geheel met voeding wordt geschakeld AAN/UIT.

Nog één kleine vraag, wat is het voordeel om een Servo Shield toe te passen.
Ik wil wellicht vier of vijf servo's aansturen per arduino voorzien van aparte voeding.
En levert dit niet nog meer problemen op met het programma schrijven?

Gebruikers-avatar
Berichten: 4646
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: servo's aansturen

Berichtdoor nicoverduin » 10 Dec 2016, 10:01

Ik heb ooit een servo shield gekocht voor iets van 20 servos. Werkt meen ik met i2c en heeft eigen processor en eigen voeding. Zal vandaag wel ff kijken
Docent Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 1482
Geregistreerd: 06 Aug 2016, 01:03

Re: servo's aansturen

Berichtdoor Koepel » 10 Dec 2016, 11:14

De verschillende functies valt wel mee. Kijk naar de voorbeelden op deze pagina : https://www.arduino.cc/en/Reference/Servo. Het gaat vooral om eenmalig .attach() en verder is het .write().

Een shield heeft connectors waar je de stekkertjes van de servo motors zo op kunt prikken.
Als het je niet uitmaakt dat je de draden soldeert, dan is een shield niet nodig.

Dit is een shield dat alleen de connectors heeft : https://www.aliexpress.com/item/New-Sensor-Shield-V4-Digital-Analog-Module-Servo-Motor-For-Arduino-UNO-Duemilanoveselling-Wholesale/32699030245.html.

Er zijn ook shields en modules die zelf de servo motors besturen.
Dit is een module die 16 servo motors bestuurt: https://www.adafruit.com/products/815.
Dan heb je een library nodig voor die module.
Het voordeel is dat die module maar twee pinnen gebruikt (I2C bus) en dat je in de code geen rekening hoeft te houden met het regelmatig updaten van de positie van alle servo motoren. Dan stuur je gewoon een paar commandos naar die module.

Voor slechts een paar servo motoren kun je beginnen om dat in een sketch te doen. Als blijkt dat het niet soepel loopt, kun je altijd nog zo'n module aanschaffen.

Gebruikers-avatar
Berichten: 4646
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: servo's aansturen

Berichtdoor nicoverduin » 10 Dec 2016, 15:26

Docent Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 2286
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: servo's aansturen

Berichtdoor shooter » 11 Dec 2016, 20:47

voor de commandos heb je een handleiding, die voor elke library verschillend is.
als je van de library de cpp opent, zie je welke er zijn, vaak zit er ook een txt of een paar examples bij.
klik ook eens op learning, en er gaat een wereld open.
paul deelen
shooter@home.nl

Terug naar Gezamenlijke projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast