由于学校这几天在开运动会,所以刚好有空闲的时间来好好琢磨这些原件以及认认真真完成这几篇博客。。。。
所以,这几天就好好研究这些电子元件。

那怎么具体研究呢,我想大概可以从这几个方面入手。
1.元件的介绍
2.作用
3.连接方式
4.所控代码

因为我也算是萌新,所以这个过程大概会比较复杂,但是我会将我所不懂得点着重标记下来。如果你也是小萌新,也可以参考参考我所遇到的问题;如果你是大佬,也可以给些不错的意见。

那么,正式开始吧

1.Arduino 板的说明

博主用的是Arduino Mega2560主板,而在网上找到的图的主板是Arduino UNO板。两个板该有的功能都是基本一致的,不同的是Mega2560主板应该更强大,为什么这么说呢,见图。


虽然Mega2560主板更好一点,但是毕竟网上的方便,而且两个板能实现的功能基本一致,所以就拿上图UNO板来说明了。

数字 名称+作用
1 电源USB:Arduino板可以通过使用计算机上的USB线供电。你需要做的是将USB线连接到USB接口。
2 电源(桶插座):Arduino板可以通过将其连接到电影插口直接从交流电源供电。
3 稳压器:稳压器的功能是控制提供给Arduino板的电压,并稳定处理器和其他元件使用的直流电压。
4 晶体振荡器:晶振帮助Arduino处理时间问题。Arduino如何计算时间?答案是,通过使用晶体振荡器。在Arduino晶体顶部打印的数字是16.000H9H。它告诉我们,频率是16,000,000赫兹或16MHz。
5,17 Arduino重置:你可以重置你的Arduino板,例如从一开始就启动你的程序。可以通过两种方式重置UNO板。首先,通过使用板上的复位按钮(17)。其次,你可以将外部复位按钮连接到标有RESET(5)的Arduino引脚。
6,7,8,9 引脚(3.3,5,GND,Vin):①3.3V(6) - 提供3.3输出电压 ②5V(7) - 提供5输出电压 ③使用3.3伏和5伏电压,与Arduino板一起使用的大多数组件可以正常工作。 ④GND(8)(接地) - Arduino上有几个GND引脚,其中任何一个都可用于将电路接地。 ⑤VVin(9) - 此引脚也可用于从外部电源(如交流主电源)为Arduino板供电。
10 模拟引脚:Arduino UNO板有六个模拟输入引脚,A0到A5。这些引脚可以从模拟传感器(如湿度传感器或温度传感器)读取信号,并将其转换为可由微处理器读取的数字值。
11 微控制器:每个Arduino板都有自己的微控制器(11)。你可以假设它作为板的大脑。Arduino上的主IC(集成电路)与板对板略有不同。微控制器通常是ATMEL公司的。在从Arduino IDE加载新程序之前,你必须知道你的板上有什么IC。此信息位于IC顶部。有关IC结构和功能的更多详细信息,请参阅数据表。
12 ICSP引脚:大多数情况下,ICSP(12)是一个AVR,一个由MOSI,MISO,SCK,RESET,VCC和GND组成的Arduino的微型编程头。它通常被称为SPI(串行外设接口),可以被认为是输出的“扩展”。实际上,你是将输出设备从属到SPI总线的主机。
13 电源LED指示灯:当你将Arduino插入电源时,此LED指示灯应亮起,表明你的电路板已正确通电。如果这个指示灯不亮,那么连接就出现了问题。
14 TX和RX LED:在你的板上,你会发现两个标签:TX(发送)和RX(接收)。它们出现在Arduino UNO板的两个地方。首先,在数字引脚0和1处,指示引脚负责串行通信。其次,TX和RX LED(13)。发送串行数据时,TX LED以不同的速度闪烁。闪烁速度取决于板所使用的波特率。RX在接收过程中闪烁。
15 数字I/O:Arduino UNO板有14个数字I/O引脚(15)(其中6个提供PWM(脉宽调制)输出),这些引脚可配置为数字输入引脚,用于读取逻辑值(0或1) ;或作为数字输出引脚来驱动不同的模块,如LED,继电器等。标有“〜”的引脚可用于产生PWM。
16 AREF:AREF代表模拟参考。它有时用于设置外部参考电压(0至5伏之间)作为模拟输入引脚的上限。

为什么先介绍普通的主板呢,在我看来,如果将Arduino小车比作一个人的话,那么主板所对应的就是人脑,也就是最最最基本的东西,也是最最最重要的东西。(我也是大概玩了一周的板才开始玩一些元件的)
那么主板的作用呢(与电脑主板差不多相同吧):
1,将不同电压的用电器连接在一起,并提供相应的电源;
2,将不同功能的用电器连接在一起,使它们相互传递信息;
3,接收外来数据,并给其它设备处理;
4,将内部设备处理的数据集中,并传递给外界;
5,平衡电脑中的数据、能源、速度、温度、电流等

2.HC-SR04超声波测距模块

介绍:一款利用超声波测距离的传感器,多应用于 机器人避开障碍物,距离测量。

基本工作原理:
(1)采用 IO 口 TRIG 触发测距,给最少 10us 的高电平信呈。
(2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回
(3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回 的时间。测试距离=(高电平时间*声速(340M/S))/2;

使用代码:

int inputPin = 8; // 定义超声波信号接收接口
int outputPin = 9; // 定义超声波信号发出接口
void setup()
{Serial.begin(9600);//设置串口波特率为9600pinMode(inputPin, INPUT);pinMode(outputPin, OUTPUT);
}void loop(){digitalWrite(outputPin, LOW); // 使发出发出超声波信号接口低电平2msdelayMicroseconds(2);digitalWrite(outputPin, HIGH); // 使发出发出超声波信号接口高电平10ms,这里是至少10μsdelayMicroseconds(10);digitalWrite(outputPin, LOW); // 保持发出超声波信号接口低电平int distance = pulseIn(inputPin, HIGH); // 读出脉冲时间distance = distance / 58; // 将脉冲时间转化为距离(单位:厘米)Serial.print(distance);Serial.println("cm");//向串口监视器中输出距离信息delay(500);//刷新时间500ms,也就是0.5s
}

这是在度娘上找的代码,说实话我一开始也挺萌比的。查找了相关的资料,才有了一定的认识。
在介绍代码之前,首先会说明HC-SR04上的引脚。

引脚说明
VCC – 供5V电源
TRIG – 触发控制信号输入 连9号引脚
ECHO – 回响信号输出等四个接口端 连8号引脚
GND – 为地线

代码说明:
前面的代码中规中矩,可以很好地理解,但是到loop函数中:

  digitalWrite(outputPin, LOW); // 使发出发出超声波信号接口低电平2msdelayMicroseconds(2);digitalWrite(outputPin, HIGH); // 使发出发出超声波信号接口高电平10ms,这里是至少10μsdelayMicroseconds(10);digitalWrite(outputPin, LOW); // 保持发出超声波信号接口低电平

这一段我就不太理解了,虽然能看懂意思,但具体为什么这么做却不清楚了。在度娘上查找资料,这一段的主要意思是启动超声波传感器

下来就是函数:pulseIn() //注意:第一个l是小写的“L”,第二个l是大写的“i”
介绍:读引脚的脉冲信号,被读取的脉冲信号可以使HIGH或LOW。例如我们要检测HIGH脉冲信号,Arduino将在引脚变为高电平时开始计时,当引脚变为低电平时停止计时,并返回脉冲持续的时长(微秒)。如果在超时时间内没有读到脉冲信号,则返回0。

有了这个函数,就可以测量脉冲时间,从而算出距离。

线路图:

3.TCRT5000新款寻迹模块

介绍:一块利用红外线反射的寻迹传感器。

基本工作原理:接好VCC(3.3V-5V)和GND,TCRT5000传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,红外接收管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,红外接收管饱和,此时模块的输出端为高电平,指示二极管被点亮。OUT输出接口可以与单片机IO口直接相连,一般接外部中断。接收红外信号强度,常表现在反射面的颜色(反射率)、形状和反射面接收管的距离等方面。

int led=13;
int buttonpin=9;
int val;
void setup()
{pinMode(led,OUTPUT);pinMode(buttonpin,INPUT);Serial.begin(9600);
}void loop()
{val=digitalRead(buttonpin);Serial.println(val);if(val==HIGH){digitalWrite(led,HIGH);}else{digitalWrite(led,LOW);}
}

这个代码相对看的比较简单,就是在传感器无遮拦的情况下,输入led亮,被遮住的情况下,LED灯熄灭。

连接示意图:

我的想法:

1.在超声波测距那块,一直不明白代码是怎么利用传感器的,也是通过网上大量的解释,从传感器工作的原理到代码的一行行解释,才算稍微理解了一点。(说稍微一点也不为过,因为如果是我,最简单的代码估计我都写不出来)
2.同样,在嵌入式学习中,我个人认为一定要软硬都得玩。既要知道硬件的工作原理和连接方式,也要清楚软件代码中每一行代码的目的,这样才会有更深一层的提高。如果只是光玩一种的话,我自己感觉还是挺枯燥的。。。。

Arduino智能小车设计(二)相关推荐

  1. Arduino智能小车设计(一)

    可接课程设计!!!有需要私聊博主! 这一个月来 距离实验室纳新后,已经过去一个月左右了.听取了学长的建议,这段时间也一直在搞Arduino这个软件,还算不错的认识了这个开源软件.(自我认为..) 但是 ...

  2. Arduino智能小车设计(七)

    上回书说到,小车的超声波避障功能基本完成.那么本篇就来介绍最后一个功能,蓝牙智能控制功能. 废话不多说,来吧. 蓝牙控制功能 最令我感动的是,我原以为最困难的一个功能在实际操作下居然成为了最简单的那个 ...

  3. Arduino智能小车设计(四)

    到今天为止,智能小车的三种功能也算全部完成了.(做蓝牙模块异常的顺利)接下来就是焊接矩阵键盘,将这三种功能合并在一块了.可能还会需要一段时间,包括矩阵键盘的焊接,代码的规整,所有硬件的加入,功能排障以 ...

  4. Arduino/stm32 智能小车设计(二)

    Arduino/stm32 智能小车设计(二) 本节进行Arduino智能小车的代码讲解. 一.I/O口定义与初始化函数 如下图RGB指示灯用到10.11.12三个I/O口,分别对应蓝色.红色.绿色. ...

  5. Arduino/stm32 智能小车设计(一)

    Arduino/stm32 智能小车设计(一) 智能小车原理图设计 智能小车原理图组件包括: 模块设计 一.控制模块 二.供电模块 三.充电管理模块 四.电机驱动模块 五.红外寻迹及红外避障模块 六. ...

  6. 集成智能小车(二...2)整体设计之谋

    说明: 1)此章节将讲述下我对各个环节的考虑,详细的选型和资源分配会在<二.3>节展开,软硬件设计会在设计部分讲.如果对智能小车熟悉的同学可以一带而过,看<二.3>最终选型和资 ...

  7. stm32智能小车设计

    提前说说 博主是用寄存器写的驱动 历时两周,总算把小车弄好了,总体上来说做的太慢了.自己在32的学习中还不够仔细深入,只是浅面的学习,当真正做一个项目时,暴露的问题就太多了.这次在小车的制作的过程中, ...

  8. 亚博 Arduino智能小车实验报告

    亚博 Arduino智能小车实践报告 一.     程序安装准备 首先安装了Arduino板载USB转串口CH340驱动安装包, 若上述程序安装成功,则可以在我的电脑中找到相应的端口 本机端口号为CO ...

  9. Arduino智能小车——调速篇

    Arduino智能小车--调速篇 Arduino智能小车系列教程时空门: Arduino智能小车--拼装篇 点击跳转 Arduino智能小车--测试篇 点击跳转 Arduino智能小车--调速篇 点击 ...

最新文章

  1. FastCGI与php-fpm
  2. Maven使用常用命令
  3. Qt D-Bus类型系统
  4. 云计算实战系列七(管道及重定向)
  5. SQL--报错回显注入
  6. uni-app之实现分页
  7. MySQL-第十五篇使用连接池管理连接
  8. elasticsearch 使用词干提取器处理英语语言
  9. OpenGL开发-第6章-纹理,让物体更漂亮
  10. C语言编程核心要点,男人看了沉默,女人看了流泪
  11. linux下ps ef命令详解,linux命令中ps -ef详解
  12. 视觉检测零件同轴度 测试零件同轴度,检测是否同心圆
  13. python处理excel和word文档
  14. 快速切题 usaco ariprog
  15. html 里的文章代码
  16. PHP_保留两位小数并且四舍五入_保留两位小数并且不四舍五入
  17. [事件知识图谱] EventKG: A Multilingual Event-Centric Temporal Knowledge Graph
  18. Android手机修改hosts文件
  19. mysql 占用cpu过高
  20. onenote2007屏幕剪辑或插入图片是报错。

热门文章

  1. Java线程之Exchanger
  2. 人流量统计api接口_人数统计_区域人数实时统计
  3. 华为APP UI自动化测试岗面试真题,真实面试经历。
  4. Android 9.0 framework 授予安装未知来源应用权限(去掉未知来源弹窗)
  5. ORACLE12.2 RAC+DG(2+1) RU patch步骤
  6. Cordova徽章插件
  7. 联想android模拟器,联想模拟器 v7.3.0 精简版
  8. CentOS7.9下安装Oracle19c
  9. java springboot mybaits 邮箱注册实现
  10. logback中logger的 additivity 属性