“(RB-13K023)基于Arduino 互动电子入门套件”的版本间的差异
(以“右 ==产品概述== Arduino互动电子入门套件是哈尔滨奥松机器人科技有限公司专门为Arduino电子爱好者...”为内容创建页面) |
(→硬件连接) |
||
(未显示1个用户的22个中间版本) | |||
第22行: | 第22行: | ||
# 尺寸:75x55x15mm | # 尺寸:75x55x15mm | ||
==Arduino编译环境下载== | ==Arduino编译环境下载== | ||
− | 当前最新版Arduino 1. | + | 当前最新版Arduino 1.7.9 |
− | 下载地址: http://www.arduino. | + | 下载地址: http://www.arduino.org/Software |
+ | |||
==第一个Arduino实验== | ==第一个Arduino实验== | ||
点亮13号引脚的LED灯,持续一秒,然后灭掉,再持续一秒,一直循环。<br\> | 点亮13号引脚的LED灯,持续一秒,然后灭掉,再持续一秒,一直循环。<br\> | ||
第32行: | 第33行: | ||
打开Arduino主程序后,软件会自动识别系统的语言,然后设置开发环境为系统语言,如果需要设置为其他语言同样可以,只要打开:File > Preferences,找到Editor language项,将其设为需要的语言(例如:简体中文),然后关闭Arduino主程序并重新打开,开发环境界面就会变成中文。 | 打开Arduino主程序后,软件会自动识别系统的语言,然后设置开发环境为系统语言,如果需要设置为其他语言同样可以,只要打开:File > Preferences,找到Editor language项,将其设为需要的语言(例如:简体中文),然后关闭Arduino主程序并重新打开,开发环境界面就会变成中文。 | ||
<br> | <br> | ||
− | [[image: | + | [[image:tu3.png|thumb|500px|center|]] |
<br> | <br> | ||
− | [[image: | + | [[image:tu4.png|thumb|700px|center|]] |
<br> | <br> | ||
− | [[image: | + | [[image:tu55.png|thumb|500px|center|]] |
<br> | <br> | ||
+ | |||
===打开LED blink例程=== | ===打开LED blink例程=== | ||
<br> | <br> | ||
打开软件选择文件 - 示例 - 01.Basics - Blink | 打开软件选择文件 - 示例 - 01.Basics - Blink | ||
<br> | <br> | ||
− | [[image: | + | [[image:tu5.png|thumb|500px|center|blink]] |
<br> | <br> | ||
+ | |||
===设置板卡型号=== | ===设置板卡型号=== | ||
Arduino包括多种版本的主控器,其中比较常见的是Uno、Leonardo以及Mega系列的控制器。在软件上点击工具然后在“板”一项下选择相应的型号,这时你需要根据自己的主控硬件的固件类型来选择板卡。(样例中选用的是以Uno为bootloader的控制器)<br\> | Arduino包括多种版本的主控器,其中比较常见的是Uno、Leonardo以及Mega系列的控制器。在软件上点击工具然后在“板”一项下选择相应的型号,这时你需要根据自己的主控硬件的固件类型来选择板卡。(样例中选用的是以Uno为bootloader的控制器)<br\> | ||
工具 - 板 - Arduino Uno | 工具 - 板 - Arduino Uno | ||
<br> | <br> | ||
− | [[image: | + | [[image:tu6.png|thumb|500px|center|]] |
<br> | <br> | ||
+ | |||
===设置串口=== | ===设置串口=== | ||
工具 > 串口 > xx,这里的xx应选择在你的电脑设备管理器中看到的一致。 | 工具 > 串口 > xx,这里的xx应选择在你的电脑设备管理器中看到的一致。 | ||
<br> | <br> | ||
− | [[image: | + | [[image:tu7.png|thumb|500px|center|]] |
<br> | <br> | ||
+ | |||
===下载程序=== | ===下载程序=== | ||
如图,点击验证,程序只进行了验证,而没有下载到控制器中,下载需要再点击上传键;若直接点击上传键,将程序会先进行验证然后直接下载程序到你的Arduino控制板上。 | 如图,点击验证,程序只进行了验证,而没有下载到控制器中,下载需要再点击上传键;若直接点击上传键,将程序会先进行验证然后直接下载程序到你的Arduino控制板上。 | ||
<br> | <br> | ||
− | [[image: | + | [[image:tu8.png|thumb|500px|center|]] |
<br> | <br> | ||
+ | |||
===程序效果=== | ===程序效果=== | ||
程序运行的效果就是:Adruino Uno板载的13号引脚LED灯在闪烁。 | 程序运行的效果就是:Adruino Uno板载的13号引脚LED灯在闪烁。 | ||
第65行: | 第71行: | ||
==Arduino UNO驱动安装== | ==Arduino UNO驱动安装== | ||
[http://www.alsrobot.com.cn/wiki/index.php?title=Arduino%E9%A9%B1%E5%8A%A8%E7%9A%84%E5%AE%89%E8%A3%85 Arduino UNO驱动安装方法]<br/> | [http://www.alsrobot.com.cn/wiki/index.php?title=Arduino%E9%A9%B1%E5%8A%A8%E7%9A%84%E5%AE%89%E8%A3%85 Arduino UNO驱动安装方法]<br/> | ||
+ | ==例程列表== | ||
+ | 基础实验 | ||
+ | * 串口通信控制LED灯实验 | ||
+ | * 智能骰子实验 | ||
+ | * 远红外火焰传感器应用 | ||
+ | * 干簧管控制继电器实验 | ||
+ | * 数字传感器控制流水灯 | ||
+ | * 智能门铃 | ||
+ | * PWM控制LED灯亮度实验 | ||
+ | * 全彩LED模拟呼吸灯实验 | ||
+ | * PWM控制电机转速 | ||
+ | * 红外热释电传感器人体检测报警实验 | ||
+ | * 温度报警器 | ||
+ | * 电子琴 | ||
+ | * 看谁摇的快 | ||
+ | * 指针亮度计 | ||
+ | * 记忆大考验 | ||
+ | * 串行转并行 | ||
+ | * 密码解锁 | ||
+ | 扩展实验 | ||
+ | * “Hello World!”实验 | ||
+ | * 交通灯设计实验 | ||
+ | * 抢答器设计实验 | ||
+ | * 模拟值读取实验 | ||
+ | * 伺服舵机控制实验 | ||
+ | * 红外线通信实验 | ||
+ | |||
==精选例程== | ==精选例程== | ||
− | === | + | ===数字传感器控制流水灯实验=== |
− | + | ====实验简介==== | |
− | ==== | + | 单向倾角开关是一个可以检测倾斜、晃动的特殊开关,本例中使用倾角开关和干簧管作为触发,当两个传感器中任何一个被触发时,6 个LED 都会开始按照顺序闪烁。倾角传感器:倾角传感器是姿态传感器的一种,主要应用在物体状态的水平检测,同样他具备测量角度的大小。目前倾角传感器主要分为几个大类,有单轴倾角传感器和双轴倾角传感器,以及利用倾角传感器原理制作而成的倾角仪。 |
− | * CarDuino UNO R3 控制器×1 | + | |
− | * USB 下载线×1 | + | ====硬件设备==== |
− | * 大面包板×1 | + | *CarDuino UNO R3 控制器×1 |
− | * 跳线若干 | + | *USB 下载线×1 |
− | * | + | *大面包板×1 |
− | * | + | *跳线若干 |
− | ==== | + | *LED灯×6 |
− | + | *470欧姆电阻×8 | |
− | [[image: | + | *干簧管×1 |
− | + | *单向倾角开关×1 | |
− | + | ||
− | + | ====硬件连接==== | |
− | + | 数字传感器控制流水灯实验<br/> | |
− | ==== | + | [[image:tu1.png|thumb|800px|center|]] |
− | + | ||
− | + | ====试验程序==== | |
− | + | /***************************************************************** | |
− | int | + | 奥松机器人RobotBase www.robotbase.cn |
− | void setup() | + | 目的: 数字传感器控制流水灯实验 |
− | { | + | 目标系统: ArduinoUNO R3 控制器 |
− | pinMode( | + | 应用软件: Arduino IDE 1.7.7 |
− | pinMode( | + | 发布时间: 2015-11-19 |
− | pinMode( | + | 说明: 若用于商业用途,请保留此段文字或注明代码来源 |
− | } | + | 哈尔滨奥松机器人科技股份有限公司保留所有版权 |
− | void loop() | + | *****************************************************************/ |
− | { | + | int i,j; //定义变量i |
− | + | void setup() | |
− | { | + | { |
− | for( | + | pinMode(2,INPUT); |
− | { | + | pinMode(3,INPUT); |
− | + | for(j=4;j<=9;j++) | |
− | + | pinMode(j,OUTPUT); | |
− | + | } | |
− | + | void loop() | |
− | { | + | { |
− | + | if (LOW==( digitalRead(2) && digitalRead(3) ) ) | |
− | + | { | |
− | + | for(i=4;i<=9;i++) | |
− | } | + | { |
− | + | digitalWrite(i,HIGH); | |
− | { | + | delay(100); //延时0.1 秒 |
− | + | digitalWrite(i,LOW); | |
− | + | delay(100); //延时0.1 秒 | |
− | for( | + | } |
− | + | } | |
− | + | } | |
− | + | ===密码解锁游戏实验=== | |
− | + | ====实验简介==== | |
− | + | 人们使用的锁具由传统的机械式锁逐渐发展为安全性能更好,功能更多的电子密码锁。密码解锁游戏的原理是通过一个旋转变位器调制出对应的密码,用3 个红色LED显示相应的位,蜂鸣器用于提示操作。 | |
− | + | ====硬件设备==== | |
− | + | *CarDuino UNO R3 控制器×1 | |
− | + | *USB 下载线×1 | |
− | + | *大面包板×1 | |
− | + | *跳线若干 | |
− | { | + | *红色LED×3 |
− | + | *黑色按键×1 | |
− | + | *旋转变位器×1 | |
− | + | *蜂鸣器×1 | |
− | + | *470欧姆电阻×4 | |
− | } | + | ====硬件连接==== |
− | + | 密码解锁游戏实验<br/> | |
− | + | [[image:tu2.png|thumb|500px|center|]] | |
− | + | ====试验程序==== | |
+ | /***************************************************************** | ||
+ | 奥松机器人RobotBase www.robotbase.cn | ||
+ | 目的: 密码解锁游戏实验 | ||
+ | 目标系统: Arduino UNO R3 控制器 | ||
+ | 应用软件: Arduino IDE 1.7.7 | ||
+ | 发布时间: 2015-11-19 | ||
+ | 说明: 若用于商业用途,请保留此段文字或注明代码来源 | ||
+ | 哈尔滨奥松机器人科技股份有限公司保留所有版权 | ||
+ | const int LED1 = 8; | ||
+ | const int LED2 = 9; | ||
+ | const int LED3 = 10; // 三盏LED 代表三个级别 | ||
+ | const int BTN = 11; // 游戏开始按钮和确认按钮 | ||
+ | const int BUZ = 7; // 蜂鸣器给玩家提示 | ||
+ | const int POT = A0; // 通过电位计模拟解锁的感觉 | ||
+ | bool btnState1; | ||
+ | bool btnState2; // 获取按钮按下的状态 | ||
+ | int r; // 单片机生成的随机数 | ||
+ | int answer; // 玩家的回答 | ||
+ | void (*reset)(void) = 0; // 软复位 | ||
+ | // 每一级需要不同的精确度 | ||
+ | bool isOK(int level, int r, int ans) | ||
+ | { | ||
+ | if(level == 0) return r - 2 < ans && ans < r + 2; | ||
+ | if(level == 1) return r - 5 < ans && ans < r + 5; | ||
+ | if(level == 2) return r - 10 < ans && ans < r + 10; | ||
+ | } | ||
+ | void setup() | ||
+ | { | ||
+ | pinMode(LED1, OUTPUT); | ||
+ | pinMode(LED2, OUTPUT); | ||
+ | pinMode(LED3, OUTPUT); | ||
+ | pinMode(BUZ, OUTPUT); | ||
+ | pinMode(BTN, INPUT_PULLUP); | ||
+ | randomSeed(analogRead(A1)); // 随机种子 | ||
+ | } | ||
+ | void loop() | ||
+ | { | ||
+ | // 初始化游戏,关闭小灯和蜂鸣器 | ||
+ | digitalWrite(LED1, LOW); | ||
+ | digitalWrite(LED2, LOW); | ||
+ | digitalWrite(LED3, LOW); | ||
+ | noTone(BUZ); | ||
+ | // 按下按钮后游戏开始,避免直接进入游戏,过于突然 | ||
+ | while(1) | ||
+ | { | ||
+ | btnState1 = digitalRead(BTN); | ||
+ | delay(20); | ||
+ | btnState2 = digitalRead(BTN); | ||
+ | if(btnState1 == HIGH && btnState2 == LOW) break; | ||
+ | } | ||
+ | // 接收玩家的回答并做判断 | ||
+ | for(int level = 0; level < 3; level++) | ||
+ | { | ||
+ | // 生成随机数,使用蜂鸣器做提示 | ||
+ | r = random(0, 1024); | ||
+ | while(1) | ||
+ | { | ||
+ | answer = analogRead(POT); // 不断更新玩家的输入 | ||
+ | tone(BUZ, 2000, abs(r - answer)); // 输入不同,蜂鸣器发声不同 | ||
+ | // level = 0,第一级,范围固定 | ||
+ | // level = 1,第二级,范围匀速变化 | ||
+ | // level = 2,第三级,范围变速变化 | ||
+ | if(level == 0) r = r; | ||
+ | if(level == 1) r = (r+1)%1024; | ||
+ | if(level == 2) r = (r+random(1,6))%1024; | ||
+ | btnState1 = digitalRead(BTN); | ||
+ | delay(20); | ||
+ | btnState2 = digitalRead(BTN); | ||
+ | // 如果玩家按下了确认按钮 | ||
+ | if(btnState1 == HIGH && btnState2 == LOW) | ||
+ | { | ||
+ | // 如果玩家回答正确 | ||
+ | if(isOK(level, r, answer)) | ||
+ | { | ||
+ | // 点亮当前级别的小灯 | ||
+ | digitalWrite(LED1+level, HIGH); | ||
+ | break; | ||
+ | } | ||
+ | else // 如果回答错误 | ||
+ | { | ||
+ | // 直接重启整个游戏 | ||
+ | reset(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | // 游戏结束 | ||
+ | while(1); | ||
+ | } | ||
+ | |||
==产品相关推荐== | ==产品相关推荐== | ||
[[文件:erweima.png|230px|无框|右]] | [[文件:erweima.png|230px|无框|右]] | ||
===产品购买地址=== | ===产品购买地址=== | ||
− | [http://www.alsrobot.cn/goods-33.html 基于Arduino互动电子套件]<br/> | + | [http://www.alsrobot.cn/goods-33.html 基于Arduino互动电子套件] |
+ | <br/> | ||
===周边产品推荐=== | ===周边产品推荐=== | ||
[https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-3667083713.28.MeNSvA&id=42985520176 动手玩儿转Arduino]<br/> | [https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-3667083713.28.MeNSvA&id=42985520176 动手玩儿转Arduino]<br/> | ||
[https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-11173207995.2.4wiPAp&id=521309959403 基于Arduino魔法书互动套件]<br/> | [https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-11173207995.2.4wiPAp&id=521309959403 基于Arduino魔法书互动套件]<br/> | ||
===相关问题解答=== | ===相关问题解答=== | ||
− | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=337&extra=page%3D1 Arduino 驱动安装失败?最全的解决办法]<br/> | + | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=337&extra=page%3D1 Arduino 驱动安装失败?最全的解决办法] |
+ | <br/> | ||
[http://www.makerspace.cn/forum.php?mod=viewthread&tid=5284&fromuid=10780 如何利用Xbee模块实现两个Arduino UNO控制器的通信]<br/> | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=5284&fromuid=10780 如何利用Xbee模块实现两个Arduino UNO控制器的通信]<br/> | ||
===相关学习资料=== | ===相关学习资料=== |
2016年5月3日 (二) 16:08的最后版本
目录 |
产品概述
Arduino互动电子入门套件是哈尔滨奥松机器人科技有限公司专门为Arduino电子爱好者精心打造的一款适合电子类专业学生学习的入门套件。即使你没有学过电子电 路相关知识,也可以按照手册讲解一步步完成每个设计实验,在整个实验的过程中,你只需在面包板上通过跳线插拔连接元件,无须使用电烙铁焊接,避免了初学者 焊接元件浪费原料不环保的习惯。爱上Arduino互动入门套件是哈尔滨奥松机器人科技有限公司专门为Arduino爱好者精心打造的一款入门学习套件,此套件完全按照《爱上Arduino》(Arduino创始人所著《Getting Started with Arduino》中文译著)一书内容配置,除了书中涉及到的基本元件外,还增加了扩展讲解部分中的直流电机、风扇、干簧管、磁钢、倾角传感器、红外热释电传感器等。即使你没有学过电子电路相关知识,也可以按照中文教材书籍讲解一步步完成每个实验操作,在整个实验的过程中,你只需在面包板上通过跳线插拔连接元件,无须使用电烙铁焊接,避免了初学者焊接元件浪费原料不环保的习惯。本套件除基本入门操作讲解外,还附带18节实验课程,这部分课程完全考虑初学者学习兴趣,由易到难,循序渐进,精心编排,每个实验均配有电路图、元件插接图,实验详细说明和具有功能注释的例子程序。打好学习基础,启发创新思维,领悟开源创意文化,这款套件是你走进Arduino电子世界的必备之选。
主控器技术参数
- 主控器:Carduino UNO R3
- 微处理器:ATmega328
- Flash 内存:32 KB (ATmega328 其中0.5 KB 用于引导程序)
- 工作电压:5V
- 输入电压:接上USB 时无须外部供电或外部7V~12V DC 输入
- 输出电压:5V DC 输出和3.3V DC 输出和外部电源输入
- 时钟频率:16 MHz
- 输入电压:7-12V(推荐)
- 输入电压:6-20V(限制)
- 支持USB 接口协议及供电(不需外接电源)
- 支持ISP 下载功能
- 数字I/O 端口:14(6 个PWM 输出口)
- 模拟输入端口:6
- 直流电流:40mA(I/O 端口)
- 直流电流:50mA(3.3V 端口)
- EEPROM:1 KB (ATmega328)
- SRAM:2 KB (ATmega328)
- 尺寸:75x55x15mm
Arduino编译环境下载
当前最新版Arduino 1.7.9 下载地址: http://www.arduino.org/Software
第一个Arduino实验
点亮13号引脚的LED灯,持续一秒,然后灭掉,再持续一秒,一直循环。
在这第一个实验中,我们假设读者使用控制器的型号是Arduino UNO,并获取了Arduino开发环境,而且已经安装了USB驱动。
连接Arduino控制板和电脑
将USB线一端插在Arduino控制板上,一端插在电脑的USB接口上。(独立工作时Arduino控制板可以选择从USB供电, 也可以选择由电源适配器供电)
设置Arduino开发环境语言
打开Arduino主程序后,软件会自动识别系统的语言,然后设置开发环境为系统语言,如果需要设置为其他语言同样可以,只要打开:File > Preferences,找到Editor language项,将其设为需要的语言(例如:简体中文),然后关闭Arduino主程序并重新打开,开发环境界面就会变成中文。
打开LED blink例程
打开软件选择文件 - 示例 - 01.Basics - Blink
设置板卡型号
Arduino包括多种版本的主控器,其中比较常见的是Uno、Leonardo以及Mega系列的控制器。在软件上点击工具然后在“板”一项下选择相应的型号,这时你需要根据自己的主控硬件的固件类型来选择板卡。(样例中选用的是以Uno为bootloader的控制器)
工具 - 板 - Arduino Uno
设置串口
工具 > 串口 > xx,这里的xx应选择在你的电脑设备管理器中看到的一致。
下载程序
如图,点击验证,程序只进行了验证,而没有下载到控制器中,下载需要再点击上传键;若直接点击上传键,将程序会先进行验证然后直接下载程序到你的Arduino控制板上。
程序效果
程序运行的效果就是:Adruino Uno板载的13号引脚LED灯在闪烁。
Arduino UNO驱动安装
例程列表
基础实验
- 串口通信控制LED灯实验
- 智能骰子实验
- 远红外火焰传感器应用
- 干簧管控制继电器实验
- 数字传感器控制流水灯
- 智能门铃
- PWM控制LED灯亮度实验
- 全彩LED模拟呼吸灯实验
- PWM控制电机转速
- 红外热释电传感器人体检测报警实验
- 温度报警器
- 电子琴
- 看谁摇的快
- 指针亮度计
- 记忆大考验
- 串行转并行
- 密码解锁
扩展实验
- “Hello World!”实验
- 交通灯设计实验
- 抢答器设计实验
- 模拟值读取实验
- 伺服舵机控制实验
- 红外线通信实验
精选例程
数字传感器控制流水灯实验
实验简介
单向倾角开关是一个可以检测倾斜、晃动的特殊开关,本例中使用倾角开关和干簧管作为触发,当两个传感器中任何一个被触发时,6 个LED 都会开始按照顺序闪烁。倾角传感器:倾角传感器是姿态传感器的一种,主要应用在物体状态的水平检测,同样他具备测量角度的大小。目前倾角传感器主要分为几个大类,有单轴倾角传感器和双轴倾角传感器,以及利用倾角传感器原理制作而成的倾角仪。
硬件设备
- CarDuino UNO R3 控制器×1
- USB 下载线×1
- 大面包板×1
- 跳线若干
- LED灯×6
- 470欧姆电阻×8
- 干簧管×1
- 单向倾角开关×1
硬件连接
数字传感器控制流水灯实验
试验程序
/***************************************************************** 奥松机器人RobotBase www.robotbase.cn 目的: 数字传感器控制流水灯实验 目标系统: ArduinoUNO R3 控制器 应用软件: Arduino IDE 1.7.7 发布时间: 2015-11-19 说明: 若用于商业用途,请保留此段文字或注明代码来源 哈尔滨奥松机器人科技股份有限公司保留所有版权 *****************************************************************/ int i,j; //定义变量i void setup() { pinMode(2,INPUT); pinMode(3,INPUT); for(j=4;j<=9;j++) pinMode(j,OUTPUT); } void loop() { if (LOW==( digitalRead(2) && digitalRead(3) ) ) { for(i=4;i<=9;i++) { digitalWrite(i,HIGH); delay(100); //延时0.1 秒 digitalWrite(i,LOW); delay(100); //延时0.1 秒 } } }
密码解锁游戏实验
实验简介
人们使用的锁具由传统的机械式锁逐渐发展为安全性能更好,功能更多的电子密码锁。密码解锁游戏的原理是通过一个旋转变位器调制出对应的密码,用3 个红色LED显示相应的位,蜂鸣器用于提示操作。
硬件设备
- CarDuino UNO R3 控制器×1
- USB 下载线×1
- 大面包板×1
- 跳线若干
- 红色LED×3
- 黑色按键×1
- 旋转变位器×1
- 蜂鸣器×1
- 470欧姆电阻×4
硬件连接
密码解锁游戏实验
试验程序
/***************************************************************** 奥松机器人RobotBase www.robotbase.cn 目的: 密码解锁游戏实验 目标系统: Arduino UNO R3 控制器 应用软件: Arduino IDE 1.7.7 发布时间: 2015-11-19 说明: 若用于商业用途,请保留此段文字或注明代码来源 哈尔滨奥松机器人科技股份有限公司保留所有版权 const int LED1 = 8; const int LED2 = 9; const int LED3 = 10; // 三盏LED 代表三个级别 const int BTN = 11; // 游戏开始按钮和确认按钮 const int BUZ = 7; // 蜂鸣器给玩家提示 const int POT = A0; // 通过电位计模拟解锁的感觉 bool btnState1; bool btnState2; // 获取按钮按下的状态 int r; // 单片机生成的随机数 int answer; // 玩家的回答 void (*reset)(void) = 0; // 软复位 // 每一级需要不同的精确度 bool isOK(int level, int r, int ans) { if(level == 0) return r - 2 < ans && ans < r + 2; if(level == 1) return r - 5 < ans && ans < r + 5; if(level == 2) return r - 10 < ans && ans < r + 10; } void setup() { pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); pinMode(BUZ, OUTPUT); pinMode(BTN, INPUT_PULLUP); randomSeed(analogRead(A1)); // 随机种子 } void loop() { // 初始化游戏,关闭小灯和蜂鸣器 digitalWrite(LED1, LOW); digitalWrite(LED2, LOW); digitalWrite(LED3, LOW); noTone(BUZ); // 按下按钮后游戏开始,避免直接进入游戏,过于突然 while(1) { btnState1 = digitalRead(BTN); delay(20); btnState2 = digitalRead(BTN); if(btnState1 == HIGH && btnState2 == LOW) break; } // 接收玩家的回答并做判断 for(int level = 0; level < 3; level++) { // 生成随机数,使用蜂鸣器做提示 r = random(0, 1024); while(1) { answer = analogRead(POT); // 不断更新玩家的输入 tone(BUZ, 2000, abs(r - answer)); // 输入不同,蜂鸣器发声不同 // level = 0,第一级,范围固定 // level = 1,第二级,范围匀速变化 // level = 2,第三级,范围变速变化 if(level == 0) r = r; if(level == 1) r = (r+1)%1024; if(level == 2) r = (r+random(1,6))%1024; btnState1 = digitalRead(BTN); delay(20); btnState2 = digitalRead(BTN); // 如果玩家按下了确认按钮 if(btnState1 == HIGH && btnState2 == LOW) { // 如果玩家回答正确 if(isOK(level, r, answer)) { // 点亮当前级别的小灯 digitalWrite(LED1+level, HIGH); break; } else // 如果回答错误 { // 直接重启整个游戏 reset(); } } } } // 游戏结束 while(1); }
产品相关推荐
产品购买地址
周边产品推荐
相关问题解答
Arduino 驱动安装失败?最全的解决办法
如何利用Xbee模块实现两个Arduino UNO控制器的通信
相关学习资料
爱上Arduino与爱上Processing的互动视频教程
火焰传感器使用演示视频
电压传感器使用演示视频
奥松机器人技术论坛