BASIC4MCU | 질문게시판 | dc모터 제어관련 질문드려요
페이지 정보
작성자 직장인 작성일2022-12-29 18:18 조회276회 댓글1건본문
dc모터를 적외선 리모컨 및 택트 스위치 2개로 제어를 할려고 합니다.
적외선 리모컨은 정방향 역방향 정지로 하고 2개의 택트 스위치는 정방향 또는 역방향으로 dc모터가 구동중일 때 택트 스위치를 누르면 멈출수 있게 할려고 합니다.
그런데 모터 구동은 되는데 택트 스위치를 누르면 멈추지 않네요
어떤 문제가 있는지 확인부탁드립니다
#include <IRremote.h>
int RECV_PIN = A0; //define input pin on Arduino
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(3, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
switch (results.value) {
case 0xFD08F7: //analogWrite(5, 30);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
break;
case 0xFD8877: //analogWrite(5, 30);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
break;
case 0xFD48B7: //analogWrite(5, 30);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
break;
}
irrecv.resume(); // Receive the next value
if (digitalRead(3)== LOW)
{
digitalWrite(5, LOW);
digitalWrite(6, LOW);
}
if (digitalRead(4)==LOW)
{
digitalWrite(5, LOW);
digitalWrite(6, LOW);
}
irrecv.resume(); // Receive the next value
}
}
댓글 1
조회수 276master님의 댓글
master 작성일
#include <IRremote.h>
int RECV_PIN=A0;
IRrecv irrecv(RECV_PIN);
decode_results results;
//
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(5,OUTPUT); pinMode(6,OUTPUT); // motor
pinMode(3,INPUT_PULLUP); pinMode(4,INPUT_PULLUP);
}
//
void loop(){
if(irrecv.decode(&results)){
Serial.println(results.value,HEX);
switch(results.value){
case 0xFD08F7: digitalWrite(5,0); digitalWrite(6,1); break; //analogWrite(5,30);
case 0xFD8877: digitalWrite(5,1); digitalWrite(6,0); break; //analogWrite(5,30);
case 0xFD48B7: digitalWrite(5,0); digitalWrite(6,0); break; //analogWrite(5,30);
}
irrecv.resume();
}
//
if(digitalRead(3)==0){ digitalWrite(5,0); digitalWrite(6,0); }
if(digitalRead(4)==0){ digitalWrite(5,0); digitalWrite(6,0); }
}