news 2026/9/3 5:50:50

基于STM32与Proteus的鸡蛋分类分装系统仿真设计与实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于STM32与Proteus的鸡蛋分类分装系统仿真设计与实现

简介:本资源是一套基于STM32的鸡蛋重量分类与自动分装系统仿真方案,面向嵌入式初学者、课程设计学生及自动化控制实践者,解决农产品分级分装中的典型机电协同控制问题。压缩包共286个文件,总计23.22MB,涵盖Keil工程源码(c/h/o/d等核心源文件)、Proteus 8.15仿真工程(pdsprj)、编译输出文件(hex/axf/map)及配套仿真视频(wmv),其中C语言源码实现HX711称重采集、双传送带逻辑调度、三舵机机械臂动作时序与双电机推箱控制,Proteus模型完整复现0LED显示、红外到位检测、继电器驱动及按键交互流程。已有59人学习下载,资源附带可直接运行的仿真视频,直观展示重量识别、等级判定、数量累加、满箱推送等全流程动作,代码结构清晰、模块划分合理,便于理解STM32外设驱动与多任务协同逻辑。

1. 项目缘起:从“捡鸡蛋”到“分鸡蛋”的自动化构想

几年前,我参与过一个农业自动化的小项目,其中有一项任务就是处理鸡蛋。当时看着工人手动将大小不一、颜色各异的鸡蛋分拣到不同篮子里,效率低不说,还容易因为磕碰造成损耗。那时我就想,能不能用我们熟悉的单片机做个简单的分类装置?这个想法一直埋在心里。后来,随着对STM32和Proteus仿真工具的深入使用,我发现完全可以在电脑上先把这个想法“跑通”,验证核心逻辑的可行性,再考虑实物制作。这就是今天要和大家分享的这个“基于STM32的鸡蛋分类和分装仿真”项目的由来。

它本质上是一个机电一体化系统的虚拟原型验证。我们通过在Proteus 8.15这个强大的电子设计自动化软件里,搭建一个包含STM32微控制器、传感器、执行机构(电机、舵机)和指示电路的完整系统模型,来模拟现实中的鸡蛋检测、判断和分拣过程。最终,我们会得到一个可以交互运行的仿真电路,并能录制一段演示视频,直观地展示整个分类分装流程。这对于学生做课程设计、工程师验证算法逻辑、或者爱好者学习STM32与传感器联合控制来说,都是一个非常有趣且实用的练手项目。

2. 仿真系统核心架构与元件选型解析

在动手画原理图之前,我们必须先想清楚整个系统需要哪些部件,以及它们之间如何协同工作。一个典型的鸡蛋分类分装系统,可以抽象为“感知-决策-执行”三个环节。

感知层的核心是传感器。鸡蛋分类的依据通常有重量、尺寸(通过视觉或机械测量)、颜色甚至表面瑕疵。在仿真环境中,我们优先考虑易于模拟和实现的维度。重量测量可以通过压力传感器或称重传感器模拟,但在Proteus中直接模拟复杂的力学信号比较麻烦。一个更取巧且有效的方法是使用红外对管或光电传感器来模拟尺寸检测。我们可以假设鸡蛋在传送带上通过一个检测门,大鸡蛋会遮挡更长时间或完全遮挡两对传感器,而小鸡蛋可能只遮挡一对或时间较短。在Proteus中,我们可以用LDR(光敏电阻)配合LED,或者直接用红外发射-接收对管来模拟,通过STM32的ADC(模数转换器)读取光照变化产生的电压值,从而判断“遮挡”状态。为了增加仿真趣味性和逻辑复杂性,我们还可以加入一个颜色传感器模块(如TCS3200)的简化模型,通过模拟I2C或自定义IO口读数,来区分红皮蛋和白皮蛋。

决策层毫无疑问是我们的STM32微控制器。我选择的是STM32F103C8T6,也就是常说的“蓝屏核心板”主控。它资源适中(72MHz主频,64KB Flash,20KB RAM),拥有丰富的定时器、ADC、通信接口,完全足以处理多路传感器输入和复杂的控制逻辑。它的仿真模型在Proteus 8.15中也非常成熟稳定。决策逻辑就是一段嵌入式C代码:持续轮询或中断触发读取传感器数据,根据预设的阈值(比如ADC值大于某数表示“大鸡蛋”,I2C读取的RGB比例判断颜色)做出分类决策,然后触发相应的执行机构。

执行层负责将决策转化为动作。这里需要两个部分:

  1. 传送带驱动:用一个直流电机模拟,通过STM32的PWM(脉冲宽度调制)输出控制一个电机驱动芯片(如L298N),来调节传送带的启停和速度。在仿真中,我们可以用Proteus的直流电机模型,并用一个滑动变阻器或虚拟仪器来直观显示PWM占空比与速度的关系。
  2. 分拣臂驱动:这是分类动作的关键。通常使用舵机(Servo Motor)来实现。STM32通过一个普通IO口输出PWM信号(周期20ms,脉宽0.5ms-2.5ms对应0-180度角度),控制舵机转动到特定角度,从而将鸡蛋推入或拨入对应的收集槽。Proteus中有现成的舵机模型,响应非常直观。

此外,还需要人机交互界面。我们可以用几个LED灯来指示系统状态(如电源、运行、故障),用LCD1602液晶屏来实时显示当前检测到的鸡蛋类型和分类计数。最后,用按键来模拟启动、停止、复位等操作。

整个系统的数据流是这样的:上电初始化 -> 等待启动按键 -> 传送带电机以低速运行 -> 传感器检测到鸡蛋 -> STM32读取并处理传感器数据 -> 判断鸡蛋类别(如“大红蛋”、“小白蛋”) -> 控制对应通道的舵机动作,将鸡蛋推入指定区域 -> LCD更新计数 -> 循环。所有这一切,都将在Proteus的蓝色图纸上实时上演。

3. Proteus 8.15仿真环境搭建与电路设计实操

有了架构,我们就可以在Proteus 8.15中“搭积木”了。首先确保你的Proteus软件已经安装并破解成功,能够正常使用STM32和各类元件的仿真模型。

第一步:创建新工程与选取元件。新建一个工程,命名为“Egg_Sorter_STM32”。在元件库中,我们需要搜索并放置以下关键元件:

  • 微控制器STM32F103C8(注意,在Proteus中可能直接搜STM32F103C8,模型通常包含C8T6)。
  • 传感器模拟
    • 尺寸检测:使用一对LDRLED,或者搜索IRLEDPHOTOTRANSISTOR(光电晶体管)来模拟红外对管。将LED的阳极通过一个220Ω电阻接VCC,阴极接地;LDR或光电晶体管的一端接VCC,另一端通过一个10kΩ的上拉电阻接地,中间节点接STM32的某个ADC通道引脚(如PA0)。当LED光路被“鸡蛋”(后面我们会用其他图形代替)遮挡时,接收端电压会变化。
    • 颜色检测:由于TCS3200的仿真模型可能不常见,我们可以用一个简化的方法:放置一个POT-HG(滑动变阻器)和一个BUTTON(按键)。滑动变阻器模拟颜色传感器输出的不同电压值(接ADC),按键模拟检测触发。或者,更高级一点,可以用一个虚拟的“电压源”由程序控制输出,来模拟传感器信号。
  • 执行机构
    • 电机驱动:搜索L298N,这是一个双H桥电机驱动芯片。将STM32的两个PWM引脚(如PA8, PA9)接L298N的IN1、IN2,控制一个直流电机MOTOR。电机的两端接L298N的OUT1、OUT2。别忘了给L298N的电源引脚(VCC, VS)接上合适的电压(如12V用于电机,5V用于逻辑)。
    • 舵机:搜索SERVO-MOTOR。将其信号线(通常为橙色或白色)接STM32的一个具有定时器输出功能的引脚(如PA6-TIM3_CH1),红色接VCC(5V),棕色接地。
  • 人机交互
    • LCD:搜索LM016L(即1602字符液晶)。按照标准接法,RS, RW, E, D0-D7分别接到STM32的一组GPIO上,我习惯用PB0-PB7作为数据口,PB8-PB10作为控制口。
    • LED和按键:用LEDBUTTON元件即可,注意LED串联限流电阻(330Ω)。
  • 辅助元件RES(电阻)、CAP(电容)用于电源滤波和复位电路。CRYSTAL(晶振)为STM32提供8MHz外部时钟。还需要POWERGROUND符号。

第二步:绘制原理图与网络标号。将所有元件放置到图纸上,开始连线。Proteus支持用网络标号(Net Label)代替实际连线,让图纸更清晰。例如,将STM32的PC13引脚画一小段线,然后放置一个网络标号KEY_START,在按键的一端也放置同样的标号KEY_START,它们就在电气上连接了。 关键连接点:

  1. STM32的PA0(ADC)接LDR与电阻的分压点,用于模拟尺寸检测。
  2. STM32的PA1(ADC)接滑动变阻器的滑臂,用于模拟颜色信号输入。
  3. STM32的PA6(PWM)接舵机信号线。
  4. STM32的PA8,PA9(PWM)接L298N的IN1, IN2。
  5. STM32的一组GPIO(如PB0-PB10)按前述方式接LCD1602。
  6. 为STM32设计最小系统电路:复位电路(10k上拉电阻+0.1uF电容到地,中间接NRST)、8MHz晶振电路(两个20pF负载电容)、Boot0和Boot1引脚通过10k电阻下拉到地(选择从主Flash启动)。
  7. 电源部分:可以放置多个POWER符号,命名为+5V+12V+3.3V。用VOLTAGE REGULATOR(如7805)来模拟从12V到5V的转换。STM32的VDD引脚接+3.3V,这个3.3V可以用AMS1117-3.3从5V转换而来。

第三步:模拟“鸡蛋”与运动场景。这是Proteus仿真的精髓,也是最具挑战和创意的一步。鸡蛋本身不是一个标准电子元件。我们有几种方法模拟:

  • 方法一:使用动画元件。Proteus的“元件模式”下,有一个类别叫“Animation”。里面有一些可以移动的图形,比如POT-HG是滑块,但不太像鸡蛋。我们可以自己绘制一个简单的椭圆形图形,保存为自定义元件,但让它具备物理属性比较困难。
  • 方法二:巧用已有元件。更实用的方法是,我们不仿真鸡蛋的物理移动,而是仿真“传感器被触发”这一事件。例如,我们可以放置一个SWITCH(开关)在传送带路径上,用一个按时间顺序自动闭合/断开的“脚本”或“电压源”来控制这个开关,模拟鸡蛋经过时遮挡传感器的动作。但这不够直观。
  • 方法三(推荐):使用“激励源”和“电压探针”进行信号级仿真。对于教学和逻辑验证,我们可以暂时抛开具体的物理外形,专注于信号流。我们用一个PULSE(脉冲电压源)来模拟“鸡蛋到达”信号。将这个脉冲源的输出同时接到一个模拟尺寸的ADC通道和一个模拟颜色的ADC通道(或通过一个简单的模拟电路进行“调制”,使两个通道的信号特征不同)。在STM32程序中,我们就根据这两个ADC通道在脉冲高电平期间采样到的数值,来判断“鸡蛋”的类型。同时,我们可以用Proteus的“虚拟仪器”中的OSCILLOSCOPE(示波器)来观察这些模拟信号的波形,非常直观。 为了视觉效果,我们可以在传感器位置画一个圆圈代表检测点,用文字标注“检测区”。执行结果用LED的亮灭或LCD屏上的文字变化来体现。仿真视频的录制,就可以聚焦于STM32的代码运行、传感器信号变化、LCD显示更新以及舵机动作的联动过程。

绘制完成后,务必仔细检查所有连线、电源和地网络,确保没有短路或未连接的情况。一个清晰、规范的原理图是成功仿真的基础。

4. STM32固件开发:从传感器数据处理到多任务调度

电路搭好了,接下来就是让STM32“活”起来的代码部分。我们使用Keil MDK或者STM32CubeIDE进行开发。这里我以标准外设库(或HAL库)为例,勾勒出程序的核心框架。

第一步:工程创建与基础配置。使用STM32CubeMX工具可以极大简化初始化过程。新建工程,选择STM32F103C8Tx芯片。在图形化界面中配置:

  1. 时钟树:选择外部高速晶振(HSE),将系统时钟(SYSCLK)配置到最大72MHz。
  2. 引脚分配
    • ADC1的通道0(PA0)和通道1(PA1),配置为单端输入。
    • 定时器TIM3的通道1(PA6),配置为PWM Generation CH1,用于舵机。预分频器和周期值需要计算:系统时钟72MHz,如果我们希望PWM频率为50Hz(周期20ms),则定时器时钟可以分频到1MHz。那么预分频器(PSC)设为71(72MHz/(71+1)=1MHz),自动重载值(ARR)设为19999(1MHz/50Hz -1 = 19999),这样产生的PWM周期就是20ms。脉宽在500-2500之间对应0-180度。
    • 定时器TIM1或TIM4的通道1、2(如PA8, PA9),配置为PWM Generation,用于驱动L298N控制电机速度。频率可以设为10kHz左右,通过改变占空比调节速度。
    • 用于LCD的GPIO(如PB0-PB10)配置为推挽输出模式。
    • 用于按键的引脚(如PC13)配置为上拉输入模式。
    • 用于状态LED的引脚配置为推挽输出。
  3. 生成工程代码,选择MDK-ARM V5或IDE。

第二步:核心模块驱动编写。在生成的工程中,我们主要编写以下几个模块:

  1. ADC数据采集与滤波

    // 获取尺寸和颜色传感器的ADC值(示例) uint16_t Get_Size_ADC_Value(void) { uint32_t sum = 0; for(uint8_t i=0; i<10; i++) { // 采样10次 sum += HAL_ADC_GetValue(&hadc1); // 假设尺寸传感器接在ADC1通道0 HAL_Delay(1); } return (uint16_t)(sum / 10); // 返回平均值,简单滤波 } // 颜色传感器类似,可能接在通道1

    由于是仿真,传感器信号可能很“干净”,但实际中必须加入滤波(如均值、中值、卡尔曼滤波)来抗干扰。

  2. 舵机角度控制函数

    // 设置舵机角度,angle范围0-180 void Servo_Set_Angle(TIM_HandleTypeDef *htim, uint32_t Channel, uint8_t angle) { uint16_t pulse = 500 + angle * (2500-500) / 180; // 将角度映射到500-2500us脉宽 // 根据定时器配置,将脉宽时间转换为比较寄存器值 // 假设定时器时钟1MHz,则1us对应计数1次 __HAL_TIM_SET_COMPARE(htim, Channel, pulse); }
  3. 电机速度控制

    // 设置电机速度,speed范围0-100(百分比) void Motor_Set_Speed(TIM_HandleTypeDef *htim, uint32_t Channel, uint8_t speed) { uint16_t compare = (htim->Instance->ARR + 1) * speed / 100; __HAL_TIM_SET_COMPARE(htim, Channel, compare); // 同时需要设置L298N的另一个控制引脚电平来决定方向 HAL_GPIO_WritePin(MOTOR_IN1_GPIO_Port, MOTOR_IN1_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(MOTOR_IN2_GPIO_Port, MOTOR_IN2_Pin, GPIO_PIN_RESET); // 正转 }
  4. LCD1602显示驱动:编写LCD_Write_StringLCD_Set_Cursor等函数,用于显示“Type: Large Red”, “Count: 12”等信息。

第三步:主程序逻辑与状态机设计。主循环不宜使用阻塞式延时等待,最好采用状态机(State Machine)或基于定时器中断的调度方式。

typedef enum { SYS_IDLE, SYS_RUNNING, SYS_SORTING, SYS_FAULT } SysState_t; SysState_t sysState = SYS_IDLE; EggType_t currentEggType = TYPE_UNKNOWN; int main(void) { // HAL初始化,外设初始化 HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_ADC1_Init(); MX_TIM1_Init(); MX_TIM3_Init(); // ... 其他初始化 LCD_Init(); LCD_Show_String(0, 0, "Egg Sorter Ready"); while (1) { switch(sysState) { case SYS_IDLE: if(HAL_GPIO_ReadPin(KEY_START_GPIO_Port, KEY_START_Pin) == GPIO_PIN_RESET) { HAL_Delay(50); // 消抖 if(HAL_GPIO_ReadPin(KEY_START_GPIO_Port, KEY_START_Pin) == GPIO_PIN_RESET) { sysState = SYS_RUNNING; Motor_Set_Speed(&htim1, TIM_CHANNEL_1, 30); // 启动传送带 LCD_Show_String(0, 1, "Running... "); } } break; case SYS_RUNNING: // 模拟传感器检测:在仿真中,这可能由一个虚拟信号源触发 // 我们可以在一个定时器中断里模拟“鸡蛋到达”事件 // 或者用一个按键模拟传感器触发 if(模拟鸡蛋到达信号) { sysState = SYS_SORTING; Motor_Set_Speed(&htim1, TIM_CHANNEL_1, 0); // 暂停传送带 // 读取传感器数据 uint16_t sizeADC = Get_Size_ADC_Value(); uint16_t colorADC = Get_Color_ADC_Value(); // 根据阈值判断类型 currentEggType = Classify_Egg(sizeADC, colorADC); // 执行分拣 Execute_Sorting(currentEggType); // 更新显示计数 Update_Count_Display(currentEggType); // 短暂延时后恢复传送带 HAL_Delay(300); Motor_Set_Speed(&htim1, TIM_CHANNEL_1, 30); sysState = SYS_RUNNING; } break; case SYS_FAULT: // 处理错误,如电机堵转、传感器异常 Motor_Set_Speed(&htim1, TIM_CHANNEL_1, 0); LCD_Show_String(0, 1, "FAULT! Check Sys "); break; } // 其他后台任务,如按键扫描、显示刷新 Key_Scan(); } }

Classify_Egg函数内部就是一系列的阈值判断。Execute_Sorting函数则根据currentEggType,调用Servo_Set_Angle控制对应的舵机转动到特定位置(比如大蛋左转,小蛋右转;红蛋左转,白蛋右转)。

5. 联合调试、问题排查与仿真视频录制

将编译好的.hex.elf文件加载到Proteus中STM32元件的程序属性里,点击运行,激动人心的时刻就到了。但通常不会一帆风顺。

常见问题一:程序加载后无任何反应。

  • 检查点:首先确认Proteus中STM32的晶振频率设置是否与代码中SystemClock_Config配置的一致(都是8MHz?)。Proteus中双击STM32元件,在“Program File”路径是否正确,Clock Frequency是否设为8MHz或72MHz(取决于你代码中是否使用了PLL倍频)。
  • 检查点:查看复位电路是否正常。在Proteus中,可以右键点击STM32,选择“Goto Schematic Model”,检查其复位引脚(NRST)的接线,应该是通过一个上拉电阻接VDD,一个电容接地。
  • 检查点:最简单的,先点一个LED灯,写一段最简单的闪烁程序测试,确保最基本的IO和时钟是正常的。

常见问题二:ADC采样值不对或不变。

  • 检查点:在Proteus中,用鼠标右键点击ADC输入引脚连接的模拟节点(如LDR和电阻的中间点),选择“Place Voltage Probe”。运行仿真时,这里会显示实时电压值。看看电压是否随你的“鸡蛋”(激励源)变化。
  • 检查点:在代码中,确保ADC已经校准并启动。使用HAL库时,调用HAL_ADC_Start(&hadc1)启动转换,然后调用HAL_ADC_PollForConversion(&hadc1, timeout)等待转换完成,再读取值。
  • 检查点:STM32的ADC参考电压在Proteus中默认是VDD(3.3V)。确保你的模拟信号电压在0-3.3V之间。

常见问题三:舵机不转动或转动角度异常。

  • 检查点:用Proteus的虚拟示波器(OSCILLOSCOPE)连接到舵机的信号线上。观察波形是否为标准的50Hz PWM波(周期20ms),且高电平脉宽是否在0.5ms到2.5ms之间变化。
  • 检查点:检查定时器配置。PWM模式是否正确(通常为PWM模式1),通道极性是否正确(高电平有效)。比较寄存器(CCR)的值是否根据你的角度计算正确。
  • 检查点:舵机模型是否需要额外的电源?确保其VCC引脚接了+5V。

常见问题四:LCD1602不显示或显示乱码。

  • 检查点:这是最常出问题的地方。首先检查接线,尤其是RS、RW、E三个控制线的时序。RW引脚通常接地(只写模式)。在代码中,写入命令或数据后,必须给E引脚一个下降沿脉冲。仔细检查你的LCD_Write函数里的延时,Proteus仿真对时序要求比较严格,延时太短可能导致操作失败。可以适当增加HAL_Delay的微秒级延时。
  • 检查点:初始化序列是否正确?1602有固定的上电初始化流程(复位、功能设置、显示设置等),一个步骤都不能少。

当所有功能调试正常,整个系统可以流畅地模拟“检测-判断-分拣-计数”流程后,就可以录制仿真视频了。Proteus自带录像功能(在“Debug”菜单下选择“Start VSM Video Capture”),可以录制整个设计页面的动态。录制时,建议:

  1. 先给电路图一个全景。
  2. 然后聚焦到STM32和关键传感器、执行器部分。
  3. 运行仿真,用鼠标操作虚拟仪器(如示波器、电压探针)展示关键信号变化。
  4. 特写LCD屏幕上的计数变化和状态提示。
  5. 最后展示舵机动作和LED状态指示的联动。 录制完成后,用视频编辑软件加上简单的文字说明和背景音乐,一个生动的项目演示视频就诞生了。这个视频不仅是成果展示,更是你学习和解决问题过程的最好记录。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 5:48:45

AI估值虚高与杠杆上升:技术团队的泡沫体检与风险应对指南

英国央行行长警告 AI 估值虚高与杠杆上升&#xff0c;可能引发下一场金融危机。这个消息出来之后&#xff0c;很多技术群里都在讨论&#xff1a;AI 泡沫是不是真的要来了&#xff1f;大模型公司估值是不是撑不住&#xff1f;现在入场做应用的团队&#xff0c;还有没有机会&…

作者头像 李华
网站建设 2026/9/3 5:47:57

STM32F405+DRV8301+DRV8313 FOC驱动板设计:从原理图到PCB布局的完整指南

简介&#xff1a;本资源是一套面向电机控制工程师与嵌入式硬件开发者的一体化FOC驱动硬件方案&#xff0c;聚焦于三相无刷直流电机的高性能矢量控制实现。它以STM32F405RGT6为主控&#xff0c;集成TI DRV8301与DRV8313双驱动芯片&#xff0c;兼顾高精度电流采样、高效功率驱动与…

作者头像 李华
网站建设 2026/9/3 5:47:48

安德莉亚模组:九州武库环境下的《潜渊症》武器平衡技术解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 5:47:10

外贸建站公司哪家好?费用、上线周期和长期运营能力说明

外贸建站公司哪家好&#xff1f;费用、上线周期和长期运营能力说明 摘要&#xff1a;外贸建站公司哪家好&#xff0c;不是只看首年报价&#xff0c;而是看费用结构、上线周期、海外访问、多语言维护、询盘承接、谷歌收录和长期运营能力是否匹配企业阶段。对中小企业来说&#x…

作者头像 李华
网站建设 2026/9/3 5:46:53

ROS2集成海康工业相机:从MVS SDK到高性能图像采集节点开发指南

简介&#xff1a;本资源是一份面向机器人开发初学者与ROS2实践者的工业相机集成技术指南&#xff0c;聚焦海康HIKROBOT系列相机在ROS2环境下的驱动开发与图像数据闭环应用。它系统解决了硬件接入难、参数配置不持久、图像流发布不稳定等典型工程问题&#xff0c;适用于智能视觉…

作者头像 李华
网站建设 2026/9/3 5:46:44

555定时器单稳态模式构建可调倒计时模块:从原理到工程实践

1. 先搞清楚这个“555 Timer倒计时”到底要解决什么问题 看到“555 Timer”和“倒计时”这两个词放在一起&#xff0c;很多人的第一反应可能是&#xff1a;这不就是个用经典555芯片搭个定时电路吗&#xff1f;网上教程一大堆。但如果你真的动手去搭&#xff0c;或者想把它变成一…

作者头像 李华