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

Posted 嵌入式基地

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了毕业设计 基于stm32舞台彩灯控制器设计app控制系统相关的知识,希望对你有一定的参考价值。

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

1、项目简介

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;
	

实物图

以上是关于毕业设计 基于stm32舞台彩灯控制器设计app控制系统的主要内容,如果未能解决你的问题,请参考以下文章

毕业设计:基于STM32的智能家居无线(蓝牙wifi)语音控制系统

3★☛基于STM32的手机通过wifi控LED灯√♠★

3★☛基于STM32的手机通过wifi控LED灯√♠★

基于STM32单片机项目设计目录-加油吧√

基于STM32单片机项目设计目录-加油吧√

毕业设计:基于STM32的平衡车设计与实现