ArduBlock零基础编程.pdf

上传人:qwe****56 文档编号:70012958 上传时间:2023-01-14 格式:PDF 页数:58 大小:13.95MB
返回 下载 相关 举报
ArduBlock零基础编程.pdf_第1页
第1页 / 共58页
ArduBlock零基础编程.pdf_第2页
第2页 / 共58页
点击查看更多>>
资源描述

《ArduBlock零基础编程.pdf》由会员分享,可在线阅读,更多相关《ArduBlock零基础编程.pdf(58页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、ArduBlock 零基础编程套件零基础编程套件 -For ArduinoArduBlock 零基础编程套件是科易互动科技最新推出的一款基于 Arduino 爱好者的图形化编程学习套件,大大降低了爱好者的学习难度,所有编程都可以通过搭积木的方式,把高级的计算机语言和专业的语法,简化为一个个模块,堆砌在一起。最后和 Arduino 开发板互动,做出激动人心的效果。Arduino 的开源特性,使得她有一大批拥戴的粉丝,互联网上也出现了很多学习的社区。由于ArduBlock 是积木的编程方式,很大程度上降低了学习者的门槛,不需要专业的知识,不需要工科的背景,只要你喜欢,你就可以玩。尤其是现在重视下一

2、代培养的大人们,这是您和孩子进行亲子互动最好的方式之一。http:/keyes-11旋转电位器模块*112.按键模块*113超声波测距模块*114.XY 游戏摇杆模块*115.9克舵机*116.3PIN 传感器连接线*517杜邦线*2018.USB 连接线*1ArduBlock 零基础编程套件清单:1.Funduino UNO R3 开发板*12.传感器扩展板*13.白色LED 模块*14.红色LED 模块*15.黄色LED 模块*16.绿色LED 模块*17.蜂鸣器模块*18.LM35 温度传感器*19.光线传感器*110声音传感器*11.Arduino 单片机介绍单片机介绍http:/ke

3、yes- Arduino 是源自意大利的一个开放源代码的硬件项目平台,该平台包括一块具备简单 I/O 功能的电路板以及一套程序开发环境软件。Arduino 可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制电灯、电机和其他各式各样的物理设备;Arduino也可以开发出与 PC 相连的周边装置,能在运行时与 PC 上的软件进行通信。Arduino 是一个开放源码电子原型平台,拥有灵活、易用的硬件和软件。要给Arduino 下一个最准确的定义,最好用一些实例来描述。您想当咖啡煮好时,咖啡壶就发出“吱吱”声提醒您吗?您想当邮箱有新邮件时,电话会发出警报通知您吗?想要一件闪闪发光

4、的绒毛玩具吗?想要一款具备语音和酒水配送功能的 X 教授蒸汽朋克风格轮椅吗?想要一套按下快捷键就可以进行实验测试蜂音器吗?想为您的儿子自制一个银河战士手臂炮吗?想自制一个心率监测器,将每次骑脚踏车的记录存进存储卡吗?想过自制一个能在地面上绘图,能在雪中驰骋的机器人吗?http:/keyes-Arduino 都可以为您实现。Arduino 真正腾飞的原因是其能够实现将模拟输入转换为数字输入,换言之,您可以将光线,温度,声音,或者市场上已有的任何低成本的传感器信号输入,Arduino 都能识别。对于数字传感器,Arduino 支持 SPI(高速同步串行口)和 I2C 总线。这一功能覆盖市场上 99

5、%的传感器。使用其他开发平台是不易实现的想想如果把一块 Beagleboard(伟大的产品)和Arduino 绑在一起,仅仅是为了获得传感器的数据,那真是太奇怪了!简单,但不至于太简单传统开发板往往过于复杂,有很多附件,例如液晶显示屏,按钮,发光二级管,段数码管等等。开发板展示了其一切功能。Arduino 板上显示的功能数量是绝对最小值,如果要实现功能扩展,只需增加 Shield(盾)。Arduino Shield 有成百上千,从液晶显示屏到无线上网技术,但要增加多少 Shield 由用户自己定。扩展Shield 的功能也容易,对于制作扩展 Shield功能的人还会有商业上的刺激。非芯片制造商

6、制造Arduino 开发板不是由芯片制造商设计的。为什么强调这点呢?因为芯片制造商为了突出自己的产品与众不同,他们常常会添加一些奇怪的东西。而 Arduino 强调微控器间的共同性而不是差异性。这就意味着 Arduino 是一个绝佳的初学者平台,只要在 Arduino 板上可以做的事情,您在其他任何的微控制器上都可以做。这一基本特征将伴随您很长时间。Arduino 驱动的安装及程序的烧写驱动的安装及程序的烧写:这次做实验用的开发板是 Funduino UNO R3 的 开发板,完全兼容官方版本。看实物图:http:/keyes-我们先来下载 Arduino 的开发软件,web 地址:http:

7、/arduino.cc/en/Main/Software下载下来的文件是一个 arduino-1.0.zip 的压缩文件夹,解压出来到硬盘。将Funduino UNO R3开发板通过 USB 线连接到 Windows 时,就会提示有名为“ArduinoUNO R3“的新 USB 设备找到,接着Windows 会引导我们进入“找到新的硬件向导”窗口,选取其中的“否,暂时不”选项后单击“下一步”按钮:接下来的步骤需要安装 Funduino UNO R3 所需的驱动,选取其中的“从列表或指定位置安装(高级)”选项后单击“下一步”按钮:http:/keyes-Funduino UNO R3 驱动放在A

8、rduino 1.0 安装目录下的 drivers 目录中,我们需要为 Windows指明该目录为安装驱动时搜索的目录:单击“下一步”按钮后,Windows 就开始查找并安装 Arduino 驱动程序:如果一切正常的话,我们将看到如下的成功界面:http:/keyes-Arduino 驱动安装成功之后,我们可以在 Windows 设备管理器中找到相应的 Arduino 串口:*2.ArduBlock 介绍介绍一款为Arduino 设计的图形化编程软件,由上海新车间创客开发。ArduBlock 软件是 Arduino官方编程环境的第三方软件,目前必须依附于 Arduino 软件下运行,区别于 A

9、rduino 文本式编程环境,ArduBlock 是以图形化积木搭建的方式编程的,这样的方式会使编程的可视化和交互性加强,编程门槛降低,即使没有编程经验的人也可以尝试给 Arduino 控制器编写程序。http:/keyes-右图是图像编程,左图是生成的 C 语言,如果你不懂 C 语言,图形和中文你应该懂吧!上图是一个led 闪烁程序下面分析一下程序主程序do-循环设定 1 引脚输出高电平-延时 1秒-设定 1引脚输出低电平-延时 1秒.如果你是高手请回避:图形对应的 C 语言void setup()pinMode(1,OUTPUT);http:/keyes-void loop()digita

10、lWrite(1,HIGH);delay(1000);digitalWrite(1,LOW);delay(1000);*兴致来了吧,马上安装。下载地址:http:/ Arduino1.0,点击 File,再点击 Perferences(如图)我们可以看到弹出的框,记住下面这个路径(如图)http:/keyes-D:我的文档ArduinotoolsArduBlockTooltool进入看看你的文件夹有没有这个路径,如果没有就一直创建文件夹,然后把你下载回来的压缩包(其实是 JAVA 软件)复制在最后的文件夹里面,就安装完成了。打开Arduino 1.0开发环境,Tools-ArduBlock 这

11、个选项就是(原来没有的)http:/keyes-*那ArduBlock 究竟怎样使用呢?ArduBlock 模块被分为不同的类别。“控制”区的功能是一块控制结构。1.控制2.PIN 脚这些模块可以在你的 Arduino 模板作为虚拟引脚。http:/keyes-3.数字,常量和变量4.运算此项目包括逻辑运算符和数学运算5.常用命令http:/keyes-这些在程序编写中是常用的。6.模块每个模块都代表一种可直接使用的硬件,它可以直接作为你硬件的一部分。*http:/keyes-3.实验课程实验课程这里大家应该对 Arduino 和 ArduBlock 有一个初步的了解了,我们下面通过实际操作来

12、学习这种图形化的编程软件。Ardublock 零基础编程零基础编程 例程例程 1 LED 闪烁实验闪烁实验LED 小灯实验是比较基础的实验之一,我们用高亮 LED 发光模块来完成这个实验。实验器材如下:Arduino 兼容开发板 Funduino uno R3*1Arduino IO 口扩展板 V5*1高亮LED 发光模块*1 3PIN 传感器连接线*1 小灯实验原理图 实物图http:/keyes-按照上图链接好电路后,就可以开始编写程序了,我们还是让 LED 小灯闪烁,点亮 1 秒熄灭1 秒。这个程序很简单与 Arduino 自带的例程里的 Blink 相似只是将 13 数字接口换做 10

13、数字接口。编好后点击下载到 ARDUINO,ARDUINO 的 编程界面就会出现代码*void setup()pinMode(10,OUTPUT);http:/keyes-void loop()digitalWrite(10,!(HIGH);delay(1000);digitalWrite(10,!(LOW);delay(1000);紧接着我们就可以看到我们接到 IO口10脚上 的高亮 LED 灯模块在闪烁了,这样我们的小灯闪烁实验就完成了。*注意:Arduino 开发软件的选择TOOLS 栏板卡的选项是 UNO,通讯端口要选择初次安装出现的串口两项缺一不可,否则不能下载程序。*Ardublo

14、ck 零基础编程零基础编程 例程例程 2 PWM 调光调光PWM(Pulse-width modulation)脉宽调制PWM 是使用数字手段来控制模拟输出的一种手段。使用数字控制产生占空比不同的方波(一个不停在开与关之间切换的信号)来控制模拟输出。一般来说端口的输入电压只有两个0V 与5V。如我我想要 3V的输出电压怎么办。有同学说串联电阻,对,这个方法是正确滴。但是如果我想 1V,3V,3.5V等等之间来回变动怎么办呢?不可能不停地切换电阻吧。这种情况下。就需要使用PWM 了。他是怎么控制的呢,对于arduino 的数字端口电压输出只有LOW 与 HIGH 两个开关,对应的就是 0V 与

15、5V 的电压输出,咱本把 LOW 定义为 0,HIGH定义为1.一秒内让 arduino 输出 500 个 0或者 1 的信号。如果这500 个全部为 1,那就是完整的5V,如果全部为 0,那就是 0V。如果 010101010101 这样输出,刚好一半一半,输出端口就感觉是 2.5V的电压输出了。这个和咱们放映电影是一个道理,咱们所看的电影并不是完全连续的,它其实是每秒输出 25张图片,在这种情况下人的肉眼是分辨不出来的,看上去就是连续的了。PWM 也是同样的道理,如果想要不同的电压,就控制 0 与 1的输出比例控制就ok当然。这和真实的连续输出还是有差别的,单位时间内输出的0,1 信号越多

16、,控http:/keyes-制的就越精确。在下图中,绿线之间代表一个周期,其值也是 PWM 频率的倒数。换句话说,如果 arduinoPWM 的频率是 500Hz,那么两绿线之间的周期就是 2 毫秒。analogWrite()命令中可以操控的范围为 0-255,analogWrite(255)表示 100%占空比(常开),analogWrite(127)占空比大约为50%(一半的时间)。本次实验通过 PWM 来控制一盏 LED 灯,让它慢慢变亮再慢慢变暗,如此循环。同样我们还是把高亮 LED 模块接到数字 IO口的 10脚,下面是接线图:http:/keyes- 我们来编程:同样我们还是点击(

17、下载到 ARDUINO),看 IDE 界面生成的代码*int _ABVAR_1_brightness;void setup()_ABVAR_1_brightness=0;void loop()while(_ABVAR_1_brightness)(0)_ABVAR_1_brightness=(_ABVAR_1_brightness-1);analogWrite(10,255-(_ABVAR_1_brightness);delay(8);delay(200);*就这样我们用图形编程的手法让 LED 渐明渐暗,如同呼吸一般,所以我们给它起了一个神奇的名字,呼吸灯。Ardublock 零基础编程零基础

18、编程 例程例程 3 交通灯设计实验交通灯设计实验上面我们已经完成了单个小灯的控制实验,接下来我们就来做一个稍微复杂一点的交通灯实验,其实聪明的朋友们可以看出来这个实验就是将上面单个小灯的实验扩展成 3 个颜色的小灯,就可以实现我们模拟交通灯的实验了。我们完成这个实验所需的元件除了 Arduino兼容 控制器和下载线还需要的硬件如下:红色LED 模块*1 黄色LED 模块*1绿色LED 模块*13PIN 线*3准备好上述元件我们就可以开工了,我们可以按照上面小灯闪烁的实验举一反三,下面是我们提供参考的原理图,我们使用的分别是数字 10、7、4、接口.http:/keyes-既然是交通灯模拟实验,

19、红黄绿三色小灯闪烁时间就要模拟真实的交通灯,我们使用 Arduino 的 delay()函数来控制延时时间,相对于 C 语言就要简单许多了。下面我们来编程:http:/keyes-点击(下载到 ARDUINO),我们能看到 IDE 出现下面的代码:/*void setup()pinMode(10,OUTPUT);pinMode(4,OUTPUT);pinMode(7,OUTPUT);void loop()digitalWrite(4,LOW);digitalWrite(7,LOW);digitalWrite(10,HIGH);delay(1000);digitalWrite(4,LOW);di

20、gitalWrite(7,HIGH);digitalWrite(10,LOW);delay(200);digitalWrite(4,HIGH);digitalWrite(7,LOW);digitalWrite(10,LOW);delay(1000);/*http:/keyes-*下载程序完成后就可以看到我们自己设计控制的交通Ardublock 零基础编程零基础编程 例程例程 4 按键控制按键控制 LED按键是一种常用的控制电器元件,常用来接通或断开电路,从而达到控制电机或者其他设备运行的开关。本次实验使用按键来控制 led 的亮或者灭。一般情况是直接把按键开关串联在 led 的电路中来开关,这

21、种应用情况比较单一。这次实验通过间接的方法来控制,按键接通后判断按键电路中的输出电压,如果电压大于4.88V,就使给 LED 电路输出高电平,反之就输出低电平。使用逻辑判断的方法来控制 LED亮或者灭,此种控制方法应用范围较广。完成这个实验所需的元件除了 Arduino 兼容控制器和下载线还需要的硬件如下:白色LED 模块*1 http:/keyes-灯。按键模块*13PIN 线*2实验图:下面我们来编程:http:/keyes-点击(下载到 ARDUINO),我们能看到 IDE 出现下面的代码:/*void setup()pinMode(10,OUTPUT);pinMode(4,INPUT)

22、;void loop()if(digitalRead(4)&HIGH)digitalWrite(10,!(HIGH);delay(50);elsedigitalWrite(10,!(LOW);delay(50);*http:/keyes-*下载程序完成后就可以利用按键控制 LED 灯了。Ardublock 零基础编程零基础编程 例程例程 5 蜂鸣器发声实验蜂鸣器发声实验用Arduino 可以完成的互动作品有很多,最常见也最常用的就是声光展示了,前面一直都是在用LED 小灯在做实验,本个实验就让大家的电路发出声音,能够发出声音的最常见的元器件就是蜂鸣器和喇叭了,两者相比较蜂鸣器更简单和易用所以我

23、们本实验采用蜂鸣器。以下是要准备的元件:http:/keyes-蜂鸣器模块*13PIN 线*1 连接图:连接电路时要注意一点就是蜂鸣器有正负极之分,下面右侧实物图可看到蜂鸣器有红黑两种接线。连接好电路程序这方面就很简单了,与前面按键控制小灯是实验程序类似,因为蜂鸣器的控制接口也是数字接口输出高低电平就可以控制蜂鸣器的鸣响。下面我们来编程:http:/keyes-点击(下载到 ARDUINO),我们能看到 IDE 出现下面的代码:/*int _ABVAR_1_t1;void setup()pinMode(13,OUTPUT);_ABVAR_1_t1=0;void loop()_ABVAR_1_t

24、1=10;digitalWrite(13,!(LOW);while(_ABVAR_1_t1)(5000)digitalWrite(13,!(HIGH);tone(8,_ABVAR_1_t1,3000);_ABVAR_1_t1=(_ABVAR_1_t1+100);delayMicroseconds(2000);digitalWrite(13,LOW);delayMicroseconds(2000);http:/keyes-digitalWrite(13,HIGH);delayMicroseconds(10000);*ardublock 图形编程环境提供了一个蜂鸣器模块TONE 模块。上面有几个参

25、数,一个是蜂鸣器连接的端口,另一个是声音的频率(frequency),还有一个是声音的时长。这个程序中,t1 是一个变量,用来改变发出声音的频率,从 10开始,每次增加 100,一直到5000。数字引脚13 是用来做提示,每次发出一个声音的时候,13 脚所连接的 LED就闪一下。“当”模块是一个循环结构,循环条件是 t1 的值小 5000,当 t1 的值大于 5000 的时候循环结束。试一下,声音的奥秘程序,从 10到 5000,哪种频率的声音比较好听。http:/keyes-下载完程序,蜂鸣器实验就完成了.Ardublock 零基础编程零基础编程 例程例程 6 模拟值读取实验模拟值读取实验本

26、实验我们就来开始学习一下模拟 I/O 接口的使用Arduino 有模拟 0模拟 5 共计 6 个模拟接口,这 6 个接口也可以算作为接口功能复用,除模拟接口功能以外,这 6 个接口可作为数字接口使用,编号为数字 14数字 19,简单了解以后,下面就来开始我们的实验。电位计是大家比较熟悉的典型的模拟值输出元件,本实验就用它来完成。所需元器件有:电位计模块*1 3PIN 线*1本实验我们将电位计的阻值转化为模拟值读取出来,然后显示到屏幕上,这也是我们以后完成自己所需的实验功能所必须掌握的实例应用。我们先要按照以下电路图连接实物图http:/keyes-我们使用的是模拟 0 接口。程序的编写也很简单

27、,一个analogRead();语句就可以读出模拟口的值,Arduino 328 是 10位的A/D 采集,所以读取的模拟值范围是 0-1023,本个实验的程序里还有一个难点就是显示数值在屏幕这一问题,学习起来也是很简单的。首先我们要在 voidsetup()里面设置波特率显示数值属于 Arduino 与 PC 机通信,所以Arduino 的波特率应与 PC 机软件设置的相同才能显示出正确的数值,否则将会显示乱码或是不显示,在 Arduino 软件的监视窗口右下角有一个可以设置波特率的按钮,这里设置的波特率需要跟程序里 void setup()里面设置波特率相同,程序设置波特率的语句为 Ser

28、ial.begin();括号中为波特率的值。其次就是显示数值的语句了,Serial.print();或者 Serial.println();都可以,不同的是后者显示完数值后自动回车,前者不是,更多的关于语句的讲解前面有介绍这里就不再多说了,我们来写程序:http:/keyes-点击(下载到 ARDUINO),我们能看到 IDE 出现下面的代码:/*void setup()Serial.begin(9600);void loop()Serial.print(value:);Serial.print(analogRead(A0);Serial.println();delay(1000);*下面就是

29、读出的模拟值。http:/keyes-本实验到这里就完成了,当您旋转电位计旋钮的时候就可以看到屏幕上数值的变化了,读取模拟值这个方法将一直陪伴我们,模拟值读取是我们很常用的功能,因为很多传感器都是模拟值输出,我们读出模拟值后再进行相应的算法处理,就可以应用到我们需要实现的功能里了。Ardublock 零基础编程零基础编程 例程例程 7 光控声音实验光控声音实验 光敏电阻器(photovaristor)又叫光感电阻,是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)

30、。光敏电阻可广泛应用于各种光控电路,如对灯光的控制、调节等场合,也可用于光控开关。本次实验我们先进行一个较为简单的光敏电阻的使用实验1、实验器件 光敏电阻模块:1个 有源蜂鸣器模块:1个 3PIN 线*2http:/keyes-2、实验连线 3、实验原理 本程序应用前面几节读取模拟口电压值的方法,直接将光敏电阻接在数字口。当有光照时,光敏电阻的阻值减小,蜂鸣器不响。遮挡光敏电阻模块时,正常发出声音,下面我们来编程:http:/keyes-点击(下载到 ARDUINO),我们能看到 IDE 出现下面的代码:/*int _ABVAR_1_val;void setup()_ABVAR_1_val=0

31、;Serial.begin(9600);pinMode(10,OUTPUT);void loop()_ABVAR_1_val=analogRead(A0);Serial.print(light:);Serial.print(_ABVAR_1_val);Serial.println();if(_ABVAR_1_val)=(50)digitalWrite(10,HIGH);delay(1000);elsehttp:/keyes-digitalWrite(10,LOW);delay(1000);*掌握本程序后,大家可以自己动手设计实验,也可以用光敏电阻控制 led 灯亮度。http:/keyes-A

32、rdublock 零基础编程零基础编程 例程例程 8 声控灯实验声控灯实验声音传感器是用来对周围环境中的声音强度进行检测,可以用来检测声音的强度并与输出电压成正比。只需要一条模拟传感器专用数据线,就可以与 Arduino 的传感器扩展板结合使用,非常容易地实现与声音感知相关的互动效果。工作电压:+3.3/5V,接口类型:模拟,电流:10mA.完成以上的各种实验后,我们对 Arduino 的应用也应该有一些认识和了解了,在基本的数字量输入输出和模拟量输入以及 PWM 的产生都掌握以后,我们就可以开始进行一些传感器的应用了。下面是所需要的元器件:声音模块*1 高亮LED 模块*1 传感器连接线*2

33、按照以下原理图连接电路。http:/keyes-连接好就可以编写程序了,http:/keyes-点击(下载到 ARDUINO),我们能看到 IDE 出现下面的代码:/*int _ABVAR_1_sound_value;int _ABVAR_2_;void setup()_ABVAR_1_sound_value=0;Serial.begin(9600);void loop()_ABVAR_1_sound_value=0;for(_ABVAR_2_=0;_ABVAR_2_(100);+_ABVAR_2_)_ABVAR_1_sound_value=(_ABVAR_1_sound_value+anal

34、ogRead(A0);analogWrite(11,255-(map(_ABVAR_1_sound_value,0,1024,0,255);Serial.print(sound val:);Serial.print(_ABVAR_1_sound_value);Serial.println();*下载完程序我们来看串口监视的数值http:/keyes-对着声音模块吹气测的的数值,可以看到 LED 小灯有相应的变化。在日常生活中声音模块的应用是很广泛的,用法也是很多,大家可以根据这个实验举一反三,做出更好的互动作品。Ardublock 零基础编程零基础编程 例程例程 9 舵机控制实验舵机控制实验舵

35、机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为 1.5ms 的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。经由电路板上的 IC 判断转动方向,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到达定位。适用于那些需要角http:/keyes-度不断变化并可以保持的控制系统。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为 0,电机停止转动。一般舵机旋转的角度范围是 0 度到 180 度。

36、舵机有很多规格,但所有的舵机都有外接三根线,分别用棕、红、橙三种颜色进行区分,由于舵机品牌不同,颜色也会有所差异,棕色为接地线,红色为电源正极线,橙色为信号线。舵机的转动的角度是通过调节 PWM(脉冲宽度调制)信号的占空比来实现的,标准PWM(脉冲宽度调制)信号的周期固定为 20ms(50Hz),理论上脉宽分布应在 1ms 到2ms 之间,但是,事实上脉宽可由 0.5ms 到 2.5ms 之间,脉宽和舵机的转角 0180相对应。有一点值得注意的地方,由于舵机牌子不同,对于同一信号,不同牌子的舵机旋转的角度也会有所不同。http:/keyes-了解了基础知识以后我们就可以来学习控制一个舵机了,本

37、实验所需要的元器件很少只需要舵机一个、跳线一扎就可以了。RB412 舵机*1 面包板跳线*1 扎用Arduino 控制舵机的方法有两种,一种是通过 Arduino 的普通数字传感器接口产生占空比不同的方波,模拟产生 PWM 信号进行舵机定位,第二种是直接利用 Arduino 自带的Servo 函数进行舵机的控制,这种控制方法的优点在于程序编写,缺点是只能控制 2 路舵机因为Arduino 自带函数只能利用数字9、10 接口。Arduino 的驱动能力有限,所以当需要控制1 个以上的舵机时需要外接电源。这里我们通过电位器模块控制一个舵机转动使用原件:arduino 控制板*1电位器模块*19 克

38、舵机*1传感器连接线*1这里要注意,不要使用电脑 usb 供电,因为如果电流需求大于 500ma,会有烧毁 usb 的可能,推荐使用电池外置供电。http:/keyes-我们来编程:编好后点击(下载到 ARDUINO),ARDUINO 的 编程界面就会出现代码*#include int _ABVAR_1_val;int _ABVAR_2_servo;Servo servo_pin_9;void setup()http:/keyes-_ABVAR_1_val=0;servo_pin_9.attach(9);_ABVAR_2_servo=0;void loop()_ABVAR_1_val=anal

39、ogRead(A0);_ABVAR_2_servo=map(_ABVAR_1_val,0,1023,0,180);servo_pin_9.write(_ABVAR_2_servo);*把程序烧到开发板里面,我们就可以利用电位器控制舵机了。Ardublock 零基础编程零基础编程 例程例程 10 超声波测距超声波测距我们先来认识一下超声波模块http:/keyes-1、HC-SR04 模块性能稳定,测度距离精确,是目前市面上性价比最高的超声波模块,本模块可实现2cm-4.5m 的非接触测距功能,拥有 2.4-5.5V 的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测距结果进行校正,同时具

40、有 GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。2、主要技术参数:1)使用电压:DC5V 2)静态电流:小于 2mA 3)电平输出:高 5V 低 0V 4)串口输出:波特率 9600,起始位 1位,停止位 1 位,数据位 8位,无奇偶校验,无流控制。5)感应角度:不大于 15 度 6)探测距离:2cm-450cm 7)高精度:0.3cm+1%8)电路板尺寸 20*45*1.6mm3.接线方式:VCC、trig(控制端)/TXD,echo/RXD(接收端),GND.4.使用方法:一个控制口发一个 10US 以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口

41、变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,就可以达到你移动测量的值了5.模块工作原理:只需要在Trig/TX 管脚输入一个 10US 以上的高电平,系统便可发出 8 个 40KHZ 的超声波脉冲,然后检测回波信号。当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过 Echo/RX 管脚输出。在此模式下,模块将距离值转化为 340m/s 时的时间值的 2倍,通过 Echo 端输出一高电平,可根据此高电平的持续时间来计算距离值。即距离值为:(高电平时间*340m/s)/2。注:因为距离值已经经过温度校正

42、,此时无需再根据环境温度对超声波声速进行校正,即不管温度多少,声速选择340m/s 即可。http:/keyes- 下面我们来实验,先按下图的标识,将超声波连接到 ARDUINO,看看实物连接图http:/keyes-连接好了,我们开始编程:编好后点击下载到 ARDUINO,ARDUINO 的 编程界面就会出现代码*int ardublockUltrasonicSensorCodeAutoGeneratedReturnCM(int trigPin,int echoPin)int duration;pinMode(trigPin,OUTPUT);pinMode(echoPin,INPUT);di

43、gitalWrite(trigPin,LOW);delayMicroseconds(2);http:/keyes- digitalWrite(trigPin,HIGH);delayMicroseconds(5);digitalWrite(trigPin,LOW);duration=pulseIn(echoPin,HIGH);duration=duration/59;return duration;int _ABVAR_1_t1;void setup()Serial.begin(9600);digitalWrite(4,LOW);_ABVAR_1_t1=0;void loop()_ABVAR_1

44、_t1=ardublockUltrasonicSensorCodeAutoGeneratedReturnCM(4,5);Serial.print(distance:);Serial.print(_ABVAR_1_t1);Serial.println();delay(1000);*下载好程序后我们就可以在 ARDUINO 的 串口监视看到超声波测量的距离值http:/keyes-用手遮挡超声波可以明显感到数值的变化好了,这节的内容就到这里,大家可以发挥想象,把超声波应用到其他的设计上面去。http:/keyes-Ardublock 零基础编程零基础编程 例程例程 11 游戏摇杆模块游戏摇杆模块一

45、、产品说明本公司生产的 PS2 游戏双轴摇杆传感器模块由采用原装优质金属 PS2 摇杆电位器制作,具有(X,Y)2 轴模拟输出,(Z)1 路按钮数字输出。配合 Arduino 传感器扩展板可以制作遥控器等互动作品。另外本产品为了让客户更加方便地配合 arduino 扩展板等标准接口,在设计上把 X,Y,Z 轴的电路都单独引出,用户可以使用 3 引脚的 ARDUINO 专用线直接插到扩展板上进行使用。很是方便。二、产品特性它就像一个在游戏控制台中操纵杆,你可以控制输入这个操纵杆模块的 x、y、z 的值以及在特定的值下实现某种功能,它可以被视为一个按钮和电位计的组合。数据类型的 x,y 维为模拟输

46、入信号而 z 维是数字输入信号,因此,x 和 y 端口连接到模拟插脚传感器端,而 z 端口连接到数字端口。三、使用说明http:/keyes-在介绍如何使用前,我们先来看下它的工作原理吧,那样我们也知道它里面到底是怎么回事,这对我们对它的使用很有帮助,下面有一个功能示意图,我们一起来看看现在大家应该一目了然了吧,其实它就是一电位器嘛,x、y 维的数据输出就是模拟端口读出的电压值,是不是有点意外。当然这上面没有画出 z 维的数据输出,其实它更简单,我们知道 z 维只输出 0 和 1,那么就通过一按键就能实现的吧。现在就应了我们上面说的一句话,它就是电位器和按键的组合体(说句实话,如果你对它不了解

47、刚看到那句话是不是有点云里雾里呢?)。看完上图相信大家都知道如何在 Arduino 下使用它了吧,x、y 维我们接到两个模拟端口去读它们的值,z 维我们则接到数字口,而这样就行了,在加上电源和地,这样就好了。四、模块测试先来看看这次的测试我们都要些什么东西吧,其实不多。Arduino 控制器 1USB 数据线 1游戏摇杆模块 1在这里 x 我连的是模拟端口 0,y 连的是模拟端口 1,http:/keyes-连好电路后,现在我们来编程:编好后点击下载到 ARDUINO,ARDUINO 的 编程界面就会出现代码*http:/keyes-int _ABVAR_2_y;int _ABVAR_1_x;

48、void setup()_ABVAR_2_y=0;Serial.begin(9600);_ABVAR_1_x=0;void loop()_ABVAR_1_x=analogRead(A0);_ABVAR_2_y=analogRead(A1);Serial.print(x:);Serial.print(_ABVAR_1_x);Serial.println();Serial.print(y:);Serial.print(_ABVAR_2_y);Serial.println();delay(500);*下载好程序后我们就可以在 ARDUINO 的 串口监视看到游戏摇杆模块的 X 轴和 Y 轴的值htt

49、p:/keyes-用手摇动游戏摇杆模块的X 轴和 Y 轴,可以明显看到数字的变化http:/keyes-对游戏摇杆模块的介绍就到这了,其实用它能做出相当不错的东西,大家可以尽情的发挥想象。Ardublock 零基础编程零基础编程 例程例程 12 LM35 温度传感器实验温度传感器实验LM35 是很常用且易用的温度传感器元件,在元器件的应用上也只需要一个 LM35 元件,只利用一个模拟接口就可以,难点在于算法上的将读取的模拟值转换为实际的温度。按照下面原理图连接电路。http:/keyes-我们来编程:http:/keyes-编好后点击下载到 ARDUINO,ARDUINO 的 编程界面就会出现

50、代码*int _ABVAR_2_dat;int _ABVAR_1_val;void setup()_ABVAR_2_dat=0;_ABVAR_1_val=0;Serial.begin(9600);void loop()_ABVAR_1_val=analogRead(A0);_ABVAR_2_dat=(5*_ABVAR_1_val)/10);Serial.print(TEMP=);Serial.print(_ABVAR_2_dat);Serial.println();delay(100);*下载好程序后我们就可以在 ARDUINO 的串口监视看到当前的温度了http:/keyes-以上就是我们整

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁