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相关推荐

  1. Arduino LED灯随着蜂鸣器音乐闪烁

    Arduino LED灯随着蜂鸣器音乐闪烁 所需组件: 开发板 面包板 LED灯 蜂鸣器 连接线 示意图: 接线方式: 3脚蜂鸣器: 1.GND接开发板的一个地口 2.VCC线接5V开发板5v电源 3 ...

  2. Arduino lED灯与开关控制学习

    Arduino LED灯随机亮起过程 LED广告灯类型 LDE广告灯绘图 Mixly模块代码 Arduino代码 LED灯与触碰开关使用 LED灯与触碰开关绘图 Mixly模块代码 Arduino代码 ...

  3. python自动化控制arduino_LattePandaAI-Python控制Arduino LED灯

    本帖最后由 铁甲小宝 于 2020-9-3 17:58 编辑 LattePanda&AI-Python控制Arduino LED灯 概述 --------------------------- ...

  4. arduino led灯通讯

    本程序在某宝的店铺产品基础上淘宝店铺利用arduino实现可见光通讯,两个led灯相对放置,通过灯的闪烁完成信号的传输,具体程序如下: 发送端程序 unsigned int txbuffer[9] = ...

  5. LabVIEW控制Arduino LED灯闪烁(基础篇—2)

    目录 1.实验目的 2.实验环境 3.程序设计 4.实验演示 1.实验目的 利用LIAT中的数字I/O函数库,通过LabVIEW控制Arduino Uno控制板上D13管脚上LED灯,实现等间隔闪烁. ...

  6. arduino LED灯控制基础篇

    1  控制原理 arduino uno可以通过数字引脚和模拟引脚控制一个LED灯的亮灭.首先先介绍LED灯,LED有正负极之分,只需要一个高电平便可以点亮,那么就有朋友问了,arduino的5V/3. ...

  7. Arduino LED 闪烁 教程

    文章目录 项目描述 问题分析 解决方案 效果展示 项目描述 让连接在13引脚上的LED灯以1秒的间隔闪烁. 问题分析 主要用到设置引脚高低电平,延时等操作. 解决方案 void setup() {pi ...

  8. 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. ...

  9. ROS-Ardunio 点亮LED灯

    ROS-Ardunio 点亮LED灯 说明: • 这个教程展示如何通过rosserial创建subscribers,点亮Arduino上的LED灯 • 例子来自Arduino IDE,File-> ...

  10. 【esp8266、arduino串口传递浊度、温度数据(json)】

    esp8266.arduino串口传递浊度.温度数据(json) 使用设备 Arduino uno esp8266 Arduino 代码部分 Arduino /**************led灯** ...

最新文章

  1. ## 使用MapReduce程序完成相关数据预处理
  2. 编程前在Pycharm中自动添加时间日期作者等信息
  3. 解決BufferedReader读取UTF-8文件中文乱码(转)
  4. OpenCV中6种访问Mat元素的方法
  5. 基于jQuery鼠标点击弹出登陆框效果
  6. docker 搭建mysql 连接不上_docker搭建MySQL主从集群
  7. Redis 的持久化
  8. maven项目里的ssh框架整合
  9. 关于deployment descripter(web.xml)的认识
  10. 利用网络媒体搭建自己就业之“桥”——卖糖葫芦北大毕业生谋职报道带来的启示...
  11. access查询女教师所有的信息_access数据综合查询
  12. adminlte java_AdminLTE的使用
  13. SerialVersionUID [Java]
  14. 老调重谈:C语言中的指针和数组
  15. Kubernetes 调度 - 污点和容忍度详解
  16. python 评分卡_评分卡原理及Python实现
  17. 基于微信理共享停车位预约小程序系统设计与实现 开题报告
  18. 初中计算机考试wps文字,初中信息技术WPS表格测试题
  19. 简述驱动桥的动力传递路线_汽车驱动桥概述
  20. 通俗理解卷积神经网络

热门文章

  1. 余世维博士:赢在执行-执行没有借口
  2. 【资源帖】世界名牌大学课件下载地址
  3. Html5的新增特性
  4. 古今群侠传java,【古今群侠传官网版】古今群侠传最新官网版下载_66游戏网
  5. Java集合(List、Set)
  6. csky linux 编译内核,linux内核编译(八)
  7. 四旋翼飞行器12——飞控接收机的三种接收模式
  8. canvas详细入门教程(1W字 吐血分享)
  9. 训练医学模型的相关挑战汇总
  10. 汽车电子_EMC测试_CE电流法整改