Arduino - 'setLocked' was not declared in this scope

gfvalvo:
Hi. Nice job using Code Tags in your first post!!!

thanks :smiley:

sterretje:
As a side note, is there a reason why you clear the lcd 180 times in a row? I suspect that this indicates that the for loops inside loop are missing some '}'

It was probably a mistake, I have corrected it.

So I did everything you said, every loop is now closed and it's still showing this error. I think it might have something to do with the servo motor code.

#include <Keypad.h>

#include <LiquidCrystal.h> //include LCD library (standard library)
#include <Keypad.h> //include keypad library

#define redLED 10 //define the LED pins
#define greenLED 11

char* password = "1234"; //create a password
int pozisyon = 0; //keypad position

const byte rows = 4; //number of the keypad's rows and columns
const byte cols = 4;

char keyMap [rows] [cols] = { //define the cymbols on the buttons of the keypad

  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};

byte rowPins [rows] = {1, 2, 3, 4}; //pins of the keypad
byte colPins [cols] = {5, 6, 7, 8};

Keypad myKeypad = Keypad( makeKeymap(keyMap), rowPins, colPins, rows, cols);

LiquidCrystal lcd (A0, A1, A2, A3, A4, A5); // pins of the LCD. (RS, E, D4, D5, D6, D7)

void setup() {

  lcd.begin(16, 2);
  pinMode(redLED, OUTPUT);  //set the LED as an output
  pinMode(greenLED, OUTPUT);
  setLocked (true); //state of the password
}

void loop() {

  char whichKey = myKeypad.getKey(); //define which key is pressed with getKey

  lcd.setCursor(0, 0);
  lcd.print("    Welcome");
  lcd.setCursor(0, 1);
  lcd.print(" Enter Password");

  if (whichKey == '*' || whichKey == '#' || whichKey == 'A' ||      //define invalid keys
      whichKey == 'B' || whichKey == 'C' || whichKey == 'D') {

    pozisyon = 0;
    setLocked (true);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("  Invalid Key!");
    delay(1000);
    lcd.clear();
  }
  if (whichKey == password [pozisyon]) {

    pozisyon ++;
  }
  if (pozisyon == 4) {
    setLocked (false);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("*** Verified ***");
    delay(2000);
    for (pos = 0; pos <= 180; pos += 1) {
      myservo.write(pos);
      delay(15);
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Unlocked");
      lcd.setCursor(0, 1);
      lcd.print("--------");
      delay(7000);
      for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
        myservo.write(pos);              // tell servo to go to position in variable 'pos'
        delay(15);                       // waits 15ms for the servo to reach the position
      }
      delay(100);
    }
    lcd.clear();
  }


  void setLocked(int locked) {
    if (locked) {
      digitalWrite(redLED, HIGH);
      digitalWrite(greenLED, LOW);
    }
    else {
      digitalWrite(redLED, LOW);
      digitalWrite(greenLED, HIGH);
    }
  }