资讯详情

电赛常用模块清单:从电源到算法的赛前准备与避坑指南

📅 2026/11/2 2:49:18 | 华诺云谱 👁 阅读
电赛常用模块清单:从电源到算法的赛前准备与避坑指南
简介面向电子设计竞赛参赛者与备赛学生的常用模块资料包系统梳理控制类赛题所需的硬件模块与软件程序清单帮助读者在有限时间内搭建起完整的知识框架与器材准备思路。包内共1个doc文档约38KB以文字条目形式归纳电源、最小系统、键盘、液晶显示、AD/DA、传感器、集成运放、可编程逻辑、电机与继电器等模块的选型要点并配套LCD显示、键盘输入、AD数据处理、电机控制、PWM输出、延时计时及寻迹避障等常用程序说明。已有3080人学习下载内容兼顾硬件设计与软件实现对初次参赛或需要查漏补缺的选手具有较强参考价值可作为赛前器材清单与程序准备的对照手册。1. 电赛常用模块清单从电源到算法的赛前准备逻辑电赛现场最怕的不是题目难而是题目发下来发现少一个 3.3V 稳压块或者寻迹光耦的返回信号是模拟量、手头却没有比较器。我带过几轮校赛队伍翻车最多的从来不是算法写不出来而是模块没备齐、接口对不上。这套方案要解决的就是赛前模块化准备的问题把电源、最小系统、传感器、驱动、信号调理、显示键盘这些硬件模块连同显示、AD 采集、电机控制、PWM、计时、寻迹避障这些常用程序整理成一套可以按图索骥的清单和代码骨架。适合正在准备电赛的学生队伍也适合需要快速搭控制类原型的从业者参考。2. 硬件模块规划按电压域和信号链划分的备件体系硬件准备的核心不是把芯片买齐而是按「电压域」和「信号链」两条线组织。电压域决定供电怎么分配信号链决定传感器出来之后经过什么调理才进 MCU。这两条线理清楚现场改板子的时间能省一大半。2.1 电源模块多电压域与负压的分配策略电源是第一个要定死的东西。12V、9V、5V、3.3V 是控制类题目里出现频率最高的四档通常的做法是准备一块 12V 输入的底板用开关电源芯片降到 5V再用线性稳压如 AMS1117-3.3降到 3.3V。9V 这一档容易被忽略但不少运放和继电器线圈按 9V 设计建议单独留一路可调或固定 9V 输出。电池供电时要额外考虑升压。比如用两节 18650 串联得到 7.4V驱动电机够用但给 12V 继电器或某些传感器就不够这时需要一颗升压模块。负压是血泪经验最多的地方LM337 是可调负压线性稳压器配合正压的 LM317 使用能给需要双电源的运放如 TL082提供 ±12V 或 ±5V。负压电路要注意散热输入输出压差大时线性稳压器发热明显通常加一小片铝散热片。电压档典型来源主要负载注意事项12V适配器/升压电机驱动、继电器大电流走粗线加续流二极管9V降压/电池运放、部分传感器与 5V 分开布线减少干扰5V开关降压最小系统、LCD、逻辑芯片留至少 1A 余量3.3V线性稳压MCU 核心、数字传感器输入输出压差不宜过大-5V/-12VLM337双电源运放注意散热与滤波电容极性2.2 最小系统与 I/O 扩展预留 CPLD 的时机最小系统是控制核心51、MSP430、C8051 都是常见选择条件允许可以上 ARM。选型上我一般建议队伍里至少有一块自己焊过、跑通过的最小系统板而不是现场才第一次烧程序。I/O 口不够是控制类题目的高频问题电机驱动占 4 到 6 个口LCD 占 6 到 8 个键盘再占几个很快就见底。题目允许的前提下加一片 CPLD 做 I/O 扩展和简单逻辑是划算的比如用 CPLD 分担编码器计数、多路 PWM 生成这类确定性任务MCU 只负责决策。不允许加可编程逻辑时退而求其次用 74 系列移位寄存器或 I/O 扩展芯片。这里的关键判断是先数清楚题目需要多少路输入输出再决定要不要扩展别等焊到一半才发现口不够。2.3 驱动与执行机构L298、L297 与继电器电路电机驱动里 L298 是必备件双 H 桥能驱动两个直流电机或一个步进电机。步进电机如果要做细分和稳速可以加 L297 做脉冲分配MCU 只给方向和脉冲减轻软件负担。继电器电路用 ULN2803 或 ULN2003 驱动这两颗达林顿阵列能同时驱动多路继电器内部带续流二极管比三极管加二极管的分立方案省事。执行机构还包括车模、减速电机、步进电机、测速电机以及联轴器这类机械件。做电子的容易忽略机械但小车类题目里联轴器松动、轮子打滑造成的误差往往比算法误差还大。我的习惯是赛前把车模装好跑一遍直线确认机械部分不拖后腿。2.4 传感器阵列寻迹、霍尔、光电与超声波的组合传感器按物理量分光、磁、声、力、角度。寻迹用 RPR220 光耦反射式输出随黑白路面变化注意它输出的是模拟量进 MCU 前要么用比较器整形要么走 AD 采样后软件判阈值。霍尔传感器 A04E 配磁钢做转速或位置检测输出开关量接线简单。光电槽加码盘做测速避障用光电开关趋光用光敏电阻或光敏二极管。接近开关探测金属角度传感器精度高但价格贵超声波测距适合中远距离避障。这些传感器的共同问题是输出形式不统一有的是开关量有的是模拟电压有的需要上拉电阻。赛前把每种传感器的输出形式和接口电平记在一张表上现场接线就不会乱。2.5 信号调理比较器与运放的固定搭配信号调理是连接传感器和 MCU 的桥梁。光耦输出如果不是干净的开关量就要加比较器整形LM339、LM393 是常备件四路或双路比较器加个参考电压就能把模拟信号变成数字沿。信号需要放大时用运放TL082、TL084 是通用选择前者双运放后者四运放带宽和压摆率够一般传感器用。比较器和运放的搭配逻辑是传感器出来先看幅度太小就放大波形不陡就过比较器。参考电压可以用电位器分压产生方便现场调阈值。这部分电路建议做成独立小模块用排针连接换传感器时只换前端不动主控板。3. 软件模块设计从显示键盘到电机控制的代码骨架软件部分的价值在于「拿来就能改」。赛前把每个模块写成带注释的函数现场只改参数和引脚定义比从零写快得多。下面几段代码是骨架级示例重点看结构和参数含义不追求直接编译通过。3.1 显示与键盘人机交互的最小闭环LCD 显示和键盘输入是任何控制类作品的门面。LCD 建议封装成lcd_write_string(row, col, str)和lcd_write_num(row, col, value)两个函数内部处理光标定位和数字转字符。键盘用行列扫描带回消抖状态机比延时消抖更可靠。/* 4x4 矩阵键盘扫描返回键值 0-15无按键返回 0xFF */ #define KEY_PORT P1 unsigned char key_scan(void) { unsigned char row, col, key 0xFF; for (row 0; row 4; row) { KEY_PORT ~(1 row); /* 逐行拉低 */ delay_us(10); /* 等待电平稳定 */ col KEY_PORT 0x0F; /* 读列线 */ if (col ! 0x0F) { /* 有列被拉低说明有键按下 */ delay_ms(10); /* 回消抖 */ if ((KEY_PORT 0x0F) ! 0x0F) { key row * 4 (col 0x03); while ((KEY_PORT 0x0F) ! 0x0F); /* 等待释放 */ } } } KEY_PORT 0xFF; return key; }这段代码的关键参数是delay_us(10)和delay_ms(10)前者给行线电平建立时间后者做软件消抖。KEY_PORT的低四位接列、高四位接行实际接线不同时改宏定义即可。等待释放的循环是防止一次按键被识别成多次现场如果发现按键「连发」先查这里。3.2 AD 采集与数据处理滑动平均与中值滤波AD 采集后直接用的数据往往抖动大尤其是光耦寻迹和电位器角度这类信号。常用的处理是滑动平均加中值滤波滑动平均压高频噪声中值滤波去脉冲干扰。下面是一个 8 点滑动平均的实现。/* 8 点滑动平均滤波输入新采样值返回滤波结果 */ #define FILTER_N 8 static unsigned int buf[FILTER_N]; static unsigned char idx 0; static unsigned long sum 0; unsigned int filter_avg(unsigned int new_val) { sum - buf[idx]; /* 减去最旧值 */ buf[idx] new_val; /* 存入新值 */ sum new_val; /* 累加新值 */ idx (idx 1) % FILTER_N; /* 环形索引 */ return (unsigned int)(sum / FILTER_N); }FILTER_N越大越平滑但响应越慢寻迹这种需要快速响应的场景取 4 到 8 比较合适温度这类慢变量可以取 16。sum用unsigned long防止累加溢出。如果信号里有偶发尖峰再套一层三点中值取连续三个采样排序后取中间值能有效去掉单点跳变。3.3 电机控制与 PWM让减速电机走出步进感减速电机要做到「一步步走」光调速不够需要位置闭环或至少是定距控制。常见做法是用编码器或霍尔测速配合 PWM 调速再用一个简单的比例控制让每次走固定脉冲数。PWM 的频率和分辨率要匹配驱动芯片L298 开关频率一般取 1 到 20kHz太低有啸叫太高开关损耗大。/* 定时器产生 PWM频率 时钟 / (分频 * 周期) */ void pwm_init(unsigned int period, unsigned int duty) { TCCR1A 0xA0; /* 快速 PWMOC1A 非反相 */ TCCR1B 0x11; /* 分频 18 位快速 PWM 模式 */ ICR1 period; /* 周期决定频率 */ OCR1A duty; /* 占空比决定转速 */ } /* 步进电机细分调速改变脉冲间隔即可改变速度 */ void step_run(unsigned int steps, unsigned int interval_us) { while (steps--) { STEP_PIN ^ 1; /* 翻转脉冲脚产生一个步进沿 */ delay_us(interval_us); /* 间隔越短转速越高 */ } }period和duty的关系是占空比等于duty/period改period调频率、改duty调转速。步进电机的interval_us是脉冲间隔配合 L297 的细分设置间隔越小转速越高但太小会失步通常从 500us 往下试找到不失步的最小值。这里没有写闭环实际比赛里如果要求定距建议加编码器反馈做位置修正。3.4 计时与算法秒表、测速、寻迹避障的实现要点计时分两种软件延时和硬件定时器。软件延时用于短时间精确等待比如上面键盘和步进的微秒级延时硬件定时器用于秒表、测速这类需要长时间稳定计时的场景。测速用定时器捕获编码器脉冲间隔换算成转速测距用超声波发收时间差乘声速寻迹和避障本质是传感器状态到动作的映射表。寻迹算法的骨架是读左右光耦状态根据偏差调整左右轮 PWM。避障是读前方光电开关或超声波距离小于阈值就转向。这些算法不复杂难在参数整定赛前用固定场地跑几圈把阈值和转向力度记下来现场微调即可。4. 避坑与排查赛前联调最容易翻车的五个点4.1 电源一上电就复位现象是 MCU 跑着跑着复位或者 LCD 花屏。原因多半是电机启动瞬间拉低电源或者地线走线太细导致压降。解决方法是电机电源和逻辑电源分开走线在电机端加续流二极管和大电容逻辑端加 0.1uF 去耦电容必要时用独立稳压给 MCU 供电。4.2 光耦输出不是开关量现象是寻迹光耦接上 MCU 后读数乱跳。原因是 RPR220 这类反射式光耦输出的是随反射强度变化的模拟电压不是干净的高低电平。解决方法是加 LM393 比较器整形参考电压用电位器调或者直接走 AD 采样后软件判阈值。4.3 步进电机失步或啸叫现象是步进电机走不准、有异响。原因通常是脉冲频率超过电机响应能力或者细分设置与驱动器不匹配。解决方法是降低脉冲频率、增大细分、确认 L297 的时钟和方向时序满足建立时间要求同时检查电源电流是否足够。4.4 AD 采样值漂移现象是同一输入下 AD 读数缓慢变化。原因是参考电压不稳或采样通道串扰。解决方法是给 AD 参考脚加滤波电容采样前丢弃前几次读数多通道切换后加短延时再采样必要时用外部基准芯片。4.5 键盘误触发现象是没按键却读到键值。原因是行列线悬空或上拉不足。解决方法是给行列线加上拉电阻扫描时未选中的行保持高电平软件里加连续两次读数一致的确认逻辑。5. 验收与答辩用一张检查表把方案讲清楚验收和答辩考的不是你用了多少芯片而是你能不能证明这套模块体系是可控的。我的做法是赛前做一张「模块验收表」每个模块列出三项供电电压、接口电平、验证方法。比如电源模块写「12V 输入5V/3.3V 输出空载和带载各测一次纹波」寻迹模块写「5V 供电输出经 LM393 整形黑线低电平、白线高电平用万用表逐路验证」。答辩时按这张表讲评委问哪个模块都能立刻答出参数和验证结果。验收项检查内容通过标准电源各档电压空载/带载偏差小于 5%纹波可接受最小系统程序下载与运行连续运行 30 分钟不复位传感器每路输出电平状态变化时电平正确翻转电机驱动正反转与调速无失步PWM 线性可调显示键盘按键与显示无连发、无乱码算法寻迹/避障跑场固定场地连续通过答辩陈述建议按「需求—模块—验证」三段走先说题目要求哪些功能再说用哪些模块实现最后说每个模块怎么验证的。不要一上来讲算法细节评委更关心你的系统是否稳定、边界条件是否考虑过。被问到没做的部分如实说「这部分赛前评估过因为 XX 原因没有采用替代方案是 XX」比硬编一个答案可信。从那以后我每次带队伍赛前一周都强制走一遍这张验收表哪怕模块看起来已经跑通也要重新测一遍电压和电平。翻车往往就发生在「以为没问题」的那一路。希望这套清单和代码骨架能帮到你把赛前的精力花在真正需要调试的地方。本文还有配套的精品资源点击获取
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑