Twee servo motors werken niet

algemene C code
Berichten: 1
Geregistreerd: 10 Jan 2021, 17:33

Twee servo motors werken niet

Berichtdoor lubbe5 » 31 Jan 2021, 00:33

Goedenavond allemaal,

Ik ben vrij nieuw op dit forum. En daarom wil ik mij eerst even voorstellen, voordat ik jullie om hulp vraag.
Mijn naam is James 34 jaar oud en ik kom uit Gouda. Momenteel ben ik Procesoperator bij een drank exporteur.
Zelf heb ik niet heel goed in het programmeren en bouwen met Arduino, maar leuk vind ik het wel.

Gezellig, nu weten jullie ook een beetje wie ik ben, dan nu mijn probleem. :)

Een van mijn hobby's is mijn motor fiets(Harley).
Voor mijn motorfiets heb ik 2 dikke uitlaten kunnen scoren, waarvan je het geluid kan bedienen door middel van een klep.
Nu heb ik de uitlaten maar de elektronica heb ik er helaas niet bij gekregen.

Een klepje voor een kwartslag open sturen, moet ik zelf wel kunnen regelen, met een servo dacht ik zo.
Ik heb nu 2 servo's gekocht die waterdicht zijn. Deze kunnen maximaal 25kg in beweging zetten.
Deze wil ik open en dicht kunnen sturen met twee knoppen.

Wat gaat er fout? Als ik een servo aansluit werkt het ding super, als ik de 2de aansluit gaan de servo's opeens vreemd gedrag tonen.
Willen jullie eens naar mijn programma kijken, of hier ene foutje inzit?

Als ik ze met een servo tester aanstuur gaat het wel goed. Aan de spanning of aansluiten ligt het niet lijkt mij zo?

Arduino 1.8.13
Nano

Heren en eventuele dames alvast bedankt.

#include <Servo.h>

Servo myservo1; // create servo object to control a servo
Servo myservo2; // create servo object to control a servo

int angle =90; // initial angle for servo
int angleStep =5;

#define LEFT 12 // pin 12 is connected to left button
#define RIGHT 2 // pin 2 is connected to right button

void setup() {

myservo1.attach(9); // attaches the servo on pin 9 to the servo object
myservo2.attach(5); // attaches the servo on pin 5 to the servo object
pinMode(LEFT,INPUT_PULLUP); // assign pin 12 ass input for Left button
pinMode(RIGHT,INPUT_PULLUP); // assing pin 2 as input for right button
myservo1.write(angle); // send servo to the middle at 90 degrees
myservo2.write(angle); // send servo to the middle at 90 degrees
}

void loop() {

while(digitalRead(RIGHT) == LOW){

if (angle > 0 && angle <= 90) {
angle = angle - angleStep;
if(angle < 0){
angle = 0;
}else{
myservo1.write(angle); // move the servo to desired
myservo2
.write(angle);
}

}

delay(100); // waits for the servo to get there
}


while(digitalRead(LEFT) == LOW){

if (angle >= 0 && angle <= 90) {
angle = angle + angleStep;
if(angle >90){
angle =90;
}else{
myservo1.write(angle); // move the servo to desired angle
myservo2.write(angle);
}
}

delay(100); // waits for the servo to get there
}


}

Advertisement

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

Re: Twee servo motors werken niet

Berichtdoor shooter » 01 Feb 2021, 15:35

die angle naar de servo sturen hoor je maar 1 keer te doen. Wat gebeurt er eiegenlijk als de angle 0 is, dat ben je vergeten
en er staat een . in je listing gewoon een tikfout.
zelfde trouwens als de hoek 90 is.
en het duurt dus 1,8 seconden, dat wil zeggen dat je de knop ook 1,8 seconden in moet houden. en de starttijd is dus maximaal 0,2 seconden.
paul deelen
shooter@home.nl

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 7 gasten