BASIC4MCU | 질문게시판 | 아두이노 적외선 리모콘 관련하여 질문드립니다..
페이지 정보
작성자 아두이노신생아 작성일2021-12-10 14:28 조회900회 댓글1건본문
#include
#include
const int up_button = 7;
const int down_button = 8;
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led_flag=0;
void setup()
{
pinMode(up_button,INPUT);
pinMode(down_button,INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
}
void loop() {
if (digitalRead(up_button)==HIGH){
if (led_flag==0) {
led_flag=1;
digitalWrite(led1,HIGH);
delay(2000);
digitalWrite(led2,HIGH);
delay(2000);
digitalWrite(led3,HIGH);
delay(2000);
digitalWrite(led4,HIGH);
delay(2000);
}
else {
led_flag=0;
digitalWrite(led4,LOW);
}
delay(1000);
}
if (digitalRead(down_button)==HIGH){
if (led_flag==0) {
led_flag=1;
digitalWrite(led1,LOW);
delay(2000);
digitalWrite(led2,LOW);
delay(2000);
digitalWrite(led3,LOW);
delay(2000);
digitalWrite(led4,LOW);
delay(2000);
}
else {
led_flag=0;
digitalWrite(led4,HIGH);
}
delay(1000);
}
}
우선 이렇게 코드를 한번 짜봤습니다 ㅠㅠ
우선 구현하고 싶은건
업버튼 누를때마다 led하나씩 켜지고
다운버튼 누를때 마다 하나씩 꺼지는..
그리고 전부다 켜진상태에서 업버튼 눌러도 반응x
동일하게 전부다 꺼진 상태에서 다운 눌러도 반응 x
이렇게 구현을 하고 싶습니다 ㅠㅠ 분명 팅커캐드로 돌렸을때 오류도 안나고 하는데 회로도를 잘못 짠건지..ㅠㅠ 정말 아무리 봐도 모르겠어서 이렇게 글올려봅니다
도움주시면 정말 감사하겠습니다
감사합니다!!#include
#include
const int up_button = 7;
const int down_button = 8;
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led_flag=0;
void setup()
{
pinMode(up_button,INPUT);
pinMode(down_button,INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
}
void loop() {
if (digitalRead(up_button)==HIGH){
if (led_flag==0) {
led_flag=1;
digitalWrite(led1,HIGH);
delay(2000);
digitalWrite(led2,HIGH);
delay(2000);
digitalWrite(led3,HIGH);
delay(2000);
digitalWrite(led4,HIGH);
delay(2000);
}
else {
led_flag=0;
digitalWrite(led4,LOW);
}
delay(1000);
}
if (digitalRead(down_button)==HIGH){
if (led_flag==0) {
led_flag=1;
digitalWrite(led1,LOW);
delay(2000);
digitalWrite(led2,LOW);
delay(2000);
digitalWrite(led3,LOW);
delay(2000);
digitalWrite(led4,LOW);
delay(2000);
}
else {
led_flag=0;
digitalWrite(led4,HIGH);
}
delay(1000);
}
}
우선 이렇게 코드를 한번 짜봤습니다 ㅠㅠ
우선 구현하고 싶은건
업버튼 누를때마다 led하나씩 켜지고
다운버튼 누를때 마다 하나씩 꺼지는..
그리고 전부다 켜진상태에서 업버튼 눌러도 반응x
동일하게 전부다 꺼진 상태에서 다운 눌러도 반응 x
이렇게 구현을 하고 싶습니다 ㅠㅠ 분명 팅커캐드로 돌렸을때 오류도 안나고 하는데 회로도를 잘못 짠건지..ㅠㅠ 정말 아무리 봐도 모르겠어서 이렇게 글올려봅니다
도움주시면 정말 감사하겠습니다
감사합니다!!
댓글 1
조회수 900master님의 댓글
master 작성일
const int up_button=7,down_button=8;
const int led1=2,led2=3,led3=4,led4=5;
//
int count=0;
bool up_flag=0,down_flag=0;
//
void setup(){
pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); pinMode(led4,OUTPUT);
}
//
void loop(){
if(digitalRead(up_button)){
if(up_flag==0){ up_flag=1; if(count<4)count++; delay(50); }
}
else{
if(up_flag){ up_flag=0; delay(50); }
}
// --------------------
if(digitalRead(down_button)){
if(down_flag==0){ down_flag=1; if(count>0)count--; delay(50); }
}
else{
if(down_flag){ down_flag=0; delay(50); }
}
// --------------------
switch(
case 0: digitalWrite(led1,0); digitalWrite(led2,0); digitalWrite(led3,0); digitalWrite(led4,0); break;
case 1: digitalWrite(led1,1); digitalWrite(led2,0); digitalWrite(led3,0); digitalWrite(led4,0); break;
case 2: digitalWrite(led1,1); digitalWrite(led2,1); digitalWrite(led3,0); digitalWrite(led4,0); break;
case 3: digitalWrite(led1,1); digitalWrite(led2,1); digitalWrite(led3,1); digitalWrite(led4,0); break;
case 4: digitalWrite(led1,1); digitalWrite(led2,1); digitalWrite(led3,1); digitalWrite(led4,1); break;
}
}