아두이노 Xbee를 구매 했는데...ㅜㅜXbee를 아두이노를 아무것도 모르는데도 덜컥 사버렸습니다;;; [소스 출처]
unsigned char i; unsigned char j; /*Port Definitions*/ int Max7219_pinCLK = 10; int Max7219_pinCS = 9; int Max7219_pinDIN = 8; int vol; unsigned char disp1[9][8]={ {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},//0 {0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1},//1 {0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3},//2 {0x7,0x7,0x7,0x7,0x7,0x7,0x7,0x7},//3 {0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF},//4 {0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F},//5 {0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F},//6 {0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F},//7 {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},//8 }; void Write_Max7219_byte(unsigned char DATA) { unsigned char i; digitalWrite(Max7219_pinCS,LOW); for(i=8;i>=1;i--) { digitalWrite(Max7219_pinCLK,LOW); digitalWrite(Max7219_pinDIN,DATA&0x80);// Extracting a bit data DATA = DATA<<1; digitalWrite(Max7219_pinCLK,HIGH); } } void Write_Max7219(unsigned char address,unsigned char dat) { digitalWrite(Max7219_pinCS,LOW); Write_Max7219_byte(address); //address,code of LED Write_Max7219_byte(dat); //data,figure on LED digitalWrite(Max7219_pinCS,HIGH); } void Init_MAX7219(void) { Write_Max7219(0x09, 0x00); //decoding :BCD Write_Max7219(0x0a, 0x03); //brightness Write_Max7219(0x0b, 0x07); //scanlimit;8 LEDs Write_Max7219(0x0c, 0x01); //power-down mode:0,normal mode:1 Write_Max7219(0x0f, 0x00); //test display:1;EOT,display:0 } void setup(){ Serial.begin(57600); pinMode(Max7219_pinCLK,OUTPUT); pinMode(Max7219_pinCS,OUTPUT); pinMode(Max7219_pinDIN,OUTPUT); delay(50); for(i=1;i<9;i++) { Write_Max7219(i,disp1[0][i-1]); } Init_MAX7219(); } byte rssi=0x00; void loop(){ if(Serial.available()){ byte in = Serial.read(); if(in == (byte) 0x7E){ int i=0; while(true){ if(Serial.available()){ in= Serial.read(); if(i==5)rssi=in; Serial.print(in,HEX); Serial.print(" "); i++; } if(i>13)break; } Serial.print("/ "); Serial.print("RSSI:"); Serial.print(rssi,HEX); Serial.println(" "); } } if(rssi>0x30){ for(i=1;i<9;i++) { Write_Max7219(i,disp1[0][i-1]); } } else if(rssi>0x2B){ for(i=1;i<9;i++) { Write_Max7219(i,disp1[2][i-1]); } } else if(rssi>0x27){ for(i=1;i<9;i++) { Write_Max7219(i,disp1[4][i-1]); } } else if(rssi>0x22){ for(i=1;i<9;i++) { Write_Max7219(i,disp1[6][i-1]); } } else if(rssi>0x1C){ for(i=1;i<9;i++) { Write_Max7219(i,disp1[8][i-1]); } } else{ } } 이렇게 코드가 구성이 되어 있는데, 도트 매트릭스가 아닌, 일반 LED 3개정도로 3단계 불빛 구성과, 릴레이 이용한 회로 만드려고 하는데 Max7219 이거 어디서부터 어떻게 건드려야 할까요.... 조언좀 부탁드려요...
[출처] XBee의 RSSI를 이용한 거리센싱|작성자 오픈랩
|