RC servo aansturen met Arduino

Hallo allemaal,

ik heb een probleem met het aansturen van een RC servo motor, ik heb deze gekocht bij conrad:

https://www.conrad.nl/nl/modelcraft-4519-standaard-servo-analoge-servo…

nu wil ik deze gewoon bedienen met een potmeter alleen krijg ik dit niet voor elkaar, kan iemand mij hierbij helpen?

ik wil deze gaan gebruiken voor een automatische vulmachine van bonen in mijn koffie zet apparaat.

b.v.d.

Met kleine stappen moet je er kunnen komen. Is er niet een demo sketch voor de servo? En voor de ADC?

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Ik heb zo'n vermoeden dat je niet echt weet hoe die RCservo werkt.
Een potentiometer gebruiken om die motor te bedienen lijkt mij geen goede oplossing voor uw probleem.

Misschien wat meer uitleg geven hoe dat moet werken.

LDmicro user.

Met een potmeter + arduino kan je prima een regelbare servo sturing maken.

Google/youtube staat er vol mee bv. "arduino servo controller" of "arduino servo tester".

De meeste servo's hebben een positief gaand pulssignaal nodig dat varieert in breedte tussen 1 en 2 milliseconden en dat met een herhalingstijd van meestal 20 millisec (50Hz).
De middenstand van het servo komt overeen met een pulsbreedte van 1,5msec.
Met een potmeter laat het servo zich dus niet regelen.

Op arduino doe je dan iets als use->library->servo en dan kan je de daarvoor gemaakte library gebruiken. En met file->examples->library-> servo kan je dan de voorbeelden bekijken/proberen.
(Ik werk sporadisch met het arduino programma dus de exacte menus zullen wel iets anders zijn).

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Hallo,

De standaard servo programma's van Arduino werken niet, als ik hem uitstuur naar bijv 30 graden gebeurd er niks.

Wat hij moet doen is,

- bijv +- 45 graden uitsturen
- x aantal seconden wachten
- +- 45 graden terug sturen

Als de standaard programmas niets doen dan hoef je nog niet na te denken over hoeveel graden hij heen ,en weer moet. Heb je de boel goed aangesloten?

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Ja naar mijn weten wel,

rood=+
bruin= -
Oranje= PWM signaal Klem nr. 9

Beginnen met een aparte voeding voor de servo.
Dus niet de 5volt dc uit de Arduino halen.

Je geeft toch wel heel weinig info over hoe en welk programma je gebruikt. Daarom ook vermoed ik nog altijd dat je niet weet hoe zo'n RC servo werkt.

LDmicro user.

Op 1 april 2017 20:26:32 schreef Gij Kieken:
Beginnen met een aparte voeding voor de servo.
Dus niet de 5volt dc uit de Arduino halen.
Wel de gnd's aan mekaar koppelen.

Een arduino of 3* de Ne555 timer wat is makkelijker. , met 2* de ne555 kan je al een simpele servotester maken .

Ik vind arduino echt makkelijker om een servo aan te sturen... twee onderdelen drie draadjes.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Lambiek

Special Member

Op 2 april 2017 05:01:41 schreef bert!ne:
Een arduino of 3* de Ne555 timer wat is makkelijker. , met 2* de ne555 kan je al een simpele servotester maken .

Volgens mij kan het al met één NE555.

http://www.talkingelectronics.com/projects/50%20-%20555%20Circuits/50%…

Op 2 april 2017 06:48:14 schreef rew:
Ik vind arduino echt makkelijker om een servo aan te sturen... twee onderdelen drie draadjes.

Maar ik ga met rew mee. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Een arduino is inderdaad makkelijk , maar ik had nog heel veel NE555
, arduino's heb ik niet altijd op voorraad..

In mijn 40 jaar geleden gebouwde servotester zitten 2 Ne555 , het zal wel een reden hebben gehad dat ik er toen 2 * de 555 in gebruikt heb.

Lambiek

Special Member

@ Brian1989,

Hier heb je nog wat leesvoer, daar staan nog wat andere voorbeelden in.

https://www.circuitsonline.net/artikelen/view/48

Als je haar maar goed zit, GROETEN LAMBIEK.

ik gebruik het volgende programma:

#include <Servo.h>
Servo myservo;

void setup()
{
myservo.attach(9);
}

void loop()
{
myservo.writeMicroseconds (1000);
delay(2000);

myservo.writeMicroseconds (1500);
delay(2000);

}

Ik heb dit geprobeerd omdat het volgende programma niks deed :

#include <Servo.h>

Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0; // variable to store the servo position

void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}

void loop() {
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}

dit is het standaard programma van arduino,
Als ik kijk bij de specs van Conrad betekent het dat bij 4,8V 2300Microseconds 60 graden is, zeg ik dit correct?

Dus dat betekent dat bij 1150 microseconds 30 graden is

Pinnummering kan tricky zijn, wat voor arduino gebruik je ?
Kun je een plaatje maken van je bedrading ? Ik heb overigens nog niet meegemaakt dat een voorbeeldsketch niet goed werkte (zijn ook erg eenvoudig natuurlijk) dus je moet het even niet daar zoeken.
Heb je het idee dat eea wel goed laadt ? Je eigen programma heeft de pulse een factor 100 te groot.

"Als ik kijk bij de specs van Conrad betekent het dat bij 4,8V 2300Microseconds 60 graden is, zeg ik dit correct?Dus dat betekent dat bij 1150 microseconds 30 graden is"

Nou, niet helemaal, van -90 naar 90 staat gelijk aan 1000-2000uS, 1500 zou neutraal moeten zijn. Mijn ervaring is dat er wel een graadtje aan kan schelen.
https://en.wikipedia.org/wiki/Servo_control

Ja... en toen ?

Ok.. en waar zie jij dan pin 9 ? (ik gebruik een andere dus misschien zeg ik iets doms nu)

Ja... en toen ?

Op 3 april 2017 20:35:59 schreef gradtje:
Ok.. en waar zie jij dan pin 9 ? (ik gebruik een andere dus misschien zeg ik iets doms nu)

void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object

Ik bedoelde op het board maar zie het nu... :)
Heb je er ook even een pullup aan gemaakt ? Heb je iets van een scoop om te kijken of er iets gebeurd op die pin ? (dat van factor 100 van de eerste post had je gelezen toch ?)

Ja... en toen ?

Hallo allemaal,

daar was ik weer, door medische problemen lang weg geweest, maar heb het project nu weer opgepakt haha.

ik krijg nog steeds mijn analoge servo niet aan de praat ik heb nu een pull up weerstand van 10K er tussen gezet, ook dit werkt niet.

Ik heb gewoon het standaard programma van arduino, (0-180 graden en terug)

Als volgt aangesloten:

+5V
GND
PWM Pin 9

Tussen pin 9 en de 5VDC hangt mijn weerstand.

Alle hulp is welkom,

alvast bedankt

myservo.writeMicroseconds (100000);
myservo.writeMicroseconds (150000);

Deel dat eens door honderd....

Mijn echte naam: Joris | Mijn elektronica website: Fuzzcraft.com