Skip to content

Commit

Permalink
Fix power set correction
Browse files Browse the repository at this point in the history
  • Loading branch information
serjrv committed Dec 9, 2018
1 parent 7e6c868 commit 97f9942
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 31 deletions.
Binary file modified _bin/DataFiles/LuckyBox.ino.bin
Binary file not shown.
59 changes: 29 additions & 30 deletions adc.cpp
Expand Up @@ -35,37 +35,36 @@ void adcLoop() {
//Serial.print("AIN3: "); Serial.println(adcIn[3].data);
//Serial.println(" ");


}
// Замер напряжения сети
uint16_t minVoltage = 1024;
uint16_t maxVoltage = 0;
uint16_t adcRez;
unsigned long timeAdc = millis() + 40;
while (timeAdc > millis()) {
adcRez = analogRead(0);
if (minVoltage > adcRez) minVoltage = adcRez;
if (maxVoltage < adcRez) maxVoltage = adcRez;
}
//Voltage = (maxVoltage - minVoltage) >> 2; // для MCP602
Voltage = maxVoltage - minVoltage; // для LM358
if (Voltage < 50) Voltage = 230; // модуль zmpt101 отсутствует
float deltaPercent = 100 - (Voltage / 2.3);
// Замер напряжения сети
uint16_t minVoltage = 1024;
uint16_t maxVoltage = 0;
uint16_t adcRez;
unsigned long timeAdc = millis() + 40;
while (timeAdc > millis()) {
adcRez = analogRead(0);
if (minVoltage > adcRez) minVoltage = adcRez;
if (maxVoltage < adcRez) maxVoltage = adcRez;
}
//Voltage = (maxVoltage - minVoltage) >> 2; // для MCP602
Voltage = maxVoltage - minVoltage; // для LM358
if (Voltage < 50) Voltage = 230; // модуль zmpt101 отсутствует
float deltaPercent = 100 - (Voltage / 2.3);

// вычислим коррекцию для ТЭНа
if (power.heaterPower > 0) {
//if (outHeater == HIGH) {
deltaPercent /= (100 / power.heaterPower);
if ((power.heaterPower + deltaPercent) <= 100 && (power.heaterPower + deltaPercent) >= 0) power.heaterPowerCorr = uint8_t(power.heaterPower + deltaPercent);
else if ((power.heaterPower + deltaPercent) > 100) power.heaterPowerCorr = 100;
else if ((power.heaterPower + deltaPercent) < 0) power.heaterPowerCorr = 0;
//}
}
else power.heaterPowerCorr = 0;
// вычислим коррекцию для ТЭНа
if (power.heaterPower > 0) {
//if (outHeater == HIGH) {
deltaPercent /= (100 / power.heaterPower);
if ((power.heaterPower + deltaPercent) <= 100 && (power.heaterPower + deltaPercent) >= 0) power.heaterPowerCorr = uint8_t(power.heaterPower + deltaPercent);
else if ((power.heaterPower + deltaPercent) > 100) power.heaterPowerCorr = 100;
else if ((power.heaterPower + deltaPercent) < 0) power.heaterPowerCorr = 0;
//}
}
else power.heaterPowerCorr = 0;

//Serial.print("Power = "); Serial.println(power.heaterPowerCorr);
//Serial.print("min = "); Serial.println(minVoltage);
//Serial.print("max = "); Serial.println(maxVoltage);
//Serial.print("ADC Delta = "); Serial.println(Voltage);
//Serial.print("Power = "); Serial.println(power.heaterPowerCorr);
//Serial.print("min = "); Serial.println(minVoltage);
//Serial.print("max = "); Serial.println(maxVoltage);
//Serial.print("ADC Delta = "); Serial.println(Voltage);
}
}

2 changes: 1 addition & 1 deletion user_config.h
Expand Up @@ -61,7 +61,7 @@
#define PWM_CH8_Invert true
#define PWM_CH9_Invert true
// переменные временных интервалов на отбор голов для РК
#define headValveOpen 700
#define headValveOpen 800
#define headValveClose 5000
// используется "Полский буфер" с клапаном слива в канале PWM_CH4
//#define Polish_Buffer
Expand Down

0 comments on commit 97f9942

Please sign in to comment.