[아두이노#378] (릴레이제어#4) 16채널 릴레이의 자동화 매크로를 제어하기 위한 입력인터페이스 구현해보기!(녹칸다/포로리야공대가자)
프로그래밍/N채널릴레이와 자동화매크로 2021. 11. 11. 23:02
(릴레이제어#4) 16채널 릴레이의 자동화 매크로를 제어하기 위한 입력인터페이스 구현해보기!
녹칸다의 N채널 릴레이를 제어하기 위한 시리즈이다!
이번 시리즈는 N채널 릴레이를 효과적으로 제어하고 일정한 스케쥴에 의해서 제어되도록 해보는데 목적이 있다!
그러나 매우 복잡한 기술을 구사하기 보다는 누구나 직관적으로 이해 할만한 코드를 베이스로 해서 가능하도록 한다!(사실 녹칸다가 복잡한걸 잘 모름)
이번편에서는 (#3)에서 구현해놓은 자동화 매크로를 어떤 외부의 조력없이 아두이노 우노 단독으로 제어하기 위한 방법에 대해서 예제를 구현해보도록 하자!
인터넷 연결없이 아두이노 우노 자체로 16채널 릴레이의 스케쥴이 가능하겠느냐? 라는 목표를 달성해보는 것이다!
녹칸다의 생각으로는 3개의 디지털핀과 74HC595로 16채널 릴레이를 제어하고 8개의 디지털핀으로 4x4키패드를 제어한다! 그리고 I2C가 가능한 1602LCD로 입력한 내용을 확인 할 수 있도록 한다!
아래와 같은 시나리오로 접근해보자!
1.자동화 매크로는 설정모드, 시작모드, 종료모드가 있다!
2.각 모드는 4x4키패드에서 뭔가?를 입력했을때 진입하고 탈출하도록 한다!
3.설정모드는 특정한 채널에서 반복적으로 구행할 매크로를 입력하도록 한다!
4.시작모드는 특정한 채널번호를 입력받아서 해당 채널에 지정된 매크로를 작동시킨다!
5.종료모드는 특정한 채널번호를 입력받아서 해당 채널의 매크로를 종료할 수 있도록 한다!
6.현재 입력중인 내용은 1602LCD에 표시되도록 한다!
(가능하면 부저를 연결해서 입력이 정상적으로 반영되었음을 청각적으로 피드백 해보자!)
관련라이브러리(keypad/3.1.1)
https://github.com/Chris--A/Keypad
관련라이브러리(LiquidCrystal_I2C/1.1.2)
https://github.com/johnrickman/LiquidCrystal_I2C
0.아무것도 하지않는 모드
1.파라미터를 설정하는명령(A0#) set_nockanda
->채널번호(0#)
->켜지는게 유지되는 시간(100#)
->꺼진상태가 유지되는 시간(100#)
->반복횟수(5#) '-1' 이면
2.특정한 채널을 작동시키는명령(A1#) run_nockanda
3.특정한 채널을 멈추는 명령(A2#) stop_nockanda
4. 모든채널을 작동시키는 명령(A3#) all_run()
5. 모든채널을 멈추는 명령(A4#) all_stop()
B0(SAVE) B1(LOAD) B2(print) B3(공장초기화)
어떤상황이든지 *을 누르면 초기상태로 돌아간다!