第三课 LCD 抢答器
谁将上台
LCD 模块
按键模块
你将学会
LCD 模块的低级运用
引见
第一课课后功课“抢答器”人人完成了么?这节课将完成一个带 LCD 屏的抢答器:
LCD 屏初始显现 “Welcome !” 迎接字样;
3秒后,显现“Who faster?”;
按键 A 按下,板载蓝灯(led-b)亮,LCD 屏显现 “Blue faster!” ;
按键 B 按下,板载红灯(led-r)亮,LCD 屏显现 “Red faster!” ;
按键 C 用于重置抢答器,C 键按下,LCD 屏显现 “Who faster?” ;
按键 A 或 B 按下后,直到按下按键 C 重置抢答器,纵然另一按键按下,LCD 屏也不会有变化。
直到显现“Who faster?”,之前按键 A 或 B 按下 LCD 屏也不会有变化。
元件
Ruff 开辟板
大按键模块(3个)
LCD 模块
外设增加
向项目中增加三个大按键模块,
button_r
对应红按键button_b
对应蓝按键button_reset
对应重置按键,
model 都挑选 CK002,驱动版本挑选最新版。增加赤色大按键;
增加蓝色大按键;
增加重置按键;
向项目中增加名为
lcd
的 LCD 模块,model 挑选
lcd1602-02
,驱动版本挑选最新版。增加 LCD 模块
代码
初始化
我们起首初始化 LCD 屏以及抢答标志位:
初始化抢答标志位为 false,该标志位用于掌握是不是许可抢答;
翻开 LCD 屏幕,并打印迎接语;
很短的耽误后,运用
print()
函数在屏幕上打印抢答最先语;设置抢答标志位为 true,许可红蓝两边抢答;
抢答器初始化代码以下:
var r_or_b = false; //抢答标志位 $('#lcd').turnOn(); //翻开 LCD 屏开关 $('#lcd').print('welcome!'); //打印迎接语 setTimeout(function () { $('#lcd').clear(); //延时3s,清空屏幕 $('#lcd').print('Who faster?'); //打印抢答最先语 r_or_b = true; //设置抢答标志位 }, 3000);
能够在这里进一步进修 LCD 模块学问;
抢答
接下来,我们完成抢答。
检测红蓝按键模块的
push
事宜,一旦检测到信号,实行相对应的“行动”函数。行动函数中推断抢答标志位是不是为 true:
假如为 true,
运用
clear()
函数将 LCD 清屏;运用
print()
函数打印“ red win !” 或 “blue win !”;设置抢答标志位为 false,红蓝两边抢答无效。
假如为 false,不举行操纵。
想温习大按键模块的学问,能够前去Ruff-大按键模块。
大按键抢答完成:
//赤色按键抢答 $('#button_r').on('push', function () { if (r_or_b) { $('#lcd').clear(); $('#lcd').print('Red faster!'); r_or_b = false; } }); //蓝色按键抢答 $('#button_b').on('push', function () { if (r_or_b) { $('#lcd').clear(); $('#lcd').print('Blue faster!'); r_or_b = false; } });
重置
抢答器的屡次运用须要将抢答器重置到初始状况。
我们将处理:怎样重置抢答器
检测重置按键模块的
push
事宜,一旦检测到信号,实行相对应的“行动”函数。行动函数中
运用
clear()
函数将 LCD 清屏;运用
print()
函数打印抢答最先语;设置抢答标志位为 true,许可红蓝两边抢答;
抢答器重置完成:
$('#button_reset').on('push', function () { $('#lcd').clear(); $('#lcd').print('Who faster?'); r_or_b = true; } );
末了,
将 初始化、抢答、重置 的完成放在
$.ready
事宜下。
完全代码
'use strict';
$.ready(function (error) {
if (error) {
console.log(error);
return;
}
var r_or_b = false;
$('#lcd').turnOn();
$('#lcd').print('welcome!');
setTimeout(function () {
$('#lcd').clear();
$('#lcd').print('Who faster?');
r_or_b = true;
}, 3000);
$('#button_r').on('push', function () {
if (r_or_b) {
$('#lcd').clear();
$('#lcd').print('Red faster!');
r_or_b = false;
}
});
$('#button_b').on('push', function () {
if (r_or_b) {
$('#lcd').clear();
$('#lcd').print('Blue faster!');
r_or_b = false;
}
});
$('#button_reset').on('push', function () {
$('#lcd').clear();
$('#lcd').print('Who faster?');
r_or_b = true;
});
});
课后练习
为本节课的抢答器到场倒数计时功用,完美成一个有用的抢答器:
LCD 屏初始显现 “Welcome !” 迎接字样;
2秒后显现“Who is the faster?”,
LCD 屏上最先倒数3秒:“3”“2”“1”“GO!!!”;
按键 A 按下,板载蓝灯(led-b)亮,LCD 屏显现 “Blue faster!” ;
按键 B 按下,板载红灯(led-r)亮,LCD 屏显现 “Red faster!” ;
按键 C 用于重置抢答器,C 键按下,
LCD 屏显现 “Who is the faster?”
最先倒数3秒,3秒后A 和 B 按键能够抢答;
按键 A 或 B 按下后,直到按下按键 C 重置抢答器,纵然另一按键按下,LCD 屏也不会有变化。