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有了更深入的了解。继续学习,不断实践,你将从小白成长为高手!