Arduino是一个开源电子原型平台,它允许用户创建交互式对象或环境。无论你是编程新手还是有经验的开发者,Arduino都能帮助你将创意变为现实。以下是50个Arduino入门必看的实用应用案例,帮助你从小白成长为高手。
1. 基础电路搭建
1.1 灯泡控制
使用Arduino控制LED灯泡,学会如何编写基础代码来点亮和熄灭灯泡。
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // 打开内置LED
delay(1000); // 等待1000毫秒
digitalWrite(LED_BUILTIN, LOW); // 关闭内置LED
delay(1000); // 等待1000毫秒
}
1.2 温湿度传感器
使用DHT11或DHT22传感器,获取环境中的温度和湿度信息。
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
delay(2000);
}
2. 传感器应用
2.1 移动侦测
使用HC-SR501红外人体感应模块,实现自动门、自动感应灯等应用。
int pirPin = 3;
int ledPin = 13;
void setup() {
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int pirState = digitalRead(pirPin);
if (pirState == HIGH) {
digitalWrite(ledPin, HIGH);
Serial.println("Motion detected!");
} else {
digitalWrite(ledPin, LOW);
Serial.println("No motion.");
}
delay(500);
}
2.2 红外遥控
使用Arduino接收红外遥控信号,实现电视、空调等设备的控制。
#include <IRremote.h>
IRrecv irrecv(11);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume();
}
}
3. 控制电机
3.1 电机驱动
使用L298N电机驱动模块,控制直流电机的正反转和速度。
int ENA = 5;
int IN1 = 6;
int IN2 = 7;
int IN3 = 8;
int IN4 = 9;
int ENB = 10;
void setup() {
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(ENB, OUTPUT);
}
void loop() {
// 前进
analogWrite(ENA, 200);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENB, 200);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(2000);
// 停止
digitalWrite(ENA, LOW);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(ENB, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(2000);
}
4. 通信模块
4.1 蓝牙通信
使用HC-05蓝牙模块,实现Arduino与手机或其他设备的无线通信。
#include <SoftwareSerial.h>
const int bluetoothTxPin = 10;
const int bluetoothRxPin = 11;
SoftwareSerial bluetooth(bluetoothTxPin, bluetoothRxPin);
void setup() {
Serial.begin(9600);
bluetooth.begin(9600);
}
void loop() {
if (Serial.available()) {
bluetooth.write(Serial.read());
}
if (bluetooth.available()) {
Serial.write(bluetooth.read());
}
}
4.2 WiFi通信
使用ESP8266WiFi模块,实现Arduino与互联网的连接和数据传输。
#include <ESP8266WiFi.h>
const char* ssid = "yourSSID";
const char* password = "yourPASSWORD";
void setup() {
Serial.begin(9600);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected to WiFi");
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
Serial.println("IP Address: ");
Serial.println(WiFi.localIP());
}
delay(10000);
}
5. 其他应用
5.1 智能家居
使用Arduino搭建智能家居系统,实现灯光、窗帘、空调等设备的智能控制。
5.2 航模遥控
使用Arduino作为飞控系统,实现航模的遥控飞行。
5.3 机器人
使用Arduino搭建机器人,实现行走、避障、抓取等功能。
通过以上50个Arduino入门必看的实用应用案例,相信你已经对Arduino有了更深入的了解。继续学习,不断实践,你将从小白成长为高手!
