Arduino 制作交通灯 (结合超声波)

本文介绍了如何使用Arduino Uno制作结合超声波传感器的交通灯。内容涵盖硬件配置,如WS2812B LED、TM1637数码管和超声波传感器的接线,以及在arduino IDE中编写程序实现交通灯控制。还探讨了超声波测距原理,利用pulseIn()函数测量并计算障碍物距离。
摘要由CSDN通过智能技术生成

一、交通灯

硬件

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 9
Adafruit_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; //总时间 15s
int 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]);
  }e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沸腾石灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值