void checkBatteryCharging(float voltage, int relay_id) {
  char buffer[BUFSIZE];
  
  int relay_status = getRelayState(relay_id);
  
  Serial.print("checkBatteryCharging: ");
  ftoa(buffer, voltage, 2);
  Serial.print(buffer);
  Serial.print(" ");
  Serial.print(relay_status);
  Serial.print(" ");
  
  if (voltage <= BAT_ALARM_LOW) {
    die();
  } else if (voltage >= BAT_ALARM_HIGH) {
    die();
  } else if (relay_status == HIGH && voltage >= BAT_HIGH) {
    Serial.println("Relay off");
    relayOff(relay_id);
  } else if (relay_status == LOW) {
    if (voltage < BAT_HIGH) {
      Serial.println("Relay on");
      relayOn(relay_id);
    } else {
      Serial.println("no charging needed");
    }
  } else {
    Serial.println("Nothing");
  }
}
Пример #2
0
void Reflowster::relayToggle() {
  if (digitalRead(pinConfiguration_relay)) {
    relayOff();
  } else {
    relayOn();    
  }
}
void chaser(void) {
  for (int i=0; i < 1; i++) {
    if (getRelayState(i) == HIGH) {
      relayOff(i);
    } else {
      relayOn(i);
    }
  }
}
void die() {  
  for (int i=0; i < countRelays; i++)
    relayOff(i);
  
  lcd.setCursor(0, 0);
  lcd.print("Casse...");

  digitalWrite(ALARM_PIN, HIGH);
  
  wdt_disable();
  exit(1);
}