first commit
This commit is contained in:
1
代码案例/.pydio
Normal file
1
代码案例/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
1c6699e5-965e-4657-8bec-f0a7fbade14f
|
||||
1
代码案例/6 Arduino基础学习/.pydio
Normal file
1
代码案例/6 Arduino基础学习/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
20ca03df-fee0-4398-bad8-eb6edc015a57
|
||||
1
代码案例/6 Arduino基础学习/14 数字输入(2) – 按键开关控制/.pydio
Normal file
1
代码案例/6 Arduino基础学习/14 数字输入(2) – 按键开关控制/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
3429dc01-405f-49e4-9f33-4daae2dd83a0
|
||||
@@ -0,0 +1 @@
|
||||
d9c07498-b7dc-45c0-918c-c204eb375deb
|
||||
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
DigitalReadSerial
|
||||
Reads a digital input on pin 2, prints the result to the serial monitor
|
||||
读取引脚2的数字输入,将结果显示在串口监视器中
|
||||
|
||||
This example code is in the public domain.
|
||||
*/
|
||||
|
||||
// digital pin 2 has a pushbutton attached to it. Give it a name:
|
||||
//引脚2连接有按键开关,给它一个名字:
|
||||
int pushButton = 2;
|
||||
|
||||
// the setup routine runs once when you press reset:
|
||||
//当你按下复位按钮后,setup流程运行一次:
|
||||
void setup() {
|
||||
// initialize serial communication at 9600 bits per second:
|
||||
//串口通讯初始化,每秒9600位
|
||||
Serial.begin(9600);
|
||||
// make the pushbutton's pin an input:
|
||||
//设置按键引脚为输入
|
||||
pinMode(pushButton, INPUT);
|
||||
}
|
||||
|
||||
// the loop routine runs over and over again forever:
|
||||
// loop 流程会永远的反复运行
|
||||
void loop() {
|
||||
// read the input pin:
|
||||
//读取输入引脚:
|
||||
int buttonState = digitalRead(pushButton);
|
||||
// print out the state of the button:
|
||||
// 显示按键状态
|
||||
Serial.println(buttonState);
|
||||
delay(1); // delay in between reads for stability 为确保程序稳定运行进行短暂停止
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/15 逻辑控制(1) – 按键开关控制LED/.pydio
Normal file
1
代码案例/6 Arduino基础学习/15 逻辑控制(1) – 按键开关控制LED/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
18119106-3ec7-4b37-bb21-a7b6d0cc1df5
|
||||
@@ -0,0 +1 @@
|
||||
3fdd9f7e-f0b4-4253-bfee-5694844a9991
|
||||
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
Input Pullup Serial
|
||||
|
||||
本示例展示如何使用pinMode(INPUT_PULLUP)。通过本程序,Arduino将读取引脚2
|
||||
的数字输入并将结果显示在串口监视器中。
|
||||
|
||||
电路:
|
||||
* 引脚2连接轻触开关,开关另一端接地
|
||||
* 引脚13上安装有开发板内置LED
|
||||
|
||||
与使用pinMode(INPUT)不同,我们在使用pinMode(INPUT_PULLUP)时不需要外接上拉或下拉电阻。
|
||||
开发板内置一个20K欧姆电阻,该电阻将引脚上拉到5V。开关在打开时,引脚读取到高电平。开关闭合后,引脚读取到低电平。
|
||||
|
||||
created 14 March 2012
|
||||
by Scott Fitzgerald
|
||||
http://www.arduino.cc/en/Tutorial/InputPullupSerial
|
||||
This example code is in the public domain
|
||||
|
||||
本示例程序的注释文字中文翻译由太极创客提供
|
||||
|
||||
www.taichi-maker.com
|
||||
*/
|
||||
|
||||
void setup() {
|
||||
//开始串口通讯
|
||||
Serial.begin(9600);
|
||||
//将引脚2设置为输入上拉模式
|
||||
pinMode(2, INPUT_PULLUP);
|
||||
pinMode(13, OUTPUT);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
//将开关状态数值读取到变量中
|
||||
int sensorVal = digitalRead(2);
|
||||
//输出开关状态数值
|
||||
Serial.println(sensorVal);
|
||||
|
||||
//请留意在上拉模式下,按钮的逻辑状态是反的。
|
||||
//即:开关断开时引脚读取到高电平。开关被按下后引脚读取到低电平。
|
||||
//按钮被按下后,引脚13连接的LED将被点亮。按钮没有按下时,LED熄灭。
|
||||
|
||||
//如果按钮没有按下,熄灭LED。否则,点亮LED
|
||||
|
||||
if (sensorVal == HIGH) { //按钮没有按下
|
||||
digitalWrite(13, LOW); //熄灭LED
|
||||
} else { //否则
|
||||
digitalWrite(13, HIGH); //点亮LED
|
||||
}
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/16 逻辑控制(2) – 布尔变量/.pydio
Normal file
1
代码案例/6 Arduino基础学习/16 逻辑控制(2) – 布尔变量/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
4ce1f3c4-b947-433a-9af5-d19c32827057
|
||||
1
代码案例/6 Arduino基础学习/16 逻辑控制(2) – 布尔变量/bool/.pydio
Normal file
1
代码案例/6 Arduino基础学习/16 逻辑控制(2) – 布尔变量/bool/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
bd724121-00b2-4d18-9d3e-aa04303b05fa
|
||||
33
代码案例/6 Arduino基础学习/16 逻辑控制(2) – 布尔变量/bool/bool.ino
Executable file
33
代码案例/6 Arduino基础学习/16 逻辑控制(2) – 布尔变量/bool/bool.ino
Executable file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* 布尔变量应用示例
|
||||
*
|
||||
* 本示例程序演示如何使用布尔型数据变量。通过本程序,Arduino将利用
|
||||
* 布尔型变量存储引脚2的电平状态,并根据变量数值点亮或熄灭引脚13上
|
||||
* 连接的LED。
|
||||
*
|
||||
* 电路:
|
||||
* 引脚2连接轻触开关,开关另一端接地
|
||||
* 引脚13上安装有开发板内置LED
|
||||
*
|
||||
*
|
||||
* This example code is in the public domain
|
||||
* 太极创客
|
||||
* 2017-01-18
|
||||
* www.taichi-maker.com
|
||||
*/
|
||||
boolean pushButton; // 创建布尔型变量
|
||||
|
||||
void setup() {
|
||||
pinMode(2, INPUT_PULLUP); //将引脚2设置为输入上拉模式
|
||||
pinMode(13, OUTPUT); //将引脚13设置为输出模式
|
||||
}
|
||||
|
||||
void loop() {
|
||||
pushButton = digitalRead(2); //读取引脚2电平状态并将其赋值给布尔变量
|
||||
|
||||
if (pushButton){ //根据布尔变量数值点亮或者熄灭LED
|
||||
digitalWrite(13, HIGH); //布尔变量数值为真(true)时点亮LED
|
||||
} else {
|
||||
digitalWrite(13, LOW); //布尔变量数值为假(false)时熄灭LED
|
||||
}
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/17 逻辑控制 (3) – 布尔运算/.pydio
Normal file
1
代码案例/6 Arduino基础学习/17 逻辑控制 (3) – 布尔运算/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
a2cdee58-3be6-4a2e-8946-8e6131be6e24
|
||||
1
代码案例/6 Arduino基础学习/17 逻辑控制 (3) – 布尔运算/and/.pydio
Normal file
1
代码案例/6 Arduino基础学习/17 逻辑控制 (3) – 布尔运算/and/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
17816a03-895d-48be-bc13-0c25aa749347
|
||||
45
代码案例/6 Arduino基础学习/17 逻辑控制 (3) – 布尔运算/and/and.ino
Executable file
45
代码案例/6 Arduino基础学习/17 逻辑控制 (3) – 布尔运算/and/and.ino
Executable file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* 逻辑与布尔运算
|
||||
*
|
||||
* 本示例程序演示逻辑与布尔运算。通过本程序,Arduino将对引脚2和引脚8的电平状态
|
||||
* 进行逻辑与布尔运算,并根据运算结果点亮或熄灭引脚13上连接的LED。
|
||||
*
|
||||
* 电路:
|
||||
* 引脚2连接按键开关1,开关1另一端接地
|
||||
* 引脚8连接按键开关2,开关2另一端接地
|
||||
* 引脚13上安装有开发板内置LED
|
||||
*
|
||||
*
|
||||
* This example code is in the public domain
|
||||
* 太极创客
|
||||
* 2017-01-18
|
||||
* www.taichi-maker.com
|
||||
*/
|
||||
|
||||
boolean pushButton1; // 创建布尔型变量用来存储按键开关1的电平状态
|
||||
boolean pushButton2; // 创建布尔型变量用来存储按键开关2的电平状态
|
||||
|
||||
void setup() {
|
||||
pinMode(2, INPUT_PULLUP); //将引脚2设置为输入上拉模式
|
||||
pinMode(8, INPUT_PULLUP); //将引脚8设置为输入上拉模式
|
||||
pinMode(13, OUTPUT); //将引脚13设置为输出模式
|
||||
}
|
||||
|
||||
void loop() {
|
||||
pushButton1 = digitalRead(2); //读取引脚2电平状态并将其赋值给布尔变量
|
||||
pushButton2 = digitalRead(8); //读取引脚8电平状态并将其赋值给布尔变量
|
||||
|
||||
if (!pushButton1 && !pushButton2){ //根据逻辑与运算结果点亮或者熄灭LED
|
||||
digitalWrite(13, HIGH); //两个布尔变量数值都为假(false)时点亮LED
|
||||
} else {
|
||||
digitalWrite(13, LOW); //否则熄灭LED
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
逻辑与运算说明
|
||||
!pushButton1 = 1, !pushButton2 = 1 ---> !pushButton1 && !pushButton2 = 1
|
||||
!pushButton1 = 0, !pushButton2 = 1 ---> !pushButton1 && !pushButton2 = 0
|
||||
!pushButton1 = 1, !pushButton2 = 0 ---> !pushButton1 && !pushButton2 = 0
|
||||
!pushButton1 = 0, !pushButton2 = 0 ---> !pushButton1 && !pushButton2 = 0
|
||||
*/
|
||||
1
代码案例/6 Arduino基础学习/17 逻辑控制 (3) – 布尔运算/not/.pydio
Normal file
1
代码案例/6 Arduino基础学习/17 逻辑控制 (3) – 布尔运算/not/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
3263fb1d-c01a-431a-ae63-9dd4bf59bb2c
|
||||
32
代码案例/6 Arduino基础学习/17 逻辑控制 (3) – 布尔运算/not/not.ino
Executable file
32
代码案例/6 Arduino基础学习/17 逻辑控制 (3) – 布尔运算/not/not.ino
Executable file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* 逻辑非布尔运算
|
||||
*
|
||||
* 本示例程序演示逻辑非布尔运算。通过本程序,Arduino将对引脚2的电平状态
|
||||
* 进行逻辑非布尔运算,并根据运算结果点亮或熄灭引脚13上连接的LED。
|
||||
*
|
||||
* 电路:
|
||||
* 引脚2连接轻触开关,开关另一端接地
|
||||
* 引脚13上安装有开发板内置LED
|
||||
*
|
||||
*
|
||||
* This example code is in the public domain
|
||||
* 太极创客
|
||||
* 2017-01-18
|
||||
* www.taichi-maker.com
|
||||
*/
|
||||
boolean pushButton; // 创建布尔型变量
|
||||
|
||||
void setup() {
|
||||
pinMode(2, INPUT_PULLUP); //将引脚2设置为输入上拉模式
|
||||
pinMode(13, OUTPUT); //将引脚13设置为输出模式
|
||||
}
|
||||
|
||||
void loop() {
|
||||
pushButton = digitalRead(2); //读取引脚2电平状态并将其赋值给布尔变量
|
||||
|
||||
if (!pushButton){ //对布尔变量进行逻辑非运算,并根据运算结构点亮或者熄灭LED
|
||||
digitalWrite(13, HIGH); //布尔变量数值为假(false)时点亮LED
|
||||
} else {
|
||||
digitalWrite(13, LOW); //布尔变量数值为真(true)时熄灭LED
|
||||
}
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/17 逻辑控制 (3) – 布尔运算/or/.pydio
Normal file
1
代码案例/6 Arduino基础学习/17 逻辑控制 (3) – 布尔运算/or/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
786a6580-1a7c-4d38-b982-5e804abf9d60
|
||||
44
代码案例/6 Arduino基础学习/17 逻辑控制 (3) – 布尔运算/or/or.ino
Executable file
44
代码案例/6 Arduino基础学习/17 逻辑控制 (3) – 布尔运算/or/or.ino
Executable file
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* 逻辑或布尔运算
|
||||
*
|
||||
* 本示例程序演示逻辑或布尔运算。通过本程序,Arduino将对引脚2和引脚8的电平状态
|
||||
* 进行逻辑或布尔运算,并根据运算结果点亮或熄灭引脚13上连接的LED。
|
||||
*
|
||||
* 电路:
|
||||
* 引脚2连接按键开关1,开关1另一端接地
|
||||
* 引脚8连接按键开关2,开关2另一端接地
|
||||
* 引脚13上安装有开发板内置LED
|
||||
*
|
||||
*
|
||||
* This example code is in the public domain
|
||||
* 太极创客
|
||||
* 2017-01-18
|
||||
* www.taichi-maker.com
|
||||
*/
|
||||
boolean pushButton1; // 创建布尔型变量用来存储按键开关1的电平状态
|
||||
boolean pushButton2; // 创建布尔型变量用来存储按键开关2的电平状态
|
||||
|
||||
void setup() {
|
||||
pinMode(2, INPUT_PULLUP); //将引脚2设置为输入上拉模式
|
||||
pinMode(8, INPUT_PULLUP); //将引脚8设置为输入上拉模式
|
||||
pinMode(13, OUTPUT); //将引脚13设置为输出模式
|
||||
}
|
||||
|
||||
void loop() {
|
||||
pushButton1 = digitalRead(2); //读取引脚2电平状态并将其赋值给布尔变量
|
||||
pushButton2 = digitalRead(8); //读取引脚8电平状态并将其赋值给布尔变量
|
||||
|
||||
if (!pushButton1 || !pushButton2){ //根据逻辑或运算结果点亮或者熄灭LED
|
||||
digitalWrite(13, HIGH); //两个布尔变量数值任何一个为假(false)时点亮LED
|
||||
} else {
|
||||
digitalWrite(13, LOW); //否则熄灭LED
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 逻辑或运算说明
|
||||
!pushButton1 = 1, !pushButton2 = 1 ---> !pushButton1 || !pushButton2 = 1
|
||||
!pushButton1 = 0, !pushButton2 = 1 ---> !pushButton1 || !pushButton2 = 1
|
||||
!pushButton1 = 1, !pushButton2 = 0 ---> !pushButton1 || !pushButton2 = 1
|
||||
!pushButton1 = 0, !pushButton2 = 0 ---> !pushButton1 || !pushButton2 = 0
|
||||
*/
|
||||
1
代码案例/6 Arduino基础学习/19 MC猜数字(1)/.pydio
Normal file
1
代码案例/6 Arduino基础学习/19 MC猜数字(1)/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
101e7f4d-1ffa-4b4d-be1e-a1a32e59e8ae
|
||||
1
代码案例/6 Arduino基础学习/19 MC猜数字(1)/Lesson19/.pydio
Normal file
1
代码案例/6 Arduino基础学习/19 MC猜数字(1)/Lesson19/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
8140c8a9-5d2e-4749-919b-795f9258cd7a
|
||||
128
代码案例/6 Arduino基础学习/19 MC猜数字(1)/Lesson19/Lesson19.ino
Executable file
128
代码案例/6 Arduino基础学习/19 MC猜数字(1)/Lesson19/Lesson19.ino
Executable file
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
19 MC猜数字 - 1 电路搭建
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>中
|
||||
MC猜数字电路测试使用。
|
||||
|
||||
2017-04-21
|
||||
*/
|
||||
void setup() {
|
||||
pinMode(2, INPUT_PULLUP);
|
||||
for (int i = 2; i <= 9; i++) {
|
||||
pinMode(i, OUTPUT);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
void loop() {
|
||||
int myNumber = 0;
|
||||
while(myNumber <= 9){
|
||||
displayNumber(myNumber);
|
||||
delay(500);
|
||||
displayClear();
|
||||
myNumber++;
|
||||
while(!digitalRead(2)){
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
}
|
||||
delay(500);
|
||||
}
|
||||
}
|
||||
void displayClear(){
|
||||
// 清理显示内容
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
}
|
||||
|
||||
void displayNumber(int number){
|
||||
switch(number){
|
||||
case 1:
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 2:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 3:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 4:
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 5:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 6:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 7:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 8:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 9:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 0:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
default:
|
||||
digitalWrite(5, HIGH);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1
代码案例/6 Arduino基础学习/20 MC猜数字(2) – LED数码管/.pydio
Normal file
1
代码案例/6 Arduino基础学习/20 MC猜数字(2) – LED数码管/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
9bdb9f1c-0410-4c37-8af0-f2bf3ad203c0
|
||||
1
代码案例/6 Arduino基础学习/20 MC猜数字(2) – LED数码管/Lesson20/.pydio
Normal file
1
代码案例/6 Arduino基础学习/20 MC猜数字(2) – LED数码管/Lesson20/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
db38ec89-ced3-4658-ace0-0a7371f67011
|
||||
85
代码案例/6 Arduino基础学习/20 MC猜数字(2) – LED数码管/Lesson20/Lesson20.ino
Executable file
85
代码案例/6 Arduino基础学习/20 MC猜数字(2) – LED数码管/Lesson20/Lesson20.ino
Executable file
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
20 MC猜数字 - 2 LED数码管
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>
|
||||
20 MC猜数字 - 2 LED数码管
|
||||
课程的演示实验使用。
|
||||
|
||||
2017-04-21
|
||||
*/
|
||||
|
||||
void setup() {
|
||||
pinMode(3, OUTPUT);
|
||||
pinMode(4, OUTPUT);
|
||||
pinMode(5, OUTPUT);
|
||||
pinMode(6, OUTPUT);
|
||||
pinMode(7, OUTPUT);
|
||||
pinMode(8, OUTPUT);
|
||||
pinMode(9, OUTPUT);
|
||||
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
void loop() {
|
||||
|
||||
// 显示 1:
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
delay(500);
|
||||
|
||||
// 清理显示内容
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
delay(500);
|
||||
|
||||
// 显示 2:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
delay(500);
|
||||
|
||||
// 清理显示内容
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
delay(500);
|
||||
|
||||
// 显示 3:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
delay(500);
|
||||
|
||||
// 清理显示内容
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
delay(500);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1
代码案例/6 Arduino基础学习/21 MC猜数字(3)- while循环/.pydio
Normal file
1
代码案例/6 Arduino基础学习/21 MC猜数字(3)- while循环/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
85766331-29aa-40ad-bcc6-ee02b810d047
|
||||
1
代码案例/6 Arduino基础学习/21 MC猜数字(3)- while循环/Lesson21/.pydio
Normal file
1
代码案例/6 Arduino基础学习/21 MC猜数字(3)- while循环/Lesson21/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
17e4cc92-dc97-41b7-90a9-7979a74624ef
|
||||
79
代码案例/6 Arduino基础学习/21 MC猜数字(3)- while循环/Lesson21/Lesson21.ino
Executable file
79
代码案例/6 Arduino基础学习/21 MC猜数字(3)- while循环/Lesson21/Lesson21.ino
Executable file
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
21 MC猜数字 - 3 while循环
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>
|
||||
21 MC猜数字 - 3 while循环
|
||||
课程的演示实验使用。
|
||||
|
||||
2017-04-21
|
||||
*/
|
||||
void setup() {
|
||||
int pinNumber = 3;
|
||||
while(pinNumber <= 9){
|
||||
pinMode(pinNumber, OUTPUT);
|
||||
pinNumber = pinNumber + 1;
|
||||
}
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// 显示 1:
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
delay(500);
|
||||
|
||||
// 清理显示内容
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
delay(500);
|
||||
|
||||
// 显示 2:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
delay(500);
|
||||
|
||||
// 清理显示内容
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
delay(500);
|
||||
|
||||
// 显示 3:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
delay(500);
|
||||
|
||||
// 清理显示内容
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
delay(500);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1
代码案例/6 Arduino基础学习/22 MC猜数字(4)- switch case语句/.pydio
Normal file
1
代码案例/6 Arduino基础学习/22 MC猜数字(4)- switch case语句/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
0cbe8e30-b680-4fd0-82b8-73fc8e843f38
|
||||
@@ -0,0 +1 @@
|
||||
11c32385-01a8-4a9a-baa7-7fb70bb9a002
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
22 MC猜数字 - 4 switch case语句(1) if
|
||||
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>
|
||||
22 MC猜数字 - 4 switch case语句
|
||||
课程的演示实验使用。
|
||||
|
||||
2017-04-21
|
||||
*/
|
||||
void setup() {
|
||||
int pinNumber = 3;
|
||||
while(pinNumber <= 9){
|
||||
pinMode(pinNumber, OUTPUT);
|
||||
pinNumber = pinNumber + 1;
|
||||
}
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
void loop() {
|
||||
int myNumber = 3;
|
||||
if (myNumber == 1) {
|
||||
// 显示 1:
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
}
|
||||
if (myNumber == 2) {
|
||||
// 显示 2:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
}
|
||||
if (myNumber == 3) {
|
||||
// 显示 3:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
340a377d-0f0b-4f01-9351-b5edda1a0fdb
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
22 MC猜数字 - 4 switch case语句(2) if...else
|
||||
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>
|
||||
22 MC猜数字 - 4 switch case语句
|
||||
课程的演示实验使用。
|
||||
|
||||
2017-04-21
|
||||
*/
|
||||
|
||||
void setup() {
|
||||
int pinNumber = 3;
|
||||
while(pinNumber <= 9){
|
||||
pinMode(pinNumber, OUTPUT);
|
||||
pinNumber = pinNumber + 1;
|
||||
}
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
void loop() {
|
||||
int myNumber = 2;
|
||||
if (myNumber == 1) {
|
||||
// 显示 1:
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
} else if (myNumber == 2) {
|
||||
// 显示 2:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
} else if (myNumber == 3) {
|
||||
// 显示 3:
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
7aa552ae-35f0-42be-8bb5-f16efcce65d9
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
22 MC猜数字 - 4 switch case语句(3) switch
|
||||
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>
|
||||
22 MC猜数字 - 4 switch case语句
|
||||
课程的演示实验使用。
|
||||
|
||||
2017-04-21
|
||||
*/
|
||||
|
||||
void setup() {
|
||||
int pinNumber = 3;
|
||||
while(pinNumber <= 9){
|
||||
pinMode(pinNumber, OUTPUT);
|
||||
pinNumber = pinNumber + 1;
|
||||
}
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
void loop() {
|
||||
int myNumber = 9;
|
||||
switch(myNumber) {
|
||||
case 1: //显示1
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 2: //显示2
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 3: //显示3
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
default:
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
00c6dd59-de6c-4a3b-b75c-f7b60a052166
|
||||
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
22 MC猜数字 - 4 switch case语句(4) switch...random
|
||||
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>
|
||||
22 MC猜数字 - 4 switch case语句
|
||||
课程的演示实验使用。
|
||||
|
||||
2017-04-21
|
||||
*/
|
||||
|
||||
void setup() {
|
||||
int pinNumber = 3;
|
||||
while(pinNumber <= 9){
|
||||
pinMode(pinNumber, OUTPUT);
|
||||
pinNumber = pinNumber + 1;
|
||||
}
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
void loop() {
|
||||
int myNumber = random(0, 4);
|
||||
switch(myNumber) {
|
||||
case 1: //显示1
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 2: //显示2
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 3: //显示3
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
default:
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
}
|
||||
delay(500);
|
||||
|
||||
//清理显示内容
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
|
||||
delay(500);
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/23 MC猜数字(5)- 自定义函数/.pydio
Normal file
1
代码案例/6 Arduino基础学习/23 MC猜数字(5)- 自定义函数/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
e40e74b1-816a-47e8-af3d-f946ad694fbf
|
||||
@@ -0,0 +1 @@
|
||||
f97acd02-f653-402a-8fb2-0e8cd351676b
|
||||
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
23 MC猜数字 - 5 建立函数-1
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>23 MC猜数字 - 5 建立函数 课程
|
||||
|
||||
演示如何建立没有返回值也没有参数的用户自定义函数。
|
||||
2017-04-21
|
||||
*/
|
||||
|
||||
void setup() {
|
||||
int pinNumber = 3;
|
||||
while(pinNumber <= 9){
|
||||
pinMode(pinNumber, OUTPUT);
|
||||
pinNumber = pinNumber + 1;
|
||||
}
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
void loop() {
|
||||
int myNumber = random(0, 4);
|
||||
switch(myNumber) {
|
||||
case 1: //显示1
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 2: //显示2
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 3: //显示3
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
default:
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
}
|
||||
delay(500);
|
||||
displayClear();
|
||||
delay(500);
|
||||
}
|
||||
void displayClear(){ //清理显示内容
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
7a3a795a-ceea-4e2b-bf19-72368d0006f2
|
||||
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
23 MC猜数字 - 5 建立函数 - 2
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>23 MC猜数字 - 5 建立函数
|
||||
|
||||
演示如何建立有参数的用户自定义函数。
|
||||
2017-04-21
|
||||
*/
|
||||
|
||||
void setup() {
|
||||
int pinNumber = 3;
|
||||
while(pinNumber <= 9){
|
||||
pinMode(pinNumber, OUTPUT);
|
||||
pinNumber = pinNumber + 1;
|
||||
}
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
void loop() {
|
||||
int myNumber = random(0, 4); //产生随机1-3数字
|
||||
displayNumber(myNumber); //显示数字
|
||||
delay(500);
|
||||
displayClear(); //清理显示
|
||||
delay(500);
|
||||
}
|
||||
void displayNumber(int ledNumber){ //LED数码管显示数字
|
||||
switch(ledNumber) {
|
||||
case 1: //显示1
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 2: //显示2
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 3: //显示3
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
default: //默认显示
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
}
|
||||
}
|
||||
|
||||
void displayClear(){ //清理LED数码管显示内容
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
90c3ed97-b5f2-4403-a318-8c8e82c11364
|
||||
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
23 MC猜数字 - 5 建立函数 - 3
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>23 MC猜数字 - 5 建立函数
|
||||
|
||||
演示如何建立既有返回值又有参数的用户自定义函数。
|
||||
2017-04-21
|
||||
*/
|
||||
|
||||
void setup() {
|
||||
int pinNumber = 3;
|
||||
while(pinNumber <= 9){
|
||||
pinMode(pinNumber, OUTPUT);
|
||||
pinNumber = pinNumber + 1;
|
||||
}
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
void loop() {
|
||||
int myNumber = getRandomNumber(1, 4); //产生随机1-3数字
|
||||
displayNumber(myNumber); //显示数字
|
||||
delay(500);
|
||||
displayClear(); //清理显示
|
||||
delay(500);
|
||||
}
|
||||
int getRandomNumber(int minNumber, int maxNumber){ //产生随机数字
|
||||
int randomNumber;
|
||||
randomNumber = random(minNumber, maxNumber);
|
||||
|
||||
return randomNumber;
|
||||
}
|
||||
void displayNumber(int ledNumber){ //LED数码管显示数字
|
||||
switch(ledNumber) {
|
||||
case 1: //显示1
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 2: //显示2
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 3: //显示3
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
default: //默认显示
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
}
|
||||
}
|
||||
|
||||
void displayClear(){ //清理LED数码管显示内容
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
}
|
||||
|
||||
1
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/.pydio
Normal file
1
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
61c12970-6eac-4b88-b2db-efb9bb2673f6
|
||||
1
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Final/.pydio
Normal file
1
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Final/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
e62024c3-e5a7-4645-ba36-475e0074f3b7
|
||||
222
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Final/Final.ino
Executable file
222
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Final/Final.ino
Executable file
@@ -0,0 +1,222 @@
|
||||
/*
|
||||
* MC猜数字 (Ver. 1.0)
|
||||
*
|
||||
* 本程序用于太极创客制作的《零基础入门学用Arduino教程》中
|
||||
* MC猜数字小制作。通过学习和搭建这个小装置,我们希望您能够
|
||||
* 学会以下内容:
|
||||
*
|
||||
* - LED数码管的原理和使用
|
||||
* - if...else if的概念和应用
|
||||
* - while循环的概念和应用
|
||||
* - switch case控制语句
|
||||
* - random函数的使用
|
||||
* - 建立和使用自定义函数(三种形式:无参数无返回值,有参数无返回值,有参数有返回值)
|
||||
* - 通过串口监视器观察调试程序运行状况
|
||||
*
|
||||
* 电路连接:
|
||||
* 有关本制作的详细电路连接资料,请参阅太极创客网站的《零基础入门学用Arduino教程》相关网页。
|
||||
*
|
||||
*
|
||||
* 太极创客网站地址:
|
||||
* www.taichi-maker.com
|
||||
*
|
||||
* 如您对我们有任何建议或意见,请发邮件至:
|
||||
* taichimaker@163.com
|
||||
*
|
||||
* 同时您也可以通过我们的微信公众号以及微博获得更多太极创客的最新信息。
|
||||
*
|
||||
* This example code is in the public domain.
|
||||
*
|
||||
* 2017-04-23
|
||||
*
|
||||
* 注:
|
||||
* 目前科学技术尚无法实现意念控制。
|
||||
* 科技可以改变世界,但也有心怀不轨的人会利用科技制作
|
||||
* 我们不宜察觉的装置。而这些装置会被用于赌博或诈骗。
|
||||
* 我们一定要远离赌博,相信科学。:)
|
||||
*/
|
||||
|
||||
|
||||
int thisResult; //存储按键按下以后显示在数码管的数字。
|
||||
int nextResult; //存储作弊数字,也就是下一次按键按下后即将显示的数字。
|
||||
|
||||
void setup() {
|
||||
pinMode(2, INPUT_PULLUP); //2号引脚上连接有按键开关,将2号引脚设置为输入上拉模式
|
||||
int pinNumber = 3; //设置3-9号引脚为输出模式
|
||||
while(pinNumber <= 9){
|
||||
pinMode(pinNumber, OUTPUT);
|
||||
pinNumber = pinNumber + 1;
|
||||
}
|
||||
randomSeed(analogRead(A0)); //为了每一次复位或断电后产生不同顺序的随机数字
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
void loop() {
|
||||
if (!digitalRead(2)){ //读取2号引脚电平状态
|
||||
getRandomNumber(0,10); //用户按下按键后,开始新一次猜数字游戏
|
||||
}
|
||||
displayNumber(thisResult); //将猜数字游戏"结果"显示在数码管中
|
||||
}
|
||||
|
||||
/*
|
||||
用户在每一次按下按键后,随机产生的数字将存储于nextResult变量中。
|
||||
而实际显示在数码管上的数字是thisResult变量。
|
||||
当thisResult即将显示在数码管前,程序会将下一次显示的数字通过
|
||||
图形暗示的形式显示在数码管上。具体程序如何显示暗示图形,
|
||||
请参阅displayCheat()函数说明。
|
||||
*/
|
||||
void getRandomNumber(int minNumber, int maxNumber){
|
||||
thisResult = nextResult;
|
||||
int i;
|
||||
while(i < 15){
|
||||
i = i + 1;
|
||||
nextResult = random(0, 10);
|
||||
displayRandom(); //显示随机图案,混淆注意力
|
||||
delay(50 + i * 10); //让随机图案显示时间由快到慢,增加混淆
|
||||
displayClear();
|
||||
}
|
||||
displayCheat(nextResult); //显示作弊图案,用户可通过此函数所显示的图案
|
||||
//获知下次按键后将要出现在LED数码管上的数字。
|
||||
//此图案是在用户每次按下按键后显示新的数字
|
||||
//前的最后一次图案显示
|
||||
delay(500);
|
||||
displayClear();
|
||||
}
|
||||
|
||||
//根据参数数值在LED数码管上显示数字
|
||||
void displayNumber(int ledNumber){
|
||||
switch(ledNumber){
|
||||
case 1: //显示1
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 2: //显示2
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 3: //显示3
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 4: //显示4
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 5: //显示5
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 6: //显示6
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 7: //显示7
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 8: //显示8
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 9: //显示9
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 0: //显示默认
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
default:
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
}
|
||||
}
|
||||
|
||||
//清理显示内容
|
||||
void displayClear(){
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
}
|
||||
|
||||
//显示随机图案以混淆注意力
|
||||
//使作弊图案显示时不易察觉。
|
||||
void displayRandom(){
|
||||
int randomPin = random(3,9);
|
||||
digitalWrite(randomPin, HIGH);
|
||||
}
|
||||
|
||||
//显示作弊图案。
|
||||
void displayCheat(int number){
|
||||
switch(number){
|
||||
case 1: // 显示数字1作弊图案
|
||||
digitalWrite(3, HIGH);
|
||||
break;
|
||||
case 2: // 显示数字2作弊图案
|
||||
digitalWrite(6, HIGH);
|
||||
break;
|
||||
case 3: // 显示数字3作弊图案
|
||||
digitalWrite(4, HIGH); ;
|
||||
break;
|
||||
case 4: // 显示数字4作弊图案
|
||||
digitalWrite(5, HIGH);
|
||||
break;
|
||||
case 5: // 显示数字5作弊图案
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 6: // 显示数字6作弊图案
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 7: // 显示数字7作弊图案
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 8: // 显示数字8作弊图案
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
break;
|
||||
case 9: // 显示数字9作弊图案
|
||||
digitalWrite(9, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 0: // 显示数字0作弊图案
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
}
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Lesson24_1/.pydio
Normal file
1
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Lesson24_1/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
73bf751a-8a67-440b-bc09-e354113f5452
|
||||
128
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Lesson24_1/Lesson24_1.ino
Executable file
128
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Lesson24_1/Lesson24_1.ino
Executable file
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
24 MC猜数字 - 5 完成制作 - 1
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>
|
||||
24 MC猜数字 - 5 完成制作 - 1
|
||||
|
||||
增加显示数字为0-9
|
||||
并且在串口监视器上显示
|
||||
|
||||
2017-04-23
|
||||
*/
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
int pinNumber = 3;
|
||||
while(pinNumber <= 9){
|
||||
pinMode(pinNumber, OUTPUT);
|
||||
pinNumber = pinNumber + 1;
|
||||
}
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
void loop() {
|
||||
int myNumber = getRandomNumber(0, 10);
|
||||
displayNumber(myNumber);
|
||||
delay(500);
|
||||
displayClear();
|
||||
delay(500);
|
||||
}
|
||||
int getRandomNumber(int minNumber, int maxNumber){
|
||||
int randomNumber;
|
||||
randomNumber = random(minNumber, maxNumber);
|
||||
Serial.print("randomNumber = ");
|
||||
Serial.println(randomNumber);
|
||||
Serial.println("");
|
||||
return randomNumber;
|
||||
}
|
||||
void displayNumber(int ledNumber){
|
||||
switch(ledNumber){
|
||||
case 1: //显示1
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 2: //显示2
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 3: //显示3
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 4: //显示4
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 5: //显示5
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 6: //显示6
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 7: //显示7
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 8: //显示8
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 9: //显示9
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 0: //显示0
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
default: //显示默认
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
}
|
||||
}
|
||||
|
||||
void displayClear(){
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
}
|
||||
|
||||
1
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Lesson24_2/.pydio
Normal file
1
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Lesson24_2/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
0e3a4f60-4e80-4736-97b6-b28b15e566a0
|
||||
143
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Lesson24_2/Lesson24_2.ino
Executable file
143
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Lesson24_2/Lesson24_2.ino
Executable file
@@ -0,0 +1,143 @@
|
||||
/*
|
||||
24 MC猜数字 - 5 完成制作 - 2
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>
|
||||
24 MC猜数字 - 5 完成制作 - 2
|
||||
|
||||
修改了getRandomNumber函数。目前该函数每次调用后将显示5个随机数字。
|
||||
这五个随机数字将通过串口监视器显示出来。并且最后一个随机数字将显示在LED数码管上。
|
||||
|
||||
2017-04-23
|
||||
*/
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
int pinNumber = 3;
|
||||
while(pinNumber <= 9){
|
||||
pinMode(pinNumber, OUTPUT);
|
||||
pinNumber = pinNumber + 1;
|
||||
}
|
||||
randomSeed(analogRead(A0));
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
void loop() {
|
||||
int myNumber = getRandomNumber(0, 10);
|
||||
displayNumber(myNumber);
|
||||
delay(5000);
|
||||
displayClear();
|
||||
delay(500);
|
||||
}
|
||||
|
||||
int getRandomNumber(int minNumber, int maxNumber){
|
||||
int randomNumber;
|
||||
|
||||
int i;
|
||||
while(i < 5){
|
||||
i = i + 1;
|
||||
randomNumber = random(minNumber,maxNumber);
|
||||
displayNumber(randomNumber);
|
||||
delay(100);
|
||||
displayClear();
|
||||
delay(100);
|
||||
|
||||
Serial.print("i = ");
|
||||
Serial.println(i);
|
||||
Serial.print("randomNumber = ");
|
||||
Serial.println(randomNumber);
|
||||
Serial.println("");
|
||||
|
||||
}
|
||||
return randomNumber;
|
||||
}
|
||||
void displayNumber(int ledNumber){
|
||||
switch(ledNumber){
|
||||
case 1: //显示1
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 2: //显示2
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 3: //显示3
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 4: //显示4
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 5: //显示5
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 6: //显示6
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 7: //显示7
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 8: //显示8
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 9: //显示9
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 0: //显示0
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
default: //显示默认
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
}
|
||||
}
|
||||
|
||||
void displayClear(){
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
}
|
||||
|
||||
1
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Lesson24_3/.pydio
Normal file
1
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Lesson24_3/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
9695a903-5413-46f9-b14a-d30327b02864
|
||||
149
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Lesson24_3/Lesson24_3.ino
Executable file
149
代码案例/6 Arduino基础学习/24 MC猜数字(6)- 完成制作/Lesson24_3/Lesson24_3.ino
Executable file
@@ -0,0 +1,149 @@
|
||||
/*
|
||||
24 MC猜数字 - 5 完成制作 - 3
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>
|
||||
24 MC猜数字 - 5 完成制作 - 3
|
||||
|
||||
每次按键后闪动随机图案,最后停留在一个数字上面
|
||||
此版本已基本实现猜数字游戏装置功能。
|
||||
|
||||
2017-04-23
|
||||
*/
|
||||
int myNumber;
|
||||
|
||||
void setup() {
|
||||
pinMode(2, INPUT_PULLUP);
|
||||
Serial.begin(9600);
|
||||
int pinNumber = 3;
|
||||
while(pinNumber <= 9){
|
||||
pinMode(pinNumber, OUTPUT);
|
||||
pinNumber = pinNumber + 1;
|
||||
}
|
||||
randomSeed(analogRead(A0));
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
void loop() {
|
||||
if (!digitalRead(2)){
|
||||
myNumber = getRandomNumber(0, 10);
|
||||
}
|
||||
displayNumber(myNumber);
|
||||
}
|
||||
int getRandomNumber(int minNumber, int maxNumber){
|
||||
int randomNumber;
|
||||
|
||||
int i;
|
||||
while(i < 15){
|
||||
i = i + 1;
|
||||
randomNumber = random(minNumber,maxNumber);
|
||||
//displayNumber(randomNumber);
|
||||
displayRandom();
|
||||
delay(100);
|
||||
displayClear();
|
||||
delay(100);
|
||||
|
||||
Serial.print("i = ");
|
||||
Serial.println(i);
|
||||
Serial.print("randomNumber = ");
|
||||
Serial.println(randomNumber);
|
||||
Serial.println("");
|
||||
}
|
||||
return randomNumber;
|
||||
}
|
||||
|
||||
void displayNumber(int ledNumber){
|
||||
switch(ledNumber){
|
||||
case 1: //显示1
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 2: //显示2
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 3: //显示3
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 4: //显示4
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 5: //显示5
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 6: //显示6
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 7: //显示7
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
break;
|
||||
case 8: //显示8
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
case 9: //显示9
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
break;
|
||||
case 0: //显示默认
|
||||
digitalWrite(3, HIGH);
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(6, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
break;
|
||||
default:
|
||||
digitalWrite(4, HIGH);
|
||||
digitalWrite(5, HIGH);
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(8, HIGH);
|
||||
digitalWrite(9, HIGH);
|
||||
}
|
||||
}
|
||||
|
||||
void displayClear(){
|
||||
digitalWrite(3, LOW);
|
||||
digitalWrite(4, LOW);
|
||||
digitalWrite(5, LOW);
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, LOW);
|
||||
digitalWrite(8, LOW);
|
||||
digitalWrite(9, LOW);
|
||||
}
|
||||
|
||||
void displayRandom(){
|
||||
int randomPin = random(3,9);
|
||||
digitalWrite(randomPin, HIGH);
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/25 模拟输出 – 1 analogWrite/.pydio
Normal file
1
代码案例/6 Arduino基础学习/25 模拟输出 – 1 analogWrite/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
2d1ff133-49b8-492b-8f46-d8a40e480069
|
||||
@@ -0,0 +1 @@
|
||||
5dc80687-77d6-4251-9d93-acaa9ff71abd
|
||||
43
代码案例/6 Arduino基础学习/25 模拟输出 – 1 analogWrite/Lesson25/Lesson25.ino
Executable file
43
代码案例/6 Arduino基础学习/25 模拟输出 – 1 analogWrite/Lesson25/Lesson25.ino
Executable file
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
25 模拟输出1 - analogWrite
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>
|
||||
25 模拟输出1 - analogWrite
|
||||
|
||||
演示如何通过两个按键开关通过analogWrite指令
|
||||
进行模拟输出操作。具体电路和其它信息请参考
|
||||
太极创客网站本教程相关页面。
|
||||
|
||||
2017-04-28
|
||||
*/
|
||||
boolean pushButton1; // 创建布尔型变量用来存储按键开关1的电平状态
|
||||
boolean pushButton2; // 创建布尔型变量用来存储按键开关2的电平状态
|
||||
int ledPin = 9; //LED引脚号
|
||||
int brightness = 128; //LED亮度参数
|
||||
|
||||
void setup() {
|
||||
// put your setup code here, to run once:
|
||||
pinMode(2, INPUT_PULLUP); //将引脚2设置为输入上拉模式
|
||||
pinMode(8, INPUT_PULLUP); //将引脚8设置为输入上拉模式
|
||||
pinMode(ledPin, OUTPUT); //将LED引脚设置为输出模式
|
||||
Serial.begin(9600); //启动串口通讯
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// put your main code here, to run repeatedly:
|
||||
pushButton1 = digitalRead(2); //读取引脚2电平状态并将其赋值给布尔变量
|
||||
pushButton2 = digitalRead(8); //读取引脚8电平状态并将其赋值给布尔变量
|
||||
|
||||
if (!pushButton1 && brightness > 0){ // 当按下按键开关1并且LED亮度参数大于0
|
||||
brightness--; // 减低LED亮度参数
|
||||
//(brightness-- 相当于 brightness = brightness - 1;)
|
||||
} else if (!pushButton2 && brightness < 255) { //当按下按键开关2并且LED亮度参数小于255
|
||||
brightness++; //增加LED亮度参数
|
||||
//(brightness++ 相当于 brightness = brightness + 1;)
|
||||
}
|
||||
analogWrite(ledPin, brightness); //模拟输出控制LED亮度
|
||||
Serial.println(brightness); //将LED亮度参数显示在串口监视器上
|
||||
delay(10);
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/27 模拟输出 – 3 for循环/.pydio
Normal file
1
代码案例/6 Arduino基础学习/27 模拟输出 – 3 for循环/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
381193fe-ea51-49c5-ac5f-15b96e88bc27
|
||||
1
代码案例/6 Arduino基础学习/27 模拟输出 – 3 for循环/Lesson27-1/.pydio
Normal file
1
代码案例/6 Arduino基础学习/27 模拟输出 – 3 for循环/Lesson27-1/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
19696a5b-9d0f-4a42-ad42-d17c65069b61
|
||||
32
代码案例/6 Arduino基础学习/27 模拟输出 – 3 for循环/Lesson27-1/Lesson27-1.ino
Executable file
32
代码案例/6 Arduino基础学习/27 模拟输出 – 3 for循环/Lesson27-1/Lesson27-1.ino
Executable file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
27 模拟输出3 - for
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>
|
||||
27 模拟输出3 - for
|
||||
|
||||
演示如何通过for循环语句实现LED明暗交替(呼吸灯)效果。
|
||||
|
||||
2017-04-28
|
||||
*/
|
||||
void setup() {
|
||||
pinMode(9, OUTPUT); //设置9号引脚为输出模式
|
||||
Serial.begin(9600); //启动串口通讯
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// LED由暗到明
|
||||
for (int brightness = 0; brightness <= 255; brightness++){
|
||||
analogWrite(9, brightness);
|
||||
Serial.println(brightness);
|
||||
delay(10);
|
||||
}
|
||||
|
||||
// LED由明到暗
|
||||
for (int brightness = 255; brightness >=0 ; brightness--){
|
||||
analogWrite(9, brightness);
|
||||
Serial.println(brightness);
|
||||
delay(10);
|
||||
}
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/27 模拟输出 – 3 for循环/Lesson27-2/.pydio
Normal file
1
代码案例/6 Arduino基础学习/27 模拟输出 – 3 for循环/Lesson27-2/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
be794239-9b7a-4c2c-9d2e-685215064103
|
||||
32
代码案例/6 Arduino基础学习/27 模拟输出 – 3 for循环/Lesson27-2/Lesson27-2.ino
Executable file
32
代码案例/6 Arduino基础学习/27 模拟输出 – 3 for循环/Lesson27-2/Lesson27-2.ino
Executable file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
27 模拟输出3 - for-2
|
||||
太极创客
|
||||
www.taichi-maker.com
|
||||
|
||||
此程序用于太极创客<<零基础入门学用Arduino教程>>
|
||||
27 模拟输出3 - for-2
|
||||
|
||||
演示如何通过修改for循环语句表达式来调整程序运行状态。
|
||||
|
||||
2017-04-28
|
||||
*/
|
||||
void setup() {
|
||||
pinMode(9, OUTPUT); //设置9号引脚为输出模式
|
||||
Serial.begin(9600); //启动串口通讯
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// LED由暗到明
|
||||
for (int brightness = 0; brightness <= 255; brightness+=5){
|
||||
analogWrite(9, brightness);
|
||||
Serial.println(brightness);
|
||||
delay(10);
|
||||
}
|
||||
|
||||
// LED由明到暗
|
||||
for (int brightness = 255; brightness >=0 ; brightness-=5){
|
||||
analogWrite(9, brightness);
|
||||
Serial.println(brightness);
|
||||
delay(10);
|
||||
}
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/29 模拟输入2 – analogRead/.pydio
Normal file
1
代码案例/6 Arduino基础学习/29 模拟输入2 – analogRead/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
0b9e8643-efff-4015-b874-5af1381542c2
|
||||
@@ -0,0 +1 @@
|
||||
0319c1b5-fda1-4821-a831-e8511e940c46
|
||||
30
代码案例/6 Arduino基础学习/29 模拟输入2 – analogRead/analogRead/analogRead.ino
Executable file
30
代码案例/6 Arduino基础学习/29 模拟输入2 – analogRead/analogRead/analogRead.ino
Executable file
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
模拟输入
|
||||
|
||||
本程序旨在演示如何使用analogRead()读取Arduino的引脚电平。
|
||||
通过调节电位器, A0引脚的输入电压将在0V-5V之间。
|
||||
该输入电压将被映射到数值0-1023之间,并显示在串口监视器中。
|
||||
|
||||
电路连接:
|
||||
电位器中间引脚连接到模拟输入A0引脚
|
||||
电位器两端引脚分别连接在Arduino +5V和接地引脚
|
||||
|
||||
太极创客 www.taichi-maker.com
|
||||
2017-01-08
|
||||
|
||||
This example code is in the public domain.
|
||||
|
||||
*/
|
||||
|
||||
void setup() {
|
||||
// 串口通讯初始化(9600 bps):
|
||||
Serial.begin(9600);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// 读取模拟输入值:
|
||||
int analogInputVal = analogRead(A0);
|
||||
|
||||
// 将结果通过串口监视器显示:
|
||||
Serial.println(analogInputVal);
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/30 模拟输入输出应用示例/.pydio
Normal file
1
代码案例/6 Arduino基础学习/30 模拟输入输出应用示例/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
6211f243-27b6-4d8e-b3cf-ecb4f4109b9b
|
||||
1
代码案例/6 Arduino基础学习/30 模拟输入输出应用示例/analogWrite/.pydio
Normal file
1
代码案例/6 Arduino基础学习/30 模拟输入输出应用示例/analogWrite/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
9cce2d5e-9e5c-43b8-919e-69a927fe0ee2
|
||||
42
代码案例/6 Arduino基础学习/30 模拟输入输出应用示例/analogWrite/analogWrite.ino
Executable file
42
代码案例/6 Arduino基础学习/30 模拟输入输出应用示例/analogWrite/analogWrite.ino
Executable file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
电位器模拟输出
|
||||
|
||||
读取模拟输入引脚,并将读取到的数值映射到0 - 255之间。然后用该映射结果设置
|
||||
引脚9的LED亮度,同时通过串口监视器显示这一映射结果。
|
||||
|
||||
电路连接:
|
||||
电位器中间引脚连接到模拟输入A0引脚
|
||||
电位器两端引脚分别连接在Arduino +5V和接地引脚
|
||||
* LED正极通过 限流电阻连接在Arduino的9号引脚
|
||||
LED负极接地
|
||||
|
||||
太极创客
|
||||
2017-01-08
|
||||
<blockquote data-secret="W1T9d0SaZ7" class="wp-embedded-content"><a href="http://www.taichi-maker.com/">欢迎来到太极创客网站!</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" src="http://www.taichi-maker.com/embed/#?secret=W1T9d0SaZ7" data-secret="W1T9d0SaZ7" width="600" height="338" title="《欢迎来到太极创客网站!》—太极创客" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
|
||||
|
||||
This example code is in the public domain.
|
||||
|
||||
*/
|
||||
|
||||
void setup() {
|
||||
|
||||
Serial.begin(9600); // 串口通讯初始化(9600 bps)
|
||||
pinMode(9, OUTPUT); // 设置9号引脚为输出模式
|
||||
}
|
||||
|
||||
void loop() {
|
||||
int analogInputVal = analogRead(A0); // 读取模拟输入值
|
||||
|
||||
int brightness = map(analogInputVal, 0, 1023, 0, 255); //将模拟输入数值(0 - 1023)等比映射到模拟输出数值区间(0-255)内
|
||||
|
||||
analogWrite(9, brightness); //根据模拟输入值调节LED亮度
|
||||
|
||||
// 将结果通过串口监视器显示:
|
||||
Serial.print("analogInputVal = ");
|
||||
Serial.println(analogInputVal);
|
||||
|
||||
Serial.print("brightness = ");
|
||||
Serial.println(brightness);
|
||||
|
||||
Serial.println("");
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/6 Arduino程序 – 程序结构/.pydio
Normal file
1
代码案例/6 Arduino基础学习/6 Arduino程序 – 程序结构/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
8d37103d-6aea-4fb5-b058-8f29a19b4c2a
|
||||
1
代码案例/6 Arduino基础学习/6 Arduino程序 – 程序结构/blink/.pydio
Normal file
1
代码案例/6 Arduino基础学习/6 Arduino程序 – 程序结构/blink/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
265bb6c1-15dd-496c-8a5a-a9ab7317d348
|
||||
46
代码案例/6 Arduino基础学习/6 Arduino程序 – 程序结构/blink/blink.ino
Executable file
46
代码案例/6 Arduino基础学习/6 Arduino程序 – 程序结构/blink/blink.ino
Executable file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
Blink
|
||||
Turns on an LED on for one second, then off for one second, repeatedly.
|
||||
反复的点亮LED一秒钟,然后关闭LED一秒钟。
|
||||
|
||||
Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
|
||||
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
|
||||
the correct LED pin independent of which board is used.
|
||||
If you want to know what pin the on-board LED is connected to on your Arduino model, check
|
||||
the Technical Specs of your board at https://www.arduino.cc/en/Main/Products
|
||||
很多Arduino开发板上带有一个你可以控制的LED. 在UNO, MEGA 和 ZERO型号的开发板上,
|
||||
这个LED连在了引脚13上。 在MKR1000型号的开发板上,这个LED连在了引脚6上。无论使用哪
|
||||
种型号的开发板,LED_BUILTIN可以代表正确的LED引脚编号。
|
||||
|
||||
This example code is in the public domain.
|
||||
|
||||
modified 8 May 2014
|
||||
by Scott Fitzgerald
|
||||
|
||||
modified 2 Sep 2016
|
||||
by Arturo Guadalupi
|
||||
|
||||
modified 8 Sep 2016
|
||||
by Colby Newman
|
||||
|
||||
注释中文翻译:太极创客
|
||||
www.taichi-maker.com
|
||||
*/
|
||||
|
||||
|
||||
// the setup function runs once when you press reset or power the board
|
||||
//当你给开发板通电后或者按下复位按钮后,setup函数运行一次。
|
||||
void setup() {
|
||||
// initialize digital pin LED_BUILTIN as an output.
|
||||
// 初始化LED_BUILTIN数字引脚为输出模式
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
// loop 函数永远会反复的运行
|
||||
void loop() {
|
||||
digitalWrite(LED_BUILTIN, HIGH); // 点亮LED(高电平)turn the LED on (HIGH is the voltage level)
|
||||
delay(1000); // 等待1秒 wait for a second
|
||||
digitalWrite(LED_BUILTIN, LOW); // 将电平设置为低来熄灭LED turn the LED off by making the voltage LOW
|
||||
delay(1000); // 等待1秒 wait for a second
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/7 Arduino程序 – 变量操作/.pydio
Normal file
1
代码案例/6 Arduino基础学习/7 Arduino程序 – 变量操作/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
e840df71-6c84-4814-a1d3-6ff177c80233
|
||||
1
代码案例/6 Arduino基础学习/7 Arduino程序 – 变量操作/blink/.pydio
Normal file
1
代码案例/6 Arduino基础学习/7 Arduino程序 – 变量操作/blink/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
5f3c6951-e0af-4c70-bb05-65f382250a86
|
||||
48
代码案例/6 Arduino基础学习/7 Arduino程序 – 变量操作/blink/blink.ino
Executable file
48
代码案例/6 Arduino基础学习/7 Arduino程序 – 变量操作/blink/blink.ino
Executable file
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
Blink
|
||||
Turns on an LED on for one second, then off for one second, repeatedly.
|
||||
反复的点亮LED一秒钟,然后关闭LED一秒钟。
|
||||
|
||||
Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
|
||||
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
|
||||
the correct LED pin independent of which board is used.
|
||||
If you want to know what pin the on-board LED is connected to on your Arduino model, check
|
||||
the Technical Specs of your board at https://www.arduino.cc/en/Main/Products
|
||||
很多Arduino开发板上带有一个你可以控制的LED. 在UNO, MEGA 和 ZERO型号的开发板上,
|
||||
这个LED连在了引脚13上。 在MKR1000型号的开发板上,这个LED连在了引脚6上。无论使用哪
|
||||
种型号的开发板,LED_BUILTIN可以代表正确的LED引脚编号。
|
||||
|
||||
This example code is in the public domain.
|
||||
|
||||
modified 8 May 2014
|
||||
by Scott Fitzgerald
|
||||
|
||||
modified 2 Sep 2016
|
||||
by Arturo Guadalupi
|
||||
|
||||
modified 8 Sep 2016
|
||||
by Colby Newman
|
||||
|
||||
注释中文翻译:太极创客
|
||||
www.taichi-maker.com
|
||||
*/
|
||||
|
||||
int delayTime;
|
||||
|
||||
// the setup function runs once when you press reset or power the board
|
||||
//当你给开发板通电后或者按下复位按钮后,setup函数运行一次。
|
||||
void setup() {
|
||||
// initialize digital pin LED_BUILTIN as an output.
|
||||
// 初始化LED_BUILTIN数字引脚为输出模式
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
// loop 函数永远会反复的运行
|
||||
void loop() {
|
||||
delayTime = delayTime + 1000;
|
||||
digitalWrite(LED_BUILTIN, HIGH); // 点亮LED(高电平)turn the LED on (HIGH is the voltage level)
|
||||
delay(1000); // 等待1秒 wait for a second
|
||||
digitalWrite(LED_BUILTIN, LOW); // 将电平设置为低来熄灭LED turn the LED off by making the voltage LOW
|
||||
delay(1000); // 等待1秒 wait for a second
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/8 程序函数 1/.pydio
Normal file
1
代码案例/6 Arduino基础学习/8 程序函数 1/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
44f61638-c91f-4f5c-a2d1-d616da9ae7ac
|
||||
1
代码案例/6 Arduino基础学习/8 程序函数 1/blink/.pydio
Normal file
1
代码案例/6 Arduino基础学习/8 程序函数 1/blink/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
96b107ca-f84f-4e08-b7ae-2cc30a37d8c9
|
||||
46
代码案例/6 Arduino基础学习/8 程序函数 1/blink/blink.ino
Executable file
46
代码案例/6 Arduino基础学习/8 程序函数 1/blink/blink.ino
Executable file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
Blink
|
||||
Turns on an LED on for one second, then off for one second, repeatedly.
|
||||
反复的点亮LED一秒钟,然后关闭LED一秒钟。
|
||||
|
||||
Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
|
||||
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
|
||||
the correct LED pin independent of which board is used.
|
||||
If you want to know what pin the on-board LED is connected to on your Arduino model, check
|
||||
the Technical Specs of your board at https://www.arduino.cc/en/Main/Products
|
||||
很多Arduino开发板上带有一个你可以控制的LED. 在UNO, MEGA 和 ZERO型号的开发板上,
|
||||
这个LED连在了引脚13上。 在MKR1000型号的开发板上,这个LED连在了引脚6上。无论使用哪
|
||||
种型号的开发板,LED_BUILTIN可以代表正确的LED引脚编号。
|
||||
|
||||
This example code is in the public domain.
|
||||
|
||||
modified 8 May 2014
|
||||
by Scott Fitzgerald
|
||||
|
||||
modified 2 Sep 2016
|
||||
by Arturo Guadalupi
|
||||
|
||||
modified 8 Sep 2016
|
||||
by Colby Newman
|
||||
|
||||
注释中文翻译:太极创客
|
||||
www.taichi-maker.com
|
||||
*/
|
||||
|
||||
|
||||
// the setup function runs once when you press reset or power the board
|
||||
//当你给开发板通电后或者按下复位按钮后,setup函数运行一次。
|
||||
void setup() {
|
||||
// initialize digital pin LED_BUILTIN as an output.
|
||||
// 初始化LED_BUILTIN数字引脚为输出模式
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
// loop 函数永远会反复的运行
|
||||
void loop() {
|
||||
digitalWrite(LED_BUILTIN, HIGH); // 点亮LED(高电平)turn the LED on (HIGH is the voltage level)
|
||||
delay(1000); // 等待1秒 wait for a second
|
||||
digitalWrite(LED_BUILTIN, LOW); // 将电平设置为低来熄灭LED turn the LED off by making the voltage LOW
|
||||
delay(1000); // 等待1秒 wait for a second
|
||||
}
|
||||
1
代码案例/6 Arduino基础学习/9 程序函数 2/.pydio
Normal file
1
代码案例/6 Arduino基础学习/9 程序函数 2/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
5bd7c8f1-f0c9-46b4-9fc5-8b98d22712a9
|
||||
1
代码案例/6 Arduino基础学习/9 程序函数 2/blink/.pydio
Normal file
1
代码案例/6 Arduino基础学习/9 程序函数 2/blink/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
03135306-03a2-472a-a067-57d67b1552b2
|
||||
46
代码案例/6 Arduino基础学习/9 程序函数 2/blink/blink.ino
Executable file
46
代码案例/6 Arduino基础学习/9 程序函数 2/blink/blink.ino
Executable file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
Blink
|
||||
Turns on an LED on for one second, then off for one second, repeatedly.
|
||||
反复的点亮LED一秒钟,然后关闭LED一秒钟。
|
||||
|
||||
Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
|
||||
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
|
||||
the correct LED pin independent of which board is used.
|
||||
If you want to know what pin the on-board LED is connected to on your Arduino model, check
|
||||
the Technical Specs of your board at https://www.arduino.cc/en/Main/Products
|
||||
很多Arduino开发板上带有一个你可以控制的LED. 在UNO, MEGA 和 ZERO型号的开发板上,
|
||||
这个LED连在了引脚13上。 在MKR1000型号的开发板上,这个LED连在了引脚6上。无论使用哪
|
||||
种型号的开发板,LED_BUILTIN可以代表正确的LED引脚编号。
|
||||
|
||||
This example code is in the public domain.
|
||||
|
||||
modified 8 May 2014
|
||||
by Scott Fitzgerald
|
||||
|
||||
modified 2 Sep 2016
|
||||
by Arturo Guadalupi
|
||||
|
||||
modified 8 Sep 2016
|
||||
by Colby Newman
|
||||
|
||||
注释中文翻译:太极创客
|
||||
www.taichi-maker.com
|
||||
*/
|
||||
|
||||
|
||||
// the setup function runs once when you press reset or power the board
|
||||
//当你给开发板通电后或者按下复位按钮后,setup函数运行一次。
|
||||
void setup() {
|
||||
// initialize digital pin LED_BUILTIN as an output.
|
||||
// 初始化LED_BUILTIN数字引脚为输出模式
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
// loop 函数永远会反复的运行
|
||||
void loop() {
|
||||
digitalWrite(LED_BUILTIN, HIGH); // 点亮LED(高电平)turn the LED on (HIGH is the voltage level)
|
||||
delay(1000); // 等待1秒 wait for a second
|
||||
digitalWrite(LED_BUILTIN, LOW); // 将电平设置为低来熄灭LED turn the LED off by making the voltage LOW
|
||||
delay(1000); // 等待1秒 wait for a second
|
||||
}
|
||||
1
代码案例/web网页ajax控制esp8266/.pydio
Normal file
1
代码案例/web网页ajax控制esp8266/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
e4a68fa0-c5da-4b17-8b94-7de63d81efbe
|
||||
128
代码案例/web网页ajax控制esp8266/3_4_4_SPIFFS_Pin_Control_and_A0_Read_Server.ino
Executable file
128
代码案例/web网页ajax控制esp8266/3_4_4_SPIFFS_Pin_Control_and_A0_Read_Server.ino
Executable file
@@ -0,0 +1,128 @@
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <ESP8266WiFiMulti.h>
|
||||
#include <ESP8266WebServer.h>
|
||||
#include <FS.h>
|
||||
|
||||
ESP8266WiFiMulti wifiMulti; // 建立ESP8266WiFiMulti对象,对象名称是 'wifiMulti'
|
||||
|
||||
ESP8266WebServer esp8266_server(80); // 建立网络服务器对象,该对象用于响应HTTP请求。监听端口(80)
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600); // 启动串口通讯
|
||||
Serial.println("");
|
||||
|
||||
pinMode(LED_BUILTIN, OUTPUT); // 初始化NodeMCU控制板载LED引脚为OUTPUT
|
||||
digitalWrite(LED_BUILTIN, HIGH);// 初始化LED引脚状态
|
||||
|
||||
wifiMulti.addAP("ssid_from_AP_1", "your_password_for_AP_1"); // 将需要连接的一系列WiFi ID和密码输入这里
|
||||
wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2"); // ESP8266-NodeMCU再启动后会扫描当前网络
|
||||
wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3"); // 环境查找是否有这里列出的WiFi ID。如果有
|
||||
Serial.println("Connecting ..."); // 则尝试使用此处存储的密码进行连接。
|
||||
|
||||
int i = 0;
|
||||
while (wifiMulti.run() != WL_CONNECTED) { // 尝试进行wifi连接。
|
||||
delay(1000);
|
||||
Serial.print(i++); Serial.print(' ');
|
||||
}
|
||||
|
||||
// WiFi连接成功后将通过串口监视器输出连接成功信息
|
||||
Serial.println('\n');
|
||||
Serial.print("Connected to ");
|
||||
Serial.println(WiFi.SSID()); // 通过串口监视器输出连接的WiFi名称
|
||||
Serial.print("IP address:\t");
|
||||
Serial.println(WiFi.localIP()); // 通过串口监视器输出ESP8266-NodeMCU的IP
|
||||
|
||||
if(SPIFFS.begin()){ // 启动闪存文件系统
|
||||
Serial.println("SPIFFS Started.");
|
||||
} else {
|
||||
Serial.println("SPIFFS Failed to Start.");
|
||||
}
|
||||
|
||||
esp8266_server.on("/setLED", handleLED);
|
||||
esp8266_server.on("/readADC", handleADC);
|
||||
|
||||
esp8266_server.onNotFound(handleUserRequest); // 处理其它网络请求
|
||||
|
||||
// 启动网站服务
|
||||
esp8266_server.begin();
|
||||
Serial.println("HTTP server started");
|
||||
}
|
||||
|
||||
void loop(void) {
|
||||
esp8266_server.handleClient();
|
||||
}
|
||||
|
||||
|
||||
void handleLED() {
|
||||
String ledState = "OFF";
|
||||
String LED_State = esp8266_server.arg("LEDstate"); //参考xhttp.open("GET", "setLED?LEDstate="+led, true);
|
||||
Serial.println(LED_State);
|
||||
|
||||
if(LED_State == "1"){
|
||||
digitalWrite(LED_BUILTIN,LOW); //LED 点亮
|
||||
ledState = "ON"; //反馈参数
|
||||
} else {
|
||||
digitalWrite(LED_BUILTIN,HIGH); //LED 熄灭
|
||||
ledState = "OFF"; //反馈参数
|
||||
}
|
||||
|
||||
esp8266_server.send(200, "text/plain", ledState); //发送网页
|
||||
}
|
||||
|
||||
void handleADC() {
|
||||
int a = analogRead(A0);
|
||||
String adcValue = String(a);
|
||||
|
||||
esp8266_server.send(200, "text/plain", adcValue); //发送模拟输入引脚到客户端ajax请求
|
||||
}
|
||||
|
||||
// 处理用户浏览器的HTTP访问
|
||||
void handleUserRequest() {
|
||||
|
||||
// 获取用户请求资源(Request Resource)
|
||||
String reqResource = esp8266_server.uri();
|
||||
Serial.print("reqResource: ");
|
||||
Serial.println(reqResource);
|
||||
|
||||
// 通过handleFileRead函数处处理用户请求资源
|
||||
bool fileReadOK = handleFileRead(reqResource);
|
||||
|
||||
// 如果在SPIFFS无法找到用户访问的资源,则回复404 (Not Found)
|
||||
if (!fileReadOK){
|
||||
esp8266_server.send(404, "text/plain", "404 Not Found");
|
||||
}
|
||||
}
|
||||
|
||||
bool handleFileRead(String resource) { //处理浏览器HTTP访问
|
||||
|
||||
if (resource.endsWith("/")) { // 如果访问地址以"/"为结尾
|
||||
resource = "/index.html"; // 则将访问地址修改为/index.html便于SPIFFS访问
|
||||
}
|
||||
|
||||
String contentType = getContentType(resource); // 获取文件类型
|
||||
|
||||
if (SPIFFS.exists(resource)) { // 如果访问的文件可以在SPIFFS中找到
|
||||
File file = SPIFFS.open(resource, "r"); // 则尝试打开该文件
|
||||
esp8266_server.streamFile(file, contentType);// 并且将该文件返回给浏览器
|
||||
file.close(); // 并且关闭文件
|
||||
return true; // 返回true
|
||||
}
|
||||
return false; // 如果文件未找到,则返回false
|
||||
}
|
||||
|
||||
// 获取文件类型
|
||||
String getContentType(String filename){
|
||||
if(filename.endsWith(".htm")) return "text/html";
|
||||
else if(filename.endsWith(".html")) return "text/html";
|
||||
else if(filename.endsWith(".css")) return "text/css";
|
||||
else if(filename.endsWith(".js")) return "application/javascript";
|
||||
else if(filename.endsWith(".png")) return "image/png";
|
||||
else if(filename.endsWith(".gif")) return "image/gif";
|
||||
else if(filename.endsWith(".jpg")) return "image/jpeg";
|
||||
else if(filename.endsWith(".ico")) return "image/x-icon";
|
||||
else if(filename.endsWith(".xml")) return "text/xml";
|
||||
else if(filename.endsWith(".pdf")) return "application/x-pdf";
|
||||
else if(filename.endsWith(".zip")) return "application/x-zip";
|
||||
else if(filename.endsWith(".gz")) return "application/x-gzip";
|
||||
return "text/plain";
|
||||
}
|
||||
1
代码案例/web网页ajax控制esp8266/data/.pydio
Normal file
1
代码案例/web网页ajax控制esp8266/data/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
23810dcb-e110-4ab0-90bc-89f7d4510f92
|
||||
1
代码案例/web网页ajax控制esp8266/data/img/.pydio
Normal file
1
代码案例/web网页ajax控制esp8266/data/img/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
45fbab3c-e223-42b3-a8bb-6d993c815119
|
||||
BIN
代码案例/web网页ajax控制esp8266/data/img/taichi-maker.jpg
Executable file
BIN
代码案例/web网页ajax控制esp8266/data/img/taichi-maker.jpg
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
63
代码案例/web网页ajax控制esp8266/data/index.html
Executable file
63
代码案例/web网页ajax控制esp8266/data/index.html
Executable file
@@ -0,0 +1,63 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>太极创客-零基础入门学用物联网教程</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<center>
|
||||
<a href="http://www.taichi-maker.com" target="_blank"><img src="/img/taichi-maker.jpg" alt="太极创客"></a>
|
||||
<div id="demo">
|
||||
<h1>以下按钮可控制ESP8266开发板引脚</h1>
|
||||
<br>
|
||||
<button type="button" onclick="sendData(1)">点亮 LED</button>
|
||||
<button type="button" onclick="sendData(0)">关闭 LED</button><br>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
LED引脚状态 : <span id="LEDState">NA</span><br>
|
||||
</div>
|
||||
<br><br>
|
||||
<div id="demo">
|
||||
<h1>以下为模拟输入引脚A0的实时读数</h1>
|
||||
<div>
|
||||
A0引脚读数 : <span id="ADCValue">0</span><br>
|
||||
</div>
|
||||
<p>此页面用于演示如何通过网页控制LED引脚以及将A0引脚读数实时显示于网页中。</p>
|
||||
<p>本教程可在太极创客网站免费获取。太极创客网址: <a href="http://www.taichi-maker.com" target="_blank">www.taichi-maker.com</a></p>
|
||||
|
||||
<script>
|
||||
function sendData(led) {
|
||||
var xhttp = new XMLHttpRequest();
|
||||
xhttp.onreadystatechange = function() {
|
||||
if (this.readyState == 4 && this.status == 200) {
|
||||
document.getElementById("LEDState").innerHTML =
|
||||
this.responseText;
|
||||
}
|
||||
};
|
||||
xhttp.open("GET", "setLED?LEDstate="+led, true);
|
||||
xhttp.send();
|
||||
}
|
||||
|
||||
setInterval(function() {
|
||||
// Call a function repetatively with 2 Second interval
|
||||
getData();
|
||||
}, 2000); //2000mSeconds update rate
|
||||
|
||||
function getData() {
|
||||
var xhttp = new XMLHttpRequest();
|
||||
xhttp.onreadystatechange = function() {
|
||||
if (this.readyState == 4 && this.status == 200) {
|
||||
document.getElementById("ADCValue").innerHTML =
|
||||
this.responseText;
|
||||
}
|
||||
};
|
||||
xhttp.open("GET", "readADC", true);
|
||||
xhttp.send();
|
||||
}
|
||||
</script>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
1
代码案例/web网页上传文件es8266/.pydio
Normal file
1
代码案例/web网页上传文件es8266/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
f2c2e01d-722f-4ed9-967f-a80d1a40d0dd
|
||||
139
代码案例/web网页上传文件es8266/3_4_8_SPIFFS_File_Upload_Server.ino
Executable file
139
代码案例/web网页上传文件es8266/3_4_8_SPIFFS_File_Upload_Server.ino
Executable file
@@ -0,0 +1,139 @@
|
||||
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <ESP8266WiFiMulti.h>
|
||||
#include <ESP8266WebServer.h>
|
||||
#include <FS.h>
|
||||
|
||||
ESP8266WiFiMulti wifiMulti; // 建立ESP8266WiFiMulti对象,对象名称是 'wifiMulti'
|
||||
|
||||
ESP8266WebServer esp8266_server(80); // 建立网络服务器对象,该对象用于响应HTTP请求。监听端口(80)
|
||||
|
||||
File fsUploadFile; // 建立文件对象用于闪存文件上传
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
Serial.println("");
|
||||
|
||||
wifiMulti.addAP("ssid_from_AP_1", "your_password_for_AP_1"); // 将需要连接的一系列WiFi ID和密码输入这里
|
||||
wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2"); // ESP8266-NodeMCU再启动后会扫描当前网络
|
||||
wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3"); // 环境查找是否有这里列出的WiFi ID。如果有
|
||||
Serial.println("Connecting ..."); // 则尝试使用此处存储的密码进行连接。
|
||||
|
||||
int i = 0;
|
||||
while (wifiMulti.run() != WL_CONNECTED) { // 尝试进行wifi连接。
|
||||
delay(1000);
|
||||
Serial.print(i++); Serial.print('.');
|
||||
}
|
||||
|
||||
// WiFi连接成功后将通过串口监视器输出连接成功信息
|
||||
Serial.println('\n');
|
||||
Serial.print("Connected to ");
|
||||
Serial.println(WiFi.SSID()); // 通过串口监视器输出连接的WiFi名称
|
||||
Serial.print("IP address:\t");
|
||||
Serial.println(WiFi.localIP()); // 通过串口监视器输出ESP8266-NodeMCU的IP
|
||||
|
||||
if(SPIFFS.begin()){ // 启动闪存文件系统
|
||||
Serial.println("SPIFFS Started.");
|
||||
} else {
|
||||
Serial.println("SPIFFS Failed to Start.");
|
||||
}
|
||||
|
||||
esp8266_server.on("/upload.html", // 如果客户端通过upload页面
|
||||
HTTP_POST, // 向服务器发送文件(请求方法POST)
|
||||
respondOK, // 则回复状态码 200 给客户端
|
||||
handleFileUpload);// 并且运行处理文件上传函数
|
||||
|
||||
esp8266_server.onNotFound(handleUserRequest);
|
||||
|
||||
esp8266_server.begin(); // 启动网站服务
|
||||
Serial.println("HTTP server started");
|
||||
}
|
||||
|
||||
void loop() {
|
||||
esp8266_server.handleClient();
|
||||
}
|
||||
|
||||
// 处理上传文件函数
|
||||
void handleFileUpload(){
|
||||
|
||||
HTTPUpload& upload = esp8266_server.upload();
|
||||
|
||||
if(upload.status == UPLOAD_FILE_START){ // 如果上传状态为UPLOAD_FILE_START
|
||||
|
||||
String filename = upload.filename; // 建立字符串变量用于存放上传文件名
|
||||
if(!filename.startsWith("/")) filename = "/" + filename; // 为上传文件名前加上"/"
|
||||
Serial.println("File Name: " + filename); // 通过串口监视器输出上传文件的名称
|
||||
|
||||
fsUploadFile = SPIFFS.open(filename, "w"); // 在SPIFFS中建立文件用于写入用户上传的文件数据
|
||||
|
||||
} else if(upload.status == UPLOAD_FILE_WRITE){ // 如果上传状态为UPLOAD_FILE_WRITE
|
||||
|
||||
if(fsUploadFile)
|
||||
fsUploadFile.write(upload.buf, upload.currentSize); // 向SPIFFS文件写入浏览器发来的文件数据
|
||||
|
||||
} else if(upload.status == UPLOAD_FILE_END){ // 如果上传状态为UPLOAD_FILE_END
|
||||
if(fsUploadFile) { // 如果文件成功建立
|
||||
fsUploadFile.close(); // 将文件关闭
|
||||
Serial.println(" Size: "+ upload.totalSize); // 通过串口监视器输出文件大小
|
||||
esp8266_server.sendHeader("Location","/success.html"); // 将浏览器跳转到/success.html(成功上传页面)
|
||||
esp8266_server.send(303); // 发送相应代码303(重定向到新页面)
|
||||
} else { // 如果文件未能成功建立
|
||||
Serial.println("File upload failed"); // 通过串口监视器输出报错信息
|
||||
esp8266_server.send(500, "text/plain", "500: couldn't create file"); // 向浏览器发送相应代码500(服务器错误)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//回复状态码 200 给客户端
|
||||
void respondOK(){
|
||||
esp8266_server.send(200);
|
||||
}
|
||||
|
||||
// 处理用户浏览器的HTTP访问
|
||||
void handleUserRequest(){
|
||||
|
||||
// 获取用户请求网址信息
|
||||
String webAddress = esp8266_server.uri();
|
||||
|
||||
// 通过handleFileRead函数处处理用户访问
|
||||
bool fileReadOK = handleFileRead(webAddress);
|
||||
|
||||
// 如果在SPIFFS无法找到用户访问的资源,则回复404 (Not Found)
|
||||
if (!fileReadOK){
|
||||
esp8266_server.send(404, "text/plain", "404 Not Found");
|
||||
}
|
||||
}
|
||||
|
||||
bool handleFileRead(String path) { //处理浏览器HTTP访问
|
||||
|
||||
if (path.endsWith("/")) { // 如果访问地址以"/"为结尾
|
||||
path = "/index.html"; // 则将访问地址修改为/index.html便于SPIFFS访问
|
||||
}
|
||||
|
||||
String contentType = getContentType(path); // 获取文件类型
|
||||
|
||||
if (SPIFFS.exists(path)) { // 如果访问的文件可以在SPIFFS中找到
|
||||
File file = SPIFFS.open(path, "r"); // 则尝试打开该文件
|
||||
esp8266_server.streamFile(file, contentType);// 并且将该文件返回给浏览器
|
||||
file.close(); // 并且关闭文件
|
||||
return true; // 返回true
|
||||
}
|
||||
return false; // 如果文件未找到,则返回false
|
||||
}
|
||||
|
||||
// 获取文件类型
|
||||
String getContentType(String filename){
|
||||
if(filename.endsWith(".htm")) return "text/html";
|
||||
else if(filename.endsWith(".html")) return "text/html";
|
||||
else if(filename.endsWith(".css")) return "text/css";
|
||||
else if(filename.endsWith(".js")) return "application/javascript";
|
||||
else if(filename.endsWith(".png")) return "image/png";
|
||||
else if(filename.endsWith(".gif")) return "image/gif";
|
||||
else if(filename.endsWith(".jpg")) return "image/jpeg";
|
||||
else if(filename.endsWith(".ico")) return "image/x-icon";
|
||||
else if(filename.endsWith(".xml")) return "text/xml";
|
||||
else if(filename.endsWith(".pdf")) return "application/x-pdf";
|
||||
else if(filename.endsWith(".zip")) return "application/x-zip";
|
||||
else if(filename.endsWith(".gz")) return "application/x-gzip";
|
||||
return "text/plain";
|
||||
}
|
||||
1
代码案例/web网页上传文件es8266/data/.pydio
Normal file
1
代码案例/web网页上传文件es8266/data/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
8fd89742-7fa9-406e-88af-5b777aaedf96
|
||||
1
代码案例/web网页上传文件es8266/data/img/.pydio
Normal file
1
代码案例/web网页上传文件es8266/data/img/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
843e65e3-1a68-48c7-b2a0-6b4bcf27034d
|
||||
BIN
代码案例/web网页上传文件es8266/data/img/taichi-maker.jpg
Executable file
BIN
代码案例/web网页上传文件es8266/data/img/taichi-maker.jpg
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
21
代码案例/web网页上传文件es8266/data/index.html
Executable file
21
代码案例/web网页上传文件es8266/data/index.html
Executable file
@@ -0,0 +1,21 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="stylesheet" type="text/css" href="main.css">
|
||||
<title>太极创客-零基础入门学用物联网教程</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<center>
|
||||
<a href="http://www.taichi-maker.com" target="_blank"><img src="/img/taichi-maker.jpg" alt="太极创客"></a>
|
||||
<h1>ESP8266 SPIFFS 文件上传</h1>
|
||||
<p>此页面用于演示如何通过浏览器向ESP8266开发板的SPIFFS上传文件。</p>
|
||||
<p></p>
|
||||
<p>本教程可在太极创客网站免费获取。太极创客网址: <a href="http://www.taichi-maker.com">www.taichi-maker.com</a> .
|
||||
<p> <a href="/upload.html">点击此处进入文件上传页面</a> </p>
|
||||
</center>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
4
代码案例/web网页上传文件es8266/data/main.css
Executable file
4
代码案例/web网页上传文件es8266/data/main.css
Executable file
@@ -0,0 +1,4 @@
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
color: #444;
|
||||
}
|
||||
16
代码案例/web网页上传文件es8266/data/success.html
Executable file
16
代码案例/web网页上传文件es8266/data/success.html
Executable file
@@ -0,0 +1,16 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="stylesheet" type="text/css" href="main.css">
|
||||
<title>太极创客-零基础入门学用物联网教程</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<a href="http://www.taichi-maker.com" target="_blank"><img src="/img/taichi-maker.jpg" alt="太极创客"></a>
|
||||
<h1>ESP8266 SPIFFS 文件上传成功</h1>
|
||||
<p><a href="/">返回首页</a></p>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
22
代码案例/web网页上传文件es8266/data/upload.html
Executable file
22
代码案例/web网页上传文件es8266/data/upload.html
Executable file
@@ -0,0 +1,22 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="stylesheet" type="text/css" href="main.css">
|
||||
<title>太极创客-零基础入门学用物联网教程</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<center>
|
||||
<a href="http://www.taichi-maker.com" target="_blank"><img src="/img/taichi-maker.jpg" alt="太极创客"></a>
|
||||
<h1>ESP8266 SPIFFS 文件上传</h1>
|
||||
<p>点击按钮选择需要上传的文件</p>
|
||||
<form method="POST" enctype="multipart/form-data">
|
||||
<input type="file" name="data">
|
||||
<input class="button" type="submit" value="上传">
|
||||
</form>
|
||||
</center>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
1
代码案例/web网页图表控制亮度(必看)/.pydio
Normal file
1
代码案例/web网页图表控制亮度(必看)/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
610bc272-e001-4b70-b397-ddefbec96981
|
||||
@@ -0,0 +1 @@
|
||||
8827daee-485e-4012-a0c9-4d4f85222032
|
||||
@@ -0,0 +1,112 @@
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <ESP8266WiFiMulti.h>
|
||||
#include <ESP8266WebServer.h>
|
||||
#include <FS.h>
|
||||
|
||||
ESP8266WiFiMulti wifiMulti; // 建立ESP8266WiFiMulti对象
|
||||
|
||||
ESP8266WebServer esp8266_server(80);// 建立esp8266网站服务器对象
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
Serial.println("");
|
||||
|
||||
pinMode(LED_BUILTIN, OUTPUT); // 设置开发板内置LED引脚为输出模式
|
||||
|
||||
wifiMulti.addAP("bmy", "lb714500"); // 将需要连接的一系列WiFi ID和密码输入这里
|
||||
Serial.println("Connecting ..."); // 则尝试使用此处存储的密码进行连接。
|
||||
|
||||
int i = 0;
|
||||
while (wifiMulti.run() != WL_CONNECTED) { // 尝试进行wifi连接。
|
||||
delay(1000);
|
||||
Serial.print(i++); Serial.print(' ');
|
||||
}
|
||||
|
||||
// WiFi连接成功后将通过串口监视器输出连接成功信息
|
||||
Serial.println('\n');
|
||||
Serial.print("Connected to ");
|
||||
Serial.println(WiFi.SSID()); // 通过串口监视器输出连接的WiFi名称
|
||||
Serial.print("IP address:\t");
|
||||
Serial.println(WiFi.localIP()); // 通过串口监视器输出ESP8266-NodeMCU的IP
|
||||
|
||||
if(SPIFFS.begin()){ // 启动闪存文件系统
|
||||
Serial.println("SPIFFS Started.");
|
||||
} else {
|
||||
Serial.println("SPIFFS Failed to Start.");
|
||||
}
|
||||
|
||||
//初始化网络服务器
|
||||
esp8266_server.on("/setLED",handlePWM); // 处理PWM设置请求
|
||||
esp8266_server.onNotFound(handleUserRequest); // 处理网络请求
|
||||
|
||||
// 启动网站服务
|
||||
esp8266_server.begin();
|
||||
Serial.println("HTTP server started");
|
||||
}
|
||||
|
||||
void loop() {
|
||||
esp8266_server.handleClient(); // 处理客户端请求
|
||||
}
|
||||
|
||||
// 处理PWM设置请求并对引脚进行PWM设置
|
||||
void handlePWM(){
|
||||
String pwmStr = esp8266_server.arg("pwm"); // 获取用户请求中的PWM数值
|
||||
|
||||
int pwmVal = pwmStr.toInt(); // 将用户请求中的PWM数值转换为整数
|
||||
Serial.print("pwmVal ====== ");
|
||||
Serial.println(pwmVal);
|
||||
|
||||
analogWrite(LED_BUILTIN, pwmVal); // 实现PWM引脚设置
|
||||
esp8266_server.send(200, "text/plain");//向客户端发送200响应信息
|
||||
}
|
||||
|
||||
// 处理用户浏览器的HTTP访问
|
||||
void handleUserRequest() {
|
||||
|
||||
// 获取用户请求资源(Request Resource)
|
||||
String reqResource = esp8266_server.uri();
|
||||
Serial.print("reqResource: ");
|
||||
Serial.println(reqResource);
|
||||
|
||||
// 通过handleFileRead函数处处理用户请求资源
|
||||
bool fileReadOK = handleFileRead(reqResource);
|
||||
|
||||
// 如果在SPIFFS无法找到用户访问的资源,则回复404 (Not Found)
|
||||
if (!fileReadOK){
|
||||
esp8266_server.send(404, "text/plain", "404 Not Found");
|
||||
}
|
||||
}
|
||||
|
||||
bool handleFileRead(String resource) { //处理浏览器HTTP访问
|
||||
|
||||
if (resource.endsWith("/")) { // 如果访问地址以"/"为结尾
|
||||
resource = "/index.html"; // 则将访问地址修改为/index.html便于SPIFFS访问
|
||||
}
|
||||
|
||||
String contentType = getContentType(resource); // 获取文件类型
|
||||
|
||||
if (SPIFFS.exists(resource)) { // 如果访问的文件可以在SPIFFS中找到
|
||||
File file = SPIFFS.open(resource, "r"); // 则尝试打开该文件
|
||||
esp8266_server.streamFile(file, contentType);// 并且将该文件返回给浏览器
|
||||
file.close(); // 并且关闭文件
|
||||
return true; // 返回true
|
||||
}
|
||||
return false; // 如果文件未找到,则返回false
|
||||
}
|
||||
|
||||
// 获取文件类型
|
||||
String getContentType(String filename){
|
||||
if(filename.endsWith(".htm")) return "text/html";
|
||||
else if(filename.endsWith(".html")) return "text/html";
|
||||
else if(filename.endsWith(".css")) return "text/css";
|
||||
else if(filename.endsWith(".js")) return "application/javascript";
|
||||
else if(filename.endsWith(".png")) return "image/png";
|
||||
else if(filename.endsWith(".gif")) return "image/gif";
|
||||
else if(filename.endsWith(".jpg")) return "image/jpeg";
|
||||
else if(filename.endsWith(".ico")) return "image/x-icon";
|
||||
else if(filename.endsWith(".xml")) return "text/xml";
|
||||
else if(filename.endsWith(".pdf")) return "application/x-pdf";
|
||||
else if(filename.endsWith(".zip")) return "application/x-zip";
|
||||
else if(filename.endsWith(".gz")) return "application/x-gzip";
|
||||
return "text/plain";
|
||||
}
|
||||
1
代码案例/web网页图表控制亮度(必看)/data/.pydio
Normal file
1
代码案例/web网页图表控制亮度(必看)/data/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
ac01c4c1-3211-480e-8501-216be22ecd8c
|
||||
1
代码案例/web网页图表控制亮度(必看)/data/img/.pydio
Normal file
1
代码案例/web网页图表控制亮度(必看)/data/img/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
3e46a81c-ab84-4c88-a8de-a866c0a70aba
|
||||
BIN
代码案例/web网页图表控制亮度(必看)/data/img/taichi-maker.jpg
Executable file
BIN
代码案例/web网页图表控制亮度(必看)/data/img/taichi-maker.jpg
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
62
代码案例/web网页图表控制亮度(必看)/data/index.html
Executable file
62
代码案例/web网页图表控制亮度(必看)/data/index.html
Executable file
@@ -0,0 +1,62 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>太极创客-零基础入门学用物联网教程</title>
|
||||
<script src="jquery.min.js"></script>
|
||||
<script src="knob.js"></script>
|
||||
|
||||
<script>
|
||||
$(".dial").trigger("configure", {
|
||||
min: 0,
|
||||
max: 255,
|
||||
width: 150,
|
||||
fgColor: "#ffec03",
|
||||
skin: "tron",
|
||||
thickness: 0.2,
|
||||
displayPrevious: true,
|
||||
cursor: true,
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<a href="http://www.taichi-maker.com" target="_blank"
|
||||
><img src="/img/taichi-maker.jpg" alt="太极创客"
|
||||
/></a>
|
||||
<h1>以下旋钮可控制ESP8266开发板LED亮度</h1>
|
||||
<input
|
||||
type="text"
|
||||
class="dial"
|
||||
data-displayPrevious="true"
|
||||
data-fgColor="#00A8A9"
|
||||
data-thickness=".3"
|
||||
value="29"
|
||||
/>
|
||||
|
||||
<script>
|
||||
$(".dial").knob({
|
||||
change: function (v) {
|
||||
console.log(Math.round(v, 0));
|
||||
$.ajax({
|
||||
url: "/setLED?pwm=" + Math.round(v, 0),
|
||||
success: function (result) {
|
||||
$("#div1").html(result);
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
</script>
|
||||
<p style="text-align: center">
|
||||
此页面用于演示如何通过网页控制ESP8266引脚的PWM数值。
|
||||
本教程可在太极创客网站免费获取。
|
||||
</p>
|
||||
<p style="text-align: center">
|
||||
太极创客网址:
|
||||
<a href="http://www.taichi-maker.com" target="_blank"
|
||||
>www.taichi-maker.com</a
|
||||
>
|
||||
</p>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user