嘉立创产业服务站群
必应搜索
发作品签到
专业版

电子烟花

工程标签

2.0k
0
0
2

简介

由于各地燃放烟花禁令导致up所在地区也中招了,但是烟花作为中华民族千年的智慧结晶传统手艺不能丢,所以我做了这款电子烟花,采用能买到的零件组装安全无毒,而且由于性质特殊,发射出的烟花声音小只有光效

简介:由于各地燃放烟花禁令导致up所在地区也中招了,但是烟花作为中华民族千年的智慧结晶传统手艺不能丢,所以我做了这款电子烟花,采用能买到的零件组装安全无毒,而且由于性质特殊,发射出的烟花声音小只有光效

开源协议

CC BY-SA 4.0

创建时间:2024-01-17 09:33:02更新时间:2024-01-30 02:54:42

描述

题目要求

由于各地燃放烟花禁令导致up所在地区也中招了,但是烟花作为中华民族千年的智慧结晶传统手艺不能丢,所以我做了这款电子烟花,采用能买到的零件组装安全无毒,而且由于性质特殊,发射出的烟花声音小只有光效,家里有宝宝的小伙伴也不会担心吓到宝宝,而且可以进行重复使用,不会产生环境污染,最重要的,没有禁止燃放地区的老铁也可以做一个用做燃放窜天猴一放一个不吱声

题目分析

为了实现远程燃放使用433数传模块进行通讯同时使用这个淘宝店家的遥控进行控制

搭配天线可以做到100米点燃

采用硝化棉纸也就是魔术火纸进行燃放发射,无毒也安全就算在手上点燃也不会出现烫伤情况可以说是十分安全了

 

点燃方式为电子点烟器发热丝点燃方便成本低

原理图设计说明

原理方面也比较简单通过控制ao3400这个n沟道场效应管控制u62 发热丝开启点燃火纸进行发射

因为采用的是合宙001处理器导致引脚数量有限无法大量同时控制不同的ao3400所以我想起当初自学电子是学习模拟电路的痛苦回忆

也就是这个74hc238是译码器是把三个二进制输入信号转换成八个输出信号,工作原理是将三个二进制输入信号的不同组合映射到八个不同的输出信号上,利用这个芯片即可通过5个引脚控制16个引脚进行输出

PCB设计说明

没什么好说的直接打样即可

软件说明

部分代码展示

void key_press_handle(void)
{
    if(1 == KEY_1)
    {
        KEY1_FLAG = 1;

    }
    if(1 == KEY_2)
    {

        KEY2_FLAG = 1;
    }

    if(1 == KEY_3)
    {

        KEY3_FLAG = 1;
    }
    if(1 == KEY_4)
    {

        KEY4_FLAG = 1;
    }
}
void key_handle(void)
{
    if(KEY1_FLAG == 1)
    {
        if(KEY_1 == 1)
        {
            if(key_hold_ms <= 1000)
            {
                key_hold_ms ++;
            }
            else if(key_hold_ms > 1000)
            {
                key_hold_ms = 0;
                KEY1_LONG_FLAG = 1;
                KEY1_FLAG = 0;
            }
        }
        else
        {
            if((key_hold_ms <= 1000) && (key_hold_ms > 100))
            {
                key_hold_ms = 0;
                KEY1_SHORT_FLAG = 1;
                KEY1_FLAG = 0;
            }
        }
    }

    if(KEY2_FLAG == 1)
    {
        if(KEY_2 == 1)
        {
            if(key_hold_ms <= 1000)
            {
                key_hold_ms ++;
            }
            else if(key_hold_ms > 1000)
            {
                key_hold_ms = 0;
                KEY2_LONG_FLAG = 1;
                KEY2_FLAG = 0;
            }
        }
        else
        {
            if((key_hold_ms <= 1000) && (key_hold_ms > 100))
            {
                key_hold_ms = 0;
                KEY2_SHORT_FLAG = 1;
                KEY2_FLAG = 0;
            }
        }
    }

    if(KEY3_FLAG == 1)
    {
        if(KEY_3 == 1)
        {
            if(key_hold_ms <= 1000)
            {
                key_hold_ms ++;
            }
            else if(key_hold_ms > 1000)
            {
                key_hold_ms = 0;
                KEY3_LONG_FLAG = 1;
                KEY3_FLAG = 0;
            }
        }
        else
        {
            if((key_hold_ms <= 1000) && (key_hold_ms > 100))
            {
                key_hold_ms = 0;
                KEY3_SHORT_FLAG = 1;
                KEY3_FLAG = 0;
            }
        }
    }

    if(KEY4_FLAG == 1)
    {
        if(KEY_4 == 1)
        {
            if(key_hold_ms <= 1000)
            {
                key_hold_ms ++;
            }
            else if(key_hold_ms > 1000)
            {
                //key_hold_ms = 0;
                KEY4_LONG_FLAG = 1;
                KEY4_FLAG = 0;
            }
        }
        else
        {
            if((key_hold_ms <= 1000))
            {
                key_hold_ms = 0;
                KEY4_SHORT_FLAG = 1;
                KEY4_FLAG = 0;
            }
        }
    }
        else
        {
            if(KEY_4 == 1)
            {
                key_hold_ms = 0;
            }
        }
}
extern uint8_t Fire_launch_status;//发射器状态   0  锁定模式   1 解锁模式   2 待机模式(蜂鸣器闪烁)  3 发射模式

uint8_t  Press_time = 0;
//KEY1  锁定     KEY2  解锁     KEY3  待机    KEY4   发射、暂停
void Func_handle(void)
{
    if(KEY1_SHORT_FLAG == 1)//短按锁定键锁定设备  此时任何操作都无效
    {
        Fire_launch_status = 0;
        Beep_flag = 5;
        KEY1_SHORT_FLAG = 0;
    }

    if(KEY1_LONG_FLAG == 1)
    {

        KEY1_LONG_FLAG = 0;
    }

    if(KEY2_SHORT_FLAG == 1)
    {
        // 处理 KEY2 短按事件
        Beep_flag = 1;
        KEY2_SHORT_FLAG = 0;
    }

    if(KEY2_LONG_FLAG == 1)
    {
        // 处理 KEY2 长按事件
        Press_time ++;
        if(Press_time == 5)//长按5秒之后
        {
            if(Fire_launch_status == 0)
            {
                Fire_launch_status = 1;//设备解锁
                //Beep_flag = 3;
            }
            Press_time = 0;
        }
        KEY2_LONG_FLAG = 0;
    }


    if(KEY3_SHORT_FLAG == 1)
    {
        // 处理 KEY3 短按事件
        if(Fire_launch_status == 1)
        {
            Fire_launch_status = 2;//设备待机  此时 蜂鸣器急促鸣叫
        }
        Beep_flag = 1;
        KEY3_SHORT_FLAG = 0;
    }

    if(KEY3_LONG_FLAG == 1)
    {
        // 处理 KEY3 长按事件
        KEY3_LONG_FLAG = 0;
    }

    if(KEY4_SHORT_FLAG == 1)
    {
        // 处理 KEY4 短按事件
//        if(Fire_launch_status == 3)
//        {
//            Fire_launch_status = 2;//暂停发射 设备待机。
//        }
        Beep_flag = 1;
        KEY4_SHORT_FLAG = 0;
    }

    if(KEY4_LONG_FLAG == 1)
    {
        // 处理 KEY4 长按事件
        if(Fire_launch_status == 2)
        {
            Fire_launch_status = 3;//进入发射状态
        }
        KEY4_LONG_FLAG = 0;
    }
}
uint8_t control_time = 0;
void fire_handle(void)
{

    switch(Fire_launch_status)
    {
    case 0 ://锁定模式
        Control_74HC238(0);//关机模式
        LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_4);
        control_time = 0;
        control_counter = 0;
        break;

    case 1:
        control_counter ++;
        if(control_counter == 1000) //1s
        {
            control_counter = 0;
        }
        if(control_counter % 250 == 0)
        {
            Beep_flag = 1;
            LL_GPIO_TogglePin(GPIOA, LL_GPIO_PIN_4);
        }
        break;
    case 2:
        control_counter ++;
        if(control_counter == 1000) //1s
        {
            control_counter = 0;
        }
        if(control_counter % 40 == 0)
        {
            Beep_flag = 1;
            LL_GPIO_TogglePin(GPIOA, LL_GPIO_PIN_4);
        }
        Control_74HC238(0);//关机模式
        break;
    case 3:

        control_counter ++;
        if(control_counter == 2000) //2s
        {
            control_counter = 0;
            LL_GPIO_TogglePin(GPIOA, LL_GPIO_PIN_4);
            control_time++;
        }
        if(control_time > 16)//设置为16   解锁所有通道
        {
            control_time = 0;
            Fire_launch_status = 2;//发射完毕   进入等待发射状态
                      Beep_flag = 5;
        }
        Control_74HC238(control_time);
        break;
    }
}

 


实物展示说明

注意事项

操作过程中注意防火而且也要注意不要被加热丝烫到

演示视频

【玩电子烟花,过赛博新年-哔哩哔哩】 https://b23.tv/VjuAqwB

 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
赛博烟花开源文件.7z
39
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航