Arduino 学习笔记
本文发布于 1079 天前。

C++基本语法

变量和赋值

// 整数int,默认值为0
int currentTemperature;
int aaa = 18;
// 赋值
aaa = 20;
aaa += 10;

for循环

for(int x=0;x<3;x++){
digitalWrite(ledPin,HIGH);            //设置LED 为开
delay(150);                           //延时150毫秒
digitalWrite(ledPin,LOW);             //设置LED 为关
delay(100);                           //延时100毫秒
}

随机数

rand

要取得[0,n) 就是rand()%n 表示 从0到n-1的数

要取得[a,b)的随机整数,使用(rand() % (b-a))+ a;
要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a;
要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1;
通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。
要取得ab之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)
要取得0~1之间的浮点数,可以使用rand() / double(RAND_MAX)

random

random(min,max)
random也可以直接生成随机数。

constrain

constrain(x,a,b)
x<a则返回a,若x>b则返回b.

逻辑连接符

&&
||
!

map

map(val,fromLow,fromHigh,toLow,toHigh)
将一个在fromLow~fromHigh范围内的val值等比例映射到toLow~toHigh.

取反

a = !a

Arduino Functions

pinMode

pinMode(pinNo, OUTPUT/INPUT)
用来设置Arduino数字引脚的模式的,只用于数字引脚定义是输入(INPUT)还是输出 (OUTPUT)。参数1:引脚号;参数2:输入/输出

digitalWrite

digitalWrite(pinNo,HIGH/LOW)
设置指定数字引脚的电平高低。

如果pin是INPUT的话,是外界给了控制器Arduino信号,所以需要Arduino读取引脚信号——digitalRead()。

analogWrite

analogWrite(pinNo, value)
analogWrite()函数用于给PWM口写入一个0\~255的模拟值。特别注意的是,analogWrite()函数只能写入具有PWM功能的数字引脚。用于3,5,6,10,11 Digital Pin(带有~符号)

PWM是一项通过数字方法来获得模拟量的技术。数字控制来形成一个方波,方波信号只有开关两种状态(也就是我们数字引脚的高低)。通过控制开与关所持续时间的比值就能模拟到一个0到5V之间变化的电压。开(学术上称为高电平)所占用的时间就叫做脉冲宽度,所以PWM也叫做脉冲宽度调制。

PWM比较多的用于调节LED灯的亮度。或者是电机的转动速度,电机带动的车轮速度也就能很容易控制了,在玩一些Arduino小车时,更能体现PWM的好处。

analogRead

analogRead(pinNo)
**模拟量不需要输入输出模式**。
从指定的模拟接口读取数值。0-5V电压映射到0-1023整数。
即:测量到的电压越高,返回的数值越高。

delay

delay(time)
参数为延迟的时间(ms),用来延迟程序

millis

millis())是一个函数,该函数是Arduino语言自有的函数,它返回值是一个时间,Arduino开始运行到执行到当前的时间,也称之为机器时间,就像一个隐形时钟,从控制器开始运行的那一刻起开始计时,以毫秒为单位。

Tone

与蜂鸣器相关。
tone(pin,frequency)
Pin都是指连接到蜂鸣器的数字引脚,frequency是以Hz为单位的频率值。
tone(pin,frequency,duration)
第二个函数,有个duration参数,它是以毫秒为单位,表示声音长度的参数。像第一个函数,如果没有指定duration,声音将一直持续直到输出一个不同频率的声音产生。
noTone(pin)
noTone(pin)函数,结束该指定引脚上产生的声音。

有源蜂鸣器和无源蜂鸣器的根本区别是输入信号的要求不一样。这里的“源”不是指电源,而是指振荡源,有源蜂鸣器内部带振荡源,说白了就是只要一通电就会响。而无源内部不带震荡源,所以如果仅用直流信号无法使其响,必须用2K-5K的方波去驱动它

中断

attachInterrupt(interrupt, function, mode)
它是一个当外部发生中断时,才被唤醒的函数。区别于其他函数,它依附于中断引脚才发生。大多数板子都有两个外部中断引脚:数字引脚2(中断0)和数字引脚3(中断1)。中断0与中断1是中断号,在函数中需要用到。
中断信号是不受loop程序执行顺序影响的,只要一有中断信号,就会立马进入中断函数。

不同板子,中断号对应引脚可能不同,可以查阅Arduino官方编程语法手册
interrupt:中断号0或者1。如果选择0的话,连接到数字引脚2上,选择1的话,连接到数字引脚3上。
function:调用的中断函数名。写中断函数时,需要特别说明以下三点:
– 该中断函数不能含有参数和返回值。也就是说,要是一个无返回值的函数。
– 中断函数中不要使用delay()和millis()函数,因为数值不会继续变化。
– 中断函数中不要读取串口,串口收到的数据可能会丢失。
mode:中断的条件。只有特定的以下四种情况:
LOW:当引脚为低电平时,触发中断。
CHANGE 当引脚电平发生改变时,触发中断。
RISING 当引脚由低电平变为高电平时,触发中断。
FALLING 当引脚由高电平变为低电平时,触发中断。

Arduino Constants

LED_BUILTIN

LED_BUILTIN是默认的LED输出,即13引脚

HIGH LOW

HIGHLOW为高低电平

INPUT OUTPUT

INPUT``OUTPUT定义输入输出

串口通信

打开串口

Serial.begin(9600);
在setup中,设置打开串口,并将比特率调为9600kbps

从板子发送信息

Serial.print(msg, *进制)
Serial.println(msg, *进制)
println会额外带一个回车。

读取信息

Serial.read()

空气对INPUT的影响

如果没有配置下拉电阻或接地,若一个input引脚悬空,则可能会浮动,不能确定返回的值为10
在实际配置中,应当接好下拉电阻并使其接地,如下图。

标题:Arduino 学习笔记
作者:IKK
除转载和特殊声明外,所有文章采用 CC BY-NC-SA 4.0协议
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇