Saludos a la comunidad.
Comento un poco el proyecto. Estoy queriendo hacer un sistema de pan and tilt con motores DC.
Logre controlarlos mediante la lectura analógica de los potenciometros de el joystic y enviando los datos a las salidas pwm.
controlo la velocidad máxima también, pero el cuello de botella esta en que necesito una rampa de aceleración y de desaceleracion.
Para que quede mas claro cuando acciono el joystic necesito contar un tiempo de aceleración asta la velocidad marcada por el joystic y al soltar el joystic de la velocidad que estaba desacelere con el mismo tiempo a cero.
dejo el codigo sobre el cual estoy trabajando, cualquier idea sera bienvenida
//Control de un Joystick velozidad maxima damp
int ejexpin = 4; // Declara pin4 entrada analogica como ejexpin
int ejexmpin = 3; // Declara salida pwm 3 como ejempin
int ejexm2pin = 5; // Delara salida pwm 5 como ejempin2
int ejexd; // delcara ejexd
int vmaxpin = 3; // Declara pin 3 analog como entrada de vmax
int vmax; // Declara vmax como valor de trabajo velozidad maxima
int i;
void setup(){
//Serial.begin(9600);
pinMode(ejexmpin, OUTPUT); // Configura ejempin como salida
pinMode(ejexm2pin, OUTPUT);// configura ejexmpin como salida
}
void loop(){
vmax = analogRead(vmaxpin);
vmax = map(vmax, 0, 1023, 0, 255); //cambia el valor de la lectua analogica de 0 1203 a 0 255
ejexd = analogRead(ejexpin); // lee el valor analogico de ejexpin y lo traslada a ejexd// Control del Eje X
if (470 > ejexd) {ejexd = map(ejexd, 0, 470, vmax, 0); // se cambia el antiguo valor de 255 por el valor de la etiquetqa vmax
analogWrite(ejexm2pin,ejexd);
}else {
analogWrite(ejexm2pin,0);
}
if (ejexd > 530) {ejexd = map(ejexd, 530, 1023, 0, vmax); // se cambia el antiguo valor de 255 por el valor de la etiquetqa vmax
if ( 0 >= i){
for ( i=0; i<=ejexd; i++){ // el valor de i asciende
analogWrite(ejexmpin, i); // se escribe el valor de i en el pin salida pwm
delay(10);
}
}analogWrite(ejexmpin,ejexd);
}
else {
analogWrite(ejexmpin,0);
i = 0;
}}
Esta parte del codigo es solo el control de un motor.