Arduino-LED
esp8266-LED控制
- 使用esp8266控制LED灯带
- 灯带说明
- Adafruit_NeoPixel说明
- 呼吸灯效果
使用esp8266控制LED灯带
全文仅为个人总结
在此文中,使用arduino IDE,esp8266(NodeMCU),一条市面上常见的LED灯带(三口,+5v,Din,GND)使用Adafruit_NeoPixel库函数。
灯带说明
三接口的灯带,其实只有一个数据传输口(Din),好吧,其实我也没接触过其他的灯带
- +5v就是接电源正极
- GND接地或者接电源负极
- Din就是数据传输通道
这个灯带的所有灯都通过这个Din来控制。
注意点,该灯带数据传输有方向,有方向,有方向!图中有一个黑色小箭头,就是数据传输方向。逆向传输没有好结果
其次,灯带上每盏LED都有一个编号,从0开始依次增加。假设将灯带从第3,4盏led灯中间切断,那么原来的编号全部重置(原第4盏灯变成了新的灯带的第0盏灯)
该灯带上面的灯是RGB三色,通过控制三色亮度来显示其他颜色。
每种原色都是0~255区间。(0,0,0)为不亮,(255,255,255)为最亮白光。
Adafruit_NeoPixel说明
头文件:#include <Adafruit_NeoPixel.h>
新建灯带对象:Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
- LED_COUNT:led灯的数量
- LED_PIN:控制数据输出接口(与Din相连的引脚)
- NEO_GRB + NEO_KHZ800:数据模式
以下是模式的几个选项:
NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
NEO_KHZ400 400 KHz (classic ‘v1’ (not v2) FLORA pixels, WS2811 drivers)
NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
几个常用的函数方法:
strip.Color(rand()%255,rand()%255,rand()%255);//设置灯带RGB颜色(返回uint32_t类型值)
strip.setPixelColor(i,light2c);//设置第i盏灯为light2c(uint32_t类型)色
strip.show();//更新灯带状态
strip.setBrightness(light2bright);//设置灯带亮度
更多详细接口说明戳我(☄⊙ω⊙)☄ .
呼吸灯效果
以下为简单的 随机颜色呼吸灯效果 代码:
注意,我使用的是esp8266(NodeMCU)开发板
#include <Adafruit_NeoPixel.h>//灯带库函数
#include<ctime>
#define PIN D1//定义引脚#define NUMPIXELS 29//定义led灯数量Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);//定义灯带(确定灯长,输出口,输出规则)int delayval2 = 40;
void setup(){srand((unsigned)time(NULL)); //设置随机数pixels.setBrightness(25); //设置灯带亮度pixels.begin(); //NeoPixel输出准备数据引脚
}
void loop() {uint32_t light2c = pixels.Color(rand()%255,rand()%255,rand()%255);//设置灯带RGB颜色int light2bright = 10;for(int i=0;i<NUMPIXELS;i++){pixels.setPixelColor(i,light2c);//设置第i盏灯为light2c色)pixels.show();//更新灯带}while(true){light2bright+=10;pixels.setBrightness(light2bright);//设置灯带亮度pixels.show();delay(delayval2);if(light2bright>=200)break;}while(true){light2bright-=10;pixels.setBrightness(light2bright);pixels.show();delay(delayval2);if(light2bright<=10)break;}
}
直接arduino上 上传即可。color函数的三个参数依次为R G B 的亮度。
注意要点1:数据传输有方向!有方向!不要逆向传输(灯带上有一个黑色小三角显示方向)
注意要点2:遇到颜色不对可能有两种情况,NEO_GRB + NEO_KHZ800这个模式和灯带不匹配,或者电压不稳定或者不够
注意要点3:如果是不亮,注意焊接处问题,以及是否连接正确(引脚,电源方面)
注意要点4:当你改动了你的灯带效果,记得把你改动的效果show()上去,不然会不显示(就是说,只有show之后,效果 才会在灯带里面显示出来)
Arduino-LED相关推荐
- Arduino LED灯随着蜂鸣器音乐闪烁
Arduino LED灯随着蜂鸣器音乐闪烁 所需组件: 开发板 面包板 LED灯 蜂鸣器 连接线 示意图: 接线方式: 3脚蜂鸣器: 1.GND接开发板的一个地口 2.VCC线接5V开发板5v电源 3 ...
- Arduino lED灯与开关控制学习
Arduino LED灯随机亮起过程 LED广告灯类型 LDE广告灯绘图 Mixly模块代码 Arduino代码 LED灯与触碰开关使用 LED灯与触碰开关绘图 Mixly模块代码 Arduino代码 ...
- python自动化控制arduino_LattePandaAI-Python控制Arduino LED灯
本帖最后由 铁甲小宝 于 2020-9-3 17:58 编辑 LattePanda&AI-Python控制Arduino LED灯 概述 --------------------------- ...
- arduino led灯通讯
本程序在某宝的店铺产品基础上淘宝店铺利用arduino实现可见光通讯,两个led灯相对放置,通过灯的闪烁完成信号的传输,具体程序如下: 发送端程序 unsigned int txbuffer[9] = ...
- LabVIEW控制Arduino LED灯闪烁(基础篇—2)
目录 1.实验目的 2.实验环境 3.程序设计 4.实验演示 1.实验目的 利用LIAT中的数字I/O函数库,通过LabVIEW控制Arduino Uno控制板上D13管脚上LED灯,实现等间隔闪烁. ...
- arduino LED灯控制基础篇
1 控制原理 arduino uno可以通过数字引脚和模拟引脚控制一个LED灯的亮灭.首先先介绍LED灯,LED有正负极之分,只需要一个高电平便可以点亮,那么就有朋友问了,arduino的5V/3. ...
- Arduino LED 闪烁 教程
文章目录 项目描述 问题分析 解决方案 效果展示 项目描述 让连接在13引脚上的LED灯以1秒的间隔闪烁. 问题分析 主要用到设置引脚高低电平,延时等操作. 解决方案 void setup() {pi ...
- Arduino 学习笔记 | 单片机控制驱动MAX7219 8*8 LED点阵显示模块
第一部分 8 x 8点阵模块 不带MAX7219驱动的8×8 點矩陣LED(如下图),从左侧有写字的一侧开始,L接正电,C接负电. 列L (1.2.3.4.5.6.7.8) 行C(1.2.3.4.5. ...
- ROS-Ardunio 点亮LED灯
ROS-Ardunio 点亮LED灯 说明: • 这个教程展示如何通过rosserial创建subscribers,点亮Arduino上的LED灯 • 例子来自Arduino IDE,File-> ...
- 【esp8266、arduino串口传递浊度、温度数据(json)】
esp8266.arduino串口传递浊度.温度数据(json) 使用设备 Arduino uno esp8266 Arduino 代码部分 Arduino /**************led灯** ...
最新文章
- ## 使用MapReduce程序完成相关数据预处理
- 编程前在Pycharm中自动添加时间日期作者等信息
- 解決BufferedReader读取UTF-8文件中文乱码(转)
- OpenCV中6种访问Mat元素的方法
- 基于jQuery鼠标点击弹出登陆框效果
- docker 搭建mysql 连接不上_docker搭建MySQL主从集群
- Redis 的持久化
- maven项目里的ssh框架整合
- 关于deployment descripter(web.xml)的认识
- 利用网络媒体搭建自己就业之“桥”——卖糖葫芦北大毕业生谋职报道带来的启示...
- access查询女教师所有的信息_access数据综合查询
- adminlte java_AdminLTE的使用
- SerialVersionUID [Java]
- 老调重谈:C语言中的指针和数组
- Kubernetes 调度 - 污点和容忍度详解
- python 评分卡_评分卡原理及Python实现
- 基于微信理共享停车位预约小程序系统设计与实现 开题报告
- 初中计算机考试wps文字,初中信息技术WPS表格测试题
- 简述驱动桥的动力传递路线_汽车驱动桥概述
- 通俗理解卷积神经网络