Con respecto a mi programa, es un programa que hace algunos cálculos y luego genera un voltaje basado en el resultado usando la función analogWrite. Sin embargo, mi problema es que había hecho mi programación en base a una idea errónea de que la función analogWrite a través de PWM genera una tensión analógica, donde en realidad solo "simula" la tensión analógica.
Aquí están las partes relevantes de mi código:
int pwmOutput = 11;
int pwm = 0;
void compareNewOldVoltageYes(void)
{
if(pv_Vnew > pv_Vold && pwm != 255)
{
++pwm; //increasing value
}
else if(pwm != 0)
{
--pwm; //decreasing
}
}
void compareNewOldVoltageNo(void)
{
if(pv_Vnew > pv_Vold && pwm != 0)
{
--pwm;
}
else if(pwm != 255)
{
++pwm;
}
}
void loop()
{
reading();
PowerCalculation();
if(pv_NewP > pv_OldP)
{
compareNewOldVoltageYes();
}
else
{
compareNewOldVoltageNo();
}
analogWrite(pwmOutput, pwm); //analogWrite
float displayPWMvolt = pwm * 0.0196;
Serial.print("Output Voltage: ");
Serial.print(displayPWMvolt);
Serial.println(" V");
pv_OldP = pv_NewP;
Serial.print("Previous Power: ");
Serial.print(pv_OldP);
Serial.println(" W");
}
En cuanto a los circuitos, el pin de salida 11 se está conectando a una resistencia de 1 ohm y luego a GND. (Donde medí el voltaje) Estoy usando la placa Arduino Uno.
ACTUALIZACIÓN :
Como se dijo en los comentarios de @DatHa, pwm no genera voltaje. ¿Hay alguna forma de salida de voltaje como se dijo, sin cambiar la placa?