☰
电赛常用模块入门指南:从零搭建能跑的小车
2026/11/2 16:09:24 网站建设 项目流程

简介:面向电子设计竞赛参赛者与备赛学生的常用模块知识整理文档,围绕控制类赛题梳理硬件选型与软件编程两条主线,帮助读者在有限时间内搭建起完整的知识框架。文档内容覆盖电源模块(12V、9V、5V、3.3V 及 LM337 负压方案)、最小系统、键盘与液晶显示、AD/DA 转换、寻迹光耦 RPR220、霍尔传感器 A04E、光电开关、集成运放与比较器 LM339/LM393、可编程逻辑、步进与直流电机驱动 L298/L297、继电器及信号调理等硬件要点,并配套 LCD 显示、键盘输入、AD 数据处理、电机控制、PWM 输出、延时计时、寻迹避障测速测距等常用程序思路。资源包共 1 个 doc 文件,约 38KB,以文字条目形式归纳模块清单与程序要点,便于打印或对照备料。已有 3080 人学习下载,适合作为赛前模块准备与方案自查的参考清单。

1. 电赛常用模块入门:从一堆“看不懂的板子”到能跑起来的小车

第一次打开电赛常用模块的资料,很多人的反应是:电源、最小系统、传感器、运放、电机驱动、AD/DA……名字都认识,连在一起就不知道从哪下手。其实你可以把它想成一个“电子积木箱”:电源是插座,最小系统是大脑,传感器是眼睛耳朵,电机是腿,显示和键盘是嘴巴和手。电赛入门真正要做的,不是把每个模块的原理啃透,而是先认清每块积木管什么、怎么把它们接成一个能动的整体。这份资料适合刚接触电赛、零基础但愿意动手的新手,它把硬件模块和常用程序按“备什么、写什么”列清楚,让你少走“买错件、接错线、程序跑不通”的弯路。下面按学习路径一步步来,先讲清概念,再给第一个能跑的例子。

2. 先搞懂硬件清单:电赛常用模块到底备哪些

2.1 电源和最小系统:先让板子“活过来”

零基础入门电赛,第一件事不是写代码,而是让手里的板子有电、能跑。资料里把电源模块放在第一位,常用电压是 12V、9V、5V、3.3V。为什么这么多档?因为电机驱动往往要 12V,传感器和单片机常用 5V 或 3.3V,不同芯片吃不同的“饭”。如果你用电池供电,还要考虑升压块,把电池电压抬到需要的档位;如果遇到必须负电压供电的芯片,就得用 LM337 这类器件做出负压。新手最容易忽略的是:电源不是“插上就行”,而是要先想清楚“我这套系统里有哪些电压需求”,再决定买哪几种模块。

最小系统就是单片机能工作的最小电路,资料里特别提到“以备 I/O 口不够的特殊情况”。入门阶段建议先准备一块常见的最小系统板,把下载口、复位、供电搞清楚。我第一次学的时候,光是把程序下载进去就折腾了半天,后来才发现是供电跳线没插对。所以第一步不是追求复杂,而是确认:板子上电后指示灯亮不亮、下载器能不能识别、一个最简单的闪灯程序能不能跑。这三件事过了,才算真正“活过来”。

2.2 输入输出模块:键盘、显示和反馈

板子活了之后,新手最需要的是“看得见、按得动”。资料里把键盘、液晶显示、数码管、LED、蜂鸣器都归到输入输出这一类。键盘负责输入,液晶和数码管负责显示数字和字符,LED 和蜂鸣器负责给反馈。为什么用了 LED 还要数码管?因为 LED 只能告诉你“亮没亮”,数码管能告诉你“现在是几”;蜂鸣器也算显示模块,是因为它用声音给你反馈,比如平衡点稳定了让它叫一声,你就知道程序走到哪一步了。

入门建议先做一个“按键控制 LED”的小实验,再升级到“按键在数码管上显示数字”。不要一上来就驱动液晶屏,液晶的时序和初始化对新手来说容易翻车。先把 GPIO 的输入输出搞明白:按键按下时引脚电平怎么变、LED 怎么点亮、数码管怎么动态扫描。这些看起来简单,但它们是后面所有复杂功能的地基。资料里提到的 LCD 显示程序和键盘输入程序,本质上就是把这些基础操作封装成可复用的函数,等你把单个模块调通,再去套用这些程序就顺了。

2.3 传感器和信号处理:让系统“感知”外界

传感器是电赛里花样最多的部分。资料列了寻迹光耦(RPR220)、霍尔传感器(A04E)和磁钢、光电槽和码盘、避障光电开关、趋光光敏电阻或光敏二极管、接近开关、角度传感器、超声波等。新手看到这一长串容易发怵,其实可以按“输出什么信号”来分:有的是开关量,比如避障光电开关,碰到障碍就输出高低电平;有的是模拟量,比如光敏电阻,光线越强电压越变。开关量直接接单片机引脚就能读,模拟量则要经过 AD 转换。

这里有个关键概念叫信号处理。资料里说得很实在:光耦我们希望它出来的是开关量,但要不是,就得加比较器,推荐 LM339、LM393;信号回来需要放大,就用运放,比如 TL082、TL084。你可以把比较器理解成“裁判”,电压超过某个门槛就判“1”,低于就判“0”;运放则是“放大镜”,把微弱的信号放大到单片机能读的程度。入门阶段不用自己搭复杂电路,先买现成的比较器模块和运放模块,用万用表量输入输出,搞清楚“什么电压进、什么电压出”,再接到单片机上去读。这一步走稳了,后面做寻迹、避障才不会一头雾水。

2.4 电机和驱动:让小车真正动起来

控制类题目很容易出现小车,所以资料里专门提到车模、减速电机、步进电机、测速电机,还有联轴器这种机械件。电机驱动方面,L298 是必备,步进电机可以考虑加 L297,继电器电路可以用 2803 或 2003。新手最容易踩的坑是“电机一转,单片机就复位”——这通常是电源被电机拉垮了,或者驱动模块和单片机没共地。所以入门时建议先单独给电机供电,把驱动模块的使能、方向、PWM 引脚搞清楚,再和单片机连起来。

PWM 是电机调速的核心。资料里说“要把减速电机做到像步进电机一样一步步走,光调速是不够的”,这句话的意思是:只调占空比只能改快慢,想精确控制走多远,还得配合编码器或测速反馈。入门第一个电机实验不用追求闭环,先让电机能正转、反转、停,再用 PWM 把速度从慢调到快。代码里关键就三件事:方向引脚给高低电平、使能引脚给 PWM、占空比从 0 慢慢加到满。等这个跑通了,再去理解步进电机的频率和细分调速,就不会觉得玄学。

3. 再搞懂软件套路:第一个能跑的例子怎么写

3.1 从闪灯到按键显示:最小可跑通的程序结构

很多新手一上来就想写“寻迹避障小车”的完整程序,结果卡在第一步。入门建议按“闪灯 → 按键读引脚 → 数码管显示数字 → 串口打印”的顺序走。下面给一个伪代码结构的例子,语言用 C,因为电赛常用单片机开发大多绕不开 C。这段代码不依赖具体芯片型号,重点看结构:初始化、主循环、输入读取、输出控制。

// 入门级结构示例:按键控制 LED,并在串口打印状态 #include "board.h" // 假设这是板级支持包,封装了引脚定义 void setup(void) { led_init(); // 初始化 LED 引脚为输出 key_init(); // 初始化按键引脚为上拉输入 uart_init(9600); // 串口初始化,波特率 9600 } int main(void) { setup(); while (1) { int key = key_read(); // 读按键,按下返回 1 if (key == 1) { led_on(); // 点亮 LED uart_send("KEY=1\r\n"); // 串口输出状态 } else { led_off(); } delay_ms(10); // 简单延时,防止抖动误判 } }

这段代码的逻辑很直白:先初始化 LED、按键和串口,然后在一个死循环里不断读按键,按下就点亮 LED 并打印。delay_ms(10)是软件延时,作用是让按键抖动过去再读下一次,新手常忽略这个,结果按一下灯闪好几下。uart_send是串口输出,方便你在电脑上看程序到底跑没跑。参数上,波特率 9600 是入门常用值,两边要一致;延时 10 毫秒是经验值,太长会反应慢,太短会抖。把这段跑通,你就有了“输入 → 处理 → 输出”的完整闭环,后面加传感器、加电机都是往这个骨架上挂。

3.2 AD 采集和数据处理:把传感器电压变成数字

传感器里的模拟量要进单片机,就得靠 AD 转换。资料里说 AD 在控制类里经常出现,比如角度传感器进来的电压信号通过 AD 转化成数字。入门第一个 AD 实验,建议用光敏电阻或电位器:电压变化明显,现象好观察。下面是一个 AD 采集加简单平均滤波的示例结构。

// AD 采集示例:读 8 次取平均,减少抖动 #define ADC_CHANNEL 0 // 假设传感器接在通道 0 #define SAMPLE_TIMES 8 // 采样次数 int adc_read_average(void) { int sum = 0; for (int i = 0; i < SAMPLE_TIMES; i++) { sum += adc_read(ADC_CHANNEL); // 单次 AD 读取,返回 0~4095 delay_ms(2); // 每次采样间隔 2ms } return sum / SAMPLE_TIMES; // 返回平均值 }

这里adc_read返回的是数字量,常见 12 位 AD 范围是 0 到 4095,对应 0 到参考电压。取 8 次平均是为了压掉随机抖动,这就是资料里说的“AD 采集后数据处理算法”的最简版本。参数上,采样次数不是越多越好,8 到 16 次对入门够用;采样间隔 2 毫秒是给信号一点稳定时间。跑通之后,你可以把平均值通过串口打印出来,用手遮住光敏电阻看数值变化,确认“物理量 → 电压 → 数字”这条链路是通的。这一步不玄学,看到数字跟着手变,心里就有底了。

3.3 PWM 和电机控制:让轮子按你的意思转

电机控制入门,先别想闭环。资料里提到 PWM 通道和比特率输出,PWM 的本质就是快速开关,占空比高就平均电压高,电机就快。下面是一个电机正反转加调速的示例结构。

// 电机控制示例:方向 + PWM 调速 void motor_set(int dir, int duty) { if (dir == 1) { dir_pin1_high(); // 方向引脚 1 高 dir_pin2_low(); // 方向引脚 2 低,正转 } else { dir_pin1_low(); dir_pin2_high(); // 反转 } pwm_set(duty); // duty 范围 0~100,对应占空比 } // 主循环里慢慢加速 for (int d = 0; d <= 80; d += 10) { motor_set(1, d); delay_ms(500); }

dir_pin1和dir_pin2控制方向,pwm_set控制速度,duty从 0 到 80 慢慢加,电机就会逐渐加速。注意占空比不要一上来给 100,容易电流冲击太大导致复位。入门时先把电机架空,看轮子转不转、方向对不对,再放到地上。如果电机不转,先查驱动模块供电和共地;如果一转就复位,先查电源是不是被拉低。这些排查经验比背原理管用。

4. 新手避坑:电赛常用模块最容易翻车的几个地方

4.1 电源不共地,信号全乱套

现象:传感器读数乱跳,电机一转单片机就重启。原因:单片机、传感器、电机驱动各用各的电源,地线没连在一起,电压没有共同参考点。解决:所有模块的 GND 必须连到一起,电机大电流单独走线,但地要共。入门时拿万用表量一下各模块地之间是不是通的,不通就先接线。

4.2 传感器输出类型没分清,直接接单片机

现象:避障开关接上后读不到变化,或者光敏电阻接上后数值不变。原因:开关量传感器输出的是高低电平,模拟量传感器输出的是连续电压,前者可以直接读引脚,后者必须过 AD。解决:先看传感器输出是“开关”还是“电压”,开关量接数字引脚,模拟量接 AD 通道,别混。

4.3 电机驱动不隔离,电流倒灌

现象:电机停转时单片机死机,或者驱动模块发烫。原因:电机是感性负载,启停会产生反向电流,驱动模块没有续流保护或电源容量不够。解决:驱动模块电源端加滤波电容,电机和单片机分开供电,共地但不共用一条细线。入门选带保护电路的驱动模块,别自己搭分立元件。

4.4 软件延时当计时,精度全靠猜

现象:测速不准,秒表功能误差大。原因:资料里专门区分了“软件延时”和“计时器”,软件延时受中断和代码长度影响,不适合精确计时。解决:需要测时间就用硬件定时器,软件延时只用在按键消抖、闪灯这类对精度没要求的地方。

4.5 一上来就追复杂算法,基础没打牢

现象:寻迹小车程序写了几百行,结果连直走都走不稳。原因:电机没调平、传感器阈值没标定、PWM 没限幅,算法再好也白搭。解决:先把直走、原地转、单传感器读值这三件事做稳,再叠加寻迹和避障。资料里说的“复线”这类算法,等基础跑通再看。

5. 下一步学什么:从能跑到能赛的学习路径

把前面几章跑通之后,你已经有了一个能读按键、能显示、能采 AD、能转电机的最小系统。接下来不建议东学一块西学一块,而是按“一条主线加两个支线”走。主线是控制类小车的完整流程:电源分配 → 最小系统 → 传感器标定 → 电机驱动 → PWM 调速 → 简单寻迹。支线一是信号处理,把比较器 LM339/LM393 和运放 TL082/TL084 用熟,知道什么时候该放大、什么时候该比较;支线二是显示和交互,把 LCD 或数码管加按键做成一个能调参数的小面板,比赛时调阈值会快很多。

具体到每周的安排,可以这样:第一周只做电源和最小系统,确认各档电压正常、下载程序稳定;第二周做按键加显示,把输入输出闭环跑顺;第三周做 AD 采集加传感器,用手遮光、用磁钢靠近霍尔,看数值变化;第四周做电机驱动和 PWM,让小车能直走能转弯;第五周再把寻迹或避障算法叠上去。每一步都保留一个能回退的版本,别一次性全改,不然出了问题不知道是哪块的锅。

入门阶段还要补一点基础课。资料里提到模电、数电知识,以及熟练掌握 51 单片机,最好用 MSP430、C8051 系列,有条件学 ARM、FPGA。对零基础来说,不用一开始就啃完模电数电,先带着问题学:电机驱动为什么要续流二极管、比较器为什么有阈值、AD 参考电压是什么,遇到再查,查完就用。单片机方面,先把一款芯片的 GPIO、定时器、AD、PWM、串口这五个外设用熟,换芯片时你会发现套路差不多。

最后给一个我自己的习惯:每次焊完或接完一个新模块,先不写业务代码,只写一个“最小测试程序”——让灯闪、让串口打印、让电机转一下。这个程序跑通了,再往系统里加。从那以后我每次搭新电路都强制走一遍这个最小测试,翻车次数少了很多。希望帮到你,先从手边一块最小系统板和一颗 LED 开始,把第一个闪灯跑起来,后面的模块就有了落脚点。

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询