BASIC4MCU | 질문게시판 | 아두이노 블루투스 모듈 HC-06 네오픽셀 시리얼모니터 질문
페이지 정보
작성자 master 작성일2018-09-18 09:06 조회7,470회 댓글0건본문
아두이노 블루투스 모듈 HC-06으로 네오픽셀을 제어하려고 하는데 시리얼 모니터가 작동이 안 되네요ㅠㅠㅠㅠㅠ 그리고 네오픽셀 핀 번호를 6으로 설정하였으나 Uno판에 6번에 불도 안 들어오네요 어떻게 해야될까요??
#include <Adafruit_NeoPixel.h>
#define PIN 6
Adafruit_NeoPixel strip = Adafruit_NeoPixel(50, PIN, NEO_GRB + NEO_KHZ800);
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(2,3);//Tx,Rx
void setup()
{
strip.begin();//네오픽셀 사용설정
colorWipe(strip.Color(0,0,0),50);
strip.show(); //네오픽셀 설정 적용
BTSerial.begin(9600);
}
void loop() {
if(BTSerial.available())
{
ledON(BTSerial.read());
}
}
void ledON(char btdata)
{
if(btdata=='0')//red
{
colorWipe(strip.Color(255, 0, 0), 50);//수신받은 데이터를 토대로 색상 설정
strip.show();//네오픽셀에 적용용
}
else if(btdata=='1')//green
{
colorWipe(strip.Color(0, 255, 0), 50);//수신받은 데이터를 토대로 색상 설정
strip.show();//네오픽셀에 적용용
}
else if(btdata=='2')//blue
{
colorWipe(strip.Color(0, 0, 255), 50);//수신받은 데이터를 토대로 색상 설정
strip.show();//네오픽셀에 적용용
}
else if(btdata=='3')//yellow
{
colorWipe(strip.Color(255, 255, 0), 50);//수신받은 데이터를 토대로 색상 설정
strip.show();//네오픽셀에 적용용
}
else if(btdata=='4')//magenta
{
colorWipe(strip.Color(255, 0, 255), 50);//수신받은 데이터를 토대로 색상 설정
strip.show();//네오픽셀에 적용용
}
else if(btdata=='5')//cyon
{
colorWipe(strip.Color(0, 255, 255), 50);//수신받은 데이터를 토대로 색상 설정
strip.show();//네오픽셀에 적용용
}
else if(btdata=='6')//white
{
colorWipe(strip.Color(255, 255, 255), 50);//수신받은 데이터를 토대로 색상 설정
strip.show();//네오픽셀에 적용용
}
else if(btdata=='7')//lavender
{
colorWipe(strip.Color(174, 232, 113), 50);//수신받은 데이터를 토대로 색상 설정
strip.show();//네오픽셀에 적용용
}
else if(btdata=='8')//purple
{
colorWipe(strip.Color(91, 44, 86), 50);//수신받은 데이터를 토대로 색상 설정
strip.show();//네오픽셀에 적용용
}
}
void colorWipe(uint32_t c, uint8_t wait) {
for (uint16_t i = 0 ; i<strip.numPixels() ; i++) {
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}
//
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-09-18 오전 9:10:49// by Ok-Hyun Park//#include <Adafruit_NeoPixel.h>#define PIN 6Adafruit_NeoPixel strip=Adafruit_NeoPixel(50,PIN,NEO_GRB+NEO_KHZ800);//#include <SoftwareSerial.h>SoftwareSerial BTSerial(2,3); //Tx,Rx//void setup(){strip.begin(); colorWipe(strip.Color(0,0,0),50); strip.show();BTSerial.begin(9600);Serial.begin(9600);}//void loop(){if(BTSerial.available()){char r=BTSerial.read();Serial.write(r);ledON(r);}}//void ledON(char d){if((d>='0')&&(d<='9')){switch(d){case '0': colorWipe(strip.Color(255,0,0),50); break; //redcase '1': colorWipe(strip.Color(0,255,0),50); break; //greencase '2': colorWipe(strip.Color(0,0,255),50); break; //bluecase '3': colorWipe(strip.Color(255,255,0),50); break; //yellowcase '4': colorWipe(strip.Color(255,0,255),50); break; //magentacase '5': colorWipe(strip.Color(0,255,255),50); break; //cyoncase '6': colorWipe(strip.Color(255,255,255),50); break; //whitecase '7': colorWipe(strip.Color(174,232,113),50); break; //lavendercase '8': colorWipe(strip.Color(91,44,86),50); break; //purplecase '9': colorWipe(strip.Color(0,0,0),50); break; //off}}}//void colorWipe(uint32_t c,uint8_t wait){for(uint16_t i=0; i<strip.numPixels(); i++){strip.setPixelColor(i,c); strip.show(); delay(wait);}}
6번핀이 안되면 다른 핀으로 변경해서 돌려보세요
댓글 0
조회수 7,470등록된 댓글이 없습니다.