Go Down

Topic: joystick+360 servo: troppo veloce (Read 132 times) previous topic - next topic

robyr1

Salve a tutti, tramite un joystick piloto la direzione di un servo modificato "continuo". Funziona benissimo, ma purtroppo è troppo veloce, vorrei aggiungere un piccolo potenziometro per modulare la velocità, potreste aiutarmi? eccovi il mio codice, purtroppo sono alle prime armi!

Code: [Select]

// Arduino 07 -  Servo, Serial Monitor, and Joystick
//
//This program controls a servo motor continuously
//according to the input provided from a joystick
//and shows joystick input and output to servo on the screen
//of an attached computer, via the Arduino Serial Monitor.
// ---------------------------------------------------------------------------

#include <Servo.h>
#define SERVO_PIN 9
#define GROUND_JOY_PIN A3            //joystick ground pin will connect to Arduino analog pin A3
#define VOUT_JOY_PIN A2              //joystick +5 V pin will connect to Arduino analog pin A2
#define XJOY_PIN A1                  //X axis reading from joystick will go into analog pin A1
Servo myservo ;

void setup()
{
  Serial.begin(9600);
  pinMode(VOUT_JOY_PIN, OUTPUT) ;    //pin A3 shall be used as output
  pinMode(GROUND_JOY_PIN, OUTPUT) ;  //pin A2 shall be used as output
  digitalWrite(VOUT_JOY_PIN, HIGH) ; //set pin A3 to high (+5V)
  digitalWrite(GROUND_JOY_PIN,LOW) ; //set pin A3 to low (ground)
  myservo.attach(9);
}

void loop()
{
  delay(300);                   
  int joystickXVal = analogRead(XJOY_PIN) ;  //read joystick input on pin A1
  Serial.print(joystickXVal);                //print the value from A1
  Serial.println(" = input from joystick");  //print "=input from joystick" next to the value
  Serial.print((joystickXVal+520)/10);       //print a from A1 calculated, scaled value
  Serial.println(" = output to servo");      //print "=output to servo" next to the value
  Serial.println() ;
myservo.write(((joystickXVal+570)/10)-13);      //write the calculated value to the servo 
}


gpb01

#1
Apr 20, 2018, 03:38 pm Last Edit: Apr 20, 2018, 03:38 pm by gpb01
>robyr1:  in conformità al REGOLAMENTO, punto 13, il cross-posting è proibito (anche tra lingue diverse) e tu hai già posto la stessa domanda QUI.

Non solo, in quel thread ti stanno già rispondendo ed è veramente poco cortese abbandonare una discussione e chi ti stava aiutando, per venire di qua a porre la stessa domanda … ::)

Poi, NON avendolo tu ancora fatto, ti chiedo di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto ;)) e di leggere con MOLTA attenzione il REGOLAMENTO.

Infine, per rispetto verso chi ti stava già aiutando nell'altro thread, questo tuo thread viene chiuso e ti prego di continuare dove avevi cominciato. Grazie.

Guglielmo
Search is Your friend ... or I am Your enemy !

Go Up