PIXHAWK DIY LED扩展板
板载的状态LED灯,因为各种灰机的外壳有可能会被挡住看不到状态。那么我们也是可以用arduino板子来扩展实现外置,其实就是用328P芯片来实现。
这程序支持WS2812B的全彩LED灯。
默认的信号控制引脚是A1(15),LED数量是8个,你可以根据你的实际情况修改。

代码使用了FastLed的第三方类库可以自己下载
代码如下:
#include <Wire.h>
#include "FastLED.h" #define NUM_LEDS 8 // Data pin that led data will be written out over
#define DATA_PIN 15
// Clock pin only needed for SPI based chipsets when not using hardware SPI
//#define CLOCK_PIN 8 long lasttimeLED = ;
#define delayLED 10 //ms
long lasttimeCYC = ;
#define delayCYC 50 //ms CRGB leds[NUM_LEDS];
bool thergbled[] = {, , };
bool changeflag = false;
bool i2cflag = false;
#define downrate 1 void setup() {
Wire.begin(0x55); // join i2c bus with address
Wire.onReceive(receiveEvent); // register event
// Serial.begin(9600); // start serial for output
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS); // init LED
} void loop() { LED();
CYC(); } void LED() {
if ((millis() - lasttimeLED) > delayLED) {
lasttimeLED = millis();
// for (int i = 0; i < 8; i++) {
// leds[i] = CRGB(255 * thergbled[2], 255 * thergbled[1], 255 * thergbled[0]);
// }
if(i2cflag) {
leds[] = CRGB( * thergbled[], * thergbled[], * thergbled[]);
FastLED.show();
i2cflag = false;
changeflag = false; // skip CYC change since already update in this loop
}
else if(changeflag) {
FastLED.show();
changeflag = false;
}
}
} void CYC() {
if ((millis() - lasttimeCYC) > delayCYC) {
lasttimeCYC = millis();
for(int i=(NUM_LEDS-);i>=;i--) {
leds[i] = CRGB(leds[i-].r *downrate , leds[i-].g *downrate, leds[i-].b *downrate );
// leds[i+1] = leds[i];
}
changeflag = true;
}
} // function that executes whenever data is received from master
// this function is registered as an event, see setup()
void receiveEvent(int howMany) { while ( Wire.available() >= ) { // loop through all but the last
int ledreg = Wire.read(); // receive byte as a regid
int ledval = Wire.read(); // receive byte as a ledcolorsonoff
// Serial.print(ledreg, HEX); // print the character
// Serial.print(" : "); // print the character
// Serial.println(ledval, HEX); // print the character
switch (ledreg) {
case 0x81:
thergbled[] = ledval; // B
break;
case 0x82:
thergbled[] = ledval; // G
break;
case 0x83:
thergbled[] = ledval; // R
i2cflag = true;
break;
default:
break;
}
}
}
PIXHAWK DIY LED扩展板的更多相关文章
- 自制廉价的LED+LCD型投影仪
文档标识符:PROJECTOR_T-D-P6 作者:DLHC 最后修改日期:2020.7.30 本文链接:https://www.cnblogs.com/DLHC-TECH/p/PROJECTOR_T ...
- DIY远程控制开关(tiny6410+LED+yeelink+curl)
上一次,介绍了如何实现远程监控室内温度,大家伙反响还是很热烈的,笔者很欣慰,独乐乐不如众乐乐啊.不过话说回来,那个实现只能是远程监测家中温度,假如发现家里热得很,想远程打开空调开关提前降降温,回家后不 ...
- DIY PIXHAWK APM等飞控用的PPM转接板
需要的硬件 一块arduino pro mini(推荐这个,比较小,当然如果你没有USB转转口的烧写工具买个ardunio nano板也是不错的,直接用USB线连接电脑就可以,用nano板要注意.它的 ...
- DIY PIXHAWK APM等飞控用的声纳
代码: SR04 + ApmSonar.ino 打包下载 注意,使用到了SR04的类库. ApmSonar.ino // sr04 to apm I2c sonar // by panxu mail: ...
- DIY FSK RFID Reader
This page describes the construction of an RFID reader using only an Arduino (Nano 3.0 was tested, b ...
- DIY智能家居——零基础入门篇
概要 本文主要根据笔者从零开始接触硬件,以小白视角开启IoT探索,根据相关资料DIY一个温湿度传感器.后经过探索发现新大陆--Home Assistant&Homebridge,最终实现了一个 ...
- TurnipBit之DIY无线遥控智能小车
一.准备工作 TurnipBit 开发板 2块 TurnipBit 扩展板 1块 数据线 1条 智能小车器件 1套 电机驱动模块(L298N) 1个 在线可视化编程 点击进入 二.思路设计 2 ...
- MicroPython教程之TPYBoard开发板DIY红外寻迹小车
智能小车现在差不多是电子竞赛或者DIY中的主流了,寻迹,壁障,遥控什么的,相信大家也都见得很多了,这次就大家探讨一下寻迹小车的制作方法,不同于以往的是这次的程序不用C语言写,而是要使用python语言 ...
- TurnipBit口袋编程计算机:和孩子一起DIY许愿的流星
听说对着流星许愿,许的愿望都会实现,虽然不知道这个说法是不是真的,但是流星还是很好看的,为了能一直看到流星,今天就自己做一个流星保存下来,想什么时候看,就什么时候看. 首先需要想象一下流星是什么样子的 ...
随机推荐
- psql-08表:触发器
语句级触发器与行为触发器 //创建一个对student表的操作记录表 create table log( update_time timestamp, //操作时间 db_user varchar(4 ...
- (iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题
我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Bas ...
- hihoCoder1388 Periodic Signal(2016北京网赛F:NTT)
题目 Source http://hihocoder.com/problemset/problem/1388 Description Profess X is an expert in signal ...
- JAVA反编工具件安装 JD-eclipse
想看Android API源码,但是只有class文件,于是找了个反编译工具Java Decompiler,免费的反编译工具.eclipse插件:JD-eclipse. 安装步骤: 1.确保计算机上 ...
- 【BZOJ】3714: [PA2014]Kuglarz
题意 \(n(1 \le n \le 2000)\)个数每个数是\(0\)或\(1\),现在可以花费\(c_{i, j}\)知道\([i, j]\)的奇偶性,问将所有数都找出来的最小花费. 分析 如果 ...
- 一些用过的我常忘记的小知识(web前端)
背景图片固定:background-attachment:fixed 将图片的尺寸从中心点开始改变:backgroun-position:center background-size: ** 旋转 ...
- 微信分享JS函数(原创)[已失效]
//微信内置浏览器分享事件 //来自:http://www.cnblogs.com/cielwater //分享朋友圈事件 //UpdateWeixinJSBridge(CircleModel[Jso ...
- .net手机号码归属地查询
调用百度 api http://apistore.baidu.com/apiworks/servicedetail/117.html 贴上代码 using Newtonsoft.Json;using ...
- 安卓中級教程(3):ScrollView
以上是scrollview的圖例,可見srollview是一種滑動功能的控件,亦是非常常見的控件. 一般寫法如下: package com.mycompany.viewscroller; import ...
- swift 2.x学习笔记(三)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #008400 } p.p2 { margin: 0.0px 0. ...