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