BASIC4MCU | 질문게시판 | 아두이노 오디오 스펙트럼 다시 질문드립니다.
페이지 정보
작성자 찰스백작 작성일2018-10-21 15:09 조회16,775회 댓글2건본문
짜주신 소스 돌려봤는데 아에 네오픽셀 쉴드 led가 작동을 안하네요...ㅠㅠ
멈춰있습니다..ㅠㅠ
// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2018-10-20 오후 5:36:50
// by Ok-Hyun Park
//#include <MSGEQ7.h>
#include <Keypad.h>
#include <Adafruit_NeoPixel.h>
#define MIN_K_value 100
#define MAX_K_value 200
int K_value=100;
MSGEQ7 eq;
Adafruit_NeoPixel pixels=Adafruit_NeoPixel(40,6,NEO_GRB+NEO_KHZ800);
const byte ROWS=4; //four rows
const byte COLS=4; //four columns
char keys[ROWS][COLS]={ // 키패드의 4행 4열을 정의
{ 'A','B','C','D'},
{ 'E','F','G','H'},
{ 'I','J','K','L'},
{ 'M','N','O','P'}
};
byte rowPins[ROWS]={ 10,11,12,13}; //connect to the row pinouts of the keypad
byte colPins[COLS]={ 9,8,7,3}; //connect to the column pinouts of the keypad
Keypad keypad=Keypad(makeKeymap(keys),rowPins,colPins,ROWS,COLS);
uint32_t*color_map;
uint32_t color_a[40]={
0x00E1FFE1,0x00E1FFE1,0x00E1FFE1,0x00E1FFE1,0x00E1FFE1,0x00E1FFE1,0x00E1FFE1,0x00E1FFE1,
0x00008000,0x00008000,0x00008000,0x00008000,0x00008000,0x00008000,0x00008000,0x00008000,
0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,0x00FFFF00,
0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,
0x00ff0000,0x00ff0000,0x00ff0000,0x00ff0000,0x00ff0000,0x00ff0000,0x00ff0000,0x00ff0000
}
//
;
uint32_t color_b[40]={
0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x005050af,
0x009400D3,0x009400D3,0x009400D3,0x009400D3,0x009400D3,0x009400D3,0x009400D3,0x009400D3,
0x009400D3,0x009400D3,0x009400D3,0x009400D3,0x009400D3,0x009400D3,0x009400D3,0x009400D3,
0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,
0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00
}
//
;
uint32_t color_c[40]={
0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,
0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,
0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,0x0032BEBE,
0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x005050af,
0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x00efef00,0x005050af
}
//
;
uint32_t color_d[40]={
0x00FFFFFB,0x00FFFFFB,0x00C63C26,0x0000FFFF,0x00C63C26,0x00444693,0x00444693,0x00C77EB5,
0x00FFFFFB,0x00FFFFFB,0x00C63C26,0x0000FFFF,0x00C63C26,0x00444693,0x00444693,0x00C77EB5,
0x00FFFFFB,0x00FFFFFB,0x00C63C26,0x0000FFFF,0x00C63C26,0x00444693,0x00444693,0x00C77EB5,
0x00FFFFFB,0x00FFFFFB,0x00C63C26,0x0000FFFF,0x00C63C26,0x00444693,0x00444693,0x00C77EB5,
0x00FFFFFB,0x00FFFFFB,0x00C63C26,0x0000FFFF,0x00C63C26,0x00444693,0x00444693,0x00C77EB5
}
//
;
uint32_t color_p[40]={
0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000
}
//
void setup(){
eq.init();
pixels.begin();
pixels.clear();
Serial.begin(9600);
}
//
int cnt=0,on_off=0;
//
void loop(){
char key=keypad.getKey();
if(key=='A'){ color_map=color_a; Serial.println(color_map[0]); }
if(key=='B'){ color_map=color_b; Serial.println(color_map[0]); }
if(key=='C'){ color_map=color_c; Serial.println(color_map[0]); }
if(key=='D'){ color_map=color_d; Serial.println(color_map[0]); }
if(key=='E'){ Serial.println(color_map[0]); }
if(key=='P'){ color_map=color_p; Serial.println(color_map[0]); }
if(key=='N'){ K_value=100; cnt=0,on_off=1; pixels.clear(); }
if(key=='O'){ on_off^=1; Serial.print("on_off="); Serial.println(on_off); }
if(on_off){
eq.poll();
int max_v=0;
pixels.clear();
for(int i=0; i<7; i++){
int l=eq.getLValue(i);
int r=eq.getRValue(i);
int v=(l<r?r:l);
max_v=(v>max_v?v:max_v);
for(int j=0;j<5;j++){ if(v>K_value*(5-j))on_pixel(i+(8*j)); }
}
for(int j=0;j<5;j++){ if(max_v>K_value*(5-j))on_pixel(7+(8*j)); }
K_value=constrain(max_v/5,MIN_K_value,MAX_K_value);
pixels.show();
}
delay(100);
}
//
void on_pixel(int index){
pixels.setPixelColor(index,color_map[index]);
}
출처 :https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=3758
댓글 2
조회수 16,775master님의 댓글
master 작성일
if(key=='O'){ on_off^=1; Serial.print("on_off="); Serial.println(on_off); }
'O'키를 눌러서 on_off=1로 만들어야지 동작하겠죠
찰스백작님의 댓글
찰스백작
o키는 잘되는데 n키가 안되네요..ㅠㅠ