首页-达尔闻    全部    项目分享| DIY手持风扇,夏日清凉自己“造”

项目分享| DIY手持风扇,夏日清凉自己“造”

从头开始,DIY手持便携小风扇,外出做核酸的时候,炫酷拉风,夏日清凉必备单品。
收藏
  • 从头开始,DIY手持便携小风扇,外出做核酸的时候,炫酷拉风,夏日清凉必备单品。

    效果演示&制作过程

    准备 3D 打印机打印风扇机身,并制作了一个定制的 PCB,上面装有驱动电机的所有电子元件。这里使用的是微型有刷直流电机,通常用于微型无人机,虽然声音有点大,但性能超强。

    虽然是自制的,该有的模式不能少。设计两种工作模式模式,可以在单按和双按拨动开关时触发,第一次按以 100% 速度运行,第二次按 50%,第三次按关闭。

    下面就是详细的构建过程,手里面正好有电机的小伙伴,可以跟着一起DIY了。

    ✔ 所需材料

    所有的材料器件都是常见的:

    • 定制PCB
    • 控制器:Attiny13A
    • 锂电池充电芯片:TP4056
    • MOSFET:AO4406A
    • 微型有刷电机
    • 无人机风扇
    • 锂电池 3.7V 1200mAh
    • 3D打印机身

    此外还需要一些阻容器件、LED灯、拨动开关灯等辅助材料。

    ✔ 原理图设计

    上面的原理图由三部分组成,包括用于充电锂电池的 TP4056 IC 部分、作为风扇的核心单片机 Attiny13A 部分,以及 MOSFET电机驱动部分。 

    其中,TP4056 包含两个指示灯,红色和蓝色,红色表示电池电量不足,蓝色表示充满电。此外,充电输入采用的是 Type C 接口。

    Attiny13A 通过一个 10K 电阻与 AO4406 IC 的 Gate 相连,通过 Attiny MCU 向 Gate 提供 PWM 信号来控制电机速度。

    至于如何对Attiny进行代码下载,在这里添加了一个 CON6 Header Pin 和 Attiny 的 ISP Pins,这样就可以连接一个烧录器来烧录引导加载程序并上传代码。

    原理图设计完成之后,就开始PCB制作,这里可以提前设计好3D打印的外壳,根据外壳的尺寸,确定PCB。

    ✔ 3D打印设计

    准备设计一个带柄风扇的 3D 模型,以方便使用。

    3D 模型由两部分组成:TOP 部分容纳电机,MID 部分容纳电路和锂电池。

    TOP 部分固定电机,并有一个通道,电机线通过该通道整齐地封闭,然后有一个 MIDDLE 部分通过螺钉固定 TOP 部分和 NET,中间部分还固定带有锂离子电池的电路。

    在 Fusion360 中,对 PCB 进行建模,然后使用其轮廓测量来创建控制风扇叶片的 PCB 设计。

    ✔ 软件设计

    Attiny13A 是一款 AVR MCU,可以通过 USBASP 等 ISP 编程器进行烧写,或者可以使用 Arduino Uno 或 Nano 板制作简单的 ISP 编程器。

    Attiny13A Core代码在下面链接中下载:https://github.com/MCUdude/MicroCore

    这是使用的主要代码:

     


    const int switchPin = 4; 
    const int FANPin = 0;
    int FANMode = 1; 

    void setup() 
    {
        pinMode(FANPin, OUTPUT);
        pinMode(switchPin, INPUT_PULLUP);
        digitalWrite(FANPin, LOW);
         
    }
    void loop()

        if (digitalRead(switchPin) ==LOW) 
        { 
            FANMode = FANMode + 1;
            if (FANMode == 4)
            {
                FANMode = 1;
            }
        }
        if (FANMode == 1)
        {
            digitalWrite(FANPin, LOW);
            delay(200);
        }
        else if (FANMode == 2)
        {
            digitalWrite(FANPin, HIGH);
            delay(200);
        }
        else if (FANMode == 3)
        {
            analogWrite(FANPin, 50);
            delay(200);        
        }
        //delay(200); // see text
    }

    过程是不是超级简单,但是你没想到呢?


    原文链接:https://www.hackster.io/Arnov_Sharma_makes/diy-handheld-fan-c14901

    项目作者:Arnov Sharma

Control Render Error!ControlType:productSlideBind,StyleName:Style1,ColorName:Item0,Message:InitError, ControlType:productSlideBind Error:未将对象引用设置到对象的实例。