毕业设计 基于stm32舞台彩灯控制器设计app控制系统

news2024/11/25 20:38:28

基于stm32舞台彩灯控制器设计app控制

  • 1、项目简介
    • 1.1 系统构成
    • 1.2 系统功能
  • 2、部分电路设计
    • 2.1 STM32F103C8T6核心系统电路设计
    • 2.2 WS2812RGB彩灯电路设计
  • 3、部分代码展示
    • 3.1 控制WS2812显示颜色
    • 3.2 设置RGB灯的颜色,角度,亮度
  • 实物图

1、项目简介

  • 选题指导,项目分享: https://gitee.com/lighter-z/embedded-base/tree/master
  • 点击查看详细资料

1.1 系统构成

本设计由STM32F103C8T6单片机核心板电路+蓝牙模块+RGB彩灯电路+舵机+红外检测电路组成。

1.2 系统功能

  • 1、基于stm32舞台彩灯控制器设计app控制系统有两种模式,自动模式与手动模式。
  • 2、手动模式下可以通过手机APP对RGB彩灯进行控制。
  • 3、可以通过APP控制RGB彩灯的颜色,旋转角度,亮度。
  • 4、自动模式下根据RGB彩灯会根据人体位置自动旋转。

2、部分电路设计

2.1 STM32F103C8T6核心系统电路设计

STM32F103C8T6单片机最小系统电路由复位电路、时钟电路和电源电路。拥有这三部分电路后,单片机即可正常工作。

单片机最小系统原理图如下图所示:

实物图:

2.2 WS2812RGB彩灯电路设计

其具体电路原理图如下图所示:

实物图如下图所示:

3、部分代码展示

3.1 控制WS2812显示颜色

void WS2812_send(uint8_t (*color)[3], uint16_t len)
{
	uint8_t i;
	uint16_t memaddr;
	uint16_t buffersize;
	buffersize = (len*24)+43;	// number of bytes needed is #LEDs * 24 bytes + 42 trailing bytes
	memaddr = 0;				// reset buffer memory index

	while (len)
	{	
		for(i=0; i<8; i++) // GREEN data
		{
			LED_BYTE_Buffer[memaddr] = ((color[0][1]<<i) & 0x0080) ? TIMING_ONE:TIMING_ZERO;
			memaddr++;
		}
		for(i=0; i<8; i++) // RED
		{
				LED_BYTE_Buffer[memaddr] = ((color[0][0]<<i) & 0x0080) ? TIMING_ONE:TIMING_ZERO;
				memaddr++;
		}
		for(i=0; i<8; i++) // BLUE
		{
				LED_BYTE_Buffer[memaddr] = ((color[0][2]<<i) & 0x0080) ? TIMING_ONE:TIMING_ZERO;
				memaddr++;
		}
		len--;
 }

3.2 设置RGB灯的颜色,角度,亮度

void Set_Light_Color_Angle()
{
	
	//亮度量
	switch(USART_RX_BUF[4])
	{
		case Light_one: Light_Number = 5; break;
		case Light_two: Light_Number = 10; break;
		case Light_three: Light_Number = 15; break;
		case Light_fore: Light_Number = 20; break;
		case Light_five: Light_Number = 26; break;
		
	}
	
//	//颜色量
	switch(USART_RX_BUF[5])
	{
		case Color_black: Color_Number = 0; break;
		case Color_Red: Color_Number = 1; break;
		case Color_Orange: Color_Number = 2; break;
		case Color_Yellow: Color_Number = 3; break;
		case Color_Green: Color_Number = 4; break;
		case Color_Ching: Color_Number = 5; break;
		case Color_Blue: Color_Number = 6; break;
		case Color_Purple: Color_Number = 7; break;
	}
	
	//角度量
	if(Angle_Add == USART_RX_BUF[6])
	{
		Angle_Number += 10;								
		
		if(Angle_Number >= 1900)
		{
			Angle_Number = 1900;
		}
		
	}
	else if(Angle_Down == USART_RX_BUF[6])
	{
		Angle_Number -= 10;
		
		if(Angle_Number <= 1750)
		{
			Angle_Number = 1750;
		}
		
	}
	
	/*
		发送设置好的亮度与颜色数据
	*/
	switch(Color_Number)
	{
		case 0: WS2812_send(rgb0,7); break;
		case 1: WS2812_send(&rgb_Red[Light_Number],7); break;
		case 2: WS2812_send(&rgb_Orange[Light_Number],7); break;
		case 3: WS2812_send(&rgb_Yellow[Light_Number],7); break;
		case 4: WS2812_send(&rgb_Green[Light_Number],7); break;
		case 5: WS2812_send(&rgb_Ching[Light_Number],7); break;
		case 6: WS2812_send(&rgb_Blue[Light_Number],7); break;
		case 7: WS2812_send(&rgb_Purple[Light_Number],7); break;
	}
}

实物图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/385159.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pluma 插件管理框架

1. 概述 Pluma 是一个用 C 开发的可用于管理插件的开源架构&#xff0c;其官网地址为&#xff1a;http://pluma-framework.sourceforge.net/。该架构是个轻量级架构&#xff0c;非常易于理解。 Pluma 架构有以下基本概念&#xff1a; 1&#xff09;插件的外在行为体现为一个…

JavaSE:集合框架

为什么用集合框架如果不知道需要多少对象&#xff0c;或者用较为复杂的方式存储对象&#xff0c;可以用集合框架集合框架包含的内容ArrayList实践.size().add(Object o&#xff09; .add(int index, Object o).get(int index).contains(Object o).remove(Object o) .remove(int…

高精度电流源如何设计出来

随着科技的不断进度&#xff0c;高精度电流源在自动测试/测量以及各种应用中承担着重要的作用。然而想要更高精度的指标参数&#xff0c;就需要电流源仪器研发得更完善。众所周知&#xff0c;高精度电流源是电子实验中重要的测试仪器&#xff0c;能够广泛应用在电化学、电光源、…

深入理解Windows操作系统机制(一)

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天我们来重新审视一下Windows这个我们熟悉的不能再熟悉的系统。我们每天都在用Windows操作系统&#xff0c;但是其实我们每天直接在打交道的并不是Windows操作系统的内核&#xff0c;而是Windows操作系统的…

pytorch入门7--自动求导和神经网络

深度学习网上自学学了10多天了&#xff0c;看了很多大神的课总是很快被劝退。终于&#xff0c;遇到了一位对小白友好的刘二大人&#xff0c;先附上链接&#xff0c;需要者自取&#xff1a;https://b23.tv/RHlDxbc。 下面是课程笔记。 一、自动求导 举例说明自动求导。 torch中的…

Python 数据库连接 + 创建库表+ 插入【内含代码实例】

人生苦短 我用python Python其他实用资料:点击此处跳转文末名片获取 数据库连接 连接数据库前&#xff0c;请先确认以下事项&#xff1a; 您已经创建了数据库 TESTDB.在TESTDB数据库中您已经创建了表 EMPLOYEEEMPLOYEE表字段为 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME。连…

前端css整理

如何水平垂直居中一个盒子&#xff1f; 1.已知高度&#xff1a;子盒子设置 display: inline-block; 父盒子设置 line-height 等于高度实现垂直居中&#xff1b;使用 text-align:center实现水平居中 2.父盒子 display:flex; align-items:center;justify-content:center; 3.定位&…

自动驾驶决策规划-控制方向学习资料总结(附相关资料的链接)

项目仓库 欢迎访问我的Github主页 项目名称说明chhCpp学习C仓库chhRobotics学习自动驾驶、控制理论相关仓库(python实现)chhRobotics_CPP学习自动驾驶、控制理论相关仓库(c实现)chhML 、chh-MachineLearning学习机器学习仓库chhRL学习强化学习仓库chhTricks存放一些有意思的t…

SpringSecurity的初次邂逅

【第一篇】SpringSecurity的初次邂逅 1.Spring Security概念 Spring Security是Spring采用 AOP思想&#xff0c;基于 servlet过滤器实现的安全框架。它提供了完善的认证机制和方法级的授权功能。是一款非常优秀的权限管理框架。 Spring Security是一个功能强大且高度可定制的身…

vue权限控制和动态路由

思路 登录&#xff1a;当用户填写完账号和密码后向服务端验证是否正确&#xff0c;验证通过之后&#xff0c;服务端会返回一个token&#xff0c;拿到token之后&#xff08;我会将这个token存贮到localStore中&#xff0c;保证刷新页面后能记住用户登录状态&#xff09;&#xf…

颠覆你的认知,业务同事都能开发软件,我简直无地自容……

经常看到网络鼓吹业务人员也能搭建应用&#xff0c;本是嗤之以鼻、半信半疑&#xff0c;但当这件事真实发生在自己身上时&#xff0c;竟觉得此言不虚&#xff1f; 一、背景 最近公司为了集成系统、提升扩展能力&#xff0c;引进了低代码平台JNPF&#xff0c;说个题外话&#…

终于,OpenAI开放ChatGPT API,成本直降90%,百万token才2美元

现在&#xff0c;第三方可以通过 API 将对话模型 ChatGPT 和语音转文本模型 Whisper 集成到自己的应用程序和服务中了。 来源丨机器之心 2022 年 11 月&#xff0c;OpenAI 上线 ChatGPT&#xff0c;自此以后&#xff0c;这个对话模型一路开挂。毫不夸张的说&#xff0c;与 Ch…

4道数学题,求解极狐GitLab CI 流水线|第4题:合并列车

本文来自&#xff1a; 武让 极狐GitLab 高级解决方案架构师 &#x1f4a1; 极狐GitLab CI 依靠其一体化、轻量化、声明式、开箱即用的特性&#xff0c;在开发者群体中的使用率越来越高&#xff0c;在国内企业中仅次于 Jenkins &#xff0c;排在第二位。 极狐GitLab 流水线有 4…

NFT Insider #87:The Sandbox 收购游戏开发工作室 Sviper,GHST 大迁徙即将拉开帷幕

引言&#xff1a;NFT Insider由NFT收藏组织WHALE Members(https://twitter.com/WHALEMembers)、BeepCrypto&#xff08;https://twitter.com/beep_crypto&#xff09;联合出品&#xff0c;浓缩每周NFT新闻&#xff0c;为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周…

洛必达求极限法则的通俗理解

洛必达求极限法则的通俗理解 洛必达法则是用于计算函数在某一点的极限的方法 它的基本思想是利用函数在该点的导数来逼近极限值。 洛必达法则成立的主要原因是因为它是利用函数的导数来逼近函数值的方法。当函数在某一点处存在导数时&#xff0c;函数的变化趋势可以由导数来…

24小时稳定性爆肝测试!国内外5款远程控制软件大盘点

本文目录前言一、ToDesk远程控制二、向日葵远程控制三、RayLink四、TeamViewer五、AnyDesk总结前言 不论你的职业是什么&#xff0c;从事互联网工作基本就离不开远程&#xff0c;从远程安装系统到远程搞设计&#xff0c;再到做服务器的调控&#xff0c;都需要靠远程来协助完成…

如何实现《电子签名法》要求的可靠电子签名?

电子文档的电子签名怎么弄&#xff1f;我们在工作中经常需要在一些Word、pdf等电子版文件中插入签名&#xff0c;而很多人可能不知道&#xff0c;电子签名怎么弄&#xff1f;怎么做电子签名才有效&#xff1f;电子印章或签名图片属于电子签名吗&#xff1f;当工作或商务交易中&…

Typroa安装教程

Markdown 是一种轻量级标记语言&#xff0c;创始人为约翰格鲁伯&#xff08;John Gruber&#xff09;。 它允许人们使用易读易写的纯文本格式编写文档&#xff0c;然后转换成有效的 XHTML&#xff08;或者HTML&#xff09;文档。这种语言吸收了很多在电子邮件中已有的纯文本标记…

中小型企业综合组网及安全配置(附拓扑图和具体实现的代码)

目录 一、实验目的 二、设备与环境 三、实验内容及要求 四、实验命令及结果 五、实验总结 六、实验报告和拓扑图下载链接 一、实验目的 1.了解企业网络建设流程 2.掌握组建中小企业网络的组网技术&#xff1b; 3.掌握组建中小企业网络的安全技术 二、设备与环境 微型…