关于我的程序,它是一个程序,先进行一些计算,然后使用analogWrite函数根据结果输出电压。但是我的问题是我基于一个误解来完成编程,这种误解是通过PWM的AnalogWrite函数确实会输出一个模拟电压,而实际上它只是“模拟”了模拟电压。
这是我的代码的相关部分:
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");
}
至于电路,输出引脚11先连接到1欧姆电阻,然后再连接到GND。(在哪里测量电压)我正在使用Arduino Uno开发板。
更新:
如@DatHa的评论中所述,pwm不输出电压。有没有办法在不更换电路板的情况下输出电压?