통합게시판

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

스마트 휴지통 소스 약간좀 바꿔주세요 ㅠ
이성현 | 2017-01-07
밑에 있는 소스에서 서보모터 2개를 쓰고싶은데요 1개는 밑에있는 소스 그대로 나머지 1개의 서보모터는 첫번쨰 서보모터가 복귀하고 약 1초뒤에 동작하면 좋겠는데 1시간동안 이것에 매달려있네요 ㅠ 도와주세요 ㅠㅠ /* 제목 : 스마트 휴지통 만들기 내용 : 오렌지보드를 이용해 초음파 거리 감지 센서로 손을 인식하면 자동으로 덮개가 열리는 똑똑한 휴지통 만들어보기 이 소스코드는 kocoafab에서 작성하였습니다. 소스코드 배포시에는 출처를 남겨주시기 바랍니다. E mail : contact@kocoa.or.kr */ #include Servo myservo; //서보모터 객체 생성 int pos = 0; int echoPin = 7; int trigPin = 8; //초음파 센서의 핀번호를 설정한다. float duration; float distance = 100; void setup() { myservo.attach(9); //서보모터 핀번호를 9번으로 설정 pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); // trig를 출력모드로 설정, echo를 입력모드로 설정 } void loop() { digitalWrite(trigPin, HIGH); delay(10); digitalWrite(trigPin, LOW); // 초음파를 보낸다. 다 보내면 echo가 HIGH 상태로 대기하게 된다. duration = pulseIn(echoPin, HIGH); // echoPin 이 HIGH를 유지한 시간을 저장 한다. distance = ((float)(340 * duration) / 10000) / 2; // HIGH 였을 때 시간(초음파가 보냈다가 다시 들어온 시간)을 가지고 거리를 계산 한다. //초음파 센서로 측정한 거리가 20cm미만일 경우(쓰레기통에 근접하는 물체가 감지 될 경우) if (distance < 20) { //쓰레기통의 문을 연다 for (pos = 10; pos < 100; pos += 2) { myservo.write(pos); delay(10); } delay(3000); //3초의 지연시간을 주고 난 뒤 쓰레기통의 문을 닫는다 for (pos = 100; pos >= 10; pos -= 2) { myservo.write(pos); delay(10); } } delay(50); }
프로필사진

Klant 2017-01-09 08:23:18

서보 모터 객체를 하나 더 선언해주시고(서보 모터 연결은 D9, D10)을 추천드립니다. 

 

//3초의 지연시간을 주고 난 뒤 쓰레기통의 문을 닫는다 for (pos = 100; pos >= 10; pos -= 2) { myservo.write(pos); delay(10); } } delay(50); }

 

이 소스 코드 뒤에 delay(1000) 이후 두번 째 서보모터에 대한 소스 코드를 넣어주시면 되지 않을까 싶습니다~;)

이전글   |    아두이노와 INA219를 이용해 전류를 4개 채널을 측정하고 싶습니다.... 2017-01-05
다음글   |    오렌지보드 BLE용 앱 2017-01-08