BASIC4MCU | 질문게시판 | 아두이노 리니어 제어 모듈 설계중입니다. 도와주세요
페이지 정보
작성자 갓비타 작성일2023-06-06 15:29 조회1,157회 댓글0건본문
상하 구동하는 리니어 설계 중입니다.
NEMA23,TB6600 사용중입니다.
입력 신호가 들어오면 상향 구동
상향 구동중 상부 리미트 켜지면 정지 / EMO가 켜지면 하향 구동
하향구동시 하향 리미트가 켜지면 정지 하는걸 설계중인데
현재 입력 시 상향 구동 상향 리미트 켜지면 정지 까지는 되나 EMO 부분부터 작동하지 않습니다.
코드 틀린 부분 좀 도와주세요
#define PUL 10
#define DIR 9
#define ENA 8
#define inputPin 2
#define UpperPin 4
#define LowerPin 5
#define EMOPin 6
void setup() {
pinMode(PUL, OUTPUT);
pinMode(DIR, OUTPUT);
pinMode(ENA, OUTPUT);
pinMode(inputPin, INPUT);
pinMode(UpperPin, INPUT_PULLUP);
pinMode(LowerPin, INPUT_PULLUP);
pinMode(EMOPin, INPUT);
digitalWrite(ENA, HIGH);
Serial.begin(9600);
}
void loop() {
if (digitalRead(inputPin) == LOW) {
digitalWrite(DIR, HIGH);
digitalWrite(ENA, HIGH);
while (digitalRead(UpperPin) == HIGH) {
digitalWrite(PUL, HIGH);
delayMicroseconds(100);
digitalWrite(PUL, LOW);
delayMicroseconds(100);
}
digitalWrite(ENA, LOW);
}
if (digitalRead(UpperPin) == HIGH) {
digitalWrite(ENA, LOW);
}
if (digitalRead(EMOPin) == HIGH) {
digitalWrite(DIR, LOW);
digitalWrite(ENA, HIGH);
while (digitalRead(LowerPin) == HIGH) {
digitalWrite(PUL, HIGH);
delayMicroseconds(100);
digitalWrite(PUL, LOW);
delayMicroseconds(100);
}
digitalWrite(ENA, LOW);
}
if (digitalRead(LowerPin) == HIGH) {
digitalWrite(ENA, LOW);
}
delay(100);
}
댓글 0
조회수 1,157등록된 댓글이 없습니다.