一、交通灯
硬件
Arduino Uno
WS2812B串行5050全彩驱动LED
TM1637 4位数码管
环境
arduino IDE
实物
接线
| Arduino |
数码管 |
| 5V |
VCC |
| GND |
GND |
| 11 |
CLK |
| 12 |
DIO |
| Arduino |
5050全彩驱动LED |
| 5V |
VCC |
| GND |
GND |
| 2 |
S |
程序
#include <TM1637.h>// 数码管 配置引脚#define CLK 11 //!参数 clk -数字引脚连接到模块的时钟引脚数#define DIO 12//!参数 dio -数字引脚连接到模块的DIO引脚数 TM1637 TM(CLK, DIO);//!初始化一个TM1637对象,设置时钟和数据引脚。//RGB 彩灯#include <Adafruit_NeoPixel.h>#define PIN 2#define MAX_LED 9Adafruit_NeoPixel strip = Adafruit_NeoPixel( MAX_LED, PIN, NEO_RGB + NEO_KHZ800 );//长度,引脚,类型uint32_t color_green = strip.Color(255,0,0); //绿 红 蓝uint32_t color_red = strip.Color(0,255,0); uint32_t color_yellow = strip.Color(255,255,0); uint32_t color_traffic[]={color_red,color_yellow,color_green};//红灯10秒 绿灯10秒 黄灯2秒int red_light=5;int green_light=5;int yellow_light=2;int time_count=15; //总时间 15sint time_=0;//时间 void setup() { TM.show(true);//设置数码管显示 为真显示,否则不显示// TM.DNum(00,red_light,true);//显示双数字,左边两位显示num1最后两位;左边两位显示num2最后两位;piont 是否显示中间的两点 strip.begin(); //初始化Adafruit_NeoPixel; // initalize_rgb(color_traffic[0]);//初始化彩灯颜色为红色}void loop(){ static unsigned long time_light=0; if(millis()-time_light>1000){//计算时间 1秒 time_ +1 time_light=millis(); time_++; } if(time_<=red_light){//红灯 traffic(red_light-time_); //时间 initalize_rgb(color_traffic[0]);//颜色 } else if(time_<=yellow_light+red_light){//黄灯 traffic(yellow_light+red_light-time_); initalize_rgb(color_traffic[1]); }else if(time_<=yellow_light+red_light+green_light){//绿灯 traffic(yellow_light+red_light+green_light-time_); initalize_rgb(color_traffic[2]); }else if(time_<=yellow_light*2+red_light+green_light){//黄灯 traffic(yellow_light*2+red_light+green_light-time_); initalize_rgb(color_traffic[1]); } if(time_==time_count) time_=0;//时间归零}void traffic(int time_traffic){ TM.DNum(00,time_traffic,true); time_traffic--;}void initalize_rgb(uint32_t color){ strip.setPixelColor(0, color);//颜色 strip.setPixelColor(1, color); strip.setBrightness(255);//亮度 strip.show();//显示}————————————————版权声明:本文为CSDN博主「沸腾石灰」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/m0_37738838/article/details/89519578