Arduino 入门到精通 例程10-光控声音

Arduino 入门到精通 例程10-光控声音
Arduino 入门到精通 例程10-光控声音

Arduino 入门到精通例程10

光控声音实验

1、实验器件

? 光敏电阻:1个

? 蜂鸣器:1个

? 多彩面包板实验跳线:若干

2、实验连线

按照Arduino教程将控制板、prototype板子、面包板连接好,下载线接好。光敏电阻的一端接在数字6口,另一端与蜂名起正极相连,蜂明器的负极和GND相连。

3、实验原理

本程序应用前面几节读取模拟口电压值的方法,直接将光敏电阻接在数字口。程序类似第二节蜂鸣器发声的程序,没有光照时,正常发出声音,但声音特别的小;当

有光照时,光敏电阻的阻值减小,所以蜂鸣器两端的电压就会增大,蜂鸣器声音发大。光照越强,电阻越小,蜂鸣器越响。

程序说明:

void setup()

{

pinMode(6,OUTPUT);

}

void loop()

{

while(1)

{

char i,j;

while(1)

{

for(i=0;i<80;i++) //辒出一个频率癿声音

{

digitalWrite(6,HIGH);

delay(1);

digitalWrite(6,LOW);

delay(1);

}

for(i=0;i<100;i++) //辒出另一个频率癿声音

{

digitalWrite(6,HIGH);

delay(2);

digitalWrite(6,LOW);

delay(2);

}

}

}

}

将程序下载到实验板后,可以用手电筒或其他収光物体照射光敏电阻,可以听到有光照时蜂鸣器声音更大。

掌握本程序后,大家可以自己动手设计实验,也可以用光敏电阻控制led灯亮度。

Arduino编程语言

Arduino编程参考手册 首页 程序结构变量基本函数

程序结构 (本节直译自Arduino官网最新Reference) 在Arduino中, 标准的程序入口main函数在内部被定义, 用户只需要关心以下两个函数: setup() 当Arduino板起动时setup()函数会被调用。用它来初始化变量,引脚模式,开始使用某个库,等等。该函数在Arduino板的每次上电和复位时只运行一次。 loop() 在创建setup函数,该函数初始化和设置初始值,loop()函数所做事的正如其名,连续循环,允许你的程序改变状态和响应事件。可以用它来实时控制arduino板。 示例:

控制语句 if if,用于与比较运算符结合使用,测试是否已达到某些条件,例如一个输入数据在某个范围之外。使用格式如下: 该程序测试value是否大于50。如果是,程序将执行特定的动作。换句话说,如果圆括号中的语句为真,大括号中的语句就会执行。如果不是,程序将跳过这段代码。大括号可以被省略,如果这么做,下一行(以分号结尾)将成为唯一的条件语句。

圆括号中要被计算的语句需要一个或多个操作符。 if...else 与基本的if语句相比,由于允许多个测试组合在一起,if/else可以使用更多的控制流。例如,可以测试一个模拟量输入,如果输入值小于500,则采取一个动作,而如果输入值大于或等于500,则采取另一个动作。代码看起来像是这样:

else中可以进行另一个if测试,这样多个相互独立的测试就可以同时进行。每一个测试一个接一个地执行直到遇到一个测试为真为止。当发现一个测试条件为真时,与其关联的代码块就会执行,然后程序将跳到完整的if/else结构的下一行。如果没有一个测试被验证为真。缺省的else语句块,如果存在的话,将被设为默认行为,并执行。 注意:一个else if语句块可能有或者没有终止else语句块,同理。每个else if分支允许有无限多个。

完整word版,arduino制作各种歌曲

首先讲下简单的乐理知识,知道音乐是怎么演奏出来的自然就可以通过代码来进行编排了。 1.演奏单音符一首乐曲有若干音符组成,一个音符对应一个频率。我们知道到相对应的频率让arduino输出到蜂鸣器蜂鸣器就会放出相应的声音,这里有个表供大家参考: 2.音符的演奏时间我们知道了音符是如何演奏出来的,下一步就是控制音符的演奏时间。每个音符都会播放一定的时间,这样才能构成一首优美的曲子,而不是生硬的一个调的把所有的音符一股脑的都播放出来。如何确定每个音符演奏的单位时间呢? 我们知道,音符节奏分为一拍、半拍、1/4拍、1/8拍,我们规定一拍音符的时间为1;半拍为0.5;1/4拍为0.25;1/8拍为0.125……,所以我们可以为每个音符赋予这样的拍子播

放出来,音乐就成了。 好了我们看看如何将简谱翻译成对应频率和拍子。 以葫芦娃为例: 先看下左上角1=D这里,用的是D调,好那我们就看《音符频率表》中的D行(红色部分), 第一个音符是1 但上面有个点,所以对应的就是589,时间是一拍=1, 第二个音符6(没有点)就是495,时间也是一拍=1, 第三个音符5 即441,因为有下划线所以是半拍=0.5, ……以此类推 第四0这里要注意下,这里是没有声音,但是要是用频率0表示还是会有声音(这个不懂),所以我们用一个很高频率的声音,这样人耳听不到就达到了没有声音的效果,所以频率为-1。拍子=1拍

第五,再接着看到第一句歌词葫芦娃这个娃的音是3—,这表示是两拍,后面每加一个“-”,表示拍子+1(1+1),本例中最多是加到4. 第六,第二句歌词葫芦娃这个娃,3?带个点,点的意思是去3的拍子的一半,即3?的拍子是1+0.5 第七,大家可能会问那弧线怎么表示,这在音乐中属于连音,我们要表示的话,可以稍微改下连音后面那个音的频率,比如减少或增加一些数值(需自己调试),这样表现会更流畅,但操作上更复杂了,本例没有做连音的处理,大家有兴趣可以自己调整下。 所以说了一大堆,规律就是时间上单个音符没有下划线,就是一拍(1),有下划线是半拍(0.5),两个下划线是四分之一拍(0.25),有“—”=前面音符的拍子+1;频率上就是按照音符是否带点,点在上还是在下到表中查找就可以了。 至此原理清楚,随便拿个简谱来我们都可以翻译成代码了。 好,下面进入代码部分,来看下这首《葫芦娃》的代码: 01.#define NOTE_D0 -1 02.#define NOTE_D1 294 03.#define NOTE_D2 330 04.#define NOTE_D3 350 05.#define NOTE_D4 393 06.#define NOTE_D5 441 07.#define NOTE_D6 495 08.#define NOTE_D7 556 09. 10.#define NOTE_DL1 147 11.#define NOTE_DL2 165 12.#define NOTE_DL3 175 13.#define NOTE_DL4 196 14.#define NOTE_DL5 221 15.#define NOTE_DL6 248

Arduino 入门到精通 例程5-交通灯

Arduino 入门到精通例程5 5.交通灯设计实验 上面我们已经完成了单个小灯的控制实验,接下来我们就来做一个稍微复杂一点的交通灯实验,其实聪明的朋友们可以看出来这个实验就是将上面单个小灯的实验扩展成3 个颜色的小灯,就可以实现我们模拟交通灯的实验了。我们完成这个实验所需的元件除了Arduino 控制器和下载线还需要的硬件如下: 红色M5 直插LED*1 黄色M5 直插LED*1 绿色M5 直插LED*1 220Ω电阻*3 面包板*1 面包板跳线*1 扎 准备好上述元件我们就可以开工了,我们可以按照上面小灯闪烁的实验举一反三,下面是我们提供参考的原理图,我们使用的分别是数字10、7、4、接口.

既然是交通灯模拟实验,红黄绿三色小灯闪烁时间就要模拟真实的交通灯,我们使用Arduino 的delay()函数来控制延时时间,相对于C 语言就要简单许多了。 下面是一段参考程序: int redled =10; //定义数字10 接口 int yellowled =7; //定义数字7 接口 int greenled =4; //定义数字4 接口 void setup() { pinMode(redled, OUTPUT);//定义红色小灯接口为输出接口 pinMode(yellowled, OUTPUT); //定义黄色小灯接口为输出接口 pinMode(greenled, OUTPUT); //定义绿色小灯接口为输出接口 }

void loop() { digitalWrite(redled, HIGH);//点亮红色小灯 delay(1000);//延时1 秒 digitalWrite(redled, LOW); //熄灭红色小灯 digitalWrite(yellowled, HIGH);//点亮黄色小灯 delay(200);//延时0.2 秒 digitalWrite(yellowled, LOW);//熄灭黄色小灯 digitalWrite(greenled, HIGH);//点亮绿色小灯 delay(1000);//延时1 秒 digitalWrite(greenled, LOW);//熄灭绿色小灯 } 下载程序完成后就可以看到我们自己设计控制的交通灯了。

ARDUINO入门及其简单实验7例

ARDUINO入门及其简单实验(7例) (1) 1. Arduino硬件开发平台简介 (1) 1.1 Arduino的主要特色 (2) 1.2 Arduino的硬件接口功能描述 (3) 1.3 Arduino的技术性能参数 (3) 1.4 电路原理图 (4) 2. Arduino软件开发平台简介 (5) 2.1 菜单栏 (5) 2.2 工具栏 (6) 2.3 Arduino 语言简介 (6) 3. Arduino开发实例中所用部分器件 (8) 1. LED简介 (8) 2. 光敏电阻简介 (9) 3. 直流电机简介 (9) 4. 电位器简介 (10) 4. Arduino平台应用开发实例 (10) 4.1【实作项目一】利用LED作光敏电阻采样实验 (10) 4.2【实作项目二】利用PWM信号控制LED亮度 (12) 4.3【实作项目三】单键控制一只LED的亮灭 (15) 4.4【实作项目四】利用PWM控制直流电机转速 (17) 4.5【实作项目五】利用电位器手控LED亮度 (19) 4.6【实作项目六】控制LED明暗交替 (21) 4.7【实作项目七】利用光敏电阻控制LED的亮灭 (23) ARDUINO入门及其简单实验(7例) 1. Arduino硬件开发平台简介 Arduino硬件是一块带有USB的I/O接口板(其中包括13条数字I/O引脚,6通道模拟输出,6通道模拟输入),并且具有类似于Java、C语言的集成开发环境。Arduino 既可以扩展一些外接的电子元器件,例如开关、传感器、LED、直流马达、步进马达或其他输入、输出装置;Arduino也可以独立运行,成为一个可以跟交互软件沟通的接口装置,例如:Flash、Processing、Max/MSP、VVVV或其他互动软件。Arduino 开发环境IDE全部开放源代码,可以供大家免费下载、利用,还可以开发出更多激发人们制作欲望的互动作品。

Arduino 入门到精通 例程1-Hello World!

Arduino 入门到精通例程1 1、Hello World! 首先先来练习一个不需要其他辅助元件,只需要一块Arduino 和一根下载线的简单实验,让我们的Arduino 说出“Hello World!”,这是一个让Arduino 和PC 机通信的实验,这也是一个入门试验,希望可以带领大家进入Arduino 的世界。 这个实验我们需要用到的实验硬件有: Arduino 控制器 USB 下载线 我们按照上面所讲的将Arduino 的驱动安装好后,我们打开Arduino 的软件,编写一段程序让Arduino 接受到我们发的指令就显示“Hello World!”字符串,当然您也可以让Arduino 不用接受任何指令就直接不断回显“Hello World!”,其实很简单,一条

if()语句就可以让你的Arduino 听从你的指令了,我们再借用一下Arduino 自带的数字13 口LED,让Arduino 接受到指令时LED 闪烁一下,再显示“Hello World!” 下面给大家一段参考程序。 int val;//定义变量val int ledpin=13;//定义数字接口13 void setup() { Serial.begin(9600);//设置波特率为9600,这里要跟软件设置相一致。当接入特定设备(如:蓝牙)时,我们也要跟其他设备的波特率达到一致。pinMode(ledpin,OUTPUT);//设置数字13 口为输出接口,Arduino 上我们用到的I/O 口都要进行类似这样的定义。 } void loop() { val=Serial.read();//读取PC 机发送给Arduino 的指令或字符,并将该指令或字符赋给val if(val=='R')//判断接收到的指令或字符是否是“R”。 {//如果接收到的是“R”字符 digitalWrite(ledpin,HIGH);//点亮数字13 口LED。 delay(500); digitalWrite(ledpin,LOW);//熄灭数字13 口LED delay(500);

Arduino入门到精通例程6-按键控制

Arduino 入门到精通例程 6 6按键控制LED实验 I/O 口的意思即为INPUT接口和OUTPUT接口,到目前为止我们设计的小灯 实验都还只是应用到Arduino的I/O 口的输出功能,这个实验我们来尝试一下使用Arduino的I/O 口的输入功能即为读取外接设备的输出值,我们用一个按键和一个LED小灯完成一个输入输出结合使用的实验,让大家能简单了解I/O的作用。按键开关大家都应该比较了解,属于开关量(数字量)元件,按下时为闭合(导通)状态。完成本实验要 用到的元件如下: 按键开关*1 红色M5 直插LED*1 220 Q电阻*1 10K Q电阻*1 面包板*1 面包板跳线*1 扎 我们将按键接到数字7接口,红色小灯接到数字11接口(Arduino控制器0-13数字I/O接口都可以用来接按键和小灯,但是尽量不选择0和1接口,0和1接口为接口功能复用,除I/O 口功能外也是串口通信接口,下载程序时属于与PC 机通信故应保持0和1接口悬空,所以为避免插拔线的麻烦尽量不选用0和1 接口),按下面的原理图连接好电路。下面开始编写程序,我们就让按键按下时小灯亮起,根据前面的学习相信这个程序很容易就能编写出来,相对于前面几个实验这个实验的程序中多加了一条条件判断语句,这里我们使用if 语句,Arduino的程序便写语句是基于C语言的,所以C的条件判断语句自然也适用于Arduino,像while、swich等等。这里根据个人喜好我们习惯于使用简单易于理解的if 语句给大家做演示例程。

我们分析电路可知当按键按下时,数字7 接口可读出为高电平,这时我们使数字11 口输出高电平可使小灯亮起,程序中我们判断数字7 口是否为低电平,要为低电平使数字11 口输出也为低电平小灯不亮,原理同上。 参考源程序: int ledpin=11;// 定义数字11 接口 int inpin=7;// 定义数字7 接口 int val;// 定义变量val void setup(){pi nM ode(ledpi n,0 UTPUT);// 定义小灯接口为输出接口 pinMode(inpin,INPUT);〃定义按键接口为输入接口}void loop(){val=digitalRead(inpin);〃读取数字7 口电平值赋给val if(val==LOW)〃检测按键是否按下,按键按下时小灯亮起 { digitalWrite(ledpin,LOW);} else { digitalWrite(ledp in ,HIGH);}}下载完程序我们本次的小灯配合按键的实验就完 成了,本实验的原理很简单,广泛被用于各种电路和电器中,实际生活中大家也不难在各种设备上发现,例如大家的手机当按下任一按键时背光灯就会亮起,这就是典型应用了,下面一个实验就是一个最简单的生活中应用实例--------------- 抢答器。

arduino从零开始学

第1章进入Arduino的世界 欢迎来到Arduino的世界!Arduino是一个开源的开发平台,在全世界范围内成千上万的人正在用它开发制作一个又一个电子产品,这些电子产品包括从平时生活的小物件到时下流行的3D打印机,它降低了电子开发的门槛,即使是从零开始的入门者也能迅速上手,制作有趣的东西,这便是开源Arduino的魅力。通过本书的介绍,读者对Arduino会有一个更全面的认识。 本章知识点: Arduino的起源与发展 Arduino的特点 Arduino开发板简介 Arduino的未来展望 什么是Arduino 什么是Arduino相信很多读者会有这个疑问,也需要一个全面而准确的答案。不仅是读者,很多使用Arduino的人也许对这个问题都难以给出一个准确的说法,甚至认为手中的开发板就是Arduino,其实这并不准确。那么,Arduino究竟该如何理解呢

1.1.1 Arduino不只是电路板 Arduino是一种开源的电子平台,该平台最初主要基于AVR单片机的微控制器[1]和相应的开发软件,目前在国内正受到电子发烧友的广泛关注。自从2005年Arduino腾空出世以来,其硬件和开发环境一直进行着更新迭代。现在Arduino已经有将近十年的发展历史,因此市场上称为Arduino 的电路板已经有各式各样的版本了。Arduino开发团队正式发布的是Arduino Uno和Arduino Mega 2560,如图1-1和图1-2所示。 图1-1 Arduino Uno R3 图1-2 Arduino Mega 2560 R3 图1-1和图1-2所示的开发板就是所谓的Arduino I/O印刷电路 板(Printed Circuit Board, PCB)。 Arduino项目起源于意大利,该名字在意大利是男性用名,音译为“阿尔杜伊诺”,意思为“强壮的朋友”,通常作为专有名词,在拼写时首字母需要大写。其创始团队成员包括:Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti 6人。Arduino的出现并不是偶然,Arduino最初是为一些非电子工程专业的学生 [1] 关于AVR单片机的内容会在第3章进行介绍。

Arduino 入门到精通 例程16-数码管

Arduino 入门到精通例程16 数码管显示实验 数码管是一种常见的普遍的显示数字的显示器件,日常生活中例如:电磁炉,全自动洗衣机,太阳能水温显示,电子钟…..等等数不甚数。说以掌握数码管的显示原理,是很有必要的。 数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示),本实验所使用的是八段数码管。按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM 接到地线GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

数码管的每一段是由发光二极管组成,所以在使用时跟发光二极管一样,也要连接限流电阻,否则电流过大会烧毁发光二极管的。本实验用的是共阴极的数码管,共阴数码管在应用时应将公共极接到GND,当某一字段发光二极管的阳极为低电平时,相应字段就点熄灭。当某一字段的阳极为高电平时,相应字段就点亮。介绍完原理, 我们开始准备实验用元器件。 八段数码管*1 220Ω直插电阻*8 面包板*1 面包板跳线*1 扎 我们参考实物连接图按原理图连接好电路。

数码管共有七段显示数字的段,还有一个显示小数点的段。当让数码管显示数字时,只要将相应的段点亮即可。例如:让数码管显示数字1,则将b、c 段点亮即可。将每个数字写成一个子程序。在主程序中每隔2s 显示一个数字,让数码管循环显示1~8 数字。每一个数字显示的时间由延时时间来决定,时间设置的大些,显示的时间就长些,时间设置的小些,显示的时间就短。 参考程序源代码: //设置控制各段的数字IO 脚

林锋教你一步一步玩机器人(arduino)--制作篇(入门组件A)

林锋教你一步一步玩机器人(arduino)系列 ------制作篇 (入门组件上) ----- 张林锋/文 2012-5-28

目录 1 前言 (3) 2. 准备工作 (3) 2.1 元器件准备工作 (3) 2.2 实验板子准备 (4) 3 LED 实验 (5) 4 蜂鸣器实验 (7) 5.按键实验 (9) 6 8*8点阵实验 (11) 7 串口实验 (12) 8 模拟量输入(电压输入) (16) 9 直流电机控制(L298N驱动模块) (18) 10 PMW 脉冲宽度调试 (21) 11 控制舵机 (22) 12 超声波模块 (23) 13 巡线防跌模块 (26) 14 红外遥控 (27) 说明 写这系列文章主要目的是和读者一同分享下自己的学习过程,也希望能给读者带来一些帮助,文章部分内容剪裁网络文章,部分自己撰写。文章内容用于爱好者之间学习,不得用于商业目的。当然笔者才疏学浅,所书内容难免有缺点和漏洞,还请读者多多海涵,希望能和广大电子爱好者交流心得。 本人QQ:65198204 邮箱:65198024@https://www.360docs.net/doc/e913557092.html, 博客:https://www.360docs.net/doc/e913557092.html,/u/2775824690

1 前言 在淘宝买的Arduino 主板套件终于在26号到了,物流也太慢了,发了4天才到。套件包含:4轮小车,Arduino MEGA 2560 主板,配套的MEGA Sensor Shield V2.0扩展板,超声波模块,红外遥控模块,寻线防跌模块,舵机。套件是在27°寒语电子工作室(https://www.360docs.net/doc/e913557092.html,/)买的,也就是科易互动科技的子站(https://www.360docs.net/doc/e913557092.html,/)。 备注一下:套件性价比很高,也有配套的相关资料,不过个人觉得配套资料写的不够详细和全面,对于新手制作会带来很多不便。 在制作篇系列文章中,我会对入门组件的应用,以及4轮小车套件的制作,做出详细的制作流程,图文并茂。相信会对新手入门带来一定收获。 读者在做本文章实验时可以结合阅读我的相关入门知识文章,基本篇,硬件篇,软件篇。 制作篇分:入门上篇:主要介绍一些基础配件,以及小车所要用的器件。 4轮小车篇:主要介绍小车制作全过程。 入门下篇:主要介绍一些其他外围器件应用。比如:1602,12864液晶应用,时钟模块应用等。 4轮小车改造篇:加入自己的一些元素。 2. 准备工作 2.1 元器件准备工作 本篇实验器件所用到的元器件如下:(1)发光二极管(2)蜂鸣器(3)按键(4)可变电阻(5)8*8点阵(6)串口(7)直流电机(8)伺服电机(9)超声波模块(10)寻线防跌模块(11)红外遥控。 下面给我的全家福来个图,呵呵。

Arduino入门到精通例程20

1602液晶實驗 本次試驗使用arduino直接驅動1602液晶顯示文字 1602液晶在應用中非常廣泛,最初的1602液晶使用的是HD44780控制器,現在各個廠家的1602模塊基本上都是採用了與之兼容的IC,所以特性上基本都是一致的。 1602LCD主要技術參數 顯示容量為16×2個字符; 晶片工作電壓為4.5~5.5V; 工作電流為2.0mA(5.0V); 模組最佳工作電壓為5.0V; 字符尺寸為2.95×4.35(W×H)mm。 1602液晶接腳定義 接腳說明: 1、兩組電源一組是模塊的電源一組是背光板的電源一般均使用5V供電。本次試驗背光使用3.3V供電也可以工作。 2、VL是調節對比度的引腳,串聯不大於5KΩ的電位器進行調節。本次實驗使用1KΩ的電阻來設定對比度。其連接分高電位與低電位接法,本次使用低電位接法,串聯1KΩ電阻後接GND。 3、RS 是很多液晶上都有的引腳是命令/數據選擇引腳該腳電平為高時表示將進行數據操作;為低時表示進行命令操作。 4、RW 也是很多液晶上都有的引腳是讀寫選擇端該腳電平為高是表示要對液晶進行讀操作;為低時表示要進行寫操作。 5、E 同樣很多液晶模塊有此引腳通常在總線上信號穩定後給一正脈衝通知把數據讀走,在此腳為高電平的時候總線不允許變化。 6、D0—D7 8 位雙向並行總線,用來傳送命令和數據。

7、BLA是背光源正極,BLK是背光源負極。1602液晶的基本操作分以下四種: 下圖就是1602液晶實物圖

1602直接與arduino通信,根據產品手冊描述,分8位連接法與4位連接法,咱們先使用8位連接法進行實驗。硬件連接方式如下圖

Arduino智能避障小车避障程序

Arduino智能避障小车避障程序 首先建立一个名为modulecar.ino的主程序。 // modulecar.ino,玩转智能小车主程序 #include //导入舵机库 #include //导入NwePing库 // 对照系统配线方案依次指定各I/O const int ENA = 3 ; //左电机PWM const int IN1 = 4 ; //左电机正 const int IN2 = 5 ; //左电机负 const int ENB = 6 ; //右电机PWM const int IN3 = 7 ; //右电机正 const int IN4 = 8 ; //右电机负 const int trigger = 9 ; //定义超声波传感器发射脚为D9 const int echo = 10 ; //定义传感器接收脚为D10 const int max_read = 300; //设定传感器最大探测距离。 int no_good = 35; //*设定35cm警戒距离。 int read_ahead; //实际距离读数。 Servo sensorStation; //设定传感器平台。 NewPing sensor(trigger, echo, max_read); //设定传感器引脚和最大读数//系统初始化 void setup() { Serial.begin(9600); //启用串行监视器可以给调试带来极大便利 sensorStation.attach(11); //把D11分配给舵机

pinMode(ENA, OUTPUT); //依次设定各I/O属性 pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(ENB, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); pinMode(trigger, OUTPUT); pinMode(echo, INPUT); sensorStation.write(90); //舵机复位至90? delay(6000); //上电等待6s后进入主循环 } //主程序 void loop() { read_ahead = readDistance(); //调用readDistance()函数读出前方距离Serial.println("AHEAD:"); Serial.println(read_ahead); //串行监视器显示机器人前方距离 if (read_ahead < no_good) //如果前方距离小于警戒值 { fastStop(); //就令机器人紧急刹车 waTch(); //然后左右查看,分析得出最佳路线 goForward(); //*此处调用看似多余,但可以确保机器人高速运转下动作的连贯性 }

arduino小程序

点亮LED constint LED=9; void setup() { pinMode(LED,OUTPUT); digitalWrite(LED,HIGH); // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: } LED闪烁可变 constint LED=9; void setup() { pinMode(LED,OUTPUT); // put your setup code here, to run once: } void loop()

{ for(inti=100;i<=1000;i=i+100) { digitalWrite(LED,HIGH); delay(i); digitalWrite(LED,LOW); delay(i);} // put your main code here, to run repeatedly: } 呼吸灯逐渐变亮逐渐熄灭 constint LED=9; void setup() { pinMode(LED,OUTPUT); // put your setup code here, to run once: } void loop() { for(inti=0;i<256;i++) {

analogWrite(LED,i); delay(10);} for(inti=255;i>=0;i--) { analogWrite(LED,i); delay(10);} } 按键数字控制 constint LED=9; constint BUTTON=2; void setup() { pinMode(LED,OUTPUT); pinMode(LED,INPUT); // put your setup code here, to run once: } void loop() { if(digitalRead(BUTTON)==LOW) {digitalWrite(LED,LOW); } else

十个中文例程教会你轻松上手制作Arduino智能小车

十个中文例程教会你轻松上手制作Arduino智能小车 Arduino简介 Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的arduino 板)和软件(arduino IDE)。适用于艺术家、设计师、爱好者和对于“互动”有兴趣的朋友们。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器对Arduino的编程是利用Arduino编程语言(基于Wiring)和Arduino开发环境(based on Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信(比如Flash, Processing, MaxMSP)来实现。 你可以自己自己动手制作,也可以购买成品套装;Arduino所使用到的软件都可以免费下载。硬件参考设计(CAD 文件)也是遵循availableopen-source协议, 你可以非常自由地根据你自己的要求去修改他们。 本文精选了Arduino教程、例程、设计案例,集结了国内外官方资料和资深工程师的经验,是学习AArduino的必备宝典。 小车、机器人篇 1、Arduino互动玩偶BOXZ 此设计制作在2013年Atmel AVR英雄视频大赛中荣获奖励,并且参与了2014的深圳制汇节。BOXZ,昵称盒仔,其创意始于2012年6月初。当时的想法是设计一款基于Arduino 的入门级机器人,可以和三五好友在有限的空间里进行踢足球等互动,而且要做到取材容易制作简单,在设计的上采用了模块化的接插结构,同时还要注重外观拥有个性。 2、基于Arduino的自平衡遥控小车 车模平衡控制也是通过负反馈来实现的。因为车模有两个轮子着地,车体只会在轮子滚动的方向上发生倾斜。控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体平衡了。 3 当自家的遥控蓝牙小车坏掉的时候不是只能扔掉,作为创客不但要学会制造东西,更要学会修理东西,来看看这位创客是如何修理他的小车的吧!小车采用大电流MOSFET做的电机驱动驱动电机,用Atmega328单片机作为主控,读取航模遥控器(天六A 2.4G)的PWM 信号,然后电机驱动板,转向舵机直接接到航模遥控器的横滚通道控制转向,用天六的第5通道(开关通道)选择前进还是后退 4、基于Arduino的盒子遥控机器人 BOXZ,昵称盒仔。是一款开源的互动娱乐平台!我们将Arduino,亚克力板和纸模型创意的结合在一起,让大家可以快速搭建自己的遥控玩偶,开展互动体验,而它的组装就像搭乐高积木一样简单!而盒仔的外形和功能完全取决于您的创意。我们可以用它来搞足球比赛,角色扮演,赛车或对战,甚至拍MV!

Arduino 入门到精通 例程16-四位数码管

Arduino 入门到精通例程16 这次我们进行的实验是使用arduino驱动一块共阳四位数码管。驱动数码管限流电阻肯定是必不可少的,限流电阻有两种接法,一种是在d1-d4阳极接,总共接4颗。这种接法好处是需求电阻比较少,但是会产生每一位上显示不同数字亮度会不一样,1最亮,8最暗。另外一种接法就是在其他8个引脚上接,这种接法亮度显示均匀,但是用电阻较多。本次实验使用8颗220Ω电阻(因为没有100Ω电阻,所以使用220Ω的代替,100欧姆亮度会比较高)。 4位数码管总共有12个引脚,小数点朝下正放在面前时,左下角为1,其他管脚顺序为逆时针旋转。左上角为最大的12号管脚。

下图为数码管的说明手册

下面是硬件连接图 ARDUINO CODECOPY

1.//设置阴极接口 2.int a = 1; 3.int b = 2; 4.int c = 3; 5.int d = 4; 6.int e = 5; 7.int f = 6; 8.int g = 7; 9.int p = 8; 10.//设置阳极接口 11.int d4 = 9; 12.int d3 = 10; 13.int d2 = 11; 14.int d1 = 12; 15.//设置变量 16.long n = 0; 17.int x = 100; 18.int del = 55; //此处数值对时钟进行微调 19. 20.void setup() 21.{ 22.pinMode(d1, OUTPUT); 23.pinMode(d2, OUTPUT); 24.pinMode(d3, OUTPUT); 25.pinMode(d4, OUTPUT); 26.pinMode(a, OUTPUT); 27.pinMode(b, OUTPUT); 28.pinMode(c, OUTPUT); 29.pinMode(d, OUTPUT); 30.pinMode(e, OUTPUT); 31.pinMode(f, OUTPUT); 32.pinMode(g, OUTPUT); 33.pinMode(p, OUTPUT); 34.} 35. 36.void loop() 37.{ 38. clearLEDs(); 39. pickDigit(1); 40. pickNumber((n/x/1000)%10);

Arduino 入门到精通 例程9-模拟值

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

我们使用的是模拟0 接口。 程序的编写也很简单,一个analogRead();语句就可以读出模拟口的值,Arduino 328是10 位的A/D 采集,所以读取的模拟值范围是0-1023,本个实验的程序里还有一个难点就是显示数值在屏幕这一问题,学习起来也是很简单的。首先我们要在voidsetup()里面设置波特率,显示数值属于Arduino 与PC 机通信,所以Arduino 的波特率应与PC 机软件设置的相同才能显示出正确的数值,否则将会显示乱码或是不显示,在Arduino 软件的监视窗口右下角有一个可以设置波特率的按钮,这里设置的波特率需要跟程序里void setup()里面设置波特率相同,程序设置波特率的语句为Serial.begin();括 号中为波特率的值。其次就是显示数值的语句了,Serial.print();或者Serial.println();都可以,不同的是后者显示完数值后自动回车,前者不是,更多的关于语句的讲解前面有 介绍这里就不再多说了。

Arduino创意设计全解析

方案版权归爱特梅尔所有,不得转载,违者将追究法律责任 Arduino 创意设计大全 Atmel 最新的创意设计大全,先后奉上上百个创意设计,点亮你的设计之旅!基于AVR单片机的六足机器人、Arduino 互动玩偶BOXZ、智能读写姿势提醒器、基于AVR的无线音乐播放器等等创意DIY的设计制作全解析。 1、基于AVR单片机的六足机器人 本作品以8位AVR单片机ATmega32作为核心控制器,以TI公司生产的大功率集成稳压芯片LMZ12010作为供电系统的核心器件,以嵌入式C语言作为控制算法实现手段,以SolidWorks作为机械结构建模平台,以Altium Designer作为电子电路设计软件,以数控雕刻机作为工具实现机械结构的加工与PCB电路板的制作,初步设计完成了一个以三角步态法作为控制原理的仿生六足机器人。 该机器人功能如下: 1、普通六足蜘蛛和普通螃蟹两种行走模式; 2、红外无线通讯遥控控制; 3、12种仿生运行动作; 4、6种可调节运行速度。 该版本机器人利用定时中断法初步实现了18路舵机的同时控制以及18路舵机的速度调节。针对机器人对供电系统要求较高的特点,本作品设计了一种稳定、简单、可靠的新型电路供电系统。 2、Arduino 互动玩偶BOXZ BOXZ,昵称盒仔,其创意始于2012年6月初。当时的想法是设计一款基于Arduino的入门级机器人,可以和三五好友在有限的空间里进行踢足球等互动,而且要做到取材容易制作简单,在设计的上采用了模块化的接插结构,同时还要注重外观拥有个性。 BOXZ是一个开源的项目,所以大家完全可以自己制作一套独一无二的盒仔。 经过一年多的沉淀,我们的盒仔功能也越来越完善。从简单的入门机器人到现在的互动电子玩偶,材料也由裁切的硬纸板升级到激光切割的亚克力板。不仅如此,我们现在还提供了对传感器的支持,通过扩展不同的声光电传感器可以实现丰富的互动体验。3、智能读写姿势提醒器 这个使用Arduino UNO单片机和Ardublock软件编程来实现,所以很适合非专业的爱好者、中小学生来制作,其原理主要是利用超声波传感器检测头部与书本的距离,通过Led 发光管和报警声音,提醒使用者,及时纠正不良读写姿势,保护眼睛,预防近视。4、基于AVR的无线音乐播放器 本作品名是通过两个模块共同工作来实现无线音乐播放的功能。所含两个模块分别是发送模块和接收模块。 发送端(即发送模块)通过主控制器读取SD卡中储存的音频文件,并通过射频电路发送出去。发送端采用ATmega128作为主控制器,射频电路则使用nRF24L01模块。 接收端(即接收模块)通过射频电路接收由发送端发出的数据,并通过主控制器将数据缓存后,通过脉宽调制(PWM)的形式产生音频,最后经低通滤波处理后输出音频。接收端采用ATmega32作为主控制器,射频电路使用nRF24L01模块。 另外,用户能够从接收端控制音乐的播放,提供暂停、切换曲目等功能并且接收端增加了LCD显示提升用户体验。 5、基于AVR的自平衡遥控小车

Arduino 入门到精通 例程7-抢答器

Arduino 入门到精通例程7 抢答器设计实验 完成上面的实验以后相信已经有很多朋友可以独立完成这个实验了,本实验就是将上面的按键控制小灯的实验扩展成3 个按键对应3 个小灯,占用6 个数字I/O 接口。 原理这里就不多说了同上面实验,下面附上参考原理图和实物连接图。

参考源程序如下:int redled=10; int yellowled=9; int greenled=8; int redpin=7; int yellowpin=6; int greenpin=5; int red; int yellow; int green;

void setup() { pinMode(redled,OUTPUT); pinMode(yellowled,OUTPUT); pinMode(greenled,OUTPUT); pinMode(redpin,INPUT); pinMode(yellowpin,INPUT); pinMode(greenpin,INPUT); } void loop() { red=digitalRead(redpin); if(red==LOW) { digitalWrite(redled,LOW);} else { digitalWrite(redled,HIGH);} yellow=digitalRead(yellowpin); if(yellow==LOW) { digitalWrite(yellowled,LOW);} else { digitalWrite(yellowled,HIGH);} green=digitalRead(greenpin);

Arduino学习笔记葫芦娃

Arduino学习笔记—超简单制作音乐 一曲葫芦娃带你回归美好童年 本文是个人学习心得,供新人参考,老鸟可瞬间飘过。 本文很简单,需要用到的材料:adruino uno一块(其他也可),面保线若干条,蜂鸣器或小喇叭一个(小喇叭更好蜂鸣器要接电阻不然声音有点刺耳) 连接方法如图: 首先讲下简单的乐理知识,知道音乐是怎么演奏出来的自然就可以通过代码来进行编排了。 1.演奏单音符一首乐曲有若干音符组成,一个音符对应一个频率。我们知道到相对应的频

率让arduino输出到蜂鸣器蜂鸣器就会放出相应的声音,这里有个表供大家参考: 2.音符的演奏时间我们知道了音符是如何演奏出来的,下一步就是控制音符的演奏时间。每个音符都会播放一定的时间,这样才能构成一首优美的曲子,而不是生硬的一个调的把所有的音符一股脑的都播放出来。如何确定每个音符演奏的单位时间呢? 我们知道,音符节奏分为一拍、半拍、1/4拍、1/8拍,我们规定一拍音符的时间为1;半拍为0.5;1/4拍为0.25;1/8拍为0.125……,所以我们可以为每个音符赋予这样的拍子播放出来,音乐就成了。 好了我们看看如何将简谱翻译成对应频率和拍子。

以葫芦娃为例: 先看下左上角1=D这里,用的是D调,好那我们就看《音符频率表》中的D行(红色部分), 第一个音符是1 但上面有个点,所以对应的就是589,时间是一拍=1, 第二个音符6(没有点)就是495,时间也是一拍=1, 第三个音符5 即441,因为有下划线所以是半拍=0.5, ……以此类推 第四0这里要注意下,这里是没有声音,但是要是用频率0表示还是会有声音(这个不懂),所以我们用一个很高频率的声音,这样人耳听不到就达到了没有声音的效果,所以频率为-1。拍子=1拍 第五,再接着看到第一句歌词葫芦娃这个娃的音是3—,这表示是两拍,后面每加一个“-”,表示拍子+1(1+1),本例中最多是加到4. 第六,第二句歌词葫芦娃这个娃,3?带个点,点的意思是去3的拍子的一半,即3?的拍子 是1+0.5 第七,大家可能会问那弧线怎么表示,这在音乐中属于连音,我们要表示的话,可以稍微改下连音后面那个音的频率,比如减少或增加一些数值(需自己调试),这样表现会更流畅,但操作上更复杂了,本例没有做连音的处理,大家有兴趣可以自己调整下。 所以说了一大堆,规律就是时间上单个音符没有下划线,就是一拍(1),有下划线是半拍

相关文档
最新文档