BASIC4MCU | 질문게시판 | 리미트스위치를 이용한 DC기어 모터 컨트롤 할려는데 안되요.
페이지 정보
작성자 왕초보 작성일2020-04-25 08:59 조회51,844회 댓글9건본문
DC기어모터 180도 회전후 리미트 스위치를 누르면 반대 방향으로 돌고 리미트 스위치를 누르면 다시 반대방향으로 무한반복 코드를 할려니 안되네요.도와주세요
댓글 9
조회수 51,844master님의 댓글
master 작성일
pinMode(2,INPUT_PULLUP);
pinMode(3,INPUT_PULLUP);
외부 풀업저항이 연결되지 않았으므로 내부 풀업 사용해야합니다.
master님의 댓글
master 작성일추가질문을 하실 때에는 소스코드를 그림으로 첨부하지말고 텍스트로 첨부하시기 바랍니다.
왕초보님의 댓글
왕초보 작성일감사합니다. 일단테스트 해보겠습니다.
왕초보님의 댓글
왕초보 작성일
#define PWMA 10
#define AIN2 9
#define AIN1 8
#define STBY 7
void setup() {
pinMode(PWMA, OUTPUT);
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(STBY, OUTPUT);
digitalWrite(STBY, HIGH);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
int limit_switch00 = digitalRead(2);
int limit_switch01 = digitalRead(3);
if(limit_switch00 == 0)
{
analogWrite(PWMA, 200);
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
delay(6000);
}
if(limit_switch01 == 0) {
analogWrite(PWMA, 200);
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
delay(6000);
}
}
예를들어
delay(6000 or 리미트스위치작동) 중 둘중하나가 먼저도달하면 반대로 돌게하는 코드를 짤수 있을까요
일단은 작동이 잘되고 있습니다. 부탁드려요.
master님의 댓글
master 작성일
delay(6000);
딜레이를 삭제하세요
왕초보님의 댓글
왕초보 작성일리미트 스위치 오류시 딜레이 시간도 안전장치로 사용하려고 하는데 방법이 없겠습니까?
master님의 댓글
master
스위치 오류라는 것이 어떤 것인지 상세하게 설명해보세요
왕초보님의 댓글
왕초보 작성일회전축에 리미트스위치를 고정해서 일정각도가 되면 스위치가 작동하여 역방향으로 가도록 할건데 스위치가 오작동되어 기어모터의 회전축이 리미트스위치를 밀고 계속 회전해버릴까봐서 2중으로 명령할려고요
master님의 댓글
master
벌어지지 않은 일에 대해서 준비를 하려는 것인가요?
부품이 고장날 것 같다면 고장이 잘 안나는 좋은 품질의 부품을 사용하거나
부품고장이 나지 않도록 장치를 개선하세요