龙空技术网

新年一起学—6种执行器的功能、库及arduino C调用方法(附源码)

迎着星空长大 645

前言:

目前你们对“星空源代码”大约比较关怀,你们都想要了解一些“星空源代码”的相关文章。那么小编同时在网上搜集了一些关于“星空源代码””的相关资讯,希望朋友们能喜欢,同学们快快来学习一下吧!

如果你把主控板想象为大脑,那么传感器就是眼、耳、鼻,而执行器就是手和脚。传感器把声音、光波、声波、温度、湿度、红外等物理信号转换为电信号,输出给主控板,主控板根据你事先编译好的程序,对输入的电信号进行逻辑分析,并根据你程序逻辑的设定,输出相应指令给执行器,执行器将根据你的指令完成相应操作。

本文将介绍arduino 中6种常见执行器的arduino C用法,这6种执行器分别是舵机、语音芯片模块、LCD液晶显示器、LED灯、蜂鸣器、直流马达模块。

1、舵机

Arduino入门级的舵机型号有SG90(塑料齿轮)和MG90S(全金属齿轮),均可以左右各转动90度。SG90性价比高,可用于各种模型、航模固定翼KT板、航模直升机KT板等;而MG90S的金属齿轮更加耐磨,可用于直升机航模斜盘舵机、机械转向等。此外,Arduino阵营还有性能更高的38克大扭力的SG5010,以及55克大扭力的MG995、MG996R。

如果用来学习的话,9克扭力的SG90就完全够用,下图是我的一个SG90和一个MG90S。

Arduino的SG90和MG90S舵机

舵机我们使用开源库Servo,在arduino C里,我们使用文件包含预处理命令(include)导入该库的头文件Servo.h:#include <Servo.h>,这样我们就可以直接调用Servo类库中操控舵机的成员函数,可以忽略复杂的底层硬件操作,把精力集中在创意上来。

Servo库的用法很简单,首先定义一个Servo的对象,然后调用attach()成员函数连接引脚,最后调用write()成员函数转动舵机到指定的角度。完整的示例源码如下:

arduino C调用舵机示例源码

下面视频是示例源码编译、上传后,我的MG90S舵机转动效果,转动到了90度的位置。

视频加载中...

2、语音芯片模块

Arduino的语音模块由语音芯片和扬声器组合而成,预先把语音烧录进芯片,每条语音对应一个唯一的地址。我这个语音芯片模块是适用于全国青少年机器人技术等级考试的一个最简单的芯片,其中烧录了68条涵盖了数字、时间、方向等机器人考试相关的语音,地址范围为1~68。

语音芯片用法很简单,发送n个脉冲信号,就播放地址为n的语音。比如发送1个脉冲信号,芯片就播报地址1对应的语音,发送68个脉冲信号,芯片就播报地址68对应的语音。

arduino 语音芯片模块

语音芯片模块有三个信号引脚,分别是RST复位引脚、DATA触发计数引脚、BUSY信号引脚,不需要第三方库,调用流程如下:

(1) 向RST引脚发送一组低-高-低脉冲组合,即可启动语音芯片。

(2)向DATA引脚循环发送一组高脉冲信号,DATA对收到的脉冲信号的次数进行计数,比如计数的次数为68,则芯片播放地址为68的那条语音。

(3)BUSY信号引脚用来判断芯片是否在播放中。BUSY引脚需要设置为输入模式,主控板如果从BUSY引脚得到高脉冲信号,说明语音芯片仍在播放中;如果得到低脉冲信号,则播已经报完成。

完整的示例源码如下图所示:

arduino C语音芯片模块源码

下面是示例源码编译、上传后,语音模块播报的效果,播放语音:2023新年快乐。

视频加载中...

3、LCD液晶显示器

型号为1602LCD的显示器模块是Arduino中入门级的液晶显示模块,1602表示可以显示2行字符,每行16个字符,共计32个字符。1602LCD是点阵型液晶屏,可以显示字母,数字和一些简单的符号。

1602LCD液晶显示模块正面

在1602LCD的背面可以看到集成了IIC接口,有两个信号引脚,一个是IIC数据线SDA引脚,连接Ardunino主控板SDA接口;一个是IIC 时钟线SCL引脚,连接主控板SCL接口。

集成在1602LCD背面的IIC

因为集成了IIC,所以使用起来就非常方便了,我们直接使用arduino的开源库函数:#include < LiquidCrystal_I2C.h>

我们需要定义一个LiquidCrystal_I2C对象mylcd,用来调用库里的成员函数,我们使用到LiquidCrystal_I2C库的成员函数主要有5个:init()初始化函数,backlight()点亮屏幕函数,setCursor()定位光标函数,print()显示信息函数,calear()清屏函数。

完整的示例源码如下图所示:

arduino LCD液晶显示器源码

下面是示例源码编译、上传后,我的LCD显示出来”2023 hello“。我们使用setCursor()可以调整显示内容的位置。

LCD显示的效果

4、LED灯

LED灯是一种二极管(半导体),在青少年机器人等级考试中经常用到,比较常见的是通过传感器来控制LED灯的亮灭,或者实现呼吸灯效果,或者实现红绿灯的变换等。

arduinoLED小灯

LED灯支持数字输出和模拟输出。

方式一:数字输出1(高脉冲)和0(低脉冲)可以控制LED的亮和灭。

方式二:模拟输出0~255,亮度逐步加强,0是熄灭状态,255是最亮,可以实现呼吸灯的效果。模拟输出需要连接PWM(3、5、6、9、10、11)引脚。

提供了LED两种方式的输出示例源码,如下图所示:

LED呼吸灯源码

下面是示例编译、上传后LED呼吸灯效果:

视频加载中...

5、蜂鸣器

蜂鸣器也是青少年机器人等级考试中被频繁使用的执行器之一,和LED灯一样,可以通过数字输出高、低脉冲来开、关蜂鸣器,也可以通过PWM引脚实现模拟输出,从而控制蜂鸣器的音量高低。

arduino蜂鸣器

蜂鸣器使用方法和LED灯一样,不再赘述,源码见下图:

arduino蜂鸣器源码

6、直流马达模块

在青少年机器人等级考试中,小马达用来带动风扇旋转,并且可以变速。这种小马达其实就是一个迷你的直流电机,通过PWM引脚的模拟输出调节转动速度。

arduino直流小马达

小马达的使用方法也和LED灯、蜂鸣器一样,也不再赘述,源码见下图:

arduino直流小马达自动调速源码

下面是示例编译、上传后,arduino直流小马达源码效果。马达上装了小风扇,可以看到风扇由慢变快,又由快变慢。

视频加载中...

arduino常用的8种传感器和6种执行器分别在上篇和本篇都介绍完了,掌握了这14种模块的用法之后,就已经具备了作为一个创客的基本条件,喜欢的朋友可以动手尝试一下了,如果带孩子一起玩还会更加有趣。

感兴趣的朋友可以关注我的头条号,以便收到后续的相关文章和视频,下次见。

标签: #星空源代码