Visualizza messaggio singolo
Vecchio 01 maggio 20, 12:46   #37 (permalink)  Top
wrighizilla
Guest
 
Data registr.: 17-07-2013
Messaggi: 3.734
ho provato ad usare constrain e ha funzionato.
aspetto a cantare vittoria
in questo modo il gas sulla retro non allarga più gli endpoints

gaspulse = pulseIn(7, HIGH);
gaspulse = constrain (gaspulse,1500, 2000);
correction = map(gaspulse, antsx, antdx, 0,max_correction);

al momento lo sketch è così:
------------------------------

#define antsx 1000 //-- in front servo endpoint sx
#define antdx 2000 //-- in front servo endpoint dx
#define postsx 5// out rear servo sx if inverted with postdx it reverse
#define postdx 175 //-- out rear servo dx if inverted with postsx it reverse
#define center 0// add or subtract xx value to center steering
#define tolerance 3//-- if your poor quality servo vibrates try 5
#define max_correction 100 //--amount steering by throttle
#define gaslimit 0
#include <Servo.h>
Servo myservo;
unsigned int rxpulse;
unsigned int gaspulse ;

unsigned int correction;
unsigned int newPos, oldPos;
void setup() {
myservo.attach(10); //-- rear servo signal out pin
pinMode(8, INPUT); //-- front servo signal in pin
pinMode(7, INPUT); //-- throttle signal in pin
}
void loop() {
rxpulse = pulseIn(8, HIGH);

gaspulse = pulseIn(7, HIGH);
gaspulse = constrain (gaspulse,1500, 2000);
correction = map(gaspulse, antsx, antdx, 0,max_correction);

newPos = map(rxpulse, antsx, antdx, (postsx+correction), (postdx-correction));


if (abs(newPos - oldPos)> tolerance) {
oldPos = newPos;

myservo.write(newPos + center);

}
}

---------------------------------

ho aggiunto define gaslimit che vorrei fosse un valore da poter impostare per decidere la velocità da raggiungere prima di far partire la riduzione della corsa del servo posteriore.
vediamo se riesco a capire come proseguire.

Ultima modifica di wrighizilla : 01 maggio 20 alle ore 12:51
wrighizilla non è collegato   Rispondi citando