基于STM32小项目

前段时间刷b站看到嘉立创白嫖梵高星空pcb板的视频,以学习的名义将pcb板打了回来。打回来板后发现板子透光很好看,就在b站里找到了同样用星空板做小夜灯的视频,于是就跟着up主的视频复刻了星空小夜灯。

项目简介 

基于b站“我不是姓崔的”up主的星空pcb,使用STM32F103C8T6芯片制作的小夜灯。本项目中主要用到ws2812b灯带和雷达检测模块。

PCB和元器件准备

首先在嘉立创中新建工程文件将原理图绘制出来

(原理图)

原理图完成后,生成pcb文件,布局pcb板

(pcb及3D预览)

以及星空pcb板:https://oshwhub.com/sytnocui/star-pcb-drawing

pcb板完成后,现在需要准备焊接对应的元器件

软件准备

使用kill5进行编程

这里放主程序的代码,其余代码在资源文件里

#define WS2812B_LED_QUANTITY    30

extern uint32_t WS2812B_Buf[WS2812B_LED_QUANTITY];    // 0xGGRRBB

int MODE = 0;
int SWIFT = 0;

uint32_t color = 0x005577;  // 初始颜色

void Init(void)
{
    RCC_Init();
    WS2812B_Init();
	Rader_Init();
	Crontrl_Init();
}

int main(void)
{
    Init();
	
    while(1)
    {
		SWIFT = RCrontrl_GetMode();
		MODE = Rader_GetMode();
		if(MODE == 1)
		{
			if (SWIFT != 1) 
			{
				if(color <= 0xFFFFFF)
					color += 10; //修改颜色,使灯带的颜色变化
				else
					color = 0x000023;
				for (int i = 0; i < WS2812B_LED_QUANTITY; i++) 
				{
					WS2812B_Buf[i] = color; // 黑色
				}
				WS2812B_UpdateBuf();
			} 
			else 
			{
				for (int i = 0; i < WS2812B_LED_QUANTITY; i++) 
				{
					WS2812B_Buf[i] = 0xFFFFFF; // 黑色
				}
				WS2812B_UpdateBuf();
			}
		}
		else
		{
			WS2812B_UpdateBuf();
			WS2812B_SetBuf(0x000000);
			WS2812B_ClearBuf();
			WS2812B_UpdateBuf();
		}
        Delay_ms(100);  // 添加延时,以便观察效果
    }
}

组装

将烧录好的pcb和背景pcb组装在一起

b站up主视频链接:星空,PCB复刻_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV18H4y1L7UY/?vd_source=586f992815c727960ef2da21fce2dccd基于星空PCB做了一个小夜灯_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1pZ421B7Lt/?spm_id_from=333.337.search-card.all.click&vd_source=586f992815c727960ef2da21fce2dccd

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值