Go Down

Topic: 2 servo`s (Read 561 times) previous topic - next topic

manfredwetzels

Hoi

ik ben met een modelbouw project bezig een havenkraan laten werken met 2 servo`s

de bedoeling is dat servo 1 op  0 graden staat servo twee zijn ding doet van 0 naar 180 graden dan moet servo een weer naar respectievelijk 110 graden gaan en terug naar 0 graden en dan servo 2 weer naar 0

ik heb de volgende code

//doubleSweep
//edited from the original code by BARRAGAN

#include "Servo.h"

Servo myservo;  // create servo object to control a servo
Servo mysecondservo;              // a maximum of eight servo objects can be created

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

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


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


het volgende probleem doet zich voor de servo op pin 2 werk perfect maar de op pin 9 doet niks wissel ik de servo`s dan weer doet pin 2 het wel en pin 9 niet


wie o wie kan mij helpen

met vriendelijke groet manfred

MAS3

Hoi Manfred.

Je bent vergeten je code tussen de betreffende tags te zetten.
En het commentaar in je code komt niet overeen met die code.
Daarmee maak je het jezelf alleen maar lastiger.
Dus als je de code gaat aanpassen, zorg er dan ook voor dat het commentaar mee aangepast word.

Is deze sketch het geheel, of heb je hier alleen het gedeelte wat voor je vraag van toepassing is gekopieerd ?
Want in dat laatste geval is er mogelijk een conflict dat veroorzaakt zou kunnen worden in je andere code.
Nou heb ik niet in mijn hoofd zitten of er iets speciaals is met pin 9 die het bij jou niet wil doen.
Maar met pin 2 zijn er wel zaken om rekening mee te houden (een timer en dat ding heeft er ook een interrupt mogelijkheid aan gekoppeld), maar die pin lijkt het dus juist wel goed te doen.

Verder zie ik eigenlijk niets vreemds aan je code.
Kun je niet andere pinnen gebruiken naast 2 en 9, al was het maar om te testen ?
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

nicoverduin

Die second servo gaat van 115 net zolang door tot ie door 0gaat? Moet dat niet -=1 zijn? Ik zou nog eens heel goed naar de sketch kijken voor de delen van second servo....
Met vriendelijke groet / kindest regards
Nico Verduin
www.verelec.nl
Do not PM me for personal consultancy unless you are willing to pay for it.

shooter

in de tweede loop staat een + teken zoals nico zegt, maar hij moet van 115 naar 0 dus dat moet een - zijn, en in de vierde loop is datzelfde ook fout.

Het is een aardig begin, als je straks verder bent dan kun je overwegen om stappenmotoren of encoders te gebruiken, want je zult merken dat de beweging best wel schokt en niet precies genoeg is.
Dat komt omdat een servo met tijden werkt.
je kunt ook simpele DC motoren gebruiken met een encoder (uit een oude muis).
en afhankelijk van de plaats wil ik je best een keer komen helpen hoor.

paul deelen
shooter@home.nl
making controls with codesys PLC and arduino

manfredwetzels

Hallo allemaal

bedankt voor de antwoorden ik heb hem nu aan de gang moet nu nog verder schrijven maar kan iemand mij uitleggen wat 1 loop is dan weet ik waar ik moet beginnen met de volgende loop schrijven

ben even het spoor bijster in deze


@ shooter bedankt voor het aanbod maar ik woon in zuid limburg

sittard om precies te zijn


met vriendelijke groet manfred

MAS3

Een loop is het Engelse woord voor lus, maar natuurlijk wist je dat al wel.
Daarmee word bedoeld dat je bepaalde dingen blijft herhalen.
Het 'belangrijkste' deel van je sketch word ook steeds herhaald, en word daarom als de void met de naam loop weergegeven.

Maar wat shooter als loop aanduidt, is een deel in het void loop gedeelte, namelijk een for... lus.
Die herhaalt iets net zolang totdat aan de gestelde voorwaarde word voldaan.
Dat iets is dus wat er tussen de { } tekens staat, en binnen die tekens voer je op z'n minst iets uit wat die test beinvloedt.
In dit geval is dat dus dat je de waarde 'pos' beïnvloedt als deel van de for opdracht.
In sommige andere talen komt er na een for ook nog een next voorbij.

Het punt dat gemaakt word door de heren hier boven, is dat het heel lang duurt voordat je op een lagere waarde gaat uitkomen als je die variabele pos steeds gaat verhogen en vice versa.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

shooter

ja ik bedoelde inderdaad die for next, dat zijn herhalingen (loops) tot een bepaald getal.
de hoofdloop is eigenlijk de instructie do always.

paul deelen
shooter@home.nl
making controls with codesys PLC and arduino

manfredwetzels

Hoi

Dank jullie allemaal voor de tips en lessen .

het is me gelukt de afwerking van de kraan moet nog gebeuren uiteraard

de werking is hier te zien https://photos.app.goo.gl/9Ew8mVDtsmXwa4w43

met vriendelijke groet

 Manfred

shooter

mooi gemaakt man, mijn vader heeft altijd in maasbracht gewoond, dus sittard is niet zo ver hoor. (woon tegenwoordig in s hertogenbosch.
Nog een tipje is om de servos langzaam te laten starten, dan schokt het niet zo.

paul deelen
shooter@home.nl
making controls with codesys PLC and arduino

Go Up