Zeker weten deed ik het ook niet...
Ik zou ook adviseren om gewoon A0 te gebruiken. Veel duidelijker.
Voeding voor 3 servo’s niet doen vanuit de arduino, maar apart.
PAS OP: de waarden val1, val2 en val3 zijn 0 in het begin>> servo stelt zich in op de beginstand
Schrijf je sketch en upload deze naar de arduino (deze is getest en werkt)
#include <Servo.h>Servo myservo1;Servo myservo2;Servo myservo3;int potpin1=A0;int potpin2=A1;int potpin3=A2;int val1=0;int val2=0;int val3=0;void setup(){myservo1.attach(9);myservo2.attach(10);myservo3.attach(11);}void loop(){val1 = analogRead(potpin1);val1 = map(val1, 0, 1023, 0, 180);myservo1.write(val1);delay(25);val2 = analogRead(potpin2);val2 = map(val2, 0, 1023, 0, 180);myservo2.write(val2);delay(25);val3 = analogRead(potpin3);val3 = map(val3, 0, 1023, 0, 180);myservo3.write(val3);delay(25);}
Ik heb aangesloten als de 3e van mo
"Die map functie schaalt dat om naar 0 tot 90 voor het gebruik voor je servo motors".
nee 0 tot 1023 wordt omgeschaald naar 0 tot 180 (in dit geval in de sketch
Val = map( val, 0, 1023, 90, 0 ) ;
Het werkt
Nog een klein ding/vraagje. De potmeters (ze werken andersom als gedacht)
Maar deze werken dus tot ongeveer de helft van de draaing van de potmeter
En de voeding van de NANO gaat nu via een usb. Als ik een voeding gebruik, moet ik dan de VIN gebruiken en de ground (mijn gedachte Volt IN gang
... als de potmeters niet op 0 staan bij starten de werking anders wordt
#include <Servo.h>Servo myservo1;Servo myservo2;Servo myservo3;const int potpin1 = A1; // analoge 'IN' pinnen om potmeters in te lezenconst int potpin2 = A2;const int potpin3 = A3;const int servopin1 = 11; // digitale 'OUT' pinnen voor servo'sconst int servopin2 = 12;const int servopin3 = 13;// -------------------void setup() { pinMode(potpin1,INPUT); // maak potmeterpinnen invoer pinMode(potpin2,INPUT); pinMode(potpin3,INPUT); pinMode(servopin1,OUTPUT); // maak servopinnen uitvoer pinMode(servopin2,OUTPUT); pinMode(servopin3,OUTPUT); myservo1.attach(servopin1); // koppel servo's aan I/O pinnen myservo2.attach(servopin2); myservo3.attach(servopin3);}// ------------------void loop() { // in één regel per servo;// lees potmeterwaarde 0..1023, // verschaal naar hoek 0..90 graden (je kunt van die 90 ook een constante maken), // stuur hoek naar servo // voor servo 1 myservo1.write(map(analogRead(potpin1),0,1023,0,90)); delay (50); // omdat bask185 het zegt // voor servo 2 myservo2.write(map(analogRead(potpin2),0,1023,0,90)); delay(50); // voor servo 3 myservo3.write(map(analogRead(potpin3),0,1023,0,90)); delay(50);}