Problema con conversion de analog a pwm - Ejecricio 1, taller 5

Problema con conversion de analog a pwm - Ejecricio 1, taller 5

de Christian Duarte Valdez -
Número de respuestas: 2

Hola. Estamos teniendo problemas con la primera parte del void loop, en donde convertimos el analogRead a una salida pwm. Lo copiamos y pegamos de otro codigo que ya sabiamos que funcionaba, sin embargo en este no quiere y no sabemos por que. Ademas, cuando fijamos un valor a revoluciones, que se supone que es la salida pwm, el resto del codigo funciona perfecto, asi que estamos seguros de que el problema esta ahi. Nos gustaria que nos digan si encuentran algun error.

Adjunto el codigo:

void loop()
{
  revoluciones1 = analogRead(analog1);
  revoluciones = 255./1023.*revoluciones1;
  Serial.println(revoluciones1);
  apagar_motores (revoluciones, PINDD, PINDI, PINII, PINID, PWMI, PWMD);
  if (leer_boton(BOTOND) == 1) {
    mover_derecha (revoluciones, PINDD, PINDI, PINII, PINID, PWMI, PWMD);
  }
  if (leer_boton(BOTONA) == 1) {
    mover_izquierda (revoluciones,PINDD, PINDI, PINII, PINID, PWMI, PWMD);
  }
  if (leer_boton(BOTONW) == 1) {
    mover_adelante (revoluciones,  PINDD, PINDI, PINII, PINID, PWMI, PWMD);
  }
  if (leer_boton(BOTONS) == 1) {
    mover_atras (revoluciones,  PINDD, PINDI, PINII, PINID, PWMI, PWMD);
  }
}



En respuesta a Christian Duarte Valdez

Re: Problema con conversion de analog a pwm - Ejecricio 1, taller 5

de Sebastian Montes de Oca -
Christian cómo estás?

Estuve mirando tu código en el tinkercad. Si bien al parecer me parece que esta bien, me dio el mismo problema que a ti. Para que funcione defini la variable revoluciones1 como float (revoluciones puede ser un int o un tipo float) y quedó funcionando.

De todas maneras un compañero hizo la misma prueba con el IDE de Arduino y una placa y código funcionaba bien. Si tenes una placa al alcence probá el código sin hacer cambios y fijate si funciona. En el tinkercad probá cambiar el tipo de la variable (definilo como un float) y fijate si anda. Creo que el problema viene por como se definen las operaciones entre tipos de variable y que al hacer la cuenta 255*1023 se genera un overflow.

Hace las pruebas y nos comentas como te fue.

Saludos
Sebastián.
En respuesta a Sebastian Montes de Oca

Re: Problema con conversion de analog a pwm - Ejecricio 1, taller 5

de Christian Duarte Valdez -
Hice las pruebas y esta vez funciono en thinkercad al igual que en la placa, sin ningun cambio en el codigo. Se ve que es una ambiguedad del simulador no mas. Igualmente investigamos un poco y descubrimos la funcion map, por lo que no nos trancamos en el ejercicio, pero queriamos sacarnos la duda de si habiamos hecho algo mal nosotros o era el simulador. Gracias.