Show Posts
Pages: [1]
1  International / Software / Re: Control motor cc joystick on: January 11, 2013, 08:21:07 am
Cheyenne muchas gracias por la respuesta vamos a probar a ver que sale y comento

2  International / Software / Re: Control motor cc joystick on: January 10, 2013, 12:43:43 pm
Muchas Gracias por las respuestas.
A ver lo que hago es lo siguiente leo el valor de la entrada analogica, si es mayor o menor a el valor medio inicia el motor en un sentido o en otro.
luego tomo el valor,lo convierto y se envia a la salida pwm.
Lo que no me sale es, antes de enviar el valor final a la salida pwm, generar un delay y en ese tiempo que la salida pwm valla de 0 a el valor leido en la entrada analoga.
Y luego si el joystick regresa a la pocicion de descanso que la velozidad disminulla no de golpe si no con el mismo tiempo de delay
pense hacerlo con un contador como en el ejemplo fade.

el tema es que tengo 2 motores y en la estructura if - else, cuando entra un contador en uno de los movimientos( por ejemplo forward X )
y si en el joystick acciono reverse Y, asta que no termina el contador de forward X no me envia los datos a la salida pwm de Y.

bueno voy a seguir analizando y muchas gracias por las ideas.
3  Using Arduino / Motors, Mechanics, and Power / dc motor control joystick on: January 09, 2013, 07:11:00 pm
Greetings to the community.
Said a little project. I am wanting to make a pan and tilt system with DC motors.
Gain control by reading analog potentiometers joystic and sending the data to the PWM outputs.
  but the bottleneck is in need a ramp acceleration and deceleration.

To be more clear when triggered the need joystic have an acceleration time till the speed set by the joystic and releasing the joystic speed was slow to zero simultaneously.

Here is the code I'm working on, any idea is welcome

Quote
//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;
  }
  

}

This snippet is only for motor control
4  International / Software / Control motor cc joystick on: January 09, 2013, 07:06:24 pm
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

Quote
//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.
Pages: [1]