RS-485통신을 이용해서 PC(master)에서 값을 전송하여 컨트롤러에서(slave)에서 값을 받아 데이터에 따른 V값을 출력시켜 모터를 조작해보자. 이외에도 알람기능등을 활용해보자.
시작하기전에 RS-485 통신으로 값을 읽어오고 쓰는 방법을 확인해야 한다.
RS-485통신을 통해 데이터 값을 읽어오는 방법 :
https://seung-seop.tistory.com/7
Modbus 통신 python으로 받아오기
저번에 modbus 통신 패킷확인과 점검을 해보았는데 이번에는 pc로 받아올 수 있을지 해봐야겠다. PC와 연결을 위해 아래 485모듈을 USB로 바꿔주는 컨버터를 이용했다. 얼마 안해서 바로 사용할 수
seung-seop.tistory.com
RS-485통신을 통해 데이터 값을 저장하여 출력이 되는지 확인
https://seung-seop.tistory.com/9
Modbus(4) Modbus 통신을 이용하여 python으로 입력하기
저번 블로그에 이어서 데이터를 컨트롤러(Slave)로 보내는것을 해보자. https://seung-seop.tistory.com/7?category=1086640 ㄴ python으로 데이터 수집하기 D resister datasheet에서 OUT1이 있길래 손쉽게 데이터를 받
seung-seop.tistory.com
이제 OUTPUT을 조절하여 서보모터의 각도를 조절해봐야겠다. output은 value함수까지 있어서 필수인자 1개가 더 추가된다.
위 코드를 실행하고 멀티미터기로 재어봤는데 output설정대로 출력이 되었고 이제 서보모터 신호핀에 Output핀을 연결했는데 Output 전압을 변경하여도 움직이지 않았다. Range and meaning of value도 1번(Voltage pulse)로 설정했는데 동작하지 않아서 출력 모드를 전류로도 바꿔보고 UP550에서 output신호를 주었는데도 동작하지 않았다.
알고보니까 모터 전원 5V는 맞게 연결했는데 PWM 신호핀도 5V로 설정했어야 하는데 ut52a와 up550은 출력이 12V였다. ㅎㅎ
그래서 up550에서 scaling기능이 있길래 이것을 활용하면 최대 전압을 낮출수 있지 않을까? 했는데 멀티미터기로 측정해봤을때 변화가 없었다. 다른 스케일링이 있는가보다.. ㅎㅎ
저항 2개를 꽂아 전압강하로 약 5v로 바꿔주고 입력을 해주어도 변하지 않았다.
어쩔수 없이 모터를 제어하는 부분은 아두이노로 사용해서 제어를 해야될것 같다. 2개 이상의 핀을 제어해야 함으로 프로세서를 사용하기 싫어서 Firmata 통신을 사용하여 제어해야 한다.
아두이노를 사용하면 사용할수 있는 i/o핀 개수가 늘어나기 때문에 굳이 up550은 사용하지 않아도 될것 같다. 하지만 220V에 큰 전류를 가지고 있는 선을 릴레이로 제어해야하기 때문에 온도 제어기 한개는 필요한것 같다.
메뉴얼 참조 :
'프로젝트 > 스마트팜' 카테고리의 다른 글
양액관리, 온도조절, 빛의 양 조절에 관한 고찰 (0) | 2023.08.21 |
---|---|
목표 설정 - 수경재배 (0) | 2023.08.16 |
UT52A 온도 컨트롤러 (1) (0) | 2023.08.14 |