BASIC4MCU | 질문게시판 | 답변 : delay를 사용하지않고 코드를 짜고싶습니다
페이지 정보
작성자 master 작성일2021-02-03 11:03 조회6,683회 댓글1건본문
#include <Adafruit_NeoPixel.h>
//
int n_ledR=256; //네오픽셀 LED 256개
int n_ledG=256; //네오픽셀 LED 256개
int n_led=31; //네오픽셀 LED 31개
int neo_pinR=3; //3번핀 R네오픽셀
int neo_pinG=4; //4번핀 G네오픽셀
int neo_pin=6; //6번핀 주황색,초록색 네오픽셀
//
Adafruit_NeoPixel strip1=Adafruit_NeoPixel(n_ledR,neo_pinR,NEO_GRB+NEO_KHZ800);
Adafruit_NeoPixel strip2=Adafruit_NeoPixel(n_ledG,neo_pinG,NEO_GRB+NEO_KHZ800);
Adafruit_NeoPixel strip3=Adafruit_NeoPixel(n_led,neo_pin, NEO_GRB+NEO_KHZ800);
//
void setup(){
pinMode(n_ledR,OUTPUT); pinMode(n_ledG,OUTPUT); pinMode(n_led,OUTPUT);
strip1.begin(); strip2.begin(); strip3.begin();
}
//
void loop(){
for(int i=0;i<strip1.numPixels();i++)strip1.setPixelColor(i,strip1.Color(50, 0,0)); strip1.show();
for(int i=0;i<strip2.numPixels();i++)strip2.setPixelColor(i,strip2.Color( 0, 0,0)); strip2.show();
for(int i=0;i<strip3.numPixels();i++)strip3.setPixelColor(i,strip3.Color( 0,50,0)); strip3.show();
delay(5000);
for(int i=0;i<strip2.numPixels();i++)strip2.setPixelColor(i,strip2.Color( 0,50,0)); strip2.show();
for(int i=0;i<strip3.numPixels();i++)strip3.setPixelColor(i,strip3.Color(255,40,0)); strip3.show();
for(int i=0;i<strip1.numPixels();i++)strip1.setPixelColor(i,strip1.Color( 0, 0,0)); strip1.show();
delay(5000);
}
제 스타일로 정리를 했습니다.
#include <Adafruit_NeoPixel.h>
//
int n_ledR=256; //네오픽셀 LED 256개
int n_ledG=256; //네오픽셀 LED 256개
int n_led=31; //네오픽셀 LED 31개
int neo_pinR=3; //3번핀 R네오픽셀
int neo_pinG=4; //4번핀 G네오픽셀
int neo_pin=6; //6번핀 주황색,초록색 네오픽셀
//
int cnt=0;
//
Adafruit_NeoPixel strip1=Adafruit_NeoPixel(n_ledR,neo_pinR,NEO_GRB+NEO_KHZ800);
Adafruit_NeoPixel strip2=Adafruit_NeoPixel(n_ledG,neo_pinG,NEO_GRB+NEO_KHZ800);
Adafruit_NeoPixel strip3=Adafruit_NeoPixel(n_led,neo_pin, NEO_GRB+NEO_KHZ800);
//
void setup(){
pinMode(n_ledR,OUTPUT); pinMode(n_ledG,OUTPUT); pinMode(n_led,OUTPUT);
strip1.begin(); strip2.begin(); strip3.begin();
}
//
void loop(){
if(cnt==0){
for(int i=0;i<strip1.numPixels();i++)strip1.setPixelColor(i,strip1.Color(50, 0,0)); strip1.show();
for(int i=0;i<strip2.numPixels();i++)strip2.setPixelColor(i,strip2.Color( 0, 0,0)); strip2.show();
for(int i=0;i<strip3.numPixels();i++)strip3.setPixelColor(i,strip3.Color( 0,50,0)); strip3.show();
}
else if(cnt==5000){
for(int i=0;i<strip2.numPixels();i++)strip2.setPixelColor(i,strip2.Color( 0,50,0)); strip2.show();
for(int i=0;i<strip3.numPixels();i++)strip3.setPixelColor(i,strip3.Color(255,40,0)); strip3.show();
for(int i=0;i<strip1.numPixels();i++)strip1.setPixelColor(i,strip1.Color( 0, 0,0)); strip1.show();
}
//
if(++cnt>=10000)cnt=0;
//
delay(1);
}
1ms 딜레이를 사용한다면 위처럼 변경할 수 있습니다.
이젠 1ms 딜레이도 없애야겠죠
#include <Adafruit_NeoPixel.h>
//
int n_ledR=256; //네오픽셀 LED 256개
int n_ledG=256; //네오픽셀 LED 256개
int n_led=31; //네오픽셀 LED 31개
int neo_pinR=3; //3번핀 R네오픽셀
int neo_pinG=4; //4번핀 G네오픽셀
int neo_pin=6; //6번핀 주황색,초록색 네오픽셀
//
bool togle=0;
long t,t1;
//
Adafruit_NeoPixel strip1=Adafruit_NeoPixel(n_ledR,neo_pinR,NEO_GRB+NEO_KHZ800);
Adafruit_NeoPixel strip2=Adafruit_NeoPixel(n_ledG,neo_pinG,NEO_GRB+NEO_KHZ800);
Adafruit_NeoPixel strip3=Adafruit_NeoPixel(n_led,neo_pin, NEO_GRB+NEO_KHZ800);
//
void setup(){
pinMode(n_ledR,OUTPUT); pinMode(n_ledG,OUTPUT); pinMode(n_led,OUTPUT);
strip1.begin(); strip2.begin(); strip3.begin();
t=millis();
t1=t-5000; // 초기에 동작하도록 설정
}
//
void loop(){
t=millis();
if(t-t1>=5000){ t1=t; // 5초마다
togle^=1; // togle=~togle; 토글(반전)
if(togle){
for(int i=0;i<strip1.numPixels();i++)strip1.setPixelColor(i,strip1.Color(50, 0,0)); strip1.show();
for(int i=0;i<strip2.numPixels();i++)strip2.setPixelColor(i,strip2.Color( 0, 0,0)); strip2.show();
for(int i=0;i<strip3.numPixels();i++)strip3.setPixelColor(i,strip3.Color( 0,50,0)); strip3.show();
}
else{
for(int i=0;i<strip2.numPixels();i++)strip2.setPixelColor(i,strip2.Color( 0,50,0)); strip2.show();
for(int i=0;i<strip3.numPixels();i++)strip3.setPixelColor(i,strip3.Color(255,40,0)); strip3.show();
for(int i=0;i<strip1.numPixels();i++)strip1.setPixelColor(i,strip1.Color( 0, 0,0)); strip1.show();
}
}
}
댓글 1
조회수 6,683dddd1님의 댓글
dddd1 작성일정말 감사합니다..! 덕분에 해결되었습니다!!