/*
【Arduino】66种传感器模块系列实验(61)
实验六十一: 直条8位 WS2812B 5050 RGB LED内置全彩驱动彩灯模块
实验一,点亮ws2812直条LED
*/
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define MAX_LED 8
#define ADD true
#define SUB false
int val = 0;
boolean stat = ADD;
Adafruit_NeoPixel strip = Adafruit_NeoPixel( MAX_LED, PIN, NEO_RGB + NEO_KHZ800 );
void setup()
{
strip.begin();
strip.show();
}
void loop()
{
uint8_t i,a=0;
uint32_t color = strip.Color(0, 100, 255);
while(a<10)
{
for(i=0;i<9;i++)
{
if(i==a) strip.setPixelColor(i, color);
else strip.setPixelColor(i, 0);
}
strip.show();
delay(20);
a++;
}
}
本帖最后由 eagler8 于 2019-7-19 16:18 编辑
/*
【Arduino】66种传感器模块系列实验(61)
实验六十一: 直条8位 WS2812B 5050 RGB LED内置全彩驱动彩灯模块
实验程序之二,依次点亮不同色彩灯
*/
#include <FastLED.h>
#define LED_PIN 6
#define NUM_LEDS 8
CRGB leds;
void setup() {
FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
}
void loop() {
leds = CRGB(255, 0, 0);
FastLED.show();
delay(500);
leds = CRGB(0, 255, 0);
FastLED.show();
delay(500);
leds = CRGB(0, 0, 255);
FastLED.show();
delay(500);
leds = CRGB(150, 0, 255);
FastLED.show();
delay(500);
leds = CRGB(255, 200, 20);
FastLED.show();
delay(500);
leds = CRGB(85, 60, 180);
FastLED.show();
delay(500);
leds = CRGB(50, 255, 20);
FastLED.show();
delay(500);
leds = CRGB(150, 50, 60);
FastLED.show();
delay(500);
}
/*
【Arduino】66种传感器模块系列实验(61)
实验六十一: 直条8位 WS2812B 5050 RGB LED内置全彩驱动彩灯模块
实验程序之三,简单渐变彩虹色
*/
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 6
#define NUMPIXELS 8
floatRDE1=0;
floatGRE1=0;
floatBLE1=0;
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int delayval = 500;
void setup() {
#if defined (__AVR_ATtiny85__)
if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
#endif
pixels.begin();
}
void loop() {
GRE1=0;
for(int o=0;o<255;o++){
RDE1=255;
GRE1=GRE1+1;
BLE1=0;
for(int l=0;l<NUMPIXELS;l++){
pixels.setPixelColor(l, pixels.Color(RDE1,GRE1,BLE1));
pixels.show();
}
delay(20);
}
RDE1=255;
for(int p=0;p<255;p++){
RDE1=RDE1-1;
GRE1=255;
BLE1=0;
for(int l=0;l<NUMPIXELS;l++){
pixels.setPixelColor(l, pixels.Color(RDE1,GRE1,BLE1));
pixels.show();
}
delay(20);
}
BLE1=0;
for(int k=0;k<255;k++){
RDE1=0;
GRE1=255;
BLE1=BLE1+1;
for(int l=0;l<NUMPIXELS;l++){
pixels.setPixelColor(l, pixels.Color(RDE1,GRE1,BLE1));
pixels.show();
}
delay(20);
}
GRE1=255;
for(int k=0;k<255;k++){
RDE1=0;
GRE1=GRE1-1;
BLE1=255;
for(int l=0;l<NUMPIXELS;l++){
pixels.setPixelColor(l, pixels.Color(RDE1,GRE1,BLE1));
pixels.show();
}
delay(20);
}
RDE1=0;
for(int h=0;h<150;h++){
RDE1=RDE1+1;
GRE1=0;
BLE1=255;
for(int l=0;l<NUMPIXELS;l++){
pixels.setPixelColor(l, pixels.Color(RDE1,GRE1,BLE1));
pixels.show();
}
delay(20);
}
}
讲的很好:):)
zhangfuhg 发表于 2019-7-19 19:12
讲的很好
:handshake谢谢鼓励啊,准备开始做第62号实验......
实验六十二:电压检测模块 Voltage Sensor 电压传感器
由于目前电子产品各式各样,供电电源的电压也各不相同,要想检测就需要一款合适的电压检测模块和控制器。控制器模拟接口检测输入电压上限为5V,也就是说大于5V的电压将无法检测。2011 年新推出的这款电压检测模块能够解决此问题,实现检测大于5V的电压,此模块基于电阻分压原理所设计,能使红色端子接口输入的电压缩小5倍,模拟输入电压上限为5V,那么电压检测模块的输入电压则不能大于5V×5=25V(如果用到3.3V系统,输入电压不能大于3.3Vx5=16.5V)。因为Arduino所用AVR 芯片为10位AD,所以此模块的模拟分辨率为0.00489V(5V/1023),故电压检测模块检测输入下限电压为 0.00489V×5=0.02445V。通过3P传感器连接线插接到传感器扩展板,不仅可以轻松实现对电压电量大小的检测,监控互动媒体作品或机器人电池供电的电量,也可以通过IICLCD1602液晶模块显示电压制作电压监测器。
为配合实验,找了一块DC-DC升压模块
升压模块
1、体积小可调升压模块,可轻松安装于各种小型设备里面。
2、可采用MicroUSB输入,用USB充电器或者移动电源通过手机数据线即3、可轻松得到9V,12V,15V,18V,24V的常用电压,使用非常方便。
4、宽的输入和输出电压,高的转换效率。
模块特性
1)大输出电流:2A(建议在1A内使用)
2)输入电压:2 v--24 v
3)大输出电压:> 28 v(建议在26V内使用)
4)效率:> 93%(效率与输入和输出的压差有关)
5)尺寸:30mm* 17mm* 14mm(长*宽*高)
注意事项
1)此模块是升压模块,输出电压要大于输入电压
2)峰值电流输出电流不过2A