BASIC4MCU | 질문게시판 | 아두이노 소스코드 질문드립니다.
페이지 정보
작성자 마법바지 작성일2018-06-12 13:24 조회18,852회 댓글6건본문
// 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);}위의 소스코드를 이 두 개의 예제(256-512=>LED 밝기 조절,대략 1초 간격512-767=>LED 1초 간격 점멸)가 밝기 조절, 1초 간격 점멸이 4개가 동시에 이루어지게 수정하려면 어떻게 수정해야 하나요??그리고 tg는 어떤 뜻 인가요??
댓글 6
조회수 18,852master님의 댓글
master 작성일
tg 토글을 간단하게 tg라고 적었을테고요
LED 4개가 동시에 점멸한다는 뜻이 무엇일까요?
xxxO
xxOx
xOxx
Oxxx
이런 동작을 말하나요?
ADC 구간에 따라서 위 4개중 하나씩 LED가 점등 되었으면 한다는 거죠?
마법바지님의 댓글
마법바지
{256-512=>LED 밝기 조절,대략 1초 간격}
여기 구간에서는 대략 1초 간격으로 LED 4(OOOO)개가 동시에 밝기 조절이 되고
{512-767=>LED 1초 간격 점멸}
여기 구간에서는 LED 4(OOOO)개가 동시에 1초 간격으로 점멸되게 부탁드립니다ㅜㅜ
하나씩 말고 4개가 동시에 꺼졌다 켜졌다 되게 부탁드려요!!(굽신)ㅜㅜ
마법바지님의 댓글
마법바지
저 혹시 ADC값이
0-256=>LED 오른쪽 쉬프트,1초 간격
256-512=>LED 밝기 조절,대략 1초 간격 {4개가 한꺼번에 밝기조절)
512-767=>LED 1초 간격 점멸 {4개가 한꺼번에 1초 간격으로 점멸}
767-1023=>LED 왼쪽 쉬프트,1초 간격
이렇게 질문드렸었는데요 LED 왼쪽 쉬프트와 오른쪽 쉬프트가 되지않고
4개가 한꺼번에 밝기조절도 되지 않는데 무엇이 문제인가요??
현재는 4개가 한꺼번에 깜박거리는 구간만 정상적으로 되고 있습니다.
도와주세요 제발 부탁드립니다.
master님의 댓글
master
Serial.println(adc);
시리얼 모니터로 ADC값이 0~1023 범위로 잘 변하는지 체크하세요
마법바지님의 댓글
마법바지
잘 변합니다 무엇이 문제인걸까요ㅜㅜ
LED 4개가 한꺼번에 밝기조절 구간도 되긴 되는데 4개가 한꺼번에 되지않고 1개만 밝기 조절이 됩니다
master님의 댓글
master
void a_out(int pwm){
for(int i=0;i<4;i++)analogWrite(led[i],pwm);
}