BASIC4MCU | 질문게시판 | 서보모터와 스위치를 이용하여 엘레베이터만들기
페이지 정보
작성자 dnener 작성일2021-08-26 23:51 조회6,154회 댓글3건본문
서보모터와 스위치를 이용하여 엘레베이터를 만드려고합니다.
스위치를 1층에서 눌렀을때 4층까지 올라가고 내려가고 하게끔 만들고있습니다.
또한, 무게센서를 이용하여 각 층에 무게가 인가되었을때 그 층으로 올라오게끔 하려고 진행중입니다.
무게센서와 스위치 부분은 완성하였는데, 서보 모터를 어떻게 코딩하여야할지 모르겠습니다.
현재 코딩은 이러합니다.
#include <Servo.h>
#include <HX711.h>
HX711 scale;
HX711 scale1;
HX711 scale2;
HX711 scale3;
Servo servo;
int sw1 = 5;
int sw2 = 6;
int sw3 = 7;
float reading;
float reading1;
float reading2;
float reading3;
float factor = -50000;
void setup() {
Serial.begin(9600);
servo.attach(9);
pinMode(sw1,INPUT);
pinMode(sw2,INPUT);
pinMode(sw3,INPUT);
scale.begin(2,3);
scale.set_scale();
scale.tare();
scale1.begin(22,24);
scale1.set_scale();
scale1.tare();
scale2.begin(26,28);
scale2.set_scale();
scale2.tare();
scale3.begin(30,32);
scale3.set_scale();
scale3.tare();
}
void loop() {
servo.write(90);
scale.set_scale(calibration_factor);
if(scale.is_ready()){long reading = scale.get_units(); //무게센서 값을 reading 이라는 값에 지정
scale1.set_scale(calibration_factor1);
if(scale1.is_ready()){long reading1 = scale1.get_units();
scale2.set_scale(calibration_factor2);
if(scale2.is_ready()){long reading2 = scale2.get_units();
scale3.set_scale(calibration_factor3);
if(scale3.is_ready()){long reading3 = scale3.get_units();
Serial.print(reading);
if(digitalRead(sw1)==HIGH){
}
else if(digitalRead(sw2)==HIGH){
}
else if(digitalRead(sw3)==HIGH){
}
else if(digitalRead(sw4)==HIGH){
}
else if(reading>=1){
}
else if(reading1>=1){
}
else if(reading2>=1){
}
else if(reading3>=1){
}
}
}
}
}
}
댓글 3
조회수 6,154master님의 댓글
master 작성일
스위치는 각층에 있는 것 아닌가요? 1층에만 스위치가 있다는 얘기로 보입니다.
각층에 무게센서를 설치해서 무게가 감지되면 스위치를 누른 것처럼 작동한다는 건가요? 엘리베이터가 이동한다고 해도 어느 층으로 가려는지는 여전히 스위치를 눌러야하므로 그다지 무게센서 효용성이 크지는 않을 것처럼 생각됩니다.
서보모터는 무슨 용도일까요? 엘리베이터 이동 수단인가요? 아니면 도어인가요?
설계를 상세하게 하셔야합니다.
dnener님의 댓글
dnener
스위치는 각 층마다 있습니다. 1,2,3,4 층 에 있으며
각 층에 무게센서를 설치해서 무게가 감지되면 스위치를 누르지 않아도 스위치를 누른 것 처럼 올라가고
내려가게 만들고 싶습니다.
또한 서보모터는 엘리베이터가 1,2,3,4 층 마다 움직일수 있게한 엘리베이터 이동 수단입니다.
master님의 댓글
master 작성일
조금 복잡한 경우에는 실제 물건을 가지고 있는 사람만이 동작시켜가면서 디버깅이 가능하므로 타인이 도와드리기 어렵습니다.
알고리즘을 잘 세운 후에 차근차근 기능을 구현해보세요