In Bezug auf mein Programm ist es ein Programm, das einige Berechnungen durchführt und dann eine Spannung basierend auf dem Ergebnis unter Verwendung der AnalogWrite-Funktion ausgibt. Mein Problem ist jedoch, dass ich meine Programmierung aufgrund einer falschen Annahme durchgeführt habe, dass die analogWrite-Funktion über PWM eine analoge Spannung ausgibt, wobei sie stattdessen nur die analoge Spannung "simuliert".
Hier sind die relevanten Teile meines Codes:
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");
}
Der Ausgangspin 11 der Schaltung ist mit einem 1-Ohm-Widerstand und dann mit GND verbunden. (Wo ich die Spannung gemessen habe) Ich verwende Arduino Uno Board.
UPDATE :
Wie in den Kommentaren von @DatHa erwähnt, gibt pwm keine Spannung aus. Gibt es eine Möglichkeit, die Spannung wie gesagt auszugeben, ohne die Platine zu wechseln?