IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 用Arduino做了一个lcd显示的家庭或聚会的惩罚小游戏 -> 正文阅读

[嵌入式]用Arduino做了一个lcd显示的家庭或聚会的惩罚小游戏

首先感谢太极创客平台提供的视频讲解和抖音名字不好取的雷老师的视频讲解 通过太极创客猜数字得到的灵感 先上代码

#include <LiquidCrystal_I2C.h> ?

//包含lcd头文件
LiquidCrystal_I2C lcd(0x27,16,2);

//实例化对象为lcd,地址,列,行
int randomNum; ? //声明一个整数变量,随机数
int Time = 0; ? ? ? ?

/*声明一个变量并赋值为零,这个变量是为了按键使用*/

void setup(){
? pinMode(2,INPUT_PULLUP);

?//设置2引脚为输入上拉模式

? ?randomSeed(analogRead(A0)); ?/*生成随机种子,让每次结果不同*/
? Serial.begin(9600);

?/*设置串口速率,这个可以不用,我是为了看看按键情况*/
? lcd.init(); ? ?//初始化lcd
? lcd.backlight(); ? ?//开启lcd背光
? ?}

void loop(){
? ??
? lcd.setCursor(5,0); ??//设置光标位置第6列第一行
? ? /*show the name 第一次按下显示名字,两个if和while是按键消抖的软处理,用time来把控按键次数可循环*/
? if(digitalRead(2) == 0 && Time == 0){
? ? delay(5);
? if(digitalRead(2) == 0 && Time == 0){
? ? ? lcd.clear();
? ? Serial.println(digitalRead(2)); ?//这行可以不写
? ? randomNum=displayrandomNum(1,4);

/*这里调用了displayrandomNum函数,其实也可以写成random(1,4)直接将随机数值赋值给randomNum,按照人数可以修改displayrandomNum中后面的数字,由于名字不onemore所以按照人数加1的数填写最大值就好了,如果加名字请到函数randomName中添加,现在的随机数是1-3,将得到的数赋值给randomNum*/
? ? ? randomName(randomNum);

/*调用randomName并将随机得到的数值作为参数*/
? ? ? Time = 1;
? ? ? while(digitalRead(2) == 0);
? ? ? ? }
? }
? /*show the chengfa 英文惩罚单词太难了哈哈哈 所以就这么写了,同样按键消抖还有time控制按键循环和次数,原理和上面一样,不一样的是👇请看*/
? if(digitalRead(2) == 0 && Time == 1){
? ? delay(5);
? if(digitalRead(2) == 0 && Time == 1){
? ? ? lcd.clear();
? ? Serial.println(digitalRead(2)); ?//这行可以不写
? ? ? randomNum=displayrandomNum(1,5);

/*不一样的在这,现在设定的随机数是1-4 四就是最大数,往后看。因为惩罚现在就有三个,如果随机数是4,那么有机会可以one more一次,也可以自行添加惩罚方式,添加后想着最大数值需要加2,才能有机会onemore,添加惩罚具体看chengfa()函数注释*/
? ? ? chengfa(randomNum);

//调用函数 同上
? ? ? Time = 0;
? ? ? while(digitalRead(2) == 0);
? ? ? ? }
? }
? }
??
int displayrandomNum(int mini,int Max)
//使用调用是给的参数产生随机数,并将值返回 ?
? {
? ? int result;
? ? result=random(mini,Max);
? ? return result;
? ? }
? ??
void randomName(int Num){
? /*将随机的名字显示在屏幕上,如果需要增加人名添加case 4: Name4,case 5: Name5,…别忘了break,名字就不onemore了所以按照人数加1的值填写参数就行*/
? switch(Num)
? {
? ? case 1:lcd.print("Name1");
? ? break;
? ??
? ? case 2:lcd.print("Name2");
? ? break;
? ??
? ? case 3:lcd.print("Name3");
? ? break;
? ??
? ? default:lcd.print("One More");
? ? break;
??
? }
}
??
void chengfa(int iNum){
? /*原理和上一个函数一样,记得要最大数加2才能有onemore,one more直接返回loop()函数,重新按键产生随机名字,也许可以免罚也许还是那个人,哈哈哈*/
? switch(iNum)
? {
? ? case 1:lcd.print("TieTiao");
? ? break;
? ??
? ? case 2:lcd.print("TanNaobeng");
? ? break;

? ? case 3:lcd.print("DunZheWan");
? ? break;
? ??
? ? default:lcd.print("One More");
? ? loop();
? ? break;
??
? }
}

希望这个小程序能给你带来一丝快乐,就这样,如果有错误或更好的代码方式请指出,谢谢阅读。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:31:28  更:2022-10-22 21:31:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 19:45:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码