資料介紹
描述
這個項目是我之前構建的更新版本。以前版本的主要問題是,除非背光打開,否則您無法讀取顯示。要打開背光,您要么必須編譯代碼以使其永久打開,要么實際按下其中一個按鈕。前者不適合,因為我不希望我的房間在我晚上睡覺時被點亮,而后者意味著我必須停止我正在做的事情才能按下其中一個按鈕來查看時間。
檢測環境光
為了解決上述問題,我添加了一個帶有比較器電路的光敏電阻 (LDR)。LDR 會根據其是暗還是亮來改變其電阻。當光線充足時,它將具有低電阻,并且背光打開,從而可以讀取屏幕。在黑暗的房間中,電阻很高,它將允許背光關閉。您仍然可以通過按任何按鈕將其打開 10 秒鐘。
我使用了一個帶有微調電位器的簡單比較器電路來將光照水平設置為背光應該永久打開的位置。當光照水平接近閾值時,比較器電路會在有少量光照變化時開啟和關閉。即 ON 閾值和 OFF 閾值相同。為了解決這個問題,少量的輸出被反饋到輸入以增強變化(正反饋)。這稱為滯后,根據反饋量,這會使 ON 閾值升高,OFF 閾值降低,

時鐘功能
- 十種不同的展示風格
- 設置時間、當前日期、出生日期和鬧鐘
- 水銀開關關閉警報
- 自動和手動背光控制
- DHT21溫濕度傳感器
使用時鐘
時鐘有三個按鈕——設置、增量、減量和一個傾斜開關。
當背光關閉時,按任意按鈕將打開背光。如果在背光打開時未按任何按鈕,則在黑暗的房間中,它會在 10 秒后自行關閉。當房間光線充足時,背光將自動打開。背光打開時,按鈕將執行以下任務:
SETUP - 這將打開 SETUP 屏幕。右尖括號字符是光標。按 INCREMENT 或 DECREMENT 按鈕將分別增加或減少光標所在的值。再次按下 SETUP 按鈕將使光標在小時、分鐘、日、月、年、出生日、出生月、出生年、鬧鐘小時、鬧鐘分鐘之間循環并返回時鐘模式。

INCREMENT - 當不在設置屏幕中時,此按鈕在各種時鐘樣式之間切換。

減量- 當不在設置屏幕中時,此按鈕可打開或關閉警報。
TILT SWITCH - 當鬧鐘響起時,傾斜時鐘或按下任何按鈕將關閉鬧鐘。
構建一個完整的時鐘
首先,您需要一塊印刷電路板 (PCB)。如果您希望將 PCB 商業化制造或像我一樣自己制造,請附上 Eagle 文件。我使用了碳粉方法。
注意:由于 LCD 1602 顯示器使用直角排針連接到主 PCB,因此當電路板和顯示器已經焊接在一起時,很難將它們插入外殼中。擁有一個帶通孔電鍍的雙面板可以讓您將顯示器就地焊接到板上。

該處理器是使用 Arduino UNO 引導加載程序編程的 ATmega328 DIL。ATmega328 的振蕩器使用一個 16MHz 晶體和兩個 22pf 陶瓷電容器。5V穩壓器為7805 TO-220型,100uF 16V電容用于平滑。RTC 是一個帶有 32.768 kHz 手表晶體的 DS1302。揚聲器為無源蜂鳴器,采用 10uF 16V 電容進行直流隔離。0.1uF和1uF電容為獨石陶瓷電容(5mm孔距)。電阻為 1/8 瓦。水銀開關可以是任何尺寸。安裝在電路板背面的三個觸覺按鈕為 6mmx6mm,軸為 13mm。


外殼是 3D 打印的,層高為 0.2 毫米,沒有支撐。使用 2.5 毫米鉆頭鉆出 PCB 安裝孔,并使用 3 毫米絲錐創建螺紋。使用 M3 6mm 螺釘將板固定到位。我還將 PCB 上的兩個安裝孔鉆出 4 毫米,以便在固定電路板時進行任何必要的調整,以防止按鈕粘在外殼上。

我使用的 LDR 標記為 P1241-05。它的尺寸約為 5 毫米 x 3 毫米,在強光下的電阻約為 200 歐姆,在黑暗時的電阻約為 4000 歐姆。DHT21 傳感器安裝在機箱背面。您需要從 DHT21 的底座上去除少量塑料,以便電線可以穿過提供的孔并仍然隱藏在護罩下。

編程
將 FTDI 編程器連接到 PCB 上的 FTDI Basic 接頭,并上傳通過 Arduino IDE 提供的軟件。

請參閱以下有關更改代碼以定制消息時鐘和世界時鐘的部分。
生物節律鐘面

據推測,根據我們的出生日期,生物節律可能決定我們生活的高潮和低谷。生物節律包括三個周期:23天的身體周期、28天的情緒周期和33天的智力周期。生物節律時鐘將每個狀態顯示為條形。

該條顯示生物節律處于正循環(頂部條)或負循環(底部條)。條形的長度顯示了它在周期中的積極或消極程度。
消息鐘面

此鐘面在第二行顯示一個旋轉的消息欄。在代碼中有一個表格,其中包含日期和消息,以便在這些日期過去時顯示。
const char D00[] PROGMEM = "Today is ";
const char D01[] PROGMEM = "Your Brithday";
const char D02[] PROGMEM = "New Years Day";
const char D03[] PROGMEM = "Australia Day";
const char D04[] PROGMEM = "Good Friday";
const char D05[] PROGMEM = "Easter Monday";
const char D06[] PROGMEM = "Anzac Day";
const char D07[] PROGMEM = "Mother's Day";
const char D08[] PROGMEM = "the Queen's Birthday";
const char D09[] PROGMEM = "Father's Day";
const char D10[] PROGMEM = "Labour Day";
const char D11[] PROGMEM = "Xmas Day";
const char D12[] PROGMEM = "Good";
const char D13[] PROGMEM = "morning";
const char D14[] PROGMEM = "afternoon";
const char D15[] PROGMEM = "evening";
const char D16[] PROGMEM = ", it is ";
const MSG msgs[] = {
{ 0, 1, 1, D02 },
{ 0, 1, 26, D03 },
{ 2021, 4, 2, D04 },
{ 2021, 4, 5, D05 },
{ 0, 4, 25, D06 },
{ 0, 5, 9, D07 },
{ 2021, 6, 14, D08 },
{ 0, 9, 5, D09 },
{ 2021, 10, 4, D10 },
{ 0, 12, 25, D11 },
{ 0, 0, 0, NULL }
};
在msgs數組中,每個元素由 4 個組件組成。第一個是年份。值為零的年份表示所有年份。接下來是月份(1 到 12),然后是日期(1 到 31)。最后是對應該顯示的消息的引用。該表目前是為澳大利亞新南威爾士州 2021 設置的。您可以通過添加和刪除項目來修改它。確保您保留表中的最后一個條目不變。軟件使用它來確定表格的結尾。
一般形式的消息是:
好[morning|afternoon|evening] ,現在是[ day of week ] [ day ][st|nd|rd|th] [ month name ] [ year ] {今天是[ message ]}
世界時間的臉

世界時鐘顯示當前時間和另一個城市的時間。此時鐘完全支持使用時區庫的夏令時。您需要設置本地時區和要顯示的其他時區。
//Australia Eastern Time Zone (Sydney, Melbourne)
#define LOCAL_CITY_ABV "SYD" //3 Character city name
#define LOCAL_TIMEZONE(loc) ausET.toUTC(loc) //Function to access Timezone function
TimeChangeRule aEDT = {"AEDT", First, Sun, Oct, 2, 660}; //UTC + 11 hours
TimeChangeRule aEST = {"AEST", First, Sun, Apr, 3, 600}; //UTC + 10 hours
Timezone ausET(aEDT, aEST);
//US Eastern Time Zone (New York, Detroit)
#define WORLD_CITY_ABV "NYC" //3 Character city name
#define WORLD_TIMEZONE(utc) usET.toLocal(utc) //Function to access Timezone function
TimeChangeRule usEDT = {"EDT", Second, Sun, Mar, 2, -240}; //UTC - 4 hours
TimeChangeRule usEST = {"EST", First, Sun, Nov, 2, -300}; //UTC - 5 hours
Timezone usET(usEDT, usEST);
首先,您需要設置 TimeChangeRules。有關如何執行此操作的完整說明以及一些示例,請參閱GitHub 上的Ardino 時區庫。
接下來修改兩個#define 語句。第一個包含時區所在的 3 個字符的城市名稱,第二個需要知道賦予 Timezone 對象的名稱。僅更改句點左側的名稱。
學分
這個時鐘是各種制造商多年來制造的許多時鐘的混搭。
該時鐘的基礎是帶鬧鐘功能的 Arduino 數字時鐘(定制 PCB)。我修改了箱子,所以它打印成兩件而不是四件。
- Michalis Vasilakis的標準屏幕設計
- Arduino World的 Dual Thin 字體
- Arduino 論壇的 Dual Beveled 字體
- Carrie Sundra的 Dual Trek 字體
- Arduino World的 Dual Thin 字體
- LAGSILVA的詞概念
- 約翰布拉德南的生物節律時鐘
- ARDUinoautoMOTIVE的天氣時鐘
- 約翰·布拉德南 ( John Bradnam)的消息時鐘
- 約翰布拉德南的世界時鐘
- LED鬧鐘開源項目
- 辛迪的鬧鐘/錄音氣象站開源分享
- 帶秒表的鬧鐘開源硬件
- 諾基亞模擬數字鬧鐘開源分享
- 平視顯示器鬧鐘開源分享
- 液晶記憶游戲開源分享
- 咖啡鬧鐘開源分享
- 液晶弓箭游戲開源分享
- 液晶游戲開源分享
- 液晶EEPROM開源項目
- 康佳35016963液晶彩電電源圖紙參考 18次下載
- 電子鬧鐘源碼文件下載 11次下載
- 12864液晶電子鐘_具有按鍵可調、鬧鐘、溫度顯示 125次下載
- RTC鬧鐘喚醒實驗 19次下載
- 多功能鬧鐘原理圖
- 液晶電視原理與維修 液晶電視和led電視哪個好 1413次閱讀
- 基于51單片機的鬧鐘系統設計 2269次閱讀
- 鬧鐘的ESD整改案例 833次閱讀
- 前沿開源技術領域的開源大數據一一解讀 1180次閱讀
- CubeMX配置RTC實現日歷和鬧鐘實驗 1965次閱讀
- 基于樹莓派3B實現智能鬧鐘的設計方案 3294次閱讀
- 組裝液晶、雜牌液晶常用總線的進入方法 2.3w次閱讀
- 液晶電視屏和液晶顯示器的區別 2w次閱讀
- EDA實現鬧鐘鈴聲設計 2004次閱讀
- STM32實現對RTC鬧鐘喚醒的設計 1.4w次閱讀
- 液晶顯示器的優缺點_液晶顯示器原理介紹 1.5w次閱讀
- 液晶面板怎樣切割_液晶面板切割工藝 1.6w次閱讀
- 2018液晶面板價格走勢_液晶面板行業分析 3.8w次閱讀
- 液晶電視電源pfc電路_液晶pfc電路維修技巧 8w次閱讀
- 淺述液晶顯示器與液晶面板的關系和區別 3577次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費
- 2AD庫封裝庫安裝教程
- 0.49 MB | 1次下載 | 免費
- 3PC6206 300mA低功耗低壓差線性穩壓器中文資料
- 1.12 MB | 1次下載 | 免費
- 4網絡安全從業者入門指南
- 2.91 MB | 1次下載 | 免費
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費
- 6海川SM5701規格書
- 1.48 MB | 次下載 | 免費
- 7H20PR5電磁爐IGBT功率管規格書
- 1.68 MB | 次下載 | 1 積分
- 8IP防護等級說明
- 0.08 MB | 次下載 | 免費
本月
- 1貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開發包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開發包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設計指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費
- 8蘋果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論