BASIC4MCU | 질문게시판 | 답변 : 속도감지센서,초음파센서,서보모터 질문입니다.
페이지 정보
작성자 master 작성일2018-08-09 09:19 조회5,015회 댓글0건본문
안녕하세요?
지식인 답변을 통해 사이트 알게되어 이렇게 질문 드립니다.
컨베이어벨트(아두이노와 호환되지 않는 DC모터를 사용하며, 건저지로 전력을 공급받습니다.)와
속도센서(포토인터럽트),초음파센서 그리고 서보모터를 이용하여 어떠한 제품을 만들어보려고 합니다.
간략하게 구상하는 제품의 아이디어를 설명드리면, 속도센서가 컨베이어벨트의 움직임을 측정하여 (속도를 측정한다기보다 '벨트가 움직이냐, 움직이지 않냐' 만을 측정 하면 됩니다.) 서보모터가 90도로 작동 합니다. 단, 서보모터 앞에 초음파센서를 설치하여 Xcm내에 사물이 있을 경우 서보모터는 다시 원위치로 되돌아갑니다. 즉, 앵글값이 0도가 됩니다.
다시 말해서 서보모터가 작동하려면,
if(속도==0){
if(거리>X){
servo.write(90);
delay(2000);
}
else{
servo.write(0);
delay(2000);
}
}
다음과 같이 프로그래밍 될 듯(?) 합니다. (일단 단순히 제 생각입니다.)
하지만 저는 프로그램을 배우는 학과도 아니라 위와 같은 알고리즘을 생각은 해 볼 수 있지만,
프로그램에 대한 아주 기본적인 지식이 없습니다.
(예를 들어 기초적인 코딩을 보아도 혼자서는 해석이 안 됩니다. 옆에서 누군가가 하나하나 설명을 해주면 그제서야 이해하는 수준 입니다.)
인터넷을 이리저리 찾아본 결과, 제가 사용하는 속도센서와 초음파센서 그리고 서보모터에 대한 각각의 코딩은 대략적으로 찾아보았습니다. (물론 정확히 맞는지는 모르겠습니다...)
일단 각각의 코딩도 확인차 파일로 올려두었습니다.
이제 질문드릴게요...
1. 속도센서(포토인터럽트)를 사용해본결과 속도센서사이에 무언가 물체가 있을경우 '1'이라고 인식되고, 없을 경우 '0'이라고 인식되는데...
벨트가 계속 돌고 있다면, 계속 '1'로써 인식됩니다. 하지만 벨트가 멈추어도 여전히 '1'로 인식되는데...
벨트가 움직이냐, 멈추었냐는 어떤식으로 인식할 수 있을까요?
제 생각에는 벨트에 일정한 간격으로 구멍을 뚫어 놓고, 일정한 시간동안 '0' 과 '1'이 반복된다면, 벨트가 움직이고 있는 것 이고 , '0' 또는 '1'만 계속해서 인식 될 경우
(인위적으로 벨트를 멈추었을 경우 센서가 구멍뚫린 부분에서 멈추었을 경우 '0'만 계속 인식될 것이고, 구멍뚫리지 않은 부분에서 멈추었다면, '1'만 계속 인식 될 테니...)
는 벨트가 멈추었다고 인식되게 하면 되지 않을까 생각해보았습니다. 하지만 이러한 설정을 어떻게 프로그램해야할 지 전~혀 감도 안잡히고 어떻게 입력해야 될 지는 당연히 전혀 모르겠습니다..
(컨베이어벨트의 모터는 앞서 말했듯이 아두이노와는 별개이고 사람이 직접 버튼으로 on/off 조절을 할 수 있습니다. 속도센서는 벨트의 한 부분에 설치할 계획이며 속도센서 이빨 사이에 벨트를 물려놓을 계획입니다.)
속도센서가 아니고 포토인터럽터 센서라고 부릅니다.
벨트에 구멍 뚫을건가요?
구멍간격과 벨트 이동속도를 생각하면 몇ms동안 1이고, 몇ms동안 0인지 알 수 있을겁니다.
계산해서 적으세요
이건 전자및 컴퓨터와 상관없는 내용이고, 이정도는 쉽게 계산할 수 있어야합니다.
2. 앞서 적은 이중 if문을 구상정도는 할 수 있겠는데, 기초 프로그램 지식이 없으니 어떻게 써나가야할 지 모르겠습니다.
(예를 들어 include에 멀 써야 할 지, setup{ 여기엔 또 뭘 써넣어야 할 지}, void loop가 무한 반복행위 하는 함수인건 알겠는데, 이 안에다 멀 넣어야 할 지... 이러한 기초적인 지식이 전혀 없습니다. )
하나도 모른다고 적으면 도와드리지 못합니다.
본인이 아는대로 최선을 다해서 적어야지
문제가 있는 부분 지적도 해드리고
작성한 소스를 보고 어느정도 수준인지 알아야지
수준에 맞춰서 답변을 적어드릴 수 있습니다.
글이 길었음에도 불구하고 끝까지 읽어주셔서 감사합니다.
질문은 두 가지이지만, 추가로 조언해주실 부분이 있다면 과감하게 부탁드립니다.
다시 한 번 말씀드리지만, 수준은 정말...관련 프로그램을 배우는 초등학생들보다 못 할 겁니다.. 전혀 기본이 되어있지 않아서
과제의 마감일이 얼마남지 않았는데 프로그램 코딩하는 것 좀 도와주십시오!ㅠ
감사합니다.
댓글 0
조회수 5,015등록된 댓글이 없습니다.