使用 MAX7219 和 DS1307 實(shí)時(shí)時(shí)鐘 (RTC) 制作 7 段數(shù)字時(shí)鐘,快速簡(jiǎn)單!
DS1307 實(shí)時(shí)時(shí)鐘是廣泛可用的低成本 I2C RTC 模塊。它們帶有一個(gè)時(shí)鐘和一個(gè)小電池,當(dāng)連接到 Arduino 時(shí),即使 Arduino 板沒有通電,也可以實(shí)時(shí)跟蹤。
在本文中,我將向您展示如何將 DS1307 I2C RTC 模塊和MAX7219 控制的 7 段 LED 顯示屏連接到 Arduino,讀取和顯示時(shí)間,并使用Visuino對(duì)所有這些進(jìn)行編程。我將使用我擁有的Tiny RTC 模塊,但它應(yīng)該與任何其他 DS1307 模塊非常相似。
第 1 步:組件
一塊Arduino兼容板
一個(gè) DS1307 實(shí)時(shí)時(shí)鐘模塊(我使用了 Tiny RTC 模塊,但任何其他 DS1307 模塊都可以)
一個(gè)帶MAX7219控制器的8位7段顯示模塊
一個(gè)小面包板(可以使用任何面包板,或任何其他方式將 3 根電線連接在一起)
3 公母跳線
7 母母跳線
第 2 步:將實(shí)時(shí)時(shí)鐘連接到 Arduino
將母-公 5V VCC 電源(紅線)的母端連接到DS1307 RTC模塊
將母-母線 -地線(黑線)、SCL (橙線)和SDA (藍(lán)線)連接到DS1307 RTC 模塊
將SDA 線(藍(lán)色)的另一端連接到Arduino Nano板的SDA/模擬引腳 4
將SCL 線(橙色)的另一端連接到Arduino Nano板的SCL/模擬引腳 5
將地線(黑色)的另一端連接到Arduino Nano板的接地引腳
第 3 步:將 LED 模塊連接到 Arduino
將母-公 5V VCC 電源(紅線)的母端連接到LED 模塊
將母-母線 -地線(黑線)、DIN (綠線)、CS (灰線)和CLK (黃線)連接到LED 模塊
將地線(黑色)的另一端連接到Arduino Nano板的接地引腳
將CLK線(黃色)的另一端連接到電路板的Digital 13引腳
將DIN線(綠色)的另一端連接到Arduino Nano板的Digital 11引腳
將CS線(灰色)的另一端連接到Arduino Nano板的Digital 10引腳
第 4 步:將電源線連接到 Arduino 板
將另一根母-公電源線(紅線)連接到Arduino板的5V電源引腳,并保持公端未連接
在面包板的幫助下將3 根電源線(紅線)的公端(來自顯示器、時(shí)鐘模塊和Arduino)連接在一起。在我的情況下,我使用了一個(gè)小面包板
以紅色顯示Arduino Nano的5V Power引腳在哪里。藍(lán)色顯示在前面的步驟中完成的連接。
第 5 步:?jiǎn)?dòng) Visuino 并選擇 Arduino Board 類型
要開始對(duì) Arduino 進(jìn)行編程,您需要先從此處安裝
Arduino IDE : http ://www.arduino.cc/
Visuino : https://www.visuino.com
安裝后步驟:
啟動(dòng)Visuino
在Visuino中單擊Arduino組件上的“工具”按鈕
出現(xiàn)對(duì)話框時(shí),選擇“ Arduino Nano ”
第6步:在Visuino中,添加并連接Maxim MAX7219 LED組件
在 Component Toolbox 的 Filter 框中輸入“ led ”,然后選擇“ Maxim Led Controller SPI MAX7219/MAX7221 ”組件,并將其放入設(shè)計(jì)區(qū)域
將LedController1組件的“ Out ”引腳連接到Arduino組件SPI通道的“ In ”引腳
將LedController1組件的“ ChipSelect ”引腳連接到Arduino組件的“ Digital[10] ”通道的“ Digital ”輸入
第 7 步:在 Visuino 中,將 Integer Display 7 Segments 元素添加到 Maxim LED 控制器組件
LedController1 組件可以以多種不同方式控制 LED。LED 的組織和控制方式取決于將添加到組件中的元素。在這里,我們將添加 3 個(gè)整數(shù)元素,每個(gè)元素有 2 個(gè)數(shù)字和 2 個(gè)無符號(hào)位像素元素。時(shí)間將顯示在整數(shù)元素中,位像素元素將用于小時(shí)、分鐘和秒之間的分隔符。
點(diǎn)擊LedController1組件的“工具”按鈕打開元素編輯器
在“元素”編輯器中,選擇右側(cè)的“整數(shù)顯示7段”,然后單擊左側(cè)的“”按鈕,為組件添加一個(gè)元素
在 Object Inspector 中,將新添加的“ Integer Display 7 Segments1 ”元素的“ CountDigits ”屬性的值設(shè)置為2
在 Object Inspector 中,將新添加的“ Integer Display 7 Segments1 ”元素的“ LeadingZeroes ”屬性的值設(shè)置為“ True ”
第 8 步:在 Visuino 中,將其余元素添加到 Maxim LED 控制器組件
在“元素”編輯器中,選擇右側(cè)的“無符號(hào)位像素”,然后單擊左側(cè)的“”按鈕,為組件添加一個(gè)元素
在 Object Inspector 中,將新添加的“ Unsigned Bit Pixels1 ”元素的“ CountPixels ”屬性的值設(shè)置為“ 8 ”
在 Object Inspector 中,將新添加的“ Unsigned Bit Pixels1 ”元素的“ InitialValue ”屬性的值設(shè)置為“ 1 ”。這將使“-”(g)段僅在 7 段數(shù)字上有效
重復(fù)本教程和上一個(gè)步驟 7 的相同步驟,添加2個(gè)“整數(shù)顯示7 段”元素和一個(gè)“無符號(hào)位像素”元素,并以相同方式設(shè)置它們的屬性
關(guān)閉“元素”編輯器
第 9 步:在 Visuino 中,添加并連接解碼日期/時(shí)間組件
我們需要將日期/時(shí)間解碼為單獨(dú)的小時(shí)、分鐘和秒值。為此,我們將使用“解碼日期/時(shí)間”組件。
在組件工具箱的過濾框中鍵入“解碼”,然后選擇“解碼日期/時(shí)間”組件,并將其拖放到設(shè)計(jì)區(qū)域
將RealTimeClock1的“ Out ”引腳連接到DecodeDateTime1的“ In ”引腳
將DigitalToUnsigned1的“ Out ”引腳列表的“ Second ”引腳連接到LedController1組件的“ PixelGroups.Integer Display 7 Segments1 ”元素的“ In ”引腳
將DigitalToUnsigned1的“ Out ”引腳列表的“ Minute ”引腳連接到LedController1組件的“ PixelGroups.Integer Display 7 Segments2 ”元素的“ In ”引腳
將DigitalToUnsigned1的“ Out ”引腳列表的“ Hour ”引腳連接到LedController1組件的“ PixelGroups.Integer Display 7 Segments3 ”元素的“ In ”引腳
第 10 步:在 Visuino 中,添加并連接 (T) 觸發(fā)器組件
為了動(dòng)畫小時(shí)、分鐘和秒之間的“-”分隔符,我們將每秒在“8”和“1”無符號(hào)值之間切換。為此,我們可以使用觸發(fā)器。最方便的是 Toggle(T) 觸發(fā)器:
在組件工具箱的過濾器框中鍵入“翻轉(zhuǎn)”,然后選擇“切換(T)觸發(fā)器”組件,并將其放入設(shè)計(jì)區(qū)域
將RealTimeClock1的“ Out ”引腳連接到TFlipFlop1組件的“ In ”引腳
第 11 步:在 Visuino 中,添加、配置和連接 Digital To Unsigned 組件
觸發(fā)器生成一個(gè)數(shù)字(布爾)值。我們需要將其轉(zhuǎn)換為“8”和“1”的無符號(hào)值。為此,我們將使用“數(shù)字到無符號(hào)”轉(zhuǎn)換器:
在組件工具箱的過濾框中鍵入“數(shù)字”,然后選擇“數(shù)字到無符號(hào)”組件,并將其放在設(shè)計(jì)區(qū)域
在對(duì)象檢查器中,將DigitalToUnsigned1元素的“ FalseValue ”屬性的值設(shè)置為“ 8 ”
將TFlipFlop1的“ Out ”引腳連接到DigitalToUnsigned1組件的“ In ”引腳
將DigitalToUnsigned1的“ Out ”引腳連接到LedController1組件的“ PixelGroups.Unsigned Bit Pixels1 ”元素的“ In ”引腳
將DigitalToUnsigned1的“ Out ”引腳連接到LedController1組件的“ PixelGroups.Unsigned Bit Pixels2 ”元素的“ In ”引腳
第 12 步:生成、編譯和上傳 Arduino 代碼
在Visuino中,按F9生成 Arduino 代碼,然后打開 Arduino IDE
在Arduino IDE中,點(diǎn)擊Upload按鈕,編譯并上傳代碼
第13步:完成
到這里,您已經(jīng)制作了一個(gè)帶有 7 段 MAX7219 LED 顯示驅(qū)動(dòng)器和 DS1307 實(shí)時(shí)時(shí)鐘 (RTC) 的 LED 時(shí)鐘。
-
MAX7219
+關(guān)注
關(guān)注
4文章
94瀏覽量
24599 -
數(shù)字時(shí)鐘
+關(guān)注
關(guān)注
2文章
150瀏覽量
20332 -
DS1307
+關(guān)注
關(guān)注
1文章
34瀏覽量
14124
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論