【太极创客】零基础入门学用Arduino 第一部分 合辑笔记

简介: 什么是变量?变量储存在内存里变量值_可变 变量名_不变变量类型 整数型int创建变量 int currentTemperature;变量名称规则 用连贯的一个词 特殊字符不能用 第一个不能是数字 不能使用关键字

1~5


什么是变量?

变量存储在内存里

变量值_可变 变量名_不变

变量类型 整数型int

创建变量 int currentTemperature;

变量名称规则 用连贯的一个词 特殊字符不能用 第一个不能是数字 不能使用关键字

给变量赋值 =(赋值运算符

nt currentTemperature = 18;

int  currentTemperature;

currentTemperature = 18;

变量定义时直接赋值 或 定义后赋值 都是可以的


1-6


示例程序:

void setup(执行一次)

void loop(反复执行)

digitalWrite(点亮)

delay(等待多少毫秒

请留意,在本视频讲解21:35秒左右,进行程序修改时,我们将变量重新定义在loop函数里面。这将导致该变量是loop函数里面的局部变量。因此该变量在每一次loop函数执行时都会被重置,因此在后续的视频演示中,您所看到数码管显示的数字是8而不是真正的随机数字

应该将变量myMumber重新定义在setup函数前面,即将mynumber定义为全局变量。这样最后的led数码管才能正常显示随机数字。


P6笔记:


1、int是“整数类型变量”


2、变量名称规则:


① 只能输入英文


② 变量名只能用连贯的一个词,中间不能加空格


③ 变量名中不能有特殊字符


④ 第一个字符不能是数字


⑤ 关键字不能做变量名称(IDE中变蓝的词)


⑥ 可以加入下划线


3、整数变量数值默认给0

4、等号(=)有个特殊的名称“赋值运算符”


整数型变量int语句结束后用;


注释 //


多行注释*/


函数后有圆括号 大括号内是函数内容 赋值空格加=加空格


P7笔记:


1、当打开arduino程序先看到注释文字

2、void setup()属于初始化工作(只运行一次)

3、void loop()函数会永远反复的运行

4、delay ();延迟某段时间

5、delay ();括号内可以添加变量名称课后问题:

小LED会亮3s灭3s,一直持续下去


P8笔记:


整数类型:若一个数值超过最大范围,这个数值会返回到最小数值

变量有作用域:在特定范围内声明,分为全局变量和局部变量。(一个包含到所有函数,另一个只应用于选定的函数)


课后问题:浮点型——浮点数的取值范围在3.4028235 E+38 ~ -3.4028235 E+38


P9笔记:


1、函数固定的格式:


什么函数+多少个参数


2、delay()只需要一个参数


课后作业:


delayMicroseconds()是用于暂停程序运行,与delay用法一致,不同的是暂停时间的单位不同。


P10笔记:


PINMODE:

pinMode()函数语法:

pinMode(脚位,工作模式)


pinMode()函数可以将Arduino的引脚配置成三种模式:

1、输出模式(OUTPUT)——使用引脚提供≤40ma的电流

2、输入模式(INPUT)

3、上拉模式(INPUT_PULLUP)


DIGITALWRITE:

digitalWrite()函数语法:

digitalWrite(脚位,高电平或低电平)


高电平(HIGH)5v 低电平(LOW)0v/GND


使引脚变为输出的顺序:


1、先给引脚设置相应的工作状态——pinMode(脚位,工作模式)

2、然后设置脚位的状态——digitalWrite(脚位,高电平或低电平)


3、设置持续时间——delay(毫秒)

P11笔记:


1、 LED:发光二级管(长的为+,短的为-),工作时候回产生2V的压降(与LED限流电阻搭配使用)


led --light Emiitting Diode 缩写 led发光二极管


正极+ Anode


负极- Cathode


led电阻正向电阻约等于0,需要配合适当阻值的电阻使用(限流电阻很重要),否则电源烧毁 led烧毁; 反向电阻很大相当于断开


正常工作状态下 led灯珠工作中 2v左右压降(Va-Vb=2v) 20mA电流 ;


P12笔记:


1、 GND(ground接地),

2、 高电平(HIGH):5V

低电平(LOW):0V


P14笔记


1、 开关(同侧不相连,相连不同侧)


2、 input


3、 上拉电阻


4、 引脚悬空


补充:引脚悬空的时候,电位读取可能是低电位、也可能是高电位

补充:1—pinmode()设置引脚为input模式时为高阻抗状态(100兆欧)。

按键开关push button–功能性电子开关,点按接通,松开断开(数字信号)。特点“同侧不相连,相连不同侧”AD连 BC不连。

input模式时,HIGH LOW两种状态可以识别

开关按和没按时,等效电路是不同的。开-引脚2 HIGH高电平 ;关-引脚2 Low低电平。

上拉电阻 10k即1万欧姆电阻,无上拉电阻的话,烧毁开发板


P17笔记


数据类型

布尔/boolean/bool

小于等于 1为真/true

=0 为假/false


1-15至1-17 逻辑控制


输入上拉模式(INPUT_PULLUP),arduino微控制器自带内部上拉电阻,可以通过pinMode()将引脚设置为输入上拉模式。

请留意:在上拉模式下,按钮的逻辑状态是反的。即:开关断开时引脚读取到高电平,开关被按下后引脚读取到低电平。

if(逻辑关系式){} //关系表达式通过关系运算得到真假,真为1,假为0,其数据类型均为布尔/Boolean(除了0外,给其他任何数值都当作1来处理)//关键字用boolean或者bool都可以

"=“为赋值运算符;”=="为关系运算符

布尔运算符:"!"(非);"||"(或);"&&"(与)


P16笔记


1.pinMode(引脚,INPUT_PULLUP)(引脚,输入上拉模式)

输入上拉模式时,使用的是arduino中的内部电阻

2.if…else 控制结构

if(表达式){

语句块1

}else{

语句块2

3.=赋值运算符

==关系运算符

4.x==y (x等于y) x!=y (x不等于y)

笔记详情
杭杭小同学
修改于 2021-08-04 22:21
140粉丝
关注

1-0 教程介绍 P1 - 01:38

Arduino是什么?
   
1-1 Arduino IDE 下载和安装 P2 - 00:19

如何下载安装Arduino编程软件
官方网址:www.arduino.cc

1-1 Arduino IDE 下载和安装 P2 - 02:45

下载途径二
网址:www.taichi-maker.com

1-1 Arduino IDE 下载和安装 P2 - 03:35

程序安装:
双击图标
(全部选中)
(点击安装)

1-1 Arduino IDE 下载和安装 P2 - 05:19

软件内:
如何设置中文
Arduino IDE 界面和设置

1-2 Arduino IDE 界面和设置 P3 - 02:00

如何选择开发板型号和端口

1-2 Arduino IDE 界面和设置 P3 - 03:35

如果这里是灰色的,一、检查插口;二、重装驱动;三、联系卖家
如果有很多选项,选择uno;只设置一次就行

1-2 Arduino IDE 界面和设置 P3 - 06:07

端口cum数不一样没事

1-2 Arduino IDE 界面和设置 P3 - 08:00

文件的保存
名字不能使用空格等,尽量纯英文

1-2 Arduino IDE 界面和设置 P3 - 10:04

arduino界面

1-2 Arduino IDE 界面和设置 P3 - 10:30

验证

1-2 Arduino IDE 界面和设置 P3 - 11:23

上传:把程序传给arduino
新建,打开,保存

1-2 Arduino IDE 界面和设置 P3 - 12:25

下方蓝色部分显示arduino ide的工作状态

1-3 Arduino 开发板基本介绍 P4 - 00:43

开源硬件

1-3 Arduino 开发板基本介绍 P4 - 04:20

国内官方

1-3 Arduino 开发板基本介绍 P4 - 05:15


1-3 Arduino 开发板基本介绍 P4 - 07:27


1-3 Arduino 开发板基本介绍 P4 - 08:42

端口0/1最后使用

1-3 Arduino 开发板基本介绍 P4 - 09:17


1-3 Arduino 开发板基本介绍 P4 - 09:49


1-4 初步认识Arduino程序 P5 - 00:51


1-4 初步认识Arduino程序 P5 - 01:27

程序注释
计算机看到这两个斜杆就会忽视

1-4 初步认识Arduino程序 P5 - 02:31

多行注释文字
/*
这是多行注释文字
我们可以在这里写出
很多行文字
*/

1-4 初步认识Arduino程序 P5 - 03:03

用;告诉机器这句话什么时候结束

1-4 初步认识Arduino程序 P5 - 04:27

变颜色的词叫关键词,有特殊功能

1-4 初步认识Arduino程序 P5 - 04:57

函数

1-5 Arduino程序 - 变量 P6 - 00:49

程序变量
在这里,当前温度和最高温度就是两个变量。

1-5 Arduino程序 - 变量 P6 - 01:39


1-5 Arduino程序 - 变量 P6 - 03:32

变量类型
我们要提前告诉arduino变量类型是什么

1-5 Arduino程序 - 变量 P6 - 05:04


1-5 Arduino程序 - 变量 P6 - 05:25

创建变量
int,integer的缩写,表示整数型变量

1-5 Arduino程序 - 变量 P6 - 06:24

如何在arduino中创建一个变量

1-5 Arduino程序 - 变量 P6 - 06:48

int(变量类型)空格 变量名称

1-5 Arduino程序 - 变量 P6 - 08:10

变量名称规则
变量名要用连贯的一个词,不能用空格
特殊字符?#¥等不能使用
第一个字符是数字不允许
关键字不允许使用

1-5 Arduino程序 - 变量 P6 - 11:27

两个单词情况可以用第二个单词的首字母大写或者用下划线

1-5 Arduino程序 - 变量 P6 - 12:19

如何给变量赋值
= 叫赋值运算符

1-6 Arduino程序 - 程序结构 P7 - 00:47


1-6 Arduino程序 - 程序结构 P7 - 05:18


1-6 Arduino程序 - 程序结构 P7 - 13:25

把变量写入程序
声明变量:一、变量类型
二、空格变量名称
三、赋值(初始值)
如果没有赋值则默认为0

1-6 Arduino程序 - 程序结构 P7 - 15:19


1-7 Arduino程序 - 变量操作 P8 - 01:45

每次 通电先执行int然后是setup;然后是loop
1-7 Arduino程序 - 变量操作 P8 - 03:53


1-7 Arduino程序 - 变量操作 P8 - 04:29

这种状态下,delaytime一直保持4000这个数

1-7 Arduino程序 - 变量操作 P8 - 04:43


1-7 Arduino程序 - 变量操作 P8 - 07:36

由于内存有限,变量类型的意义就在于预先在内存给你留空间,这个空间大小上限由变量类型决定。

1-7 Arduino程序 - 变量操作 P8 - 09:34

如果超过了变量类型的上限,会返回到下限

1-7 Arduino程序 - 变量操作 P8 - 10:40

数据超过int上限可用long

1-7 Arduino程序 - 变量操作 P8 - 11:23

由于内存有限,如果所有数据变量都是用的很大的数据类型,这是对内存的浪费。很可能有时候程序没写完,内存不够了。
建立变量靠考虑实际,在由此考虑变量类型
1-7 Arduino程序 - 变量操作 P8 - 13:44

变量的作用域

1-7 Arduino程序 - 变量操作 P8 - 14:36

变量建立在函数内部,则只允许在该函数内部使用。

1-7 Arduino程序 - 变量操作 P8 - 16:05

全局变量:建立在函数外,所有函数都可以使用

1-7 Arduino程序 - 变量操作 P8 - 17:08


1-7 Arduino程序 - 变量操作 P8 - 17:43

在不同函数里的同名变量可以使用,因为只在自己的函数里面工作。只是名字相同,但变量完全不同,作用域完全不同。尽量不要用完全一样的名字

1-8 Arduino程序 - 程序函数1 P9 - 00:47


1-8 Arduino程序 - 程序函数1 P9 - 01:28

调用函数
delay是arduino公司提前写好的函数。

1-8 Arduino程序 - 程序函数1 P9 - 02:33

两个参数用,隔开
有些函数不用参数,就给个()里面什么都不写
要去记什么函数需要用什么参数

1-8 Arduino程序 - 程序函数1 P9 - 04:02

functions是函数的英文名称。

1-9 Arduino程序 - 程序函数2 P10 - 02:05

开发板的led连在引脚13
引脚13在这里就是led的电源

1-9 Arduino程序 - 程序函数2 P10 - 04:33


1-9 Arduino程序 - 程序函数2 P10 - 05:27

pinmode函数在太极创客--参考资料--编程中可查
引脚设置为输出(output)模式时,引脚为低阻抗状态,这就意味着arduino可以向其他元器件提供电源,从而点亮led或者驱动电机。

1-9 Arduino程序 - 程序函数2 P10 - 06:45

要学会善用工具书

1-9 Arduino程序 - 程序函数2 P10 - 07:15

在arduino中LED_BUILTIN与13是划等号的。这么做的目的是arduino板的种类众多,引脚可能会变,但为了让示例程序能够通用于是让内置led引脚与LED_BUILTIN相等。

1-9 Arduino程序 - 程序函数2 P10 - 10:53

digitalwrite函数的讲解。在这里暂时粗浅的理解为开关即可。

1-9 Arduino程序 - 程序函数2 P10 - 12:40

用digitalwrite函数之前,必须要对相应引脚进行初始化操作。

1-9 Arduino程序 - 程序函数2 P10 - 13:32

回顾:用arduino电量led首先需要pinmode函数,pinmode(LED_BUILTIN,OUTPUT),为其配上小电源;接下来需要开关,则用digitalwrite函数,digitalwrite(LED_BUILTIN,HIGH)HIGH相当于开关闭合。

1-10 数字输出1 - 学用LED P11 - 01:27

LED=Light Emitting Diode
发光二极管

1-10 数字输出1 - 学用LED P11 - 05:48

发光二极管压降是如何产生的
  发光二极管可以看成恒压负载。LED的电压降取决于内部光子发射所需跃过的能量势垒。能量势垒由发光颜色决定,因此电压降也取决于发光颜色。由于生产过程的差异,使得每一个LED的波长不尽相同,所以也造成了电压降上的差异。最高波长的偏差带通常为±10u/o。
  在设计LED驱动电路时,最常见的错误是基于LED正向导通压降典型值k。yp进行设计。这种设计思路把多个LED串、并联了起来,并认为各LED串的总正向导通压降是相同的,流经各串的电流也是相等的。实际上,LED正向导通压降的偏差很大。例如,单个1w的luxeon star型白光LED的正向导通压降典型值为ⅵ=3.42 v,但实际值中最小的仅为2.79 v,最大的达3.99 v。正向导通压降的偏差高达±15%以上。

1-10 数字输出1 - 学用LED P11 - 07:16

为什么需要用到电阻:
1、假设去掉电阻,led正常工作时本身相当于一根会发光的导线
相当于把电源的正负极相连,这么做的结果就是巨大的电流可能会烧坏led,甚至烧坏为他供电的arduino

1-11 数字输出2 Arduino控制LED P12 - 01:41


1-11 数字输出2 Arduino控制LED P12 - 03:14


1-11 数字输出2 Arduino控制LED P12 - 04:52


1-11 数字输出2 Arduino控制LED P12 - 07:06


1-11 数字输出2 Arduino控制LED P12 - 07:36

该配多大电阻:
led有电压降,也就是说led正极是高于led负极,高2v

1-11 数字输出2 Arduino控制LED P12 - 08:19

引脚5提供5v的电压,led电压是2,也即是说电阻的电压是3v;
1-11 数字输出2 Arduino控制LED P12 - 08:27

led的工作电流是20ma
led正常工作时阻值特别低几乎可以看做一根导线,简化电路图,最后由欧姆定律得
市场上一般买不到150欧姆,一般是200欧姆和100欧姆,在这时候,为了led的安全考虑,我们选用较大的电阻即可。
1-11 数字输出2 Arduino控制LED P12 - 10:29


1-12 面包板 P13 - 03:39

黄色部分是相连的

1-12 面包板 P13 - 05:02

中间没有孔的部分是用来截断的。

1-12 面包板 P13 - 07:14

红蓝中间的部分,他们任意是连接在一起的。这么做的目的是
1-12 面包板 P13 - 08:12

一般红色接电源正极,蓝色接电源负极,当某个元器件需要用电时,就直接用导线引入就行。

1-12 面包板 P13 - 09:12


1-12 面包板 P13 - 10:29

面包板的规律

1-12 面包板 P13 - 13:47


1-12 面包板 P13 - 14:29


1-12 面包板 P13 - 16:01


1-13 数字输入1 - 按键开关 P14 - 00:56

pinmode函数的输入模式
引脚设置为输入(input)模式时,引脚为高阻抗状态(100兆欧)。此时引脚可用来读取传感器信号或开关信号。

1-13 数字输入1 - 按键开关 P14 - 01:22


1-13 数字输入1 - 按键开关 P14 - 02:18

按键开关内部结构
相连不同侧,同侧不相连。

1-13 数字输入1 - 按键开关 P14 - 03:45

开关信号还有个官方名称叫数字信号(广义上)

1-13 数字输入1 - 按键开关 P14 - 05:04

arduino的引脚设置为数字输入(input)状态时可以识别两种状态:
high(高电平)
low(低电平)

1-13 数字输入1 - 按键开关 P14 - 05:21


1-13 数字输入1 - 按键开关 P14 - 07:09


1-13 数字输入1 - 按键开关 P14 - 09:47


1-13 数字输入1 - 按键开关 P14 - 10:44


1-13 数字输入1 - 按键开关 P14 - 11:55


1-13 数字输入1 - 按键开关 P14 - 12:40


1-13 数字输入1 - 按键开关 P14 - 13:21

在开关连通后,r1能让电流不走所在的那条路

1-13 数字输入1 - 按键开关 P14 - 14:21


1-13 数字输入1 - 按键开关 P14 - 14:32


1-13 数字输入1 - 按键开关 P14 - 14:59

上拉电阻
上拉电阻一般较大,当开关按下时,道路连通,电流往上拉电阻处走时会受到较大阻力,电阻越大阻力越强。

1-13 数字输入1 - 按键开关 P14 - 16:54

如果没有上拉电阻,关闭开关后电源正极直接连接电源负极,会导致arduino烧坏
1-13 数字输入1 - 按键开关 P14 - 17:24

引脚悬空(floating)

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 00:47


1-14 数字输入2 - 按键开关控制电路与程序 P15 - 02:02

数字1就是当前引脚2 读取到的电平状态。
1-14 数字输入2 - 按键开关控制电路与程序 P15 - 02:35

按下开关(不放开)
窗口监视器变为0
再次放开开关时,窗口监视器为1

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 04:19

给2号引脚取了个名字叫pushbotton,以后再对2号引脚操作就直接写pushbottom。
在这里赋值的意义在于pushButton=2,一来,如果引脚数比较多,用数字的话容易乱,起个名字方便记忆;二来读程序的时候也方便。

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 05:17

serial.begin(9600)//串口通讯初始化,每秒9600位。

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 05:48

串口通讯
我们了解arduino的工作状态时,之前一直是用led但这其实远远不够。比如我们要知道这个程序里某一个变量它在程序运行中产生的一个变化,在这种情况下只有led肯定不够。这时我们就可以通过串口通讯让arduino通过它的串口把变量的运行状态发送到我们的电脑屏幕里来,这样我们随着arduuino的程序运行我们就可以看到我们想看的这个变量它的数据发生了怎样的变化。

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 06:34

Serial.begin(9600)的作用:
让arduino开发板启动串口通讯,同时把串口通讯的速率调节到9600。这个指令中间有一个小点,这个小点的作用是告诉arduino我们现在要使用serial这个库里面的begin的这个函数

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 07:42

同样是serial开头说明跟上一条一样用的也是serial库,不过这里用的是serial库里的println函数

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 08:12

总结:让arduino开始串口通讯一定要写Serial.begin(某个数,一般是9600)

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 08:12

9600是常用档位

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 09:32

设置为input,则引脚2为输入

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 09:51


1-14 数字输入2 - 按键开关控制电路与程序 P15 - 10:00

int 建立一个整数型变量;buttonState是变量名称;
= 是赋值运算符,给变量一个初始值,初始值的内容是语句。
语句的内容是条指令,指令的内容是digitalRead

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 11:15

digitalRead可以读取数字引脚的HIGH(高电平)或者LOW(低电平)
语法:
digitalRead(pin)

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 12:53

首先我们建立了一个整数型变量,变量的名称叫 buttonState,它是专门存储当前的按键的状态。我们给了这个变量一个初始数值,这个初始数值是获取到当前pushBottun这个引脚上的电平状态。也就是说当每次arduino运行完这条指令后,buttonState所存储的就是当前的引脚状态。
buttonState存储的是一个数值,digitalRead(pushButton)所获得的返回值是HIGH或LOW,这两个本身不是数字,为什么能把它赋值给buttonState这么一个数字的变量?

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 14:04

串口监视器用0和1显示。在串口监视器看到的1和0分别表示的是HIGH和LOW
这也是为什么我们便程序的时候不用HIGH和LOW,因为他们是关键字有特殊含义。

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 15:08

println的作用就是把buttonState这个变量数值输出到串口监视器中。
如果我们要输出某一个变量的数值到串口监视器,用这条指令就行。

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 16:04

写长程序是建议在最后加一个delay

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 16:58

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 17:56

按键开关的实物图
相连不同侧,同侧不相连
 
1-14 数字输入2 - 按键开关控制电路与程序 P15 - 23:08

实际电路连接

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 24:23

Serial.begin(9600)串口通讯中选择了9600的速率,,那么在串口监视器中也要选择9600波特率

1-14 数字输入2 - 按键开关控制电路与程序 P15 - 24:56

开发板引脚悬空时,读取数值随机

1-15 逻辑控制1 P16 - 00:48

介绍pinmode函数的上拉模式,pinmode(INPUT_PULLUP)

1-15 逻辑控制1 P16 - 04:15


1-15 逻辑控制1 P16 - 04:49

pinMode(2,INPUT_PULLUP)对2号引脚设置输入上拉模式
pinMode(13,OUTPUT),对13引脚设置输出模式
int sensorVal = digitalRead(2):Val在编程中是Value的缩写,sensor是传感器,Value数值,sensorvalue就是传感器数值;赋值digitalRead;

1-15 逻辑控制1 P16 - 07:12


1-15 逻辑控制1 P16 - 10:38

==叫关系运算符
==判断左右两边的关系
==在if语句中判断这个表达式能否成立

1-15 逻辑控制1 P16 - 12:32


1-15 逻辑控制1 P16 - 14:42


1-16 逻辑控制2 P17 - 00:28


1-16 逻辑控制2 P17 - 01:49

if(关系表达式){关系运算为真,则运行此处程序}
eles{否则运行此处程序}

1-16 逻辑控制2 P17 - 03:13

arduino对结果是如何存储处理?
通过0和1
对于真假;0和1的运算,有专门的数据类型:布尔/Boolean
这种数据类型只能存储0和1 ,对于布尔型数据,除了给它0以外,给它任何数据都只会当做1

1-16 逻辑控制2 P17 - 06:02

布尔型变量有两种写法,一种是boolean;另一种是bool

1-16 逻辑控制2 P17 - 06:15

接下来对引脚初始化,使用pinMode进行设置

1-16 逻辑控制2 P17 - 06:44

针对pusbutton这个引脚,让arduino 不断检查这个引脚的状态,并把电平状态通过digitalRead这个语句读取出来,并存储到pushButton 这个变量中,然后检查pushbutton 这个数值,并根据这个数值进行判断。pushButton 数值为1时,即为真时,我们通过digitalread这个语句,给13引脚的led点亮,也就是高电平,否则就让13引脚上的led熄灭,也就是低电平。

1-16 逻辑控制2 P17 - 08:23

我们用布尔型变量存储实际的引脚状态,并且我们把实例引脚状态作为if的判断结果,然后通过这个结果判断程序执行哪个语句。

1-16 逻辑控制2 P17 - 08:51


1-16 逻辑控制2 P17 - 09:40


1-16 逻辑控制2 P17 - 10:59


1-16 逻辑控制2 P17 - 12:21

回顾

1-17 逻辑控制3 - 布尔运算 P18 - 01:03


1-17 逻辑控制3 - 布尔运算 P18 - 01:48

布尔运算符!

1-17 逻辑控制3 - 布尔运算 P18 - 03:23

实物演示

1-17 逻辑控制3 - 布尔运算 P18 - 04:29

布尔运算符~逻辑与
==

1-17 逻辑控制3 - 布尔运算 P18 - 04:52


1-17 逻辑控制3 - 布尔运算 P18 - 06:01


1-17 逻辑控制3 - 布尔运算 P18 - 06:59

对2号按键开关进行引脚设置

1-17 逻辑控制3 - 布尔运算 P18 - 07:16

读取到8号引脚以后把它赋值给pushButton2这个布尔变量

1-17 逻辑控制3 - 布尔运算 P18 - 07:47

接下来对逻辑判断进行修改

1-17 逻辑控制3 - 布尔运算 P18 - 08:25

对于逻辑与,只有所有条件满足才为真
&&

1-17 逻辑控制3 - 布尔运算 P18 - 11:02


1-17 逻辑控制3 - 布尔运算 P18 - 11:21

实物演示

1-17 逻辑控制3 - 布尔运算 P18 - 12:17

逻辑或丨

1-17 逻辑控制3 - 布尔运算 P18 - 14:12

逻辑或实物演示

1-18 MC猜数字 - 0 介绍 P19 - 00:10

猜数字实物演示

1-19 MC猜数字 - 1 电路搭建 P20 - 01:31


1-19 MC猜数字 - 1 电路搭建 P20 - 04:44


1-19 MC猜数字 - 1 电路搭建 P20 - 14:51


1-20 MC猜数字 - 2 LED数码管 P21 - 00:53


1-20 MC猜数字 - 2 LED数码管 P21 - 04:43


1-20 MC猜数字 - 2 LED数码管 P21 - 04:59


1-20 MC猜数字 - 2 LED数码管 P21 - 07:42


1-20 MC猜数字 - 2 LED数码管 P21 - 07:55

程序控制led显示想要的数字

1-20 MC猜数字 - 2 LED数码管 P21 - 09:42

程序没有清理前面的内容

1-21 MC猜数字 - 3 while P22 - 01:11

回顾

1-21 MC猜数字 - 3 while P22 - 01:57


1-21 MC猜数字 - 3 while P22 - 02:55

while 循环

1-21 MC猜数字 - 3 while P22 - 05:55

实例
要先明确目的,我们这段语句的目的是将3号到9号的引脚全部设置为输出模式。首先我们建立一个整数型变量,变量的名称叫pinNumber ,给它初始值3,因为我们的第一个引脚就是3号引脚,接下来就是while 循环。

1-21 MC猜数字 - 3 while P22 - 08:38

使用while 时不要永远循环
它会反复判断3小于9

1-21 MC猜数字 - 3 while P22 - 09:30


1-21 MC猜数字 - 3 while P22 - 10:06

do...while 
先执行,在判断
do...while 至少执行一次循环体

1-22 MC猜数字 - 4 switch case语句 P23 - 00:19


1-22 MC猜数字 - 4 switch case语句 P23 - 01:31


1-22 MC猜数字 - 4 switch case语句 P23 - 04:03


1-22 MC猜数字 - 4 switch case语句 P23 - 07:21

var ,variable 的缩写,意思是变量
break 是跳出这个语句块,执行下一段语句

1-22 MC猜数字 - 4 switch case语句 P23 - 09:32


1-22 MC猜数字 - 4 switch case语句 P23 - 12:57

如何产生随机数字
random 函数

1-22 MC猜数字 - 4 switch case语句 P23 - 13:44


1-22 MC猜数字 - 4 switch case语句 P23 - 15:14

要用到清理显示内容,不然之前的显示内容会遗留

1-23 MC猜数字 - 5 自定义函数 P24 - 00:29

上节回顾

1-23 MC猜数字 - 5 自定义函数 P24 - 00:41


1-23 MC猜数字 - 5 自定义函数 P24 - 02:40


1-23 MC猜数字 - 5 自定义函数 P24 - 03:50


1-23 MC猜数字 - 5 自定义函数 P24 - 05:32

void 是空的意思,身后的函数没有返回值

1-23 MC猜数字 - 5 自定义函数 P24 - 06:35

如何写带参数的函数
先写void ,因为不需要返回值,然后写函数名称displayNumber ,然后()内,int ledNumber 

1-23 MC猜数字 - 5 自定义函数 P24 - 08:23

每次建立函数过程中,需要用到参数时,必须要告诉函数参数类型。

1-23 MC猜数字 - 5 自定义函数 P24 - 08:47

如果需要两个参数

1-23 MC猜数字 - 5 自定义函数 P24 - 09:23

函数内容

1-23 MC猜数字 - 5 自定义函数 P24 - 10:10

变量名称统一

1-23 MC猜数字 - 5 自定义函数 P24 - 10:45

调用函数

1-23 MC猜数字 - 5 自定义函数 P24 - 12:42

既有返回值又有参数的函数

1-23 MC猜数字 - 5 自定义函数 P24 - 13:25

int在这里的作用是告诉arduino 我们要声明一个函数,函数返回值的类型是int

1-23 MC猜数字 - 5 自定义函数 P24 - 14:25


1-23 MC猜数字 - 5 自定义函数 P24 - 15:27

每次函数执行到return 时会停止,然后把return 后面变量的数值返回给调用这个函数的位置,也就是随调用这个函数谁就会得到返回值,返回值的数值就是return 后面的变量。

1-23 MC猜数字 - 5 自定义函数 P24 - 16:05


1-24 MC猜数字 - 6 完成制作 P25 - 00:53

回顾上节

1-24 MC猜数字 - 6 完成制作 P25 - 03:14


1-24 MC猜数字 - 6 完成制作 P25 - 05:27

串口初始化

1-24 MC猜数字 - 6 完成制作 P25 - 05:56


1-24 MC猜数字 - 6 完成制作 P25 - 08:12


1-24 MC猜数字 - 6 完成制作 P25 - 09:27


1-24 MC猜数字 - 6 完成制作 P25 - 12:02


1-24 MC猜数字 - 6 完成制作 P25 - 13:08


1-24 MC猜数字 - 6 完成制作 P25 - 16:15


1-24 MC猜数字 - 6 完成制作 P25 - 17:23


1-24 MC猜数字 - 6 完成制作 P25 - 18:58


1-24 MC猜数字 - 6 完成制作 P25 - 20:34


1-25 模拟输出1 - analogWrite P26 - 00:41


1-25 模拟输出1 - analogWrite P26 - 05:05


1-25 模拟输出1 - analogWrite P26 - 11:34


1-25 模拟输出1 - analogWrite P26 - 15:51


1-26 模拟输出2 - PWM P27 - 00:24


1-26 模拟输出2 - PWM P27 - 01:48

pwm
点亮时间的占比就是亮度强度

1-26 模拟输出2 - PWM P27 - 07:36

注意点

1-27 模拟输出3 - for P28 - 01:49


1-27 模拟输出3 - for P28 - 02:52


1-27 模拟输出3 - for P28 - 03:43


1-27 模拟输出3 - for P28 - 05:17


1-27 模拟输出3 - for P28 - 09:15


1-27 模拟输出3 - for P28 - 10:06


1-28 模拟输入1 - 学用电位器 P29 - 00:30


1-28 模拟输入1 - 学用电位器 P29 - 02:10


1-28 模拟输入1 - 学用电位器 P29 - 03:11

如何同时改变

1-28 模拟输入1 - 学用电位器 P29 - 09:15


1-28 模拟输入1 - 学用电位器 P29 - 11:34


1-29 模拟输入2 - analogRead P30 - 01:48


1-29 模拟输入2 - analogRead P30 - 03:40

通道:数据传输的通道
在analogRead中的数模转换通道这句话也即是说arduino有多个数模转换引脚
数模转换:数字信号和模拟信号的转换
10位意味着2的十次方
以之前的开关为例,数字信号只有高低电平,或者+5v,ov,这是数字信号的特点。电位器有无数种数字,对于arduino不可能有无数种数字,因此我们把电压输入信号分成0--1023

1-29 模拟输入2 - analogRead P30 - 07:55


1-29 模拟输入2 - analogRead P30 - 10:06


1-29 模拟输入2 - analogRead P30 - 12:02


1-30 模拟输入3 - 电位器控制LED亮度 P31 - 00:56

模拟器示范

1-30 模拟输入3 - 电位器控制LED亮度 P31 - 01:43
实物演示

1-30 模拟输入3 - 电位器控制LED亮度 P31 - 02:30


1-30 模拟输入3 - 电位器控制LED亮度 P31 - 03:59


1-30 模拟输入3 - 电位器控制LED亮度 P31 - 06:34

PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。
  【补】
  PWM的一个优点是从处理器到被控系统信号都是数字形式的,在进行数模转换。可将噪声影响降到最低(可以跟电脑一样}。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。
  对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。
  PWM控制技术一直是变频技术的核心技术之一。1964年A.Schonung和H.stemmler首先提出把这项通讯技术应用到交流传动中,从此为交流传动的推广应用开辟了新的局面。
  从最初采用模拟电路完成三角调制波和参考正弦波比较,产生正弦脉宽调制SPWM信号以控制功率器件的开关开始,到目前采用全数字化方案,完成优化的实时在线的PWM信号输出,可以说直到目前为止,PWM在各种应用场合仍在主导地位,并一直是人们研究的热点。
  由于PWM可以同时实现变频变压反抑制谐波的特点。由此在交流传动及至其它能量变换系统中得到广泛应用。PWM控制技术大致可以分为三类,正弦PWM(包括电压,电流或磁通的正弦为目标的各种PWM方案,多重PWM也应归于此类),优化PWM及随机PWM。正弦PWM已为人们所熟知,而旨在改善输出电压、电流波形,降低电源系统谐波的多重PWM技术在大功率变频器中有其独特的优势(如ABB ACS1000系列和美国ROBICON公司的完美无谐波系列等);而优化PWM所追求的则是实现电流谐波畸变率(THD)最小,电压利用率最高,效率最优,及转矩脉动最小以及其它特定优化目标。
  在70年代开始至80年代初,由于当时大功率晶体管主要为双极性达林顿三极管,载波频率一般最高不超过5kHz,电机绕组的电磁噪音及谐波引起的振动引起人们的关注。为求得改善,随机PWM方法应运而生。其原理是随机改变开关频率使电机电磁噪音近似为限带白噪音(在线性频率坐标系中,各频率能量分布是均匀的),尽管噪音的总分贝数未变,但以固定开关频率为特征的有色噪音强度大大削弱。正因为如此,即使在IGBT已被广泛应用的今天,对于载波频率必须限制在较低频率的场合,随机PWM仍然有其特殊的价值(DTC控制即为一例)。
  另一方面则告诉人们消除机械和电磁噪音的最佳方法不是盲目地提高工作频率,因为随机PWM技术提供了一个分析、解决问题的全新思路。
17
66
59
投币成功


目录
相关文章
|
Python
python开发消消乐
python开发消消乐
104 0
|
5月前
蓝桥杯嵌入式第十一届(第二场)省赛
蓝桥杯嵌入式第十一届(第二场)省赛
110 0
|
JavaScript Java
【游戏开发】自从遇见了口袋方舟后,我的世界变得精彩了起来
【游戏开发】自从遇见了口袋方舟后,我的世界变得精彩了起来
154 0
【“玩物立志”-scratch少儿编程】亲手实现小猫走迷宫小游戏:其实挺简单
【“玩物立志”-scratch少儿编程】亲手实现小猫走迷宫小游戏:其实挺简单
759 0
【“玩物立志”-scratch少儿编程】亲手实现小猫走迷宫小游戏:其实挺简单
【“玩物立志”-scratch少儿编程】迷宫游戏-图片素材
【“玩物立志”-scratch少儿编程】迷宫游戏-图片素材
234 0
【“玩物立志”-scratch少儿编程】迷宫游戏-图片素材
|
Python
七夕特别篇|用Python绘画牛郎织女在鹊桥相见
作为会Python的我们必须做点好玩且有意义的东西
279 0
七夕特别篇|用Python绘画牛郎织女在鹊桥相见
|
SQL 算法 前端开发
撕书吧!编程小白!你也能学的哈佛CS50,全美最受欢迎计算机入门课
【新智元导读】自学计算机,到底如何入门?哈佛大学计算机导论课程 CS50推荐给编程小白们,这门课是哈佛最受欢迎的课程之一,老师风趣幽默,带你少走弯路,直奔编程大门。
444 0
撕书吧!编程小白!你也能学的哈佛CS50,全美最受欢迎计算机入门课
|
域名解析 网络协议 安全
清华雨课堂实现太难?手把手教你复刻一个“小红书”玩一玩!
清华雨课堂实现太难?手把手教你复刻一个“小红书”玩一玩!
328 0
清华雨课堂实现太难?手把手教你复刻一个“小红书”玩一玩!
|
机器学习/深度学习 传感器 算法
为给艺术生讲编程,上海大学副教授“变身”萝莉,自制软件二次元上网课
为给艺术生讲编程,上海大学副教授“变身”萝莉,自制软件二次元上网课
290 0