Em relação ao meu programa, é um programa que faz alguns cálculos e, em seguida, gera uma tensão com base no resultado usando a função analogWrite. No entanto, meu problema é que eu havia feito minha programação com base no equívoco de que a função analogWrite via PWM produz uma tensão analógica, na verdade, apenas "simula" a tensão analógica.
Aqui estão as partes relevantes do meu 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");
}
Quanto ao circuito, o pino de saída 11 está sendo conectado a um resistor de 1 ohm e depois ao GND. (Onde medi a tensão) Estou usando a placa Arduino Uno.
ATUALIZAÇÃO :
Como dito nos comentários de @DatHa, o pwm não gera tensão. Existe uma maneira de emitir tensão como dito, sem alterar a placa?