Eg1 LED闪烁:
-
pinMode()函数
pinMode()函数用于将特定引脚配置为输入或输出。可以使用INPUT_PULLUP模式启用内部上拉电阻。此外,INPUT模式显式禁止内部上拉。
pinMode()函数语法
Void setup () {
pinMode (pin , mode);
}
pin - 你希望设置模式的引脚的编号
mode - INPUT,OUTPUT或INPUT_PULLUP。
digitalWrite()函数
digitalWrite()函数用于向数字引脚写入HIGH或LOW值。如果该引脚已通过pinMode()配置为OUTPUT,则其电压将被设置为相应的值:HIGH为5V(或3.3V在3.3V板上),LOW为0V(接地)。如果引脚配置为INPUT,则digitalWrite()将启用(HIGH)或禁止(LOW)输入引脚的内部上拉。建议将pinMode()设置为INPUT_PULLUP,以启用 内部上拉电阻。
如果不将pinMode()设置为OUTPUT,而将LED连接到引脚,则在调用digitalWrite(HIGH)时,LED可能会变暗。在没有明确设置pinMode()时,digitalWrite()将启用内部上拉电阻,这就像一个大的限流电阻。
digitalWrite()函数语法
Void loop() {
digitalWrite (pin ,value);
}
pin - 你希望设置模式的引脚的编号
value - HIGH或LOW。
代码:
#define LED 2
#define DET 50
void setup(){
pinMode(LED,OUTPUT);
}
void loop(){
digitalWrite(LED,HIGH);
delay(DET);
digitalWrite(LED,LOW);
delay(DET);
}
Eg2渐变LED:
-
analogWrite()函数
analogWrite()函数将模拟值(PWM波)写入引脚。它可用于以不同的亮度点亮LED或以各种速度驱动电机。在调用analogWrite()函数之后,引脚将产生指定占空比的稳定方波,直到下一次调用analogWrite()或在相同引脚上调用digitalRead()或digitalWrite()。大多数引脚上的PWM信号频率约为490 Hz。在Uno和类似的板上,引脚5和6的频率约为980Hz。Leonardo上的引脚3和11也以980Hz运行。
在大多数Arduino板上(ATmega168或ATmega328),此功能在引脚3,5,6,9,10和11上工作。在Arduino Mega上,它在引脚2-13和44-46上工作。旧的Arduino ATmega8板仅支持引脚9,10和11上的 analogWrite()。
Arduino Due支持引脚2至13以及引脚DAC0和DAC1上的 analogWrite()。与PWM引脚不同,DAC0和DAC1是数模转换器,用作真正的模拟输出。
在调用analogWrite()之前,不需要调用pinMode()将引脚设置为输出。
analogWrite()函数语法
analogWrite ( pin , value ) ;
value − the duty cycle: between 0 (always off) and 255 (always on).
value - 占空比:0(始终光断)到255(始终导通)之间。
-
代码:
-
#define PLED 2 //PWM&LED口 int brightness = 0; int fadStep = 5; void setup(){ pinMode(PLED,OUTPUT); } void loop(){ analogWrite(PLED,brightness); brightness = brightness + fadStep; if(brightness == 0|| brightness == 255){ fadStep = -fadStep; //变暗 } delay(30); }
Eg3读取模拟电压
注意读取电压的范围位0-5v
-
Serial.print()
描述
将数据作为人类可读的ASCII文本打印到串行端口。此命令可以采用多种形式。每个数字使用ASCII字符打印数字。浮点数类似地打印为ASCII数字,默认为两位小数。字节作为单个字符发送。字符和字符串按原样发送。例如-
-
Serial.print(78) gives "78"
-
Serial.print(1.23456) gives "1.23"
-
Serial.print('N') gives "N"
-
Serial.print("Hello world.") gives "Hello world."
可选的第二个参数指定要使用的基数(格式); 允许值是
BIN(binary, or base 2)
,OCT(octal, or base 8)
,DEC(decimal, or base 10)
,HEX(hexadecimal, or base 16)
。对于浮点数,此参数指定要使用的小数位数。例如--
Serial.print(78, BIN) gives "1001110"
-
Serial.print(78, OCT) gives "116"
-
Serial.print(78, DEC) gives "78"
-
Serial.print(78, HEX) gives "4E"
-
Serial.print(1.23456, 0) gives "1"
-
Serial.print(1.23456, 2) gives "1.23"
-
Serial.print(1.23456, 4) gives "1.2346"
您可以通过使用F()包装它们来将基于闪存的字符串传递给Serial.print ()。例如:
Serial.print(F(“Hello World”))
要在不转换为字符表示的情况下发送数据,请使用Serial.write()。
句法
Serial.print(val)
Serial.print(val, format)
参数
val
:要打印的值 - 任何数据类型返回
size_t
:print()
返回写入的字节数,但读取该数字是可选的。 -
-
Serial.begin()
描述: 设置串行数据传输的数据速率,以每秒位数(波特)为单位。要与计算机通信,请使用以下速率之一:300,600,1200,2400,4800,9600,14400,19200,28800,38400,57600或115200.但是,您可以指定其他速率 - 例如,通过引脚0和1与需要特定波特率的组件进行通信。
可选的第二个参数配置数据,奇偶校验和停止位。默认值为8个数据位,无奇偶校验,一个停止位。
句法
Serial.begin(speed)
Serial.begin(speed, config)
*仅限Arduino Mega:* `Serial1.begin(speed)`
Serial2.begin(speed)
Serial3.begin(speed)
Serial1.begin(speed, config)
Serial2.begin(speed, config)
Serial3.begin(speed, config)
-
analogRead()
[模拟I / O]
描述:
从指定的模拟引脚读取值。Arduino板包含一个6通道(Mini和Nano上有8个通道,Mega上有16个通道),10位模数转换器。这意味着它会将0到5伏之间的输入电压映射到介于0和1023之间的整数值。这样可以得到读数:5伏/ 1024单位或每单位0.0049伏(4.9 mV)。可以使用analogReference()更改输入范围和分辨率。
读取模拟输入大约需要100微秒(0.0001 s),因此最大读取速率约为每秒10,000次。
句法
analogRead(pin)
-
参数 pin:要读取的模拟输入引脚的编号(大多数板上为0到5,Mini和Nano上为0到7,Mega上为0到15) 返回 int(0到1023)
-
代码:
-
#define GET A7 void setup(){ Serial.begin(9600); //设置波特率为9600 } void loop(){ int SenorValue = analogRead(A7); //获取analogIn A7的数值 float voltage = SenorValue*5.0/1023.0; //将读取的A7值转换为电压 Serial.println(voltage); //较print多一个换行符 }