Mengenai program saya, ini adalah program yang melakukan beberapa perhitungan dan kemudian mengeluarkan tegangan berdasarkan hasil menggunakan fungsi analogWrite. Namun masalah saya adalah bahwa saya telah melakukan pemrograman berdasarkan kesalahpahaman bahwa fungsi analogWrite melalui PWM memang menghasilkan tegangan analog, di mana sebenarnya itu hanya "mensimulasikan" tegangan analog sebagai gantinya.
Berikut adalah bagian yang relevan dari kode saya:
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");
}
Sedangkan untuk sirkuit, pin keluaran 11 dihubungkan ke resistor 1 ohm dan kemudian ke GND. (Di mana saya mengukur tegangan) Saya menggunakan papan Arduino Uno.
PEMBARUAN :
Seperti yang dikatakan dalam komentar oleh @DATHa, PWM tidak menghasilkan tegangan. Apakah ada cara untuk menghasilkan tegangan seperti yang dikatakan, tanpa mengganti papan?