UI 흐름도

워테맨 자동급수 시스템은 다음과 같은 User Inteface 흐름으로 구성된다.
-파란색 박스모양은 각 단계별 화면에 표시되는 내용이고,
-붉은색 기호는 각각의 화면에서 해당 버튼을 눌렀을 때 연결되어야 하는 화면기능의 표시임

 

 

 

프로그램 코딩 샘플 
 

 


6~18  line:  연결될 부품들에 대한 IO Pin 배정
19~35 line: 프로그램에서 사용할 전역 변수들

 

 


39~47  line:  펌프,LED등을 위한  핀들의 모드설정 및 초기값 지정 
49~56 line: 초기모드 표시(LCD화면에 메세지 표시,LED 점멸)한 후 LCD화면 Clear
5 6line~  : EEPROM에 보관해 놓은 Data가 있을 경우 처리(Data보관시 1번지에 1로 표시해 놓고)
59~61line : 급수간격 Day(10번지),급수간격 Hour(12번지) 값을 읽어 급수간격을 초단위로 계산
67~71line: 대기중 비정상종료 인지 확인하여 복구하기 위한 Data        
*** 메모리 입출력함수 
   EEPROM.read(x) : 메모리 x번지 읽기,    EEPROM.write(x, y); 메모리x번지에 y값으로 쓰기  

 

 

 

77 line:  대기중 비정상 종료된 경우 대기하기 기능으로 이동
78~86 line: 종합상황을 LCD화면에 표시하기 
88 line  :  키패드로 부터 1글자 입력 받기 
89~106 line : 키패드 입력 문자에 따라 해당 기능 수행하기 

 


109 line: 함수 호출 파라메터로 숫자모드인지 문자모드인지 구분을 전달받기 
111 line : 키패드눌림상태 확인하여 읽기  
113~118 line : 문자모드 일경우 입력된 문자가 메뉴선택용 문자인지 확인하여 맞으면  입력확인용
                     비프음 출력하고 복귀 
119~123 line : 숫자모드 일경우 입력된 문자가 숫자인지 확인하여 맞으면  입력확인용 비프음
                  출력하고 복귀  

 

 

130~133 line: LCD에 안내 문구 출력 
135~157 line : 3개 숫자를 입력받아 첫 숫자는 대기일수, 뒤 두자리숫자는 대기시간으로 사용
136 line : 숫자모드로 키패드 입력받기
140, 144 line : 입력되는 숫자 첫번째와 세번째 일때 잘라서 사용하기 
146~155 line: 시간단위가 24를 초과할 경우 다시 입력받기 
159~165 line : 메모리에 보관하고 작업완료 비프음 출력

 

 

169~172 line: LCD에 안내 문구 출력 
174~182 line : 3개 숫자를 입력받아  급수시간으로 사용
175 line : 숫자모드로 키패드 입력받기
179 line : i==2 즉 세번째 숫자가 입력되었을 때 입력된 세문자를 연결하여 숫자로 변환 
183~190 line : 메모리에 보관하고 작업완료 비프음 출력

 

 

 

 

250 line: Ready 상태임을 메모리에 저장
253~256 line : Ready상태에서 비정상종료된 경우 잔여시간을 보돤되었던 시간으로 set
257 ~275 line : Delay타임 입력받기 ( 잔여시간 Counting을 바로 시작하는 것이 아니고 일정시간 이후부터 시작하기 )

 

 

 

 


276 line: 물통에 물이 있는지 확인하는 함수 호출
278 line~  : Ready상태 : 조건을 반복 check하며 급수할 것인지 여부 결정 
279,280 line : 조건 Check하기 위한 온습도 값읽기 
283 ~292  line : 타이머잔여시간이 0이고 온습도 조건이 맞으면 물주기 함수 호출 
293 ~305 line : 잔여시간을 Day-Hour로 변환하여 LCD화면에 표시하기 
306~311 line: 매 10분마다 현재 상태( 잔여시간)을 메모리에 저장해 놓기

 

 


312~322 line: Ready 상태에서 #버튼이 눌러지면 비프음 출력하고 Ready상태 종료하기

 

 

327~332 line: 비프음을 출력하고 펌프가동 함수 호출

 

 

 

336~339  line: LCD에 안내 문구 출력 
342~349  line : 물통에 물이 있는지 확인한 후 펌프에 연결된 릴레이와 급수중 LED 가동
350 ~360 line : 급수잔여 시간을 계산하여 LCD표시하고 종료되면 loop를 빠져나와 복귀 

 

 

378  line: 수위센서 VCC에 전원 공급하기  
380  line: 수위센서 값 읽기 
378  line: 수위센서 VCC에 전원 공급 중단하기  
382~393 line : 저항값이 일정 수치 이상일 경우 물이 없다고 판정하여 비프음 출력 및  물없음LED로 사용자에게 알리고 복귀

 

+ Recent posts