[ Ruff 开辟套件 ] Lesson 3 - LCD 抢答器

《[ Ruff 开辟套件 ] Lesson 3 - LCD 抢答器》

第三课 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,驱动版本挑选最新版。

    • 增加赤色大按键;
      《[ Ruff 开辟套件 ] Lesson 3 - LCD 抢答器》

    • 增加蓝色大按键;
      《[ Ruff 开辟套件 ] Lesson 3 - LCD 抢答器》

    • 增加重置按键;
      《[ Ruff 开辟套件 ] Lesson 3 - LCD 抢答器》

  • 向项目中增加名为lcd的 LCD 模块,

    • model 挑选 lcd1602-02,驱动版本挑选最新版。

    • 增加 LCD 模块
      《[ Ruff 开辟套件 ] Lesson 3 - LCD 抢答器》

代码

  • 在编写代码之前须要完成 Ruff 开辟板的设置衔接、硬件连线。假如有疑问人人能够在[第零课]()相识,也能够到这里相识。

  • 想相识 Ruff 运用开辟步骤和模子,能够到这里

初始化

我们起首初始化 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 屏也不会有变化。

    原文作者:Ruff
    原文地址: https://segmentfault.com/a/1190000006885827
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞