作业 — Arduino Uno simulation

An interactive Arduino Uno circuit simulation you can run free in your browser on Velxio, by mj9178666.

Components

Sketch code

#include "DHT.h"

// 引脚定义
#define DHTPIN 2      // DHT22 接 D2
#define DHTTYPE DHT22 
#define TRIG_PIN 5    // 超声波 Trig 接 D5
#define ECHO_PIN 6    // 超声波 Echo 接 D6
#define BUZZER_PIN 8  // 蜂鸣器接 D8
#define MQ2_PIN A0    // 气体传感器接 A0
#define LED_PIN 13    // LED 接 D13

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  // 1. 读温湿度
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
  // 2. 读超声波距离
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  long duration = pulseIn(ECHO_PIN, HIGH);
  float distance = duration * 0.034 / 2;

  // 3. 读气体浓度
  int gasValue = analogRead(MQ2_PIN);

  // 打印到串口监视器
  Serial.print("温度: "); Serial.print(t); Serial.print("°C  ");
  Serial.print("湿度: "); Serial.print(h); Serial.print("%  ");
  Serial.print("距离: "); Serial.print(distance); Serial.print("cm  ");
  Serial.print("气体值: "); Serial.println(gasValue);

  // 简单的联动测试:如果距离小于 10cm,蜂鸣器响,LED 亮
  if (distance > 0 && distance < 10) {
    digitalWrite(BUZZER_PIN, HIGH);
    digitalWrite(LED_PIN, HIGH);
  } else {
    digitalWrite(BUZZER_PIN, LOW);
    digitalWrite(LED_PIN, LOW);
  }

  delay(2000); // DHT22 需要至少 2 秒的读取间隔
}

More projects by mj9178666