第二章 LCD液晶显示屏&声控装置&播放音乐&遥控器
这节我将带大家了解亮宁机器人编程的基础部分。
LCD液晶显示屏
LCD液晶显示屏是在实现某种功能和调试中不可缺少的部分,接下来我带大家学习,如何使用LCD液晶显示屏。
首先我们把LCD液晶显示屏插入主板的指定接口,然后接上数据线,打开Arduino输入以下程序。
#include <LNDZ.h>
lc lcd; //声明一个lcd设备
void init()
{
lcd.begin(, );//告诉电脑当前显示器是一行16个字符,2行的规格
lcd.bg(); //开启背光,0则是关闭背光
}
void repeat()
{
lcd.clear();//清屏
lcd.print("Welcome to LCD");//输出内容
delay();//防止闪屏
}
上传程序成功后,你会在机器人的LCD液晶显示器上看到"Welcome to LCD"字样。在这里先和大家讲一下亮宁机器人程序的结构,首先#include<LNDZ.h>是亮宁机器人的标准库,机器会从void init()开始执行程序,执行完后就开始执行void repeat()里面的程序,你可以把这个函数理解为while(1){...}。这就是亮宁机器人程序的基本结构。
声控装置
大家应该都看过楼梯间的声控开关吧,那声控开关到底是采用什么样的原理,下面我来带领大家探究一下。
首先我们还是电脑接上数据线并打开Arduino输入以下程序:
#include <LNDZ.h>
lc lcd;
void init()
{
lcd.begin(, );
lcd.bg();
}
void repeat()
{
int d=sound();//获取声音的值
lcd.clear();
lcd.print(d);
delay();
}
在上传程序成功后你可以看到LCD液晶显示器上会出现一个数字,你试着在主板旁边击掌,显示器上的数值会随着你击掌的声音越大而越小,所以你可以通过值来判断当前的声音大小。
播放音乐
还记得第零章的警报程序吗!仔细研究的同学会发现,机器人发声是因为“beep()”起到的作用。因为“beep(300)”,这个函数的意思是鸣叫300ms;然后“delay(200)”,这个函数的意思是延迟200ms,也就是暂停机器发出声音200ms。你会觉得这个声音很单调乏味,所以下面我来带领大家学习一下亮宁机器人怎么实现音乐的播放。首先我们一起来了解下机器人发声函数的基本用法。
#include <LNDZ.h>
void init()
{
B_start();
tone(,); //括号第一个参数为音符,第二个参数表示停留时间 参数*100ms
tone(,);//11~17表示低音的1~7
tone(,); //21~27表示中音的1~7
tone(,); //31~37表示高音的1~7
}
在学习完发声函数的基本用法后,我们再来用亮宁机器人弹一首《两只老虎》吧!可能有的人会想说,哇就弹《两只老虎》的音乐,音符程序就要写这么多,要是更大的曲子该怎么办呀!现在该发挥你的聪明才智的时候了,下面请看以下的程序代码。
#include <LNDZ.h>
#define YIN 20
double t[][] = {
{, },
{, },
{, },
{, },
{, },
{, },
{, },
{, },
{, },
{, },
{, },
{, },
{, },
{, },
{, 1.5},
{, 1.5},
{, 1.5},
{, 1.5},
{, },
{, },
{, 1.5},
{, 1.5},
{, 1.5},
{, 1.5},
{, },
{, },
{, },
{-, },
{, },
{, },
{-, },
{, }
};
void init()
{
B_start();
for (int i = ; i < ; ++i)
t[i][] = t[i][] + ;
}
void repeat()
{
for (int i = ; i < ; ++i){
tone((int)t[i][], t[i][]);//音符,停留时间*100
}
}
这样写是不是代码量要小很多了!所以程序不要盲目地编写,在写之前要想想怎么“偷懒”哦!
上传完程序,按下开始按钮。你就会听见机器播放《两只老虎》了,是不是很棒。你也可以尝试一下其他音乐。
遥控器
#include <LNDZ.h>
ir ykq;//声明遥控器
der jst;//声明接收器
void init()
{
ykq.start();
B_start();
}
void repeat()
{
if (ykq.decode(&jst)) { //机器收到遥控信号
switch (jst.value) //判断按下哪个键
{
case one:
{
beep();
}
break;
case two:
{
tone(, );
}
break;
case three:
{
tone(, );
}
break;
default:
break;
}
ykq.next();
}
}
程序上传完毕后,用遥控分别按下1,2,3键后,机器会发出不同的声音。通过观察和实验代码,大家应该对遥控器程序的基本使用方法有了一定的了解。不过一定要注意的是:这一段程序一定要放在repeat()里面,因为机器要不停的检测遥控所发出的信号。如果要查找其他的按键名,大家可以打开“亮宁机器人可视化编程系统”查找里面的具体图文模块说明,在可视化编界面里面会告诉你怎么用。
最新文章
- html5上传图片(一)一跨域上传
- 解决:Linux版百度云客户端 BCloud网络错误 问题
- loadrunner录制webservice接口需要用户名密码时的解决方法
- ruby基础语法
- node_nibbler:自定义Base32/base64 encode/decode库
- FusionCharts参数的详细说明和功能特性(转)
- Coursera台大机器学习技法课程笔记02-Dual Support Vector Machine
- Android UI 开发
- QTabWiget Change Color 改变颜色(每个QWidget都有一个自己的调色板palette,设置它的颜色,然后setAutoFillBackground即可)
- UIMenuController,UIPasteboard:复制,粘贴详细解释
- Spark Streaming 调优指南
- 爬虫抓包工具Fiddle设置
- centos7 安装软件指南
- js 取整 取余
- python的小练习
- PHP去调用jenkins
- 【LeetCode每天一题】Median of Two Sorted Arrays(两数组中的中位数)
- jQuery实现点击控制左右两边元素挤压显示效果
- 8.2.1.3 Range 优化
- 又见 tomcat启动startup.bat一闪而过
热门文章
- C语言中typedef的解释_2
- P3166 [CQOI2014]数三角形
- 2016";百度之星"; - 资格赛(Astar Round1)D
- Codeforces 277E
- hdu1698 线段树(区间更新~将区间[x,y]的值替换为z)
- 6	GPath
- CSS background-size contain 与cover的区别
- my02_Atlas mysql5.7安装配置
- 6-----BBS论坛
- spring 事务 @EnableTransactionManagement原理