Arduino + Ricevente RC

Premessa: non sono un programmatore, mi diletto solamente.
Salve, avevo detto che avrei avuto bisogno del vostro aiuto ed infatti così è.
Sono in possesso di Arduino Uno + Motor Shield Adafruit + Ricevente Rc a 4 canali PPM + relativo radiocomando; il mio problema è il seguente:
Riesco a leggere i dati provenienti dalla ricevente e riesco con essi ad attivare il motore, ma non riesco a controllare la velocità del motore. Come posso risolvere tale problema? Quale istruzione, a me sconosciuta, devo utilizzare?
Ho googlato fino ad oggi senza arrivare alla conclusione dell problema.

Vi posto lo sketch da me utilizzato.

#include <ppmrcin.h>
#include <Statistic.h>
#include <AFMotor.h>

Channel channel_1;
Channel channel_2;
AF_DCMotor motor(3);
AF_DCMotor motor2(4);
AF_DCMotor motor3(1);

void setup() {

pinMode (11, INPUT);
pinMode (10, INPUT);
pinMode (12, OUTPUT);
pinMode (13, OUTPUT);

channel_1.init(1,11);
channel_2.init(1,10);

motor.setSpeed(200);
motor.run(RELEASE);
motor2.setSpeed(200);
motor2.run(RELEASE);
motor3.setSpeed(200);
motor3.run(RELEASE);
}

void loop() {

delay(200);

channel_1.readSignal();
channel_2.readSignal();

if ((channel_1.getSignal()> 1450) && (channel_1.getSignal()< 1600)){
motor2.run(RELEASE);
motor.run(RELEASE);
}
else if ((channel_1.getSignal()> 1600) && (channel_1.getSignal()< 1920)){
motor2.run(FORWARD);
motor.run(FORWARD);
}
else if ((channel_1.getSignal()> 1150) && (channel_1.getSignal()< 1450)){
motor2.run(BACKWARD);
motor.run(BACKWARD);
}

if ((channel_2.getSignal()> 1450) && (channel_2.getSignal()< 1600)){
motor3.run(RELEASE);
}
else if ((channel_2.getSignal()> 1600) && (channel_2.getSignal()< 1920)){
motor3.run(FORWARD);
}
else if ((channel_2.getSignal()> 1150) && (channel_2.getSignal()< 1450)){
motor3.run(BACKWARD);
}
}

Vi ringrazio anticipatamente

Andrea

Nessuno mi può aiutare?

Le librerie che usi non prevedono questo?

http://www.ladyada.net/make/mshield/use.html:
Make sure you include <AFMotor.h>
Create the AF_DCMotor object with AF_DCMotor(motor#, frequency), to setup the motor H-bridge and latches. The constructor takes two arguments.
The first is which port the motor is connected to, 1, 2, 3 or 4.
frequency is how fast the speed controlling signal is.
For motors 1 and 2 you can choose MOTOR12_64KHZ, MOTOR12_8KHZ, MOTOR12_2KHZ, or MOTOR12_1KHZ. A high speed like 64KHz wont be audible but a low speed like 1KHz will use less power. Motors 3 & 4 are only possible to run at 1KHz and will ignore any setting given
Then you can set the speed of the motor using setSpeed(speed) where the speed ranges from 0 (stopped) to 255 (full speed). You can set the speed whenever you want.
To run the motor, call run(direction) where direction is FORWARD, BACKWARD or RELEASE. Of course, the Arduino doesn’t actually know if the motor is ‘forward’ or ‘backward’, so if you want to change which way it thinks is forward, simply swap the two wires from the motor to the shield.

Ciao Uwe

Si le librerie che uso io dicono ciò. Scusa la mia ignoranza, ma c'è scritto che per regolare la velocità devo usare setSpeed(speed), ma io voglio, o meglio vorrei, che la velocità non sia costante ma sia proporzionale alla posizione della leva del radiocomando. Non so se mi sono spiegato bene. I motori mi funzionano ma se io do il 10% di gas o il 90 % lui gira sempre alla velocità impostata e non è una cosa progressiva.

Grazie Andrea