เกี่ยวกับโปรแกรมของฉันมันเป็นโปรแกรมที่ทำการคำนวณบางอย่างแล้วส่งแรงดันไฟฟ้าตามผลลัพธ์โดยใช้ฟังก์ชัน analogWrite อย่างไรก็ตามปัญหาของฉันคือฉันได้ทำการเขียนโปรแกรมของฉันตามความเข้าใจผิดว่าฟังก์ชัน analogWrite ผ่าน PWM ทำหน้าที่ส่งสัญญาณแรงดันไฟฟ้าอะนาล็อกซึ่งจริงๆแล้วมันเป็นเพียง "จำลอง" แรงดันไฟฟ้าอนาล็อกแทน
นี่คือส่วนที่เกี่ยวข้องในรหัสของฉัน:
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 ไม่มีเอาต์พุตแรงดันไฟฟ้า มีวิธีการส่งออกแรงดันไฟฟ้าตามที่กล่าวว่า