def processKey(key):

    state = 0  #State of system
    code = ""

    if (len(passcode) == 0):
        print("Please enter passcode: ")

    if (len(passcode) < 4 and key != "#"):
        passcode.append(key)  #Appends key to passcode array
        print(passcode)
        code = code.join(passcode)  #Turns array into string
        lcd.display_msg(code)  #Displays string to LCD

    if (key == "*"):  #If * is pressed it deletes array
        del passcode[:]
        lock.append(key)  #Appends * to lock array
    else:
        del lock[:]

    if (len(lock) == 3):  #If lock length is 3 then put servo down
        servo1.servo_lock()

    if (key == "#"):  #"#" is the enter button
        if (Check_Passcode(passcode) == 1
            ):  #If passcode is true, it sets system state to 2
            state = 2
            print("Correcct Passcode!!!")
            lcd.check_pwd_msg(True)  #Displays passcode is correct message
        else:
            state = 1  #Sets system to 1 if passcode incrorrect
            print("Incorrect Passcode...")
            lcd.check_pwd_msg(False)  #Displays that passcode is false
    else:
        state = 0

    if (state == 0):
        pass

    if (state == 1):
        del passcode[:]  #Deletes passcode array if system state is 1

    if (state == 2):
        lcd.fingerprint_msg()  #Calls fingerprint message
        finger_print_scan = fingerprint.fingerprint_scan(
        )  #Returns value based on fingerprint scan
        if (finger_print_scan == True):  #If the scan is true
            servo1.servo_unlock()  #Move servo up, display Access Message,
            #and delete passcode array
            print("Access Granted!!")
            lcd.Access_Msg(True)
            del passcode[:]
        else:  #If scan is false
            print("Invalid Fingerprint...")
            lcd.Access_Msg(False)  #Display message and delete passcode array
            del passcode[:]