Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Дверь по цифровой клавиатуре, работающая в фоне.
- -- Сделал feod0r
- -- Отдельное спасибо lLufy за помощь в использовании двух нампадов одновременно
- --Базовые настройки кодового замка
- local locked = "Закрыто" -- слово, которое будет отображаться при закрытой двери
- local keyWord = "1996" -- пароль, который необходимо ввести
- local opened = "Открыто" -- слово, которое будет отображаться при открытой двери
- local wrong = "неверно" -- слово, которое будет отображаться при непрвильном вводе пароля
- local input = "" -- переменная для хранения цифрового ввода STRING
- --подключаемые библиотеки
- local computer = require("computer") --пускай будет, чтобы пищал
- local event = require("event") --API для эвентов
- local component = require("component") --API для работы с компонентами
- local keypad = component.os_keypad --блок клавиш
- --Внимание! Необходимо сменить адреса номеронаберателей!
- -- local keypad = component.proxy(component.get("072")) -- первый номеронабератель
- -- local keypad2 = component.proxy(component.get("aed"))-- второй номеронабератель
- local red = component.redstone --блок красной карты
- -- кто делал
- print("by feod0r")
- keypad.setDisplay("feod0r",1)
- os.sleep(1.5)
- --инициализация кнопок первого номеронобератиеля
- keypad.setDisplay(locked,4)
- keypad.setEventName("pressed")
- keypad.setKey(12,"Ок",2)
- keypad.setKey(11,"Зак",4)
- keypad.setKey(10,"Оч",4)
- --обработчик нажатий на кнопки
- function passwd(name, adress, key, button )
- --print( name, adress, key, button ) отладочная информация, пускай будет
- if key == 10 then --если нажата кнопка "очистить"
- input = ""
- computer.beep(600,0.01)
- elseif key == 12 then --если нажата кнопка "Ввод"
- if keyWord == input then --код верный, дверь открывается
- --print(opened)
- keypad.setDisplay(opened,2)
- red.setOutput(1,150)
- input = ""
- computer.beep(1500,0.5)
- else --если введенный код неверный
- keypad.setDisplay(wrong,6)
- --print("Неверный код: ",input)
- input = ""
- computer.beep(1000,0.5)
- end
- elseif key == 11 then -- если нажата кнопка "Закрыть"
- --print(locked)
- keypad.setDisplay(locked,4)
- input = ""
- computer.beep(1500,0.5)
- computer.beep(1000,0.5)
- red.setOutput(1,0)
- else
- input = input..button
- computer.beep(1500,0.01)
- end
- end
- --Запускаем первого демона
- if event.listen("pressed",passwd) then
- print("listener первого номеранаберателя запущен")
- else
- print("Проблемы при включении слушателя перого номеранаберателя")
- end
- --Сообщение для юзверей.
- print("Комьютер свободен. Можно заниматься своими делами, программа двери работает в фоне.")
Add Comment
Please, Sign In to add comment