2 — Arduino Mega simulation

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

Components

Sketch code

/*
 * Velxio 环境监测 —— 传感器显示 + CO₂ 声光报警 + 4×4 键盘密码开锁(舵机)
 * 硬件:Arduino MEGA 2560
 *
 * 接线(对应 velxio_wiring.html):
 *   OLED 0.96 (I2C 0x3C) : SDA -> D20, SCL -> D21, VCC -> 5V, GND -> GND
 *   SHT31     (I2C 0x44) : SDA -> D20, SCL -> D21, VCC -> 5V, GND -> GND
 *   MH-Z16    (UART)     : TX -> D19(RX1), RX -> D18(TX1), VCC -> 5V, GND -> GND
 *   空气质量 v1.3         : SIG -> A1, VCC -> 5V, GND -> GND
 *   Grove RGB LED(WS2813): SIG -> D12, VCC -> 5V, GND -> GND(CO₂:绿/黄/红 3 挡)
 *   Grove RGB LED(WS2813): SIG -> D13, VCC -> 5V, GND -> GND(湿度:蓝/黄/红 3 挡)
 *   Grove RGB LED(WS2813): SIG -> D31, VCC -> 5V, GND -> GND(空气质量:绿/黄/红)
 *   Grove RGB LED(WS2813): SIG -> D32, VCC -> 5V, GND -> GND(温度:绿/黄/红)
 *   Grove RGB LED(WS2813): SIG -> D37, VCC -> 5V, GND -> GND(光照照明:黄/白)
 *   Grove 光照传感器        : SIG -> A0, VCC -> 5V, GND -> GND(光敏电阻,模拟输出)
 *   Grove RGB LED(WS2813): SIG -> D38, VCC -> 5V, GND -> GND(补光照明:按键手动开关 / 自动跟随光照)
 *   Grove 压电蜂鸣器(主动): SIG -> D10, VCC -> 5V, GND -> GND
 *   4×4 矩阵键盘          : R1-R4 -> D2-D5, C1-C4 -> D6-D9
 *   6 个独立按键(DO 输出): 静音 CO2 -> D33(蜂鸣器与 CO₂ 灯一起停 5 秒);
 *                          风扇1 -> D34;风扇2 -> D35;齿轮电机 -> D36
 *                          (各按 1 挡 -> 2 挡 -> 3 挡 -> 关闭/交还自动 循环);
 *                          补光灯开关 -> D39(按一次开 / 再按关);补光灯自动 -> D40(自动/手动切换);
 *                          VCC -> 5V, GND -> GND
 *   9g 舵机               : 信号 -> D11, VCC -> 5V, GND -> GND
 *   L293D(A/B 路驱动两个风扇) : VCC1(16)、VCC2(8) -> 5V;GND(4,5,12,13) -> GND
 *                          A 路(风扇1,降温 3 挡调速): EN1(1) -> D44(PWM);IN1(2) -> D22;IN2(7) -> D23
 *                                OUT1(3) -> 风扇1 +;OUT2(6) -> 风扇1 −
 *                          B 路(风扇2,除湿): EN2(9) -> D25;IN3(10) -> D26;IN4(15) -> D27
 *                                OUT3(11) -> 风扇2 +;OUT4(14) -> 风扇2 −
 *   L293D#2(A 路驱动齿轮电机,按空气质量 3 挡调速)
 *                          VCC1(16)、VCC2(8) -> 5V;GND(4,5,12,13) -> GND
 *                          EN1(1) -> D30;IN1(2) -> D28;IN2(7) -> D29
 *                          OUT1(3) -> 电机 M1;OUT2(6) -> 电机 M2
 *                          编码器 A/B 输出暂不接(可选 D40 / D41 读取转速)
 *
 * 键盘功能:
 *   0-9  输入数字(最多 8 位)
 *   A    进入"修改密码"模式(之后输入新密码,按 # 保存)
 *   B    删除最后一位
 *   C / *  取消全部输入
 *   D    取消全部输入并退出改密模式
 *   #    确认:改密模式下保存新密码;否则校验密码开锁 / 已开锁时落锁
 *
 * CO₂:> 1000 ppm 蜂鸣器间歇响;指示灯按 ppm 分 3 挡(600 绿 / 800 黄 / 1000 红)
 *
 * 依赖库:Adafruit SSD1306、Adafruit GFX、Adafruit SHT31、Servo、Adafruit NeoPixel
 */

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_SHT31.h>
#include <Servo.h>
#include <Adafruit_NeoPixel.h>

#define OLED_W      128
#define OLED_H      64
#define OLED_ADDR   0x3C
#define SHT31_ADDR  0x44

#define PIN_AIR     A1
#define PIN_LED_CO2_WS 12       // Grove RGB LED(WS2813 Mini)SIG:CO₂ 三级指示(绿/黄/红)
#define PIN_LED_WS  13          // Grove RGB LED(WS2813 Mini)SIG:湿度告警(蓝)
#define PIN_LED_AIR_WS 31       // Grove RGB LED(WS2813 Mini)SIG:空气质量告警(绿/黄/红)
#define PIN_LED_TEMP_WS 32      // Grove RGB LED(WS2813 Mini)SIG:温度告警(绿/

More projects by 25040118