내 프로그램과 관련하여 일부 계산을 수행 한 다음 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은 전압을 출력하지 않습니다. 보드를 변경하지 않고 전압을 출력하는 방법이 있습니까?