besturing servo

Arduino specifieke Software
Berichten: 10
Geregistreerd: 29 Apr 2018, 17:46

besturing servo

Berichtdoor voske » 29 Apr 2018, 17:56

beste
ik stel me even voor ik ben 52jaar en wil met arduino uno een beweging met een servo teweegbrengen voor mijn kraan op mijn spoorbaan
het aansluiten lukt perfect en een program installeren ook
nu is het zo dat ik het voorbeeld sweep van servo heb gebruikt deze geeft een heen en weer beweging
ik heb op internet zitten zoeken op een program die meerdere posities doet maar waarvan de positie en de snelheid te regelen valt moest iemand dit hebben of vlug kunnen ineen toveren
dit zou mij uit de noot helpen

Advertisement

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

Re: besturing servo

Berichtdoor Koepel » 01 Mei 2018, 09:37

Hallo, al iets gevonden ?

Volgens mij had ik in het verleden zo iets gemaakt, dus ik dacht: dat lukt me wel even. Maar vervolgens bleek dat ik geen servo motor meer had liggen om het uit te proberen. Dus nu zit ik met een stuk code die nergens op slaat :(

In de Arduino IDE, in de Bibiotheek Beheer staan meerdere libraries (menu: Schets / Bibliotheek gebruiken / Bibliotheek beheren).
De meest voor de hand liggende is de "ControlledServo" library van Brett Hagman. Die heeft een setRate() om de snelheid te vertragen.

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

Re: besturing servo

Berichtdoor shooter » 01 Mei 2018, 15:42

sweep is prima als begin punt, gewoon uitbreiden en veranderen, je kunt zo heel ver gaan.
straks ga je een lib gebruiken, maar dat vraagt best veelleeswerk hoe dat allemaal moet.
als je het met een joystick wilt bedienen, kijk dan naar knob, maar die heeft geen snelheid, dat kan dan wel weer met een samenstelling van beide.
paul deelen
shooter@home.nl

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

Re: besturing servo

Berichtdoor Koepel » 01 Mei 2018, 17:48


Berichten: 10
Geregistreerd: 29 Apr 2018, 17:46

Re: besturing servo

Berichtdoor voske » 01 Mei 2018, 18:00

ik gebruik momenteel sweep daar kan inderdaad de positie en de snelheid geregeld worden maar ik zou er ook een regelbare stop tussen elke beweging willen

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

Re: besturing servo

Berichtdoor Koepel » 01 Mei 2018, 20:33

Kun je uitleggen wat je wilt :? Je mag een tekening maken, of een stappenplan of het met woorden uitleggen, wij vinden alles goed ;) Kun je de sketch laten zien die je nu hebt ? Zoek daarvoor naar de "Code" knop voor code tags [ code ] en [ / code ].

Als je 5 seconden wilt stoppen dan doe je: delay ( 5000 ) ;

Het is dus niet nodig om meerdere servo motoren gelijktijdig met verschillende snelheden te laten bewegen ?
Wil je tijdens het (langzaam) bewegen van de servo motor nog andere dingen doen ?

Berichten: 10
Geregistreerd: 29 Apr 2018, 17:46

Re: besturing servo

Berichtdoor voske » 01 Mei 2018, 22:15

voorbeeld
servo van 0gr naar 180gr aan snelheid 15 dan 4sec wachten dan van 180gr naar 90gr aan snelheid 25 en 5sec wachten terug naar 180gr aan 15 snelheid en 5sec wachten en terug naar 0 aan snelheid 15 en wacht 4sec en hervat de cyclus
het zou gemakkelijk zijn om bevoordeeld de graden, de snelheid en de wachttijd te kunnen veranderen
dank bij voorbaat
verder moet de arduino niks doen

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

Re: besturing servo

Berichtdoor Koepel » 01 Mei 2018, 23:01

De Servo library bestuurt de servo motor. Het wachten doe je zelf met delay ( 5000 ) ;

Ik denk dat ik het nog steeds niet begrijp.
Wat bedoel je met snelheid 15 ? Wil je bijvoorbeeld de snelheid instellen in graden per seconde ? Dan heb je een fancy library nodig.
Wanneer je 4 seconden wilt wachten in plaats van 5 seconden dan doe je delay ( 4000 ) ; in plaats van delay ( 5000 ) ;
Wanneer je bijvoorbeeld wilt wachten totdat de servo motor klaar is met draaien, dat is lastig. De servo motor geeft geen signaal terug wanneer hij de positie bereikt heeft. Volgens mij wordt de snelheid van een servo motor gespecificeerd in seconden per 60 graden. Dat kan bijvoorbeeld 0.2 seconden zijn.

Je kunt een functie maken die een beweging van het 'sweep' voorbeeld gebruikt met een delay om te wachten.

Code: Alles selecteren
void loop()
{
  sweepEnWacht( 180, 15, 4000);
  sweepEnWacht( 90, 25, 5000);
  sweepEnWacht( 180, 15, 5000);
  sweepEnWacht( 0, 15, 4000);
}


void sweepEnWacht( int nieuw, int vertraging, unsigned long wachten)
{
  static int pos = 0;

  if( nieuw > pos)
  {
    for( ; pos <= nieuw; pos++)
    {
      myservo.write( pos);
      delay( vertraging);
    }
  }
  else
  {
    for( ; pos >= nieuw; pos--)
    {
      myservo.write( pos);
      delay( vertraging);
    }
  }
  delay( wachten);
}


P.S.: Ik heb dit zomaar opgeschreven zonder na te denken. Het nadenken mag jij doen ;)

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

Re: besturing servo

Berichtdoor Koepel » 01 Mei 2018, 23:09

Ik heb nog geen servo motor kunnen vinden, maar deze code lijkt in Tinkercad.com te werken:
cpp code
#include <Servo.h>

Servo myServo;

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

void loop()
{
sweepEnWacht( 180, 15, 4000);
sweepEnWacht( 90, 25, 5000);
sweepEnWacht( 180, 15, 5000);
sweepEnWacht( 0, 15, 4000);
}


void sweepEnWacht( int nieuw, int vertraging, unsigned long wachten)
{
static int pos = 0;

if( nieuw > pos)
{
for( ; pos <= nieuw; pos++)
{
myServo.write( pos);
delay( vertraging);
}
}
else
{
for( ; pos >= nieuw; pos--)
{
myServo.write( pos);
delay( vertraging);
}
}
delay( wachten);
}
Bijlagen
sweepEnWacht.png
sweepEnWacht.png (17.88 KiB) 7009 keer bekeken

Berichten: 10
Geregistreerd: 29 Apr 2018, 17:46

Re: besturing servo

Berichtdoor voske » 02 Mei 2018, 12:21

koepel
ik dank u voor de code want ze werk super ik kan nu de snelheid de graden en de wachttijd aanpassen wat niet ging in het sweet program want daar kost ik alleen maar de snelheid mee regelen
maar dit is super
dank u
dit is tevens opgelost voor mij

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 24 gasten