Arduino-home:官方网站
Arduino-中文社区:中文社区
Arduino-百度贴吧:百度贴吧
Arduino-综合讨论区:综合讨论区
创客制造: 各种开源硬件教程
Arduino UNO数据手册 Arduino UNO数据手册
学习项目(强烈推荐):学习项目
Arduino-PID :Arduino-PID-官方说明 ,解释
Arduino-Timer:定时库Github下载
处理器核心:ATmega328
14路数字输入/输出口(digital I/O)
1个串口:0: RX;1:TX
6个PWM输出口:3,5,6,9,10,11(也可以作为数字I/O口)
纯数字I/O口:2,4,7,8,12,13(只具备数字I/O功能)
6路模拟输入: A0-A5
1个16MHz晶体振荡器
1个USB接口
1个复位按钮
输入电压:外接USB时,无需外部供电。或者单独5V~9V DC
输出电压:2种输出电压:5V DC,40mA电流 和3.3V DC
数据类型:
boolean 布尔类型
char
byte 字节类型
int
unsigned int
long
unsigned long
float
double
string
array
常量:
HIGH | LOW 表示数字IO口的电平,HIGH 表示高电平(1),LOW 表示低电平(0)。
INPUT | OUTPUT 表示数字IO口的方向,INPUT 表示输入(高阻态),OUTPUT 表示输出(AVR能提供5V电压 40mA电流)。
true | false true 表示真(1),false表示假(0)。
void setup();//初始化函数,整个程序开始运行时,执行一次,注意只执行一次
void loop();//连续循环执行函数内的语句
pinMode(pin,mode);//定义引脚是输入还是输出,pin是int类型0~13,mode为INPUT或OUTPUT,相当于给这个引脚定义
digitalWrite(pin,valve);//引脚输出电平,输出高或者低,pin是int类型0~1,valve是HIGH或LOW
int digitalRead(pin);//读取引脚电平,可以读取数字传感器
pinMode函数用于配置引脚为输入或者输出模式,它是一个无返回值的函数,一般放在setup()函数内,先设置再使用。pinMode函数由两个参数–pin 和 mode,pin参数表示要配置的引脚代号,以Arduino Uno为例,它的取值范围是013,也可以把模拟引脚(A0A5)作为数字引脚使用,此时编号为14脚到19脚。mode参数表示设置的模式——INPUT输入模式或者OUTPUT输出模式,其中INPUT用于读取信号,OUTPUT用于输出控制信号。
digitalWrite函数的作用是设置引脚的输出电压为高电平或低电平,也是一个无返回值的函数,在使用该函数设置引脚之前,需要先用pinMode()函数交引脚设置为OUTPUT模式,因为数字口具有输入或输出两种状态,需要预先定义。digitalWrite函数有两个参数—pin 和 value, pin 代表引脚,value代表输出的电平——HIGH(高电平)或LOW(低电平)。
int digitalRead(pin);//可以读取模拟传感器,精度10位AD(0~5V表示为0~1024)
analogWrite(pin,valve);//3,5,6,9,10,11口PWM输出,valve为0~255
unsigned long millis();//返回时间函数,单位毫秒(ms),程序开始运行到该语句这边所用的时间,溢出大概50天
unsigned long micros();//返回时间函数,单位微秒(ms),程序开始运行到该语句这边所用的时间,大概一个小时
delay(ms);//延时函数,单位毫秒(ms)
delayMicroseconds(us);//延时函数,单位微秒(us)
int Serial.available() //判断缓存区状态,返回串口接收缓冲区的字节数
Serial.begin(speed,config) //初始化串口,speed波特率,config数据、校验、停止位
Serial.end() //释放串口通信引脚,使其作为普通引脚
Serial.find(target) //在缓冲区中搜索target,找到返回 true,否则返回false
Serial.findUntil(target,terminal) //搜索target直至terminal,无返回值
Serial.flush() //等待正在发送的数据发送完成
Serial.peek() //返回但不删除一字节数据
Serial.print(value,format) //以ASCII码格式输出数据
Serial.read() //读取并删除一字节数据
Serial.readBytes(buffer,length) //读取 length长度的数据并存入 buffer
Serial.readBytesUntil(character,buffer,length)
Serial.setTimeout(time) //设置超时(等待串口数据)时间,与前两个函数配合使用
Serial.write(val/str/(buf,len)) //以字节形式输出数据到串口,返回输出的字节数
void serialEvent() //串口事件,在串口缓冲区有数据时触发,实际是运行在两次 loop之间
/*软件模拟串口通信*/
SoftwareSerial mySerial(rxPin.txPin) 构造函数,创建一个软串口
mySerial.listen() 开启软串口监视状态,一个时刻只能监视一个软串口
mySerial.isListening() 判断是不是处在监视状态
mySerial.overflow() 检测缓冲区是不是已经溢出
定时库Github下载
#include <Event.h>
#include <Timer.h>
Timer t;//实例化一个定时器对象
Timer t1;
void setup() {
// initialize serial:
Serial.begin(9600);
t.every(1000,callbackfun);//定时1s,执行回调函数中断
t1.every(2000,callbackfun1);//定时2s,执行回调函数中断
}
void loop() {
t.update();//更新,这句话要有
t1.update();
}
void callbackfun(){
Serial.println("hello");
}
void callbackfun1(){
Serial.println("hello1111111");
}
介绍:看门狗定时器用避免电子设备出现故障造成死机,例如死循环。为此,看门狗作为一个物理定时器,在程序运行时不断的增加,并驱动一个中断, 如果达到某一个设定的值,就会复位微处理器。在正常操作下,定时器在程序流程中的定期设置为0, 但如果代码进入死循环,定时器复位不会发生,看门狗触发中断并重新启动。使用看门狗防止死机:Arduino为用户提供了方便操作的函数和宏,可以直接引入库:
#include <avr/wdt.h>
这个函数库提供了三个API函数供我们使用:
wdt_enable(timeout) //看门狗使能并设置超时时间
wdt_disable() //关闭
wdt_reset() //复位
通常情况下,需要在setup()函数中使能看门狗定时器,并在loop()中不断的喂狗防止溢出,官方给出的示例代码如下:
#include <avr/wdt.h>
void setup()
{
Serial.begin(9600);
pinMode(13,OUTPUT);
wdt_enable(WDTO_2S); //开启看门狗,并设置溢出时间为两秒
}
void loop()
{
digitalWrite(13,HIGH);
delay(100);
digitalWrite(13,LOW);
delay(100);
for(int i=0;;i++){
Serial.println(i);
wdt_reset(); //喂狗操作,使看门狗定时器复位,上面程序运行超过2秒就会重,跳出loop循环
}
看门狗参考资料
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' |
‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" |
“Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash |
– is en-dash, — is em-dash |
一个具有注脚的文本。1
Markdown将文本转换为 HTML。
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:
这将产生一个流程图。:
我们依旧会支持flowchart的流程图:
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
注脚的解释 ↩︎