零基础学会制作 基于STM32/51单片机的花样喷泉控制系统设计/喷泉控制/景观喷泉/单片机

项目介绍

基于单片机的花样喷泉设计项目将涵盖多个关键的研究内容,旨在通过技术创新实现喷泉的智能控制和美化效果。
确定喷泉的基本功能和性能指标,如喷水模式多样性、控制响应时间、系统稳定性等,分析预期的用户交互方式,包括自动模式、音乐同步模式和手动控制模式。
选择不同单片机的性能和特性,选择最适合控制喷泉系统的型号,对驱动电路设计,设计用于控制水泵和喷头的驱动电路,确保能够精确调节水流量和方向。设计用于操作喷泉系统的界面,可能包括物理按钮、触摸屏或远程控制应用。
开发用于控制喷水模式、调节喷水高度和方向的算法,设计音乐同步功能,使喷泉水柱能够随音乐节奏变化。

功能介绍

基于单片机的花样喷泉项目设计要求关注于实现一个高效、可靠且具有艺术表现力的自动控制喷泉系统。这一系统应当能够根据预设的程序或环境反馈调整喷水模式,从而创造出吸引人的视觉效果。
系统多样性主要体现在以下方面:

  1. 系统应能够支持多种喷水模式,包括但不限于连续喷射、间歇喷射、节奏变换等,以丰富视觉效果。
  2. 能够根据播放的音乐节奏自动调整喷水模式和节奏,创造音乐与水的和谐表演。
  3. 设计应考虑功耗管理,尤其是在使用供电时,以延长系统的使用时间。
  4. 系统对控制信号的响应应迅速准确,确保喷水动作与预设程序或音乐节奏同步。

所用模块

本设计方案旨在创建一个具有音乐同步功能的花样喷泉,通过水泵模块、电机驱动模块、音乐检测模块和LED流水灯,实现与音乐同步的喷水和灯光表演。该花样喷泉系统基于高性能STM32F103C8T6单片机,利用单片机的可编程性,控制水泵的开关和电机的速度,以及音乐节奏同步的LED流水灯效果,创造出多样化的喷水和灯光艺术表现[11]。使用STM32F103C8T6单片机作为控制中心,负责处理音乐信号、控制水泵和电机驱动模块,以及LED流水灯的同步控制。负责提供喷泉所需的水流。通过电机驱动模块接受单片机的控制信号,调整水泵的运行速度,从而控制水柱的高度和强度。接收单片机的PWM(脉冲宽度调制)信号,控制水泵电机的转速,实现对水柱喷射速度和喷射模式的精确控制。捕获外部音乐信号,经过信号处理后将音乐节奏信息转换成可由单片机读取的数据,用于同步控制水柱和LED灯光的变化。将各模块组合起来,进行系统级的功能和性能测试,确保喷泉能够根据音乐节奏准确地调整水柱和灯光效果。
在这里插入图片描述

系统原理图

v在这里插入图片描述

实物图

在这里插入图片描述

部分代码

#include “systick_delay.h”
#include “adc.h”
#include “timer.h”
#include “led.h”

/* Global VariableÈ«¾Ö±äÁ¿ -----------------------------------------------------------/
u16 ADC_Value = 0;//±£´æ»ñÈ¡ADCµÄÖµ
const u16 LED[] = {0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00};//ÓÒתʱIO¿Ú¶ÔÓ¦µÄÖµ£¬¶ÔÓ¦µÄIOµÍµçƽµãÁÁLED£¬¸ßµçƽϨÃðLED
/
-----------------------------------------------------------------------------------------------------------------------*/
/**

  • @brief mainÖ÷º¯Êý
    **/
    int main(void)
    {
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//NVICÖжϷÖ×é2,2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶
    Timer1_Init(10);//Timer1³õʼ»¯¡£µç»úÕýת£¬Õ¼¿Õ±È10%µç»ú¡£
    ADC1_Init();//ADC1³õʼ»¯
    LED_Init();//LED³õʼ»¯

    while(1)
    {
    ADC_Value = ADC1_Value(ADC_Channel_0);//»ñÈ¡ÒôÀÖÒôÁ¿µÄADCת»»ºóµÄÖµ

     if(ADC_Value < 512)//ÒôÀÖÒôÁ¿Öµ
     {
         TIM_SetCompare1(TIM1, 10);//ÉèÖÃCCR1¼Ä´æÆ÷µÄÖµ£¬¸üеç»ú¿ØÖÆÕ¼¿Õ±È
         //LEDµÆ¶ÔÓ¦µÄIO¿ÚÁÁÃð£¬ÁÁ1¸öµÆ
         GPIOB->BSRR = (LED[0] & 0x00FF);//°ÑLED[0]¸ßµçƽ·¢ËͳöÈ¥
         GPIOB->BRR  = ((~LED[0]) & 0x00FF );//°ÑLED[0]µÍµçƽ·¢ËͳöÈ¥
     }
     else if((ADC_Value >= 512) && (ADC_Value < 1024))//ÒôÀÖÒôÁ¿Öµ
     {
         TIM_SetCompare1(TIM1, 20);//ÉèÖÃCCR1¼Ä´æÆ÷µÄÖµ£¬¸üеç»ú¿ØÖÆÕ¼¿Õ±È
         //LEDµÆ¶ÔÓ¦µÄIO¿ÚÁÁÃð£¬ÁÁ2¸öµÆ
         GPIOB->BSRR = (LED[1] & 0x00FF);//°ÑLED[1]¸ßµçƽ·¢ËͳöÈ¥
         GPIOB->BRR  = ((~LED[1]) & 0x00FF );//°ÑLED[1]µÍµçƽ·¢ËͳöÈ¥
     }
     else if((ADC_Value >= 1024) && (ADC_Value < 1536))//ÒôÀÖÒôÁ¿Öµ
     {
         TIM_SetCompare1(TIM1, 30);//ÉèÖÃCCR1¼Ä´æÆ÷µÄÖµ£¬¸üеç»ú¿ØÖÆÕ¼¿Õ±È
         //LEDµÆ¶ÔÓ¦µÄIO¿ÚÁÁÃð£¬ÁÁ3¸öµÆ
         GPIOB->BSRR = (LED[2] & 0x00FF);//°ÑLED[2]¸ßµçƽ·¢ËͳöÈ¥
         GPIOB->BRR  = ((~LED[2]) & 0x00FF );//°ÑLED[2]µÍµçƽ·¢ËͳöÈ¥
     }
     else if((ADC_Value >= 1536) && (ADC_Value < 2048))//ÒôÀÖÒôÁ¿Öµ
     {
         TIM_SetCompare1(TIM1, 40);//ÉèÖÃCCR1¼Ä´æÆ÷µÄÖµ£¬¸üеç»ú¿ØÖÆÕ¼¿Õ±È
         //LEDµÆ¶ÔÓ¦µÄIO¿ÚÁÁÃð£¬ÁÁ4¸öµÆ
         GPIOB->BSRR = (LED[3] & 0x00FF);//°ÑLED[3]¸ßµçƽ·¢ËͳöÈ¥
         GPIOB->BRR  = ((~LED[3]) & 0x00FF );//°ÑLED[3]µÍµçƽ·¢ËͳöÈ¥
     }
     else if((ADC_Value >= 2048) && (ADC_Value < 2560))//ÒôÀÖÒôÁ¿Öµ
     {
         TIM_SetCompare1(TIM1, 50);//ÉèÖÃCCR1¼Ä´æÆ÷µÄÖµ£¬¸üеç»ú¿ØÖÆÕ¼¿Õ±È
         //LEDµÆ¶ÔÓ¦µÄIO¿ÚÁÁÃð£¬ÁÁ5¸öµÆ
         GPIOB->BSRR = (LED[4] & 0x00FF);//°ÑLED[4]¸ßµçƽ·¢ËͳöÈ¥
         GPIOB->BRR  = ((~LED[4]) & 0x00FF );//°ÑLED[4]µÍµçƽ·¢ËͳöÈ¥
     }
     else if((ADC_Value >= 2560) && (ADC_Value < 3072))//ÒôÀÖÒôÁ¿Öµ
     {
         TIM_SetCompare1(TIM1, 65);//ÉèÖÃCCR1¼Ä´æÆ÷µÄÖµ£¬¸üеç»ú¿ØÖÆÕ¼¿Õ±È
         //LEDµÆ¶ÔÓ¦µÄIO¿ÚÁÁÃð£¬ÁÁ6¸öµÆ
         GPIOB->BSRR = (LED[5] & 0x00FF);//°ÑLED[5]¸ßµçƽ·¢ËͳöÈ¥
         GPIOB->BRR  = ((~LED[5]) & 0x00FF );//°ÑLED[5]µÍµçƽ·¢ËͳöÈ¥
     }
     else if((ADC_Value >= 3072) && (ADC_Value < 3584))//ÒôÀÖÒôÁ¿Öµ
     {
         TIM_SetCompare1(TIM1, 80);//ÉèÖÃCCR1¼Ä´æÆ÷µÄÖµ£¬¸üеç»ú¿ØÖÆÕ¼¿Õ±È
         //LEDµÆ¶ÔÓ¦µÄIO¿ÚÁÁÃð£¬ÁÁ7¸öµÆ
         GPIOB->BSRR = (LED[6] & 0x00FF);//°ÑLED[6]¸ßµçƽ·¢ËͳöÈ¥
         GPIOB->BRR  = ((~LED[6]) & 0x00FF );//°ÑLED[6]µÍµçƽ·¢ËͳöÈ¥
     }
     else if((ADC_Value >= 3584) && (ADC_Value < 4096))//ÒôÀÖÒôÁ¿Öµ
     {
         TIM_SetCompare1(TIM1, 99);//ÉèÖÃCCR1¼Ä´æÆ÷µÄÖµ£¬¸üеç»ú¿ØÖÆÕ¼¿Õ±È
         //LEDµÆ¶ÔÓ¦µÄIO¿ÚÁÁÃð£¬ÁÁ8¸öµÆ
         GPIOB->BSRR = (LED[7] & 0x00FF);//°ÑLED[7]¸ßµçƽ·¢ËͳöÈ¥
         GPIOB->BRR  = ((~LED[7]) & 0x00FF );//°ÑLED[7]µÍµçƽ·¢ËͳöÈ¥
     }    
    

    }

资料下载链接

「实物制作资料 分享.rar」,来自夸克网盘分享。
夸克网盘无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
/7b80346jCs😕
链接:https://pan.quark.cn/s/3e81858eda83
提取码:Ceiz

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值