Arduino入门基础代码
前言
最近一阵子在业余时间做了一些物联网小组件,软硬件交互还挺有趣。主要用到的开发板是国产的Arduino UNO R3和ESP8266及ESP32,其中涉及到一些代码在这里记录一下,以便日后翻阅。下面简要介绍下Arduino。
Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。
它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,它们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。
基础代码
01-点亮LED
入门示例,点亮LED每隔一秒交替亮灭一次.
/*
AUTHOR: Matt
DATE: 2024-09-12
DESC: 入门示例,点亮LED每隔一秒交替亮灭一次
BOARD: Ardunio UNO R3
*/
//控制LED的引脚,编号13
int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
02-使用LED表示SOS
分别用短闪烁和长闪烁表示S和O字母,模拟SOS.
/*
AUTHOR: MATT
DATE: 2024-09-13
DESC: 分别用短闪烁和长闪烁表示S和O字母
BOARD: Ardunio UNO R3
*/
//定义变量ledPin,控制LED的引脚,编号13
int ledPin = 13;
void setup() {
//设置波特率为9600
Serial.begin(9600);
//设置ledPin为输出模式
pinMode(ledPin, OUTPUT);
}
//基本定义,S滴(短闪烁)为150ms,O嗒(长闪烁)为450ms,闪烁之间间隔为100ms
void loop() {
//三个快闪烁表示字母S,滴答的时间长度为3倍关系
digitalWrite(ledPin, HIGH);
delay(150);
digitalWrite(ledPin, LOW);
delay(100);
digitalWrite(ledPin, HIGH);
delay(150);
digitalWrite(ledPin, LOW);
delay(100);
digitalWrite(ledPin, HIGH);
delay(150);
digitalWrite(ledPin, LOW);
delay(100);
//100毫秒延时
delay(100);
//三个短闪烁表示字母O
digitalWrite(ledPin, HIGH);
delay(450);
digitalWrite(ledPin, LOW);
delay(100);
digitalWrite(ledPin, HIGH);
delay(450);
digitalWrite(ledPin, LOW);
delay(100);
digitalWrite(ledPin, HIGH);
delay(450);
digitalWrite(ledPin, LOW);
delay(100);
//100毫秒延时
delay(100);
//三个快闪烁表示字母S
digitalWrite(ledPin, HIGH);
delay(150);
digitalWrite(ledPin, LOW);
delay(100);
digitalWrite(ledPin, HIGH);
delay(150);
digitalWrite(ledPin, LOW);
delay(100);
digitalWrite(ledPin, HIGH);
delay(150);
digitalWrite(ledPin, LOW);
delay(100);
//重复SOS信号前等待5秒
delay(5000);
//输出hello world字符串
Serial.