Go Down

Topic: Voltaje variable con analogWrite (Read 1 time) previous topic - next topic

juanvivo

Feb 01, 2014, 10:24 pm Last Edit: Jun 15, 2017, 08:21 pm by surbyte Reason: Enlaces sin etiquetas
Hola a todos.

Estoy intentando conseguir "emular" un voltaje por medio de la instruccion analogWrite, como leo en

http://forum.arduino.cc/index.php?topic=31710.0
o
http://www.arduteka.com/2011/11/tutorial-arduino-0003-entrada-analogica-y-salida-pwm/
o
http://arduino.cc/es/Reference/AnalogWrite

pero no consigo hacer que me funcione.

Conecto un multimetro a la salida 11 de un ATmega328, y pasa de 0 voltios si el parametro de analogWrite es de 125 para abajo y 5 voltios si esta de 125 para arriba... NO consigo voltajes intermedios...

ej:  
Code: [Select]
analogWrite (11, 120); //EL voltaje es 0v
     analogWrite (11, 80); //EL voltaje es 0v
     analogWrite (11, 150); //EL voltaje es 5v
     analogWrite (11,200); //EL voltaje es 5v


POdeis decirme que hago mal??

Gracias por vuetro tiempo.

Sergegsx


juanvivo

Perdon, aqui esta:

Code: [Select]
int Pin = 11;   
void setup()  {
  // nothing happens in setup
}

void loop()  {

    analogWrite(Pin, 50);      // 0 voltios en el multimetro.   
    delay(5000);
    analogWrite(Pin, 150);     //5 voltios en el multimetro.   
    delay(5000);     

}

 

noter

Aun a riesgo de salirme de mi territorio e internarme en el desconocido de la electrónica, aunque el comando se llame analogwrite, la salida que da es de 5v en impulsos de mayor o menor anchura dentro del ciclo. Así que es correcto que detectes 0 o 5v. Podríamos decir que lo que se regula es la intensidad media por ciclo. Seguramente que haya algún circuito que pueda convertir en voltaje esos impulsos, pero ahí tendrá que asesorarteb siguen que sepa :smiley-roll-blue:.

Sergegsx

echa un vistazo al enlace q tu mismo has puesto

http://arduino.cc/es/Reference/AnalogWrite

juanvivo

#5
Feb 02, 2014, 08:10 pm Last Edit: Feb 02, 2014, 08:27 pm by juanvivo Reason: 1
HOmbre, el vistazo la se lo he echado... Puedes ser mas concreto?

Si lo dices por que no he declarado el pin como salida en otros textos de referencia dice que no es necesario, y de hecho lo he probado de ambas formas con identico resultado...

En un arduino mega que tengo funciona perfectamente...


Aun a riesgo de salirme de mi territorio e internarme en el desconocido de la electrónica, aunque el comando se llame analogwrite, la salida que da es de 5v en impulsos de mayor o menor anchura dentro del ciclo. Así que es correcto que detectes 0 o 5v. Podríamos decir que lo que se regula es la intensidad media por ciclo. Seguramente que haya algún circuito que pueda convertir en voltaje esos impulsos, pero ahí tendrá que asesorarteb siguen que sepa :smiley-roll-blue:.


El segundo parametro define el ancho de pulso, con lo que se consigue el voltaje determinado...

PERICOPALOTES

Yo tampoco entiendo mucho, pero creo que el muestreo del multimetro coje el voltaje justo en el momento en el que está en 0 o 5, no promedia voltajes. En valores bajos hay mas probabilidad de detectar 0s y en altos de detectar 5s

noter

Perfectamente expresado. Lo que no entiendo es porqué en el mega sí te da valores intermedios. Tal vez sea porque la frecuencia pwm sea más alta y "engañe" al multímetro, pero en ambos casos creo que la salida es una onda cuadrada con 0 o 5 voltios. Si hallaramos la media de voltaje por ciclo saldría ese voltaje pseudo analógico equivalente.

PERICOPALOTES

Igual con algún condensador se podía convertir en continua esa onda cuadrada, pero esas son cosas que ya se me escapan. No tengo ni papa de electrónica :smiley-roll-sweat:

jeisonjoe

Comprueba que el pin 11 tiene en la placa un símbolo de onda, esto indica que es PWM donde puedes ejecutar correctamente el comando analogWrite.

Comprueba lo siguiente,
analogWrite(11,127);
delay(1000);
analogWrite(11,128);
delay(1000);

si se enciende y se apaga significa que está actuando como un pin digital. Me explico, el comando analog write varia desde 0 hasta 255. si haces 255/2 te da 127.5. por ello en 127 (al ser pin digital) lo interpreta como un LOW y luego en 128 lo interpreta como un HIGH. En resumen, pienso que es por ello que el tester te marca o cero voltios o cinco voltios. sin estados intermedios.

Mi propuesta sería que hicieras tu conexión con otro pin (asegúrate de que este nuevo pin lleve asociado en la placa arduino el símbolo de onda que te comento) y vieras si te funciona o no. Dicho lo cual, comprobaría en todos los pines PWM que funciona adecuadamente el comando analogWrite.

Mucha suerte ;) !

surbyte

Hilo del 2014. No reavives hilos viejos.

Go Up