[아두이노#229] RS485/MAX485 통신모듈(11편) 1:N통신으로 워터펌프/플로우센서/비접촉워터레벨센서 제어해보기(녹칸다/포로리야공대가자)
프로그래밍/RS485모드버스(modbus) 2021. 1. 19. 23:19
RS485/MAX485 통신모듈(11편) 1:N통신으로 워터펌프/플로우센서/비접촉워터레벨센서 제어해보기(녹칸다/포로리야공대가자)
-아두이노 3대와 RS482통신모듈 3대를 준비해서 각각 연결을 하고, 통신선(A,B)를 병렬로 연결해보자!
-녹칸다가 이전에 구현했던 RS485 기본송수신 코드를 활용해보자!
-RS485모듈이 달린 아두이노 3대를 각각 A,B,C라고 해보자!
-A에 버튼을 2개 연결하고 워터펌프를 작동시키거나 멈출 수 있도록 해보자!
-그리고 A에 1602LCD를 연결해서 B와 C의 결과를 확인할 수 있도록 하자!
-B에는 워터플로우센서(YF-S401)를 연결해서 워터펌프가 작동할때 물의 토출량을 측정해서 A가 요청할때마다 값을 전송해보자!
-C에는 비접촉워터레벨센서(XKC-Y25-V)를 연결해서 물통의 수위정보를 A가 요청할때마다 전송해보자!
-A는 C의 결과를 확인해서 최저수위에 도달했을때 워터펌프를 자동으로 멈출 수 있도록 해보자!
-A는 유저로부터 입력값(물의용량)을 입력받아서 워터펌프로 물을 펌프질 해보자!(완료시 자동 멈춤..?)
예제 229-1-1(마스터아두이노용 코드)
아두이노에 워터펌프를 릴레이나 모스펫을 이용해서 D4에 연결했다!
버튼2개를 D5와 D6에 연결했는데 D5에 버튼을 워터펌프 ON에 사용하고
D6에 버튼을 워터펌프 OFF에 사용하라!
1602LCD를 I2C전용핀은 SDA를 A4에 연결하고 SCL을 A5에 연결해서 슬레이브의 결과값을 출력하라!
예제 229-2-1(마스터아두이노용 코드)
사용자로부터 시리얼모니터를 이용해서 옮기고자 하는 물의양을 ml단위로 입력을 받는다!
입력을 받은 직후 워터펌프를 작동시켜서 물의양이 목표치에 도달하면 워터펌프를 자동으로 멈추시오!
관련라이브러리(LiquidCrystal_I2C)
https://github.com/johnrickman/LiquidCrystal_I2C
레퍼런스강의(#124)