Arduino的学习过程——跟随太极创客

终于可以静下心来写一下总结文档了。

太极创客官方网站

零基础入门学用 Arduino 教程

Arduino编程语句参考

Arduino内置结构:

预先声明: 

int delayTime=1000;//全局变量的定义

pinMode(   , )//左引脚,右[工作模式]

  • OUTPUT//输出,引脚将输出5伏特电压
  • INPUT//输入,对于pinRead()引脚的电压大于等于3V时返回 HIGH
  • INPUT_PULLUP//输入上拉。

1、设置Arduino引脚为输出(OUTPUT)模式OUTPUT
当引脚设置为输出(OUTPUT)模式时,引脚为低阻抗状态。这意味着Arduino可以向其它电路元器件提供电流。也就是说,Arduino引脚在输出(OUTPUT)模式下可以点亮LED或者驱动电机。(如果被驱动的电机需要超过40mA的电流,Arduino将需要三极管或其它辅助元件来驱动他们。)

2、设置引脚为输入(INPUT)模式INPUT当引脚设置为输入(INPUT)模式时,引脚为高阻抗状态(100兆欧)。此时该引脚可用于读取传感器信号或开关信号。

注意:当Arduino引脚设置为输入(INPUT)模式或者输入上拉(INPUT_PULLUP)模式,请勿将该引脚与负压或者高于5V的电压相连,否则可能会损坏Arduino控制器。

3、设置引脚为输入上拉(INPUT_PULLUP)模式INPUT_PULLUP
Arduino 微控制器自带内部上拉电阻。如果你需要使用该内部上拉电阻,可以通过pinMode()将引脚设置为输入上拉(INPUT_PULLUP)模式。

注意:当Arduino引脚设置为输入(INPUT)模式或者输入上拉(INPUT_PULLUP)模式,请勿将该引脚与负压或者高于5V的电压相连,否则可能会损坏Arduino控制器。

 

digtialWrite(pin,value)//左引脚,右状态[0/LOW或者1/HIGH]

如果该引脚通过pinMode()设置为输出模式(OUTPUT),您可以通过digitalWrite()语句将该引脚设置为HIGH(5伏特)或LOW(0伏特/GND)。

如果该引脚通过pinMode()设置为输入模式(INPUT),当您通过digitalWrite()语句将该引脚设置为HIGH时,
这与将该引脚将被设置为输入上拉(INPUT_PULLUP)模式相同。

 

digitalRead(pin)//读取数字引脚的 HIGH(高电平)或 LOW(低电平)

analogRead(pin)

本指令用于从Arduino的模拟输入引脚读取数值。Arduino控制器有多个10位数模转换通道。这意味着Arduino可以将0-5伏特的电压输入信号映射到数值0-1023。

换句话说,我们可以将5伏特等分成1024份。0伏特的输入信号对应着数值0,而5伏特的输入信号对应着1023。

引脚的输入范围以及解析度可以使用analogReference()指令进行调整。

Arduino控制器读取一次模拟输入需要消耗100微秒的时间(0.0001秒)。控制器读取模拟输入的最大频率是每秒10,000次。

analogWrite(pin,val) – PWM 3,5,6,9,10,11

将一个模拟数值写进Arduino引脚。这个操作可以用来控制LED的亮度, 或者控制电机的转速. Arduino每一次对引脚执行analogWrite()指令,都会给该引脚一个固定频率的PWM信号。PWM信号的频率大约为490Hz.

0到255之间的PWM频率值, 0对应off, 255对应on

// 引脚3连接LED
int ledPin = 3;

//变量val用来存储模拟输入信号
int val = 0;

void setup()
{
// 将连接LED的引脚设置为输出模式
pinMode(ledPin, OUTPUT);
}

void loop()
{
//读取引脚A0的输入信号,并将该数值赋给变量val
val = analogRead(A0);

// 将引脚A0读取的数值转换为0-255之间
// 并将该数值写入引脚3
analogWrite(ledPin, val / 4);
}

 

delay()//延时毫秒数

 

内置函数

serial(串行通信)

串行端口用于Arduino和个人电脑或其他设备进行通信。所有Arduino控制器都有至少一个串行端口(也称为UART或者USART)。个人电脑可以通过USB端口与Arduino的引脚0(RX)和引脚1(TX) 进行通信。

available
begin   Serial.begin(9600); //打开串口通讯,设置传输速率为9600字节每秒
end
find
findUntil
flush
peek
print

Serial.print(val)     Serial.print(78) 发送 “78”
Serial.print(val, format)    此指令也可以通过附加参数来指定数据的格式。这个允许的值为:BIN (binary二进制), OCT (octal八进制), DEC (decimal十进制), HEX (hexadecimal十六进制)。对于浮点数,该参数可以指定小数点的位数。例如:Serial.print(78, BIN) 发送 “1001110”   Serial.println(1.23456, 2) 发送 “1.23”
println

print打印出来的内容是不能够自动换行的,而println强制自动换行
parseInt
parseFloat
read
readBytes
readBytesUntil
write
readString
readStringUntil

数值

Arduino开发语言是基于C/C++编程语言的。因此Arduino家族中的8位开发板和32位开发板的基本数据类型是有差别。对于8位开发板来说,int占2字节,double和float占4字节。而对于32位开发板,int占用4字节,double占用8字节。

数据类型 占用字节 数值范围 备注
void     只用作函数声明,表示没有返回值
boolean / bool  1 true,false
char 1 -128~127  Arduino中的char是有符号的,等价于signed char。
char常被是用于储存ASCII字符。如果想存储数据,建议使用byte类型。
unsigned char 1 0~255  等同于byte和uint8_t类型
byte 1 0~255  byte类型不是C/C++标准类型,他是Arduino平台下特有的,它实际就是无符号8位整型数据。
int 2 -32768~32767 在基于ATMega的8位微控制器的Arduino开发板如Arduino UNO,Ardunio Mega2560,int占用2字节内存。而对于32位Arduino开发板(如Arduino Due,SAMD)int占4字节。
unsigned int 2 0~65535  等同于word和uint16_t类型
word 2 0~65535  
long 4 -2147483648~2147483647  
unsigned long 4 0 ~ 4,294,967,295  等同于uint32_t类型
short 2 -32768~32767  
float 4 -3.4028235E+38~3.4028235E+38 只有6~7位小数精度
double 4  -3.4028235E+38~3.4028235E+38 在Arduino Due上有8个字节,其余的跟float一样
string     相当于char类型的数组

 

 

P1笔记:

学习Arduino需要的知识:初中物理电学知识,基础电脑操作知识

P4笔记(1-3  Arduino开发板基本介绍):

Arduino Uno R3开发板:

Atmel的Atmega 328为控制器,

引脚控制外界元件,输入输出都是针对于开发板的。

供电:1、USB传输数据,供电5V  2、DC电源7~12V   3、Power处5V(必须5V)或者VIN端口(需要7~12V)供电。

指示灯:1、ON,电源指示灯。通电亮。   2、RX串口接收指示灯。USB连接计算机,并且Arduino接收数据会亮。   3、TX串口发送指示灯。USB连接计算机,并且Arduino发送数据会亮。   4、L,可编程控制指示灯。连接到13号引脚,当13号为高电平或者高阻态时亮;低电平时不亮。

 

 

P5笔记(1-4 初步认识Arduino程序):

0、一般以C/C++入门

1、备注:/**/

2、一句程序结束;

3、setup()初始,loop()循环

P6笔记(1-5 Arduino程序-变量):
1、int是“整数类型变量”
2、变量名称规则:
① 只能输入英文
② 变量名只能用连贯的一个词,中间不能加空格
③ 变量名中不能有特殊字符
④ 第一个字符不能是数字
⑤ 关键字不能做变量名称(IDE中变蓝的词)
⑥ 可以加入下划线
3、整数变量数值默认给0
4、等号(=)有个特殊的名称“赋值运算符”

PS:变量命名潜规则:1、英文拼写2、两个单词时,第二个单词首字母大写;或者用_连接两个单词。

P7笔记(1-6 Arduino程序-程序结构):
1、当打开arduino程序先去看注释文字
2、void setup()属于初始化工作(只运行一次)
3、void loop()函数会永远反复的运行
4、delay ();延迟某段时间

5、pinMode(  ,)左引脚,右状态

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

 

void setup() {
pinMode(13,OUTPUT);//初始化LED的13号引脚【又叫LED_BUILTIN】为OUTPUT模式
}

void loop() {
digitalWrite(13,HIGH);//写高电平,点亮
delay(1000);
digitalWrite(13,LOW);//写低电平,熄灭
delay(1000);
}

 

P8笔记(1-7 Arduino程序-变量操作):
整数类型:若一个数值超过最大范围,这个数值会返回到最小数值
变量有作用域:在特定范围内声明,分为全局变量和局部变量。(一个包含到所有函数,另一个只应用于选定的函数)
课后问题:浮点型——浮点数的取值范围在3.4028235 E+38 ~ -3.4028235 E+38

P9笔记(1-8 Arduino程序-程序函数1):
1、函数固定的格式:
什么函数+多少个参数
2、delay()只需要一个参数
课后作业:
delayMicroseconds()是用于暂停程序运行,与delay用法一致,不同的是暂停时间的单位不同。

 

P10笔记(1-9 Arduino程序-程序函数2):
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(毫秒)

P13笔记
1、 面包板[取代飞线,来源于放置到切面包的木板]:
同一行(数字命名),串联;
同一列(ABCDE);

中间分隔;

最上面和下面2列是:一列串联,(用来接电源,中间部分用来接元件)

 

int delayTime=1000;
void setup() {
pinMode(5,OUTPUT);
pinMode(13,OUTPUT);
}

void loop() {
digitalWrite(5,HIGH);
digitalWrite(13,HIGH);
delay(delayTime);
digitalWrite(5,LOW);
digitalWrite(13,LOW);
delay(delayTime);
}

 

P15(1-14数字输入2-按键开关控制电路)笔记:
1、 窗口监视器:程序运行状态(serial.begin()调用serial库中的begin函数)
2、 digitalread():读取数字引脚的电平状态。返回值是:high(1)和low(0)
3、 serial.println():将变量数值输出到窗口监视器
4、 不按开关,引脚2是高电平1;按下开关,引脚2是低电平0

 

点赞

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像