답변 : 아두이노 2560 가변저항 질문드립니다.
페이지 정보
작성자 master 작성일18-06-01 21:09 조회10,615회 댓글4건본문
// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2018-06-01 오후 9:11:28
// by Ok-Hyun Park
//
ADC값이
0-256=>LED 오른쪽 쉬프트,1초 간격
256-512=>LED 밝기 조절,대략 1초 간격
512-767=>LED 1초 간격 점멸
767-1023=>LED 왼쪽 쉬프트,1초 간격
//
int led[4]={6,9,10,11};
int onoff[]={0,255};
int adc,tg=0;
unsigned char count=8;
//
void setup(){
Serial.begin(9600);
}
//
void d_out(){
for(int i=0;i<4;i++)analogWrite(led[i],onoff[(count>>i)&1]);
}
//
void off(){
for(int i=0;i<4;i++)analogWrite(led[i],0);
}
//
void a_out(int pwm){
for(int i=0;i<4;i++){
if((count>>i)&1)analogWrite(led[i],pwm);
}
}
//
void loop(){
adc=analogRead(A0); Serial.println(adc);
//
if (adc>=767){ if(count==1)count=8; else count>>=1; d_out(); }
else if(adc>=512){ tg^=1; if(tg)d_out(); else off(); }
else if(adc>=256){ a_out(adc-256); }
else { if(count==8)count=1; else count<<=1; d_out(); }
//
delay(1000);
}
비트연산 공부하시고
모르는 문법은 웹검색해서 찾아보세요
댓글 : 4
조회수 : 10,615
난쭈님의 댓글
난쭈 작성일감사합니다.
난쭈님의 댓글
난쭈 작성일
void loop(){
adc=analogRead(A0);
이쪽에서 에러가 나는데 왜 뜨는건가요 ?
master님의 댓글
master
int adc,tg=0;
변수명이 달라서 생긴 오류입니다.
수정했으니 다시 돌려보세요
난쭈님의 댓글
난쭈 작성일
감사합니다.
도움도 많이 되고 정말 감사합니다.