ESP32驱动可编程灯带闪烁解决方案

由于部分单片机和设备是3.3V电压工作,部分单片机和传感器是5V电压工作,当两者需要通信的时候就会出现工作电压不一致的情况,会使传感器和设备不正常工作,此时需要进行电平转换作为桥接解决电压不一致的问题。ESP32的工作电压为3.3V,信号输出也是3.3V,LED灯带信号正常的工作电压为5V,所以容易出现闪烁的问题。

3.3v-5v电平转换模块:

电平转换

信号放大器:

信号放大

接线方法:

接线方法

Ender3V2安装3DTouch自动调平教程

经常使用3D打印机的朋友会发现有时候打印完东西后第二次打印,材料就不粘热床了,那是因为可能拆模型时把热床下的调平螺丝松了导致的,每次打印都进行调平热床太麻烦了,此时我们可以考虑升级一下打印机,加装自动调平配件。
坏
底层粘不好容易打废

科技与摄影艺术,教你做一个刷图案的光绘棒!

项目来源:

过年放假期间看到B站UP主“爆改车间”的一个低成本DIY刷图案的光绘棒视频,记得很久以前在一个DIY摄影群里就看到类似的光绘作品,拍出来的光绘照片十分有意思,例如在城市的广场中光绘马里奥,彩虹猫,钢铁侠等动漫,电影人物;给模特拍出带有天使翅膀的光绘照片,我自己也喜欢摄影,也一直很想试试拍这种科技与艺术的光绘照片,UP主只开源了代码,代码可以从爆改车间公众号获取,不过没关系,可以自己设计光绘棒结构,说干就干,买零件造起来吧。
网图

Arduino一些有用的代码

玩了好几年的Arduino,走过一些坑,收集了一些有用的辅助代码。

查找i2c设备地址代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <Wire.h>  

void setup(){
Wire.begin();
Serial.begin(9600);
Serial.println("\nI2C Scanner");
}
void loop(){
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for (address = 1; address < 127; address++ ){
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0){
Serial.print("I2C device found at address 0x");
if (address < 16)
Serial.print("0");
Serial.print(address, HEX);
Serial.println(" !");
nDevices++;
}else if (error == 4){
Serial.print("Unknow error at address 0x");
if (address < 16)
Serial.print("0");
Serial.println(address, HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000); // wait 5 seconds for next scan
}

有时候买来的模块资料提供的i2c地址不正确,导致模块不能正常使用,只需要把模块按i2c接线到Arduino并烧录程序查看串口监视器就可以得到正确的i2c地址了!

设置蓝牙模块代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#define AT 2//en接2号引脚
#define LED 13
void setup()
{

pinMode(LED,OUTPUT);
pinMode(AT,OUTPUT);
digitalWrite(AT,HIGH);
Serial.begin(38400);//这里应该和你的模块通信波特率一致
delay(100);
Serial.println("AT");
delay(100);
Serial.println("AT+NAME=Arduino");//命名模块名
delay(100);
Serial.println("AT+ROLE=0");//设置主从模式:0从机,1主机
delay(100);
Serial.println("AT+PSWD=1234");//设置配对密码,如1234
delay(100);
Serial.println("AT+UART=9600,0,0");//设置波特率9600,停止位1,校验位无
delay(100);
Serial.println("AT+RMAAD");//清空配对列表
}
void loop()
{

digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}

参考:蓝牙HC05模块探究-设置AT指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <SoftwareSerial.h>   // 引用程式庫

// 定義連接藍牙模組的序列埠
SoftwareSerial BT(8, 9); // 接收腳, 傳送腳
char val; // 儲存接收資料的變數

void setup() {
Serial.begin(9600); // 與電腦序列埠連線
Serial.println("BT is ready!");

// 設定藍牙模組的連線速率
// 如果是HC-05,請改成38400
BT.begin(9600);
}

void loop() {
// 若收到「序列埠監控視窗」的資料,則送到藍牙模組
if (Serial.available()) {
val = Serial.read();
BT.print(val);
}

// 若收到藍牙模組的資料,則送到「序列埠監控視窗」
if (BT.available()) {
val = BT.read();
Serial.print(val);
}
}

HC-06AT命令设置

夜间好物--小汪变色夜灯

最近的我在沉迷造灯,有了激光切割机学习了新技能,那当然要运用起来啦,以前就一直想做一个激光镭射那种小夜灯,这次终于能自己做出来了,我用的是单面磨砂亚克力+3D打印的底座做的,没错就是下面那个小汪🐶夜灯了,晚上看起来还挺可爱的

nightlamp

就在我做好的时候,柴火创客空间送测了一些Arduino新品入门套件,来得正是时候啊,刚好可以把夜灯进行升级改进一番,既然是入门套件第一步当然是学习点亮第一盏LED灯,来当一灯大师,做一个夜间好物系列,宁静的夜晚,缺不了一盏灯,一盏好看有艺术感的灯在宁静的晚上看了会心情舒畅。
,