Hoe Servo begin hoek instellen bij start van programma?
6 berichten
• Pagina 1 van 1
- G_Korenblik
- Berichten: 1
- Geregistreerd: 26 Okt 2018, 14:17
Hoe Servo begin hoek instellen bij start van programma?
Ik ben een beginner, dus excusses alvast als dit een domme vraag is.
Ik ben met een projectje bezig waarbij ik een servo aanstuur. Het doel is uiteindelijk dat ik een klep wil bedienen via een servo met een IR-remote. Ik heb de software klaar en alles lijkt te werken zoals ik het bedoeld had.
Echter bij de voorbereidingen van de testopstelling viel het mij op dat de servo die ik nu gebruik bij het opstarten van het programma naar een begin hoek draait die ik niet kan beïnvloeden met de software. Natuurlijk kan ik direct daarna de hoek aanpassen, maar dat is eigenlijk niet de bedoeling.
Weet iemand hoe ik de begin hoek kan instellen? Ik neem aan dat dit toch gewoon moet kunnen.
Ben benieuwd naar jullie reacties.
Ik ben met een projectje bezig waarbij ik een servo aanstuur. Het doel is uiteindelijk dat ik een klep wil bedienen via een servo met een IR-remote. Ik heb de software klaar en alles lijkt te werken zoals ik het bedoeld had.
Echter bij de voorbereidingen van de testopstelling viel het mij op dat de servo die ik nu gebruik bij het opstarten van het programma naar een begin hoek draait die ik niet kan beïnvloeden met de software. Natuurlijk kan ik direct daarna de hoek aanpassen, maar dat is eigenlijk niet de bedoeling.
Weet iemand hoe ik de begin hoek kan instellen? Ik neem aan dat dit toch gewoon moet kunnen.
Ben benieuwd naar jullie reacties.
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Hoe Servo begin hoek instellen bij start van programma?
G_Korenblik schreef:
Ik neem aan dat dit toch gewoon moet kunnen.
Niet direct. Op het moment dat de Arduino aangaat is de pwm uitgang 0. Immers die wordt nog niet aangestuurd terwijl de Arduino nog aan het ontdekken is of er een bootprogramma aankomt (dat knipperen van het ledje ff). In die tussentijd gaat hij naar de 0 stand. En pas daarna NA het opstarten wordt jouw code uitgevoerd.
Als je dat wil voorkomen, zou je eerst de PWM uitgang aan moeten sturen en pas daarna de voedingsspanning op de servo moeten gooien (mosfet of relais of zo). Je gaat dan dus vertraagd de servo inschakelen.
Re: Hoe Servo begin hoek instellen bij start van programma?
Het creëren van het object 'myservo' vult alvast de middenstand in. Pas bij 'myservo.attach(pin)' wordt de interrupt aangezet. Er is dus een mogelijkheid om eerst de positie te schrijven met 'myservo.write()' en daarna pas 'servo.attach()' te doen.
cpp code
Dit werkt goed als op de reset-knop van het Arduino board wordt gedrukt. Als de stroom er even helemaal af is geweest, dan geeft de servo daarna toch even een kleine draai. Dat komt door de servo motor zelf.
@nico, weet jij of dat dit ook zo bedoeld is? Ik kreeg een ingeving en ik keek in de library en het was mogelijk.
cpp code
#include <Servo.h>
Servo myservo;
int pos;
const int pinServo = 9;
void setup()
{
pos = 0; // start and end with 0
myservo.write( pos); // write before starting the servo signal
delay( 1000);
myservo.attach( pinServo);
delay( 1000);
for( ; pos<= 180; pos++)
{
myservo.write( pos); // slow to 180
delay( 30);
}
delay( 1000);
for( ; pos>= 0; pos--)
{
myservo.write( pos); // slow to 0
delay( 30);
}
delay( 1000);
myservo.detach();
// turn off the Arduino, and turn it on again or press the reset button.
}
void loop()
{
}
Dit werkt goed als op de reset-knop van het Arduino board wordt gedrukt. Als de stroom er even helemaal af is geweest, dan geeft de servo daarna toch even een kleine draai. Dat komt door de servo motor zelf.
@nico, weet jij of dat dit ook zo bedoeld is? Ik kreeg een ingeving en ik keek in de library en het was mogelijk.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Hoe Servo begin hoek instellen bij start van programma?
Je bent zo een seconde verder voordat je aan setup() begint.
Re: Hoe Servo begin hoek instellen bij start van programma?
Alle delay() deed ik om eventuele hickups te zien, het gaat om de myservo.write() voor een myservo.attach().
Re: Hoe Servo begin hoek instellen bij start van programma?
Dit is een hele goede vraag, en zowel nico, koepel en ik zeggen dat het niet zo direct gaat.
je hebt bij servos altijd last van het feit dat het met een timing werkt en dus zodra je spanning op de servo zet zal de schakeling in de servo zich gaan bewegen in een rare manier, zodra de eerste tijdpuls binnen is zal de motor gaan bewegen, maar niemand weet in welke richting.
dus helaas met een simpele servo blijf je dit houden.
Het wordt anders als je een motortje en een potmeter gaat gebruiken, dan stuur je de motor zelf aan, en dan kun je zelf bepalen wat er gebeurt.
ook mogelijk is een stappenmotor die kan ook met een potmeter een stand innemen.
Ik gebruik dit laatste op grote regelkleppen op 24 Volt.
je hebt bij servos altijd last van het feit dat het met een timing werkt en dus zodra je spanning op de servo zet zal de schakeling in de servo zich gaan bewegen in een rare manier, zodra de eerste tijdpuls binnen is zal de motor gaan bewegen, maar niemand weet in welke richting.
dus helaas met een simpele servo blijf je dit houden.
Het wordt anders als je een motortje en een potmeter gaat gebruiken, dan stuur je de motor zelf aan, en dan kun je zelf bepalen wat er gebeurt.
ook mogelijk is een stappenmotor die kan ook met een potmeter een stand innemen.
Ik gebruik dit laatste op grote regelkleppen op 24 Volt.
paul deelen
shooter@home.nl
shooter@home.nl
6 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 4 gasten