久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
arduino_WS2812光帶源程序,多線程分段流水效果
[打印本頁]
作者:
wuhaishou
時間:
2021-1-28 17:30
標題:
arduino_WS2812光帶源程序,多線程分段流水效果
可以實現預定功能,但不明白為什么可以刪除的不能刪,不符合常理,是不是有啥缺陷,剛開始學多線
/*
設置3線程,可以運行流水光帶燈、點亮光帶、判斷邏輯、讀取流水速率,但程序本身存在缺陷,可以刪除的不能刪,可以添加的也不能添加,暫時沒有解決,基本運行狀態良好
*/
#include <FastLED.h>
#include <SCoop.h>
#define Led 9 // PIN 信號燈引腳
#define NUM_LEDS 32 // 燈殼內發光點數量
CRGB leds[NUM_LEDS]; // 彩燈控制的封裝函數
void GDRon( unsigned int a ,unsigned int b );
void GDGon( unsigned int a ,unsigned int b );
void GDBon( unsigned int a ,unsigned int b );
void GDoff( unsigned int a ,unsigned int b );
void GDLiuR( unsigned int a ,unsigned int b );
void GDLiuG( unsigned int a ,unsigned int b );
unsigned int Between ;
//定義燈 編號
//9#引腳輸出光帶信號
//定義燈 初始狀態
int LED2 = 2; //報警2#引腳
int LED3;int LED4;int LED5;int LED6 ;int LED7;int LED8;
int LED10;int LED11 ;int LED12 ;
int LEDA0;int LEDA1;int LEDA2 ;int LEDA3 ;int LEDA4;int LEDA5 ;
defineTask(Task1)
void Task1::setup()
{
pinMode( 3,INPUT_PULLUP);pinMode( 4,INPUT_PULLUP);
pinMode( 5,INPUT_PULLUP);pinMode( 6,INPUT_PULLUP);pinMode( 7,INPUT_PULLUP);pinMode( 8,INPUT_PULLUP);pinMode(10,INPUT_PULLUP);pinMode(11,INPUT_PULLUP);pinMode( 12,INPUT_PULLUP);
pinMode(A0,INPUT_PULLUP);pinMode(A1,INPUT_PULLUP);pinMode(A2,INPUT_PULLUP);pinMode(A3,INPUT_PULLUP);pinMode(A4,INPUT_PULLUP);pinMode(A5,INPUT_PULLUP);
pinMode(9,OUTPUT);
pinMode(LED2,OUTPUT); digitalWrite(LED2,HIGH);
FastLED.addLeds<WS2812, Led, GRB>(leds, NUM_LEDS); // 選擇引腳作為發送信號口,僅用一個PIN
unsigned int leds[] = { CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ),
CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ),
CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ),
CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ),
};
}
void Task1::loop()
{
LED2 = digitalRead(2); LED3 = digitalRead(3); LED4 = digitalRead(4); LED5 = digitalRead(5); LED6 = digitalRead(6); LED7 = digitalRead(7);
LED8 = digitalRead(8); LED10 = digitalRead(10); LED11 = digitalRead(11); LED12 = digitalRead(12);
LEDA0 = analogRead(A0); LEDA1 = analogRead(A1); LEDA2 = analogRead(A2); LEDA3 = analogRead(A3); LEDA4 = analogRead(A4); LEDA5 = analogRead(A5);
Between = map(LEDA0, 0, 1023, 50, 250);
if( LED6 == 0 ) { GDLiuR( 11 , 29 ) ; } GDoff( 11 , 29 ) ;
}
defineTask(Task2)
void Task2::setup(){
pinMode( 3,INPUT_PULLUP);pinMode( 4,INPUT_PULLUP);
pinMode( 5,INPUT_PULLUP);pinMode( 6,INPUT_PULLUP);pinMode( 7,INPUT_PULLUP);pinMode( 8,INPUT_PULLUP);pinMode(10,INPUT_PULLUP);pinMode(11,INPUT_PULLUP);pinMode( 12,INPUT_PULLUP);
pinMode(A0,INPUT_PULLUP);pinMode(A1,INPUT_PULLUP);pinMode(A2,INPUT_PULLUP);pinMode(A3,INPUT_PULLUP);pinMode(A4,INPUT_PULLUP);pinMode(A5,INPUT_PULLUP);
pinMode(9,OUTPUT);
pinMode(LED2,OUTPUT); digitalWrite(LED2,HIGH);
FastLED.addLeds<WS2812, Led, GRB>(leds, NUM_LEDS); // 選擇引腳作為發送信號口,僅用一個PIN
unsigned int leds[] = { CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ),
CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ),
CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ),
CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ),
};
}
void Task2::loop()
{
LED2 = digitalRead(2); LED3 = digitalRead(3); LED4 = digitalRead(4); LED5 = digitalRead(5); LED6 = digitalRead(6); LED7 = digitalRead(7);
LED8 = digitalRead(8); LED10 = digitalRead(10); LED11 = digitalRead(11); LED12 = digitalRead(12);
LEDA0 = analogRead(A0); LEDA1 = analogRead(A1); LEDA2 = analogRead(A2); LEDA3 = analogRead(A3); LEDA4 = analogRead(A4); LEDA5 = analogRead(A5);
//光控邏輯
if( LED3 == 0 ){ GDRon( 0 , 4 ) ; }else GDoff( 0 , 4 ) ;
if( LED5 == 0 ){ GDBon( 10 , 10 ) ; }else GDoff( 10 , 10 ) ;
// 報警邏輯
if( LED3 ==0 && LED4 ==0 || LED4 ==0 && LED5 ==0 ) { digitalWrite(LED2,LOW); sleep(2); }
else { digitalWrite(LED2,HIGH); sleep(2); } //報警設定
}
defineTask(Task3)
void Task3::setup()
{
pinMode( 4,INPUT_PULLUP);
pinMode( 5,INPUT_PULLUP);pinMode( 6,INPUT_PULLUP);pinMode( 7,INPUT_PULLUP);pinMode( 8,INPUT_PULLUP);pinMode(10,INPUT_PULLUP);pinMode(11,INPUT_PULLUP);pinMode( 12,INPUT_PULLUP);
pinMode(A0,INPUT_PULLUP);pinMode(A1,INPUT_PULLUP);pinMode(A2,INPUT_PULLUP);pinMode(A3,INPUT_PULLUP);pinMode(A4,INPUT_PULLUP);pinMode(A5,INPUT_PULLUP);
pinMode(9,OUTPUT);
pinMode(LED2,OUTPUT); digitalWrite(LED2,HIGH);
FastLED.addLeds<WS2812, Led, GRB>(leds, NUM_LEDS); // 選擇引腳作為發送信號口,僅用一個PIN
unsigned int leds[] = { CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ),
CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ),
CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ),
CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ), CRGB ( 0,0,0 ),
};
}
void Task3::loop()
{
LED4 = digitalRead(4);
LEDA0 = analogRead(A0);
int Between = map(LEDA0, 0, 1023, 50, 250);
if( LED4 == 0 ) { GDLiuG( 5 , 9 ) ; } GDoff( 5 , 9 ) ;
}
void setup(){ Serial.begin(9600); mySCoop.start(); }
void loop(){ yield(); }
void GDRon( unsigned int a ,unsigned int b )
{
int x = b - a ;
for( int y = 0; y <= x ;y++ )
{
int i = y + a ;
leds[i] = CRGB ( 150,0,0 );
}
FastLED.show(); sleep(1);
}
void GDGon( unsigned int a ,unsigned int b )
{
int x = b - a ;
for( int y = 0; y <= x ;y++ )
{
int i = y + a ;
leds[i] = CRGB ( 0,150,0 );
}
FastLED.show(); sleep(1);
}
void GDBon( unsigned int a ,unsigned int b )
{
int x = b - a ;
for( int y = 0; y <= x ;y++ )
{
int i = y + a ;
leds[i] = CRGB ( 0,0,150 );
}
FastLED.show(); sleep(1);
}
void GDoff( unsigned int a ,unsigned int b )
{
int x = b - a ;
for( int y = 0; y <= x ;y++ )
{
int i = y + a ;
leds[i] = CRGB ( 0,0,0 );
}
FastLED.show(); sleep(1);
}
void GDLiuR( unsigned int a ,unsigned int b )
{
int x = b - a;
Serial.println( LEDA0 );
Serial.println( Between );
for( int y=2; y <= x ;y=y+3 )
{ int i = y + a ; leds[i] = CRGB ( 0,0,0 ); }
for( int y=0; y <= x ;y=y+3 )
{ int i = y + a ; leds[i] = CRGB ( 150,0,0 ); } FastLED.show(); delay( Between ) ;
for( int y=0; y <= x ;y=y+3 )
{ int i = y + a ; leds[i] = CRGB ( 0,0,0 ); }
for( int y=1; y <= x ;y=y+3 )
{ int i = y + a ; leds[i] = CRGB ( 150,0,0 ); } FastLED.show(); delay( Between ) ;
for( int y=1; y <= x ;y=y+3 )
{ int i = y + a ; leds[i] = CRGB ( 0,0,0 ); }
for( int y=2; y <= x ;y=y+3 )
{ int i = y + a ; leds[i] = CRGB ( 150,0,0 ); } FastLED.show(); delay( Between ) ;
}
void GDLiuG( unsigned int a ,unsigned int b )
{
int x = b - a ;
for( int y=2; y <= x ;y=y+3 )
{ int i = y + a ; leds[i] = CRGB ( 0,0,0 ); }
for( int y=0; y <= x ;y=y+3 )
{ int i = y + a ; leds[i] = CRGB ( 0,150,0 ); } FastLED.show(); delay( Between ) ;
for( int y=0; y <= x ;y=y+3 )
{ int i = y + a ; leds[i] = CRGB ( 0,0,0 ); }
for( int y=1; y <= x ;y=y+3 )
{ int i = y + a ; leds[i] = CRGB ( 0,150,0 ); } FastLED.show(); delay( Between ) ;
for( int y=1; y <= x ;y=y+3 )
{ int i = y + a ; leds[i] = CRGB ( 0,0,0 ); }
for( int y=2; y <= x ;y=y+3 )
{ int i = y + a ; leds[i] = CRGB ( 0,150,0 ); } FastLED.show(); delay( Between ) ;
}
// if( millis() - lastTime > 2 * Between )
// leds[i] = CRGB ( 0,150,0 ); // 翠綠
// leds[i] = CRGB ( 150,0,0 ); FastLED.show(); sleepMicroseconds(10); // 大紅
// leds[i] = CRGB ( 100,100,0 ); FastLED.show(); sleepMicroseconds(10); // 中黃
// leds[i] = CRGB ( 0,0,150 ); FastLED.show(); sleepMicroseconds(10); // 深藍
// leds[i] = CRGB ( 100,0,100 ); FastLED.show(); sleepMicroseconds(10); // 絳紫
// leds[i] = CRGB ( 0,100,100 ); FastLED.show(); sleepMicroseconds(10); // 天藍
復制代碼
以上代碼下載:
arduino光帶多線程帶報警邏輯模版.zip
(2.07 KB, 下載次數: 37)
2021-1-28 17:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
dj3365191
時間:
2021-1-29 11:37
我試驗了,不亮
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
九色综合网
|
亚洲精品国产综合区久久久久久久
|
中文字幕亚洲精品
|
久久a久久
|
欧美一区二区三区在线观看视频
|
yiren22 亚洲综合
|
成人精品视频免费
|
久久免费观看一级毛片
|
在线一区二区国产
|
亚洲欧美另类在线观看
|
黄视频免费观看
|
69精品久久久久久
|
日本午夜视频
|
盗摄精品av一区二区三区
|
欧美v在线观看
|
欧美日韩成人在线
|
欧美激情一区二区三区
|
欧美中文字幕一区
|
亚洲看片网站
|
av国产精品毛片一区二区小说
|
国产成人精品免高潮在线观看
|
欧美精品一区二区三区一线天视频
|
国产激情在线
|
蜜桃视频一区二区三区
|
国产欧美精品一区二区
|
成人在线视频网
|
久久久精品综合
|
欧美大片一区
|
天堂av免费观看
|
高清免费在线
|
国产东北一级毛片
|
亚洲 成人 在线
|
亚洲国产成人精品女人
|
欧美日韩一区二区三区视频
|
亚洲第一女人av
|
天天拍天天操
|
日韩一区在线播放
|
日本一级淫片免费啪啪3
|
一区二区三区不卡视频
|
亚洲一区在线观看视频
|
美女久久视频
|