1、Arduino IDE #
setup()函数
该函数在新建项目时调用。使用它来初始化变量、引脚模式、开始使用库等。这里的语句只会在在 Arduino 板每次上电或重置后执行一次,即为初始化设置。大括号用于界定程序块的起始范围。
例如
int buttonPin = 3;
void setup() {
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
void loop() {
// ...
}
loop()函数
创建一个setup()初始化和设置初始值的loop()函数后,该函数正如其名称所暗示的那样,并连续循环,允许您的程序进行更改和响应。用它来主动控制 Arduino 板。
C语言中每一条完整的语句都是用分号结尾,在写代码时,要注意不要把代码全都顶格写,语句前的空白,称为缩进,没有缩进的话可以按Tab键就缩进了。缩进可以让人明显地看出一个函数的控制范围,方便阅读。对于有些语言,如Python,缩进本身就是一种语法。此外,还要尽量一行只写一句代码(每个分号“;”就是一句)。
例如
int buttonPin = 3;
// setup initializes serial and the button pin
void setup() {
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
// loop checks the button pin each time,
// and will send serial if it is pressed
void loop() {
if (digitalRead(buttonPin) == HIGH) {
Serial.write('H');
}
else {
Serial.write('L');
}
delay(1000);
}
2、Arduino C/C++与C/C++的区别 #
如果你学过标准(ANSI)C或C++语言,那你一定记得有个main函数,所有程序的起始入口都是main函数。为什么ArduinoC没有呢?这是因为Arduino IDE把main函数隐藏了。Arduino C语言的基本架构实际上是这样的。
int main(){此函数及函数体被隐藏
setup(); //只执行一遍
while(1){ //因为此处死循环
loop();
}
}
由于setup和loop函数在main被调用,所以用户编写的代码写在setup和loop中是一样的。
3、常用Arduino C/C++函数 #
pinMode(pin,mode)函数
pin:要设置模式的 Arduino 引脚号。
mode: INPUT, OUTPUT, 或INPUT_PULLUP。
配置指定的引脚作为输入或输出。从 Arduino 1.0.1 开始,可以使用 mode 启用内部上拉电阻INPUT_PULLUP。此外,该INPUT模式明确禁用内部上拉。
例如
void setup() {
pinMode(13, OUTPUT); // sets the digital pin 13 as output
}
void loop() {
digitalWrite(13, HIGH); // sets the digital pin 13 on
delay(1000); // waits for a second
digitalWrite(13, LOW); // sets the digital pin 13 off
delay(1000); // waits for a second
}
digitalWrite(pin, value)函数
pin:Arduino 引脚编号。
value:HIGH或LOW。
将一个HIGH或一个LOW值写入数字引脚。如果引脚已配置为OUTPUT带pinMode(),则其电压将设置为相应的值:5V(或 3.3V 板上的 3.3V)代表HIGH,0V(接地)代表LOW。
如果引脚配置为INPUT,digitalWrite()将启用 ( HIGH) 或禁用 ( LOW) 输入引脚上的内部上拉。建议设置pinMode()以INPUT_PULLUP使能内部上拉电阻。
如果您没有将 设置pinMode()为OUTPUT,并将 LED 连接到引脚,则在调用 时digitalWrite(HIGH),LED 可能会变暗。如果没有明确设置pinMode(),digitalWrite()将启用内部上拉电阻,它的作用就像一个大的限流电阻。
digitalRead(pin)函数
pin:您要读取的 Arduino 引脚编号
从指定的数字引脚读取值,HIGH或者LOW。
例如
int ledPin = 13; // LED connected to digital pin 13
int inPin = 7; // pushbutton connected to digital pin 7
int val = 0; // variable to store the read value
void setup() {
pinMode(ledPin, OUTPUT); // sets the digital pin 13 as output
pinMode(inPin, INPUT); // sets the digital pin 7 as input
}
void loop() {
val = digitalRead(inPin); // read the input pin
digitalWrite(ledPin, val); // sets the LED to the button's value
}
delay(ms)函数4\、
ms:暂停的毫秒数。允许的数据类型:unsigned long.
将程序暂停指定为参数的时间量(以毫秒为单位)。(一秒有 1001)双击图标打开程序;
4、Arduino IDE功能简介 #
1)双击图标打开程序;
2)USB数据线连接UNO控制板和电脑,打开“控制面板”-“设备管理器”查看UNO板所在串口编号;
3)在Arduino IDE界面选择设备端口号;
4)在Arduino IDE界面选择主板
5)下载案例程序
6)验证后上传程序到主板
5、动手实验 #
制作一个渐变色的红绿LED
实验接线
GND–GND
RED—D11
GREEN—D10
实验代码
const int RedPin = 11;
const int GreenPin = 10;
int val=0;
void setup()
{
pinMode(RedPin, OUTPUT); //set redPin as OUTPUT
pinMode(GreenPin, OUTPUT);//set greenPin as OUTPUT
Serial.begin(9600);
}
/******************************************************/
void loop()
{
for(val=255; val>0; val--) //
{
analogWrite(RedPin, val); //red value decrease
analogWrite(GreenPin, 255-val);//green value increase
Serial.println(val, DEC);//print the val on in serial monitor
delay(30); //delay 30ms
}
for(val=0; val<255; val++)
{
analogWrite(RedPin, val); //red value increase
analogWrite(GreenPin, 255-val);//green value decrease
Serial.println(val, DEC);//print the val on in serial monitor
delay(30); //delay 30ms
}
}