En ce qui concerne mon programme, il s'agit d'un programme qui effectue certains calculs puis émet une tension basée sur le résultat à l'aide de la fonction analogWrite. Cependant, mon problème est que j'avais fait ma programmation sur la base d'une idée fausse selon laquelle la fonction analogWrite via PWM produit une tension analogique, alors qu'en fait, elle "simule" uniquement la tension analogique.
Voici les parties pertinentes de mon code:
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");
}
En ce qui concerne les circuits, la broche de sortie 11 est connectée à une résistance de 1 ohm, puis à GND. (Où j'ai mesuré la tension) J'utilise la carte Arduino Uno.
MISE À JOUR :
Comme indiqué dans les commentaires de @DatHa, pwm ne produit pas de tension. Existe-t-il un moyen de sortir la tension comme indiqué, sans changer la carte?