Pokud jde o můj program, jedná se o program, který provádí určité výpočty a poté na základě výsledku vysílá napětí pomocí funkce analogWrite. Mým problémem však je, že jsem programování provedl na základě mylné představy, že funkce analogWrite přes PWM vydává analogové napětí, přičemž ve skutečnosti pouze „simuluje“ analogové napětí.
Zde jsou relevantní části mého kódu:
int pwmOutput = 11; int pwm = 0; void compareNewOldVoltageYes (void) {if (pv_Vnew > pv_Vold && pwm! = 255) {++ p // zvýšení hodnoty} else if (pwm! = 0) {--pwm; // klesající}} 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); // plovoucí displej analogWrite PWMvolt = pwm * 0,0196; Serial.print ("Výstupní napětí:"); Serial.print (displayPWMvolt); Serial.println ("V"); pv_OldP = pv_NewP; Serial.print ("Předchozí výkon:"); Serial.print (pv_OldP); Serial.println ("W");}
Pokud jde o obvody, výstupní pin 11 je připojen k rezistoru 1 ohm a poté k GND. (Kde jsem změřil napětí) Používám desku Arduino Uno.
UPDATE :
Jak bylo řečeno v komentářích od @DatHa, pwm nemá výstup Napětí. Existuje způsob, jak vydat napětí, jak bylo řečeno, aniž byste měnili desku?