返回
时光流逝有迹可循,自制进度条时钟掌握每一分秒
前端
2023-11-01 17:06:30
时光的洪流中,我们追逐着指针的脚步,在刻度的分界里寻找生活的意义。然而,有时指针的旋转显得那么枯燥而乏味。今天,让我们打破传统时钟的束缚,制作一个进度条时钟,让时间不再单调,让生活充满趣味!
材料准备:
- Arduino Uno 开发板
- 128x64 OLED 显示屏
- 面包板
- 跳线
- 电阻(10kΩ、1kΩ)
- 电位器(10kΩ)
- 按键
- 3D 打印机(或其他制作外壳的工具)
制作步骤:
-
硬件连接:
- 将 OLED 显示屏连接到 Arduino Uno 开发板上。
- 将电阻和电位器连接到 Arduino Uno 开发板上。
- 将按键连接到 Arduino Uno 开发板上。
- 将面包板连接到 Arduino Uno 开发板上。
-
软件编程:
- 在 Arduino IDE 中,打开 "File" -> "New",创建一个新的项目。
- 在 Arduino IDE 中,复制粘贴以下代码:
// 定义库
#include <U8g2lib.h>
#include <Wire.h>
// 定义 OLED 显示屏
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
// 定义电位器
const int potentiometerPin = A0;
// 定义按键
const int buttonPin = 2;
// 定义时间变量
int hours = 0;
int minutes = 0;
int seconds = 0;
void setup() {
// 初始化 OLED 显示屏
u8g2.begin();
u8g2.setFont(u8g2_font_6x12_tf);
// 初始化电位器
pinMode(potentiometerPin, INPUT);
// 初始化按键
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
// 读取电位器值
int potentiometerValue = analogRead(potentiometerPin);
// 计算时间
hours = potentiometerValue / 3600;
minutes = (potentiometerValue % 3600) / 60;
seconds = (potentiometerValue % 3600) % 60;
// 显示时间
u8g2.clearBuffer();
u8g2.setCursor(0, 10);
u8g2.print(hours);
u8g2.print(":");
u8g2.print(minutes);
u8g2.print(":");
u8g2.print(seconds);
u8g2.sendBuffer();
// 读取按键状态
int buttonState = digitalRead(buttonPin);
// 如果按键被按下,则重置时间
if (buttonState == LOW) {
hours = 0;
minutes = 0;
seconds = 0;
}
}
-
编译并上传代码:
- 在 Arduino IDE 中,点击 "Verify" 按钮,编译代码。
- 在 Arduino IDE 中,点击 "Upload" 按钮,将代码上传到 Arduino Uno 开发板上。
-
组装外壳:
- 使用 3D 打印机或其他工具制作时钟的外壳。
- 将 Arduino Uno 开发板、OLED 显示屏和其他电子元件安装到外壳中。
-
校准时钟:
- 使用电位器调整时钟的时间。
-
使用时钟:
- 将时钟连接到电源。
- 使用按键重置时间。
结语:
时光流逝有迹可循,制作一个进度条时钟,让您时刻掌握每一分秒。这个别致的时钟不仅能够装饰您的房间,更能成为您生活中的一位时间管理助手。