Here is full code so far, but when compiling I'm getting following error:
exit status 1
'updateMWState' was not declared in this scope
What does it mean? updateMWState is a function...
// ----------LIBRARIES--------------
// --------CONSTANTS (Input / Output)---------------
const byte HP1PotPin = A0, HP2PotPin = A1, OvenPotPin = A3; // the three pot pins
const int MWButtonPin = 9; // MW On button Pin
const int HP1LedPin = 13, HP2LedPin = 12, OvenLedPin = 11, MWLedPin = 0, MWBeepPin = 1, MWMotorPin = 10; // the pin numbers for the LEDs and buzzer
const int pinA = 5; // --5--
const int pinB = 6; // 4 | | 6
const int pinC = 8; // |--2--|
const int pinD = 3; // 7 | | 8
const int pinE = 7; // --3--
const int pinF = 4;
const int pinG = 2;
const int MWButtonInterval = 300; // number of millisecs between button readings
const long HPinterval = 5000; // interval at which to blink (milliseconds)
const int OvenLedShortFadeValue = 10, OvenLedLongFadeValue = 100; // adjust times to suit
//------------ VARIABLES (will change)---------------------
int HP1PotValue, HP2PotValue, OvenPotValue;
byte MWButtonState = LOW;
unsigned long currentMillis = 0; // stores the value of millis() in each iteration of loop()
unsigned long previousHP1Millis = 0, previousHP2Millis = 0,previousOvenMillis = 0, previousMWButtonMillis = 0, MWSwitchOnMillis, MWMillisOn; // will store last time function was updated
unsigned long OvenFadeOutTime = 10;
int HP1LedState = LOW, HP2LedState = LOW; // ledState used to set the LED
int HP1LedOntime = 0, HP2LedOntime = 0, OvenLedOntime = 0; // period within "interval", when Led is on
int OvenLedValue = 0; // Oven Led ratio
byte PotThreshold = 50; // pot off threshold
boolean MWOn = false;
//========================================
void setup() {
//Serial.begin(9600);
//Serial.println("Starting SeveralThingsAtTheSameTimeRev1.ino"); // so we know what sketch is running
// set the Stove Led pins as output:
pinMode(HP1LedPin, OUTPUT);
pinMode(HP2LedPin, OUTPUT);
pinMode(OvenLedPin, OUTPUT);
pinMode(MWLedPin, OUTPUT);
// set the 7seg indicator pins as output:
pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(pinC, OUTPUT);
pinMode(pinD, OUTPUT);
pinMode(pinE, OUTPUT);
pinMode(pinF, OUTPUT);
pinMode(pinG, OUTPUT);
// set the button pin as input with a pullup resistor to ensure it defaults to HIGH
pinMode(MWButtonPin, INPUT);
}
//========================================
void loop() {
readMWButton(); // call the functions that do the work
updateMWState();
updateHPStates();
updateOvenState();
}
//========================================
void readMWButton() {
// this only reads the button state after the button interval has elapsed
// this avoids multiple flashes if the button bounces
// every time the button is pressed it changes buttonLed_State causing the Led to go on or off
// Notice that there is no need to synchronize this use of millis() with the flashing Leds
if (millis() - previousMWButtonMillis >= MWButtonInterval) {
if (digitalRead(MWButtonPin) == HIGH) {
MWOn = true; // switching on MW oven
MWSwitchOnMillis = millis(); // fixing MW on time
digitalWrite(MWLedPin, HIGH);
analogWrite(MWMotorPin, 50);
previousMWButtonMillis += MWButtonInterval;
}
}
}
//========================================
void UpdateMWState() {
if (MWOn = true) {
currentMillis = millis();
MWMillisOn = currentMillis - MWSwitchOnMillis;
if (MWMillisOn < 1000) {
digitalWrite(pinA, B0);
digitalWrite(pinB, B0);
digitalWrite(pinC, B0);
digitalWrite(pinD, B0); //9
digitalWrite(pinE, B1);
digitalWrite(pinF, B0);
digitalWrite(pinG, B0);
break;}
if (MWMillisOn < 2000){
digitalWrite(pinA, B0);
digitalWrite(pinB, B0);
digitalWrite(pinC, B0);
digitalWrite(pinD, B0); //8
digitalWrite(pinE, B0);
digitalWrite(pinF, B0);
digitalWrite(pinG, B0);
break;}
if (MWMillisOn < 3000){
digitalWrite(pinA, B0);
digitalWrite(pinB, B0);
digitalWrite(pinC, B0);
digitalWrite(pinD, B1); //7
digitalWrite(pinE, B1);
digitalWrite(pinF, B1);
digitalWrite(pinG, B1);
break;}
if (MWMillisOn < 4000){
digitalWrite(pinA, B0);
digitalWrite(pinB, B1);
digitalWrite(pinC, B0);
digitalWrite(pinD, B0); //6
digitalWrite(pinE, B0);
digitalWrite(pinF, B0);
digitalWrite(pinG, B0);
break;}
if (MWMillisOn < 5000){
digitalWrite(pinA, B0);
digitalWrite(pinB, B1);
digitalWrite(pinC, B0);
digitalWrite(pinD, B0); //5
digitalWrite(pinE, B1);
digitalWrite(pinF, B0);
digitalWrite(pinG, B0);
break;}
if (MWMillisOn < 6000){
digitalWrite(pinA, B1);
digitalWrite(pinB, B0);
digitalWrite(pinC, B0);
digitalWrite(pinD, B1); //4
digitalWrite(pinE, B1);
digitalWrite(pinF, B0);
digitalWrite(pinG, B0);
break;}
if (MWMillisOn < 7000){
digitalWrite(pinA, B0);
digitalWrite(pinB, B0);
digitalWrite(pinC, B0);
digitalWrite(pinD, B0); //3
digitalWrite(pinE, B1);
digitalWrite(pinF, B1);
digitalWrite(pinG, B0);
break;}
if (MWMillisOn < 8000){
digitalWrite(pinA, B0);
digitalWrite(pinB, B0);
digitalWrite(pinC, B1);
digitalWrite(pinD, B0); //2
digitalWrite(pinE, B0);
digitalWrite(pinF, B1);
digitalWrite(pinG, B0);
break;}
if (MWMillisOn < 9000){
digitalWrite(pinA, B1);
digitalWrite(pinB, B0);
digitalWrite(pinC, B0);
digitalWrite(pinD, B1); //1
digitalWrite(pinE, B1);
digitalWrite(pinF, B1);
digitalWrite(pinG, B1);
break;}
if (MWMillisOn < 10000){
digitalWrite(pinA, B0);
digitalWrite(pinB, B0);
digitalWrite(pinC, B0);
digitalWrite(pinD, B0); //0
digitalWrite(pinE, B0);
digitalWrite(pinF, B0);
digitalWrite(pinG, B1);
break;}
if (MWMillisOn >= 10000){
MWOn = false; // switching off MW oven
digitalWrite(MWLedPin, LOW);
analogWrite(MWMotorPin, 0);
tone(MWBeepPin, 1000, 1000);
digitalWrite(pinA, B1);
digitalWrite(pinB, B1);
digitalWrite(pinC, B1);
digitalWrite(pinD, B1); //
digitalWrite(pinE, B1);
digitalWrite(pinF, B1);
digitalWrite(pinG, B1);
break;}
}
}
else {}
}