arduino怎么设置小灯泡来回亮

arduino怎么设置小灯泡来回亮,第1张

本文仅为入门实验,甚至谈不上研究的程度。目的是:记录如何烧录程序到 Arduino 主板,以及通过一些简单例程,找到 Arduino 开发的感觉。

开发环境:Ardunio IDE(用于编译、上传运行代码)、VS Code 这种实时的文本编辑器(方便查看、编写代码,编写后再将代码复制到 Arduino IDE 中保存)。

Arduino 驱动:在 Win10 环境,应该会自动安装。插上 Arduino 稍后一会,就能直接上传代码。

1、Hello World例程:

打开 Arduino IDE,另存临时工程。用 VS Code 编辑 ino 源文件:

int ledpin = 13; //定义数字接口13,对应 Arduino 数字 I/O 13口,库中的 LED_BUILTIN 常量

void setup()

{

// 通过串口收发数据

Serialbegin(9600); //设置串口的波特率

pinMode(ledpin, OUTPUT); //设置13口为输出模式。使用 Arduino 上面的 I/O 口,都需要类似设置

}

void loop()

{

// int val = Serialread(); //读取 pc 发送给 Arduino 的数据

digitalWrite(ledpin, HIGH); //13口输出高电平

delay(500); //延迟05秒

digitalWrite(ledpin, LOW); //13口输出低电平

delay(500);

Serialprintln("Hello World");

}

编写好保存后,用 Arduino IDE 上传代码后,只要 Arduino 通电,代码就会在主板上运行了。

最后打开 Arduino IDE 的串口工具,即可看到 Arduino 不断发送的数据;随便用个小灯泡,阴极接地,阳极接13口,可以看到小灯泡正在 Blink。

2、使用模拟接口,读取模拟值:

Arduino 有 A0-A5,共6个模拟口,模拟口也可以复用为数字接口14-19。至于是当作模拟口,还是用作数字接口,取决于使用 digital 还是 analog 函数。

例程:

int potpin = 0;

int val = 0;

void setup()

{

// 通过串口收发数据

Serialbegin(9600); //设置串口的波特率

}

void loop()

{

val = analogRead(potpin);

Serialprintln(val);

delay(2000);

}

电路图如下(其中 R2 为可变电阻)。通过可调电阻改变电流大小,从而改变 A0 的模拟值,读取并输出串口。

没看到你的硬件图,简单说下思路

图像转换为数组(矩阵),这个单片机困难的话可以在PC上做。

单片机有个左右震动传感器,判断是否挥动到头,然后开始顺序显示数组的列。(如果是扇形挥动,转换时先做矫正。)

看灯带是全彩灯带,单是否支持按每个灯独立显示就未知了。

// the setup function runs once when you press reset or power the board

void setup() {

// initialize digital pin 13 as an output

pinMode(13, OUTPUT);

}

// the loop function runs over and over again forever

void loop() {

digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(13, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second

}

好吧,你另开一贴~~~~

我来告诉你把~~

1、led不能用13,13不支持调光,用11

2、if (state == 1){

readValue = analogRead(A0); //

这不是重新读取了电位器的值吗?当然与上次保存的没有关系了。

好的,以下是一个基于TTP223和WS2812的触摸效果灯的示例代码,实现了长按调节亮度、双击开关灯的效果:

```

#include <Adafruit_NeoPixelh>

#define PIN_PIXEL 5 // WS2812控制引脚

#define NUM_PIXELS 30 // 灯珠数量

#define PIN_TOUCH 2 // TTP223触摸模块控制引脚

// WS2812对象

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUM_PIXELS, PIN_PIXEL, NEO_GRB + NEO_KHZ800);

// 亮度调节变量

int brightness = 255;

int step = 10;

// 开关灯标志

bool isOn = true;

// 触摸模块状态变量

bool isPressed = false;

unsigned long pressTime = 0;

unsigned long releaseTime = 0;

void setup() {

pixelsbegin();

pinMode(PIN_TOUCH, INPUT_PULLUP);

}

void loop() {

// 判断触摸模块状态

bool touchState = digitalRead(PIN_TOUCH);

if (touchState != isPressed) {

isPressed = touchState;

if (isPressed) {

pressTime = millis();

} else {

releaseTime = millis();

if (releaseTime - pressTime < 1000) { // 按下时间不足1秒算单击

if (isOn) {

pixelsclear(); // 灭灯

pixelsshow();

isOn = false;

} else {

pixelsfill(pixelsColor(brightness, brightness, brightness)); // 亮灯

pixelsshow();

isOn = true;

}

}

}

}

// 长按调节亮度

if (isPressed && (millis() - pressTime > 1000)) {

if (releaseTime == 0 || (millis() - releaseTime > 500)) { // 避免多次触发

brightness += step;

if (brightness > 255) {

brightness = 255;

step = -step;

} else if (brightness < 0) {

brightness = 0;

step = -step;

}

pixelssetBrightness(brightness);

pixelsshow();

releaseTime = millis();

}

}

}

```

代码说明:

1 定义了WS2812控制引脚、灯珠数量、TTP223触摸模块控制引脚等常量。

2 在setup()函数中初始化WS2812对象和触摸模块引脚。

3 在loop()函数中不断检测触摸模块状态。如果触摸模块状态发生改变,根据按下时间判断是单击还是长按。如果是单击,则切换灯的开关状态。如果是长按,则根据按压时间调节灯的亮度。

4 灯的亮度调节使用了一个变量brightness和一个变量step,brightness表示当前亮度,step表示亮度调节步长,每次长按时根据step加减brightness,当brightness超出范围时翻转step的方向。

5 双击开关灯的效果实现比较简单,直接通过判断isOn变量的值来控制灯的开关即可。

需要注意的是,这只是一个简单的示例代码,可能还有很多需要改进的地方,比如对按键按下的抖动进行滤波、对亮度调节的步长进行优化等。

麻烦给我反馈是否解决了你的问题,谢谢你,我很希望能够给你提供服务

以上就是关于arduino怎么设置小灯泡来回亮全部的内容,包括:arduino怎么设置小灯泡来回亮、用arduino编程流水灯程序、Arduino怎么写个最简单的程序,软件我有,写一个灯泡亮的就行了。还有板怎么接,看图,一秒亮一下等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10136538.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存