질문게시판 > 답변2 : 무엇이 잘못된건지 모르겠습니다.(코드 정리 및 내부 풀업저항)

TODAY66 TOTAL124,269
사이트 이용안내
Login▼/회원가입
포럼 동영상강좌 회원가입


BASIC4MCU | 질문게시판 | 답변2 : 무엇이 잘못된건지 모르겠습니다.(코드 정리 및 내부 풀업저항)

페이지 정보

작성자 master 작성일2018-02-12 00:11 조회290회 댓글1건

본문

	

 

// DateTime : 2018-02-12 오전 12:12:23
// by Ok-Hyun Park
#define R_LED 11
#define G_LED 10
#define B_LED 9
#define R_SW  4
#define G_SW  3
#define B_SW  2
//
unsigned char r=0,g=0,b=0;
//
void setup(){}
//
void loop(){
  if(digitalRead(R_SW)==LOW)r++; analogWrite(R_LED,r);
  if(digitalRead(G_SW)==LOW)g++; analogWrite(G_LED,g);
  if(digitalRead(B_SW)==LOW)b++; analogWrite(B_LED,b);
  delay(10);
}

동작은 같지만 좀 더 간략화 시킨 코드입니다.

 

 

// DateTime : 2018-02-12 오전 12:14:11
// by Ok-Hyun Park
int R_LED=11,G_LED=10,B_LED=9;
int R_SW 4,G_SW 3,B_SW =2;
unsigned char r=0,g=0,b=0;
//
void setup(){ }
//
void loop(){
  if(!digitalRead(R_SW))r++; analogWrite(R_LED,r);
  if(!digitalRead(G_SW))g++; analogWrite(G_LED,g);
  if(!digitalRead(B_SW))b++; analogWrite(B_LED,b);
  delay(10);
}

매크로 선언대신 변수로 선언하면 라인수를 더 줄일 수 있습니다.

 

 

// DateTime : 2018-02-12 오전 12:30:12
// by Ok-Hyun Park
int R_LED=11,G_LED=10,B_LED=9;
int R_SW = 4,G_SW = 3,B_SW =2;
unsigned char r=0,g=0,b=0;
//
void setup(){
  pinMode(R_SW,INPUT_PULLUP);
  pinMode(G_SW,INPUT_PULLUP);
  pinMode(B_SW,INPUT_PULLUP);
}
//
void loop(){
  if(!digitalRead(R_SW))r++; analogWrite(R_LED,r);
  if(!digitalRead(G_SW))g++; analogWrite(G_LED,g);
  if(!digitalRead(B_SW))b++; analogWrite(B_LED,b);
  delay(10);
}

외부에 풀업저항이 달려있지 않으면 내부 풀업저항을 사용해야 합니다.

(첨부 사진에는 외부 풀업 저항을 사용하고 있습니다.) 

  pinMode(R_SW,INPUT_PULLUP);
  pinMode(G_SW,INPUT_PULLUP);
  pinMode(B_SW,INPUT_PULLUP);

 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 1

조회수 290

민준믄준님의 댓글

민준믄준 작성일

모두 다 해봤는데 LED만 꺼지고 안됩니다. 부품 고장일까요..

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.

게시물 검색

Privacy Policy
                   MCU BASIC ⓒ 2017 모바일버전으로보기