91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Arduino UNO和四位數(shù)碼的數(shù)字時(shí)鐘制作方案

電子設(shè)計(jì) ? 來(lái)源:一板網(wǎng) ? 作者:風(fēng)箏 ? 2020-12-13 10:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

數(shù)字掛鐘現(xiàn)在越來(lái)越受歡迎,它們比模擬時(shí)鐘更好,因?yàn)樗峁┝诵r(shí)、分鐘和秒的準(zhǔn)確時(shí)間,并且易于讀取數(shù)值。一些數(shù)字時(shí)鐘也有許多設(shè)施,如顯示溫度、濕度、設(shè)置多個(gè)鬧鈴等。大多數(shù)數(shù)字時(shí)鐘使用七段數(shù)碼管

我們之前使用七段數(shù)碼管或使用1602 LCD制作了許多數(shù)字時(shí)鐘電路。在本文中,主要介紹通過(guò)使用Arduino UNO和四位數(shù)碼制作數(shù)字時(shí)鐘,并以HH:MM格式顯示時(shí)間。

需要的組件

● 4位7段數(shù)碼管

● 74HC595

● DS3231 RTC模塊

● Arduino UNO

● 面包板

● 連接跳線

四位七段數(shù)碼管

四位七段數(shù)碼管有四個(gè)七段數(shù)碼管連接在一起。它們用于顯示數(shù)值以及一些帶小數(shù)和冒號(hào)的字母。顯示屏可以雙向使用。四位數(shù)碼管可用于制作數(shù)字時(shí)鐘或類似于0到9999之間的計(jì)數(shù)器。下面是四位七段數(shù)碼管的內(nèi)部圖。

o4YBAF_QkfSADOM0AACdoWhbWA8990.png

每個(gè)部分都有一個(gè)帶獨(dú)立控制的LED。七段數(shù)碼管顯示有兩種類型,共陽(yáng)極和共陰極。上圖顯示了共陽(yáng)極七段數(shù)碼管。

共陽(yáng)極

在共陽(yáng)極中,所有8個(gè)LED的所有正極(陽(yáng)極)連接在一起,命名為COM。并且所有負(fù)極端子都保持?jǐn)嚅_(kāi)或連接到微控制器引腳。通過(guò)使用微控制器,邏輯低電平用于點(diǎn)亮特定LED段,邏輯高電平熄滅LED。

o4YBAF_QkgGAJIpjAAE6R6t-GN0587.png

共陰極

在共陰極中,所有8個(gè)LED的所有負(fù)極端子(陰極)連接在一起,命名為COM。并且所有正極端子都保持?jǐn)嚅_(kāi)或連接到微控制器引腳。通過(guò)使用微控制器,邏輯高電平用于點(diǎn)亮特定LED段,邏輯低電平熄滅LED。。

o4YBAF_QkhSAJQkxAAEc6xg6KwY041.png

74HC595移位寄存器IC

o4YBAF_QkiGALMiwAAA678Tj14o325.png

74HC595也稱為8位串行輸入 - 并行輸出移位寄存器。該IC可以串行接收數(shù)據(jù)輸入,并行控制8個(gè)輸出引腳。這對(duì)于減少微控制器使用的引腳非常有用。

74HC595 IC的工作原理

該IC使用三個(gè)引腳(如時(shí)鐘、數(shù)據(jù)和鎖存器)與微控制器來(lái)控制IC的8個(gè)輸出引腳。時(shí)鐘用于連續(xù)提供來(lái)自微控制器的脈沖,數(shù)據(jù)引腳用于發(fā)送數(shù)據(jù),例如在相應(yīng)的時(shí)鐘時(shí)間需要將輸出打開(kāi)或關(guān)閉的數(shù)據(jù)。

DS3231 RTC模塊

DS3231是一款RTC模塊。 RTC代表實(shí)時(shí)時(shí)鐘。即使電路未通電,該模塊也用于記住時(shí)間和日期。它有一個(gè)備用電池CR2032,可在沒(méi)有外部電源的情況下運(yùn)行模塊。該模塊還包括溫度傳感器。該模塊可用于嵌入式項(xiàng)目,如制作帶溫度指示器的數(shù)字時(shí)鐘等.

該模塊的一些功能和參數(shù):

● RTC,計(jì)算秒、分、小時(shí)和年

● 數(shù)字溫度傳感器,精度為±3oC

● 400Khz I2C接口

● 功耗低

● CR2032備用電池,具有兩到三年的使用壽命

● 工作電壓:2.3至5.5V

電路原理

DS3231 RTC和Arduino UNO之間的電路連接:

DS3231 Arduino UNO開(kāi)發(fā)板
VCC 5V
GND GND
SDA A4
SCL A5


編程Arduino UNO

在本文的末尾處給出了完整的代碼。在編程部分中,將說(shuō)明如何以24小時(shí)格式從RTC模塊獲取時(shí)間(小時(shí)和分鐘),然后將其轉(zhuǎn)換成用于在4位7段顯示中顯示它們的相應(yīng)格式。

要將DS3231 RTC模塊與Arduino UNO連接,使用Arduino UNO的I2C總線。程序中包含一個(gè)名為的庫(kù),用于訪問(wèn)設(shè)置和讀取時(shí)間、日期、溫度數(shù)據(jù)等功能。下載DS3231 RTC模塊Arduino庫(kù)。由于RTC模塊使用I2C接口,因此程序中也使用庫(kù)。

在本文中,小時(shí)和分鐘首先從RTC獲取,它們像0930(09:30 pm)一樣被組合在一起然后各個(gè)數(shù)字被分開(kāi),如千、百、十、單位,并且各個(gè)數(shù)字被轉(zhuǎn)換成二進(jìn)制格式,如0到63(0111111)。該二進(jìn)制代碼被發(fā)送到移位寄存器,然后從移位寄存器發(fā)送到七段,成功地在七段顯示中顯示數(shù)字0。這樣,四位數(shù)碼管姐可以顯示小時(shí)和分鐘。

首先,包括必要的庫(kù),例如DS3231庫(kù)和Wire庫(kù)(I2C庫(kù))。

#include

#include

定義控制七段數(shù)碼管的引腳。這些控制將在復(fù)用數(shù)碼管中發(fā)揮重要作用。

#define latchPin 5

#define clockPin 6

#define dataPin 4

#define dot 2

聲明變量存儲(chǔ)從RTC獲取的轉(zhuǎn)換結(jié)果或原始結(jié)果。

int h; //Variable declared for hour

int m; //Variable declared for minute

int thousands;

int hundreds;

int tens;

int unit;

bool h24;

bool PM;

接下來(lái),聲明類DS3231的對(duì)象為RTC,以簡(jiǎn)化在以后代碼中的使用。

DS3231 RTC;

由于RTC模塊通過(guò)I2C通信與Arduino連接。因此,wire.begin()用于在RTC的默認(rèn)地址中啟動(dòng)I2C通信,因?yàn)闆](méi)有其他I2C模塊。

Wire.begin();

定義引腳模式,確定GPIO是作為輸出還是輸入。

pinMode(9,OUTPUT);

pinMode(10,OUTPUT);

pinMode(11,OUTPUT);

pinMode(12,OUTPUT);

pinMode(latchPin, OUTPUT);

pinMode(clockPin, OUTPUT);

pinMode(dataPin, OUTPUT);

pinMode(dot,OUTPUT);

loop函數(shù)將無(wú)限運(yùn)行,首先需要從RTC DS3231模塊讀取以小時(shí)和分鐘為單位的時(shí)間。 'h24'表示24小時(shí)格式變量。

int h= RTC.getHour(h24, PM);

int m = RTC.getMinute();

然后將小時(shí)和分鐘組合為一個(gè)數(shù)字(例如,如果小時(shí)為10,則min為60,則數(shù)字為10 * 100 = 1000 + 60 = 1060)。

int number = h*100+m;

獲得數(shù)字的各個(gè)位的數(shù)字(示例1060-1是千位,0是百位,1是十位,0是最后一個(gè)數(shù)字)。為了分開(kāi)數(shù)字,使用模數(shù)運(yùn)算符。例如,在1060得到1然后1060/1000 = 1.06%10 = 1)。因此,單獨(dú)的數(shù)字存儲(chǔ)在單獨(dú)的變量中。

int thousands = number/1000%10;

int hundreds = number/100%10;

int tens = number/10%10;

int unit = number%10;

之后,定義每個(gè)數(shù)字的switch-case語(yǔ)句,用于將它們轉(zhuǎn)換為相應(yīng)的格式(二進(jìn)制格式),并通過(guò)移位寄存器發(fā)送到7段顯示。例如(對(duì)于1位數(shù),它將轉(zhuǎn)換為06(0000 0110))。因此它通過(guò)移位發(fā)出,1位數(shù)顯示在7段(0表示LOW,1表示HIGH)。

switch (t)

{

case 0:

unit = 63;

break;

case 1:

unit = 06;

break;

case 2:

unit =91;

break;

case 3:

unit=79;

break;

case 4:

unit=102;

break;

case 5:

unit = 109;

break;

case 6:

unit =125;

case 7:

unit = 07;

break;

case 8:

unit = 127;

break;

case 9:

unit =103;

break;

}

然后,通過(guò)'shiftout'函數(shù)以先MSB的方式發(fā)送二進(jìn)制格式的數(shù)字,相應(yīng)的數(shù)字引腳變?yōu)楦唠娖?,鎖存引腳變?yōu)楦唠娖健?/p>

digitalWrite(9, LOW);

digitalWrite(latchPin, LOW);

shiftOut(dataPin, clockPin, MSBFIRST,thousands);

digitalWrite(latchPin, HIGH);

digitalWrite(9, HIGH);

delay(5);

這樣就完成了完整的代碼。大多數(shù)函數(shù)說(shuō)明都在代碼注釋部分的代碼行旁邊給出。時(shí)鐘的頻率將決定多路復(fù)用的時(shí)間和質(zhì)量的、。如果使用的時(shí)鐘低,那么可以看到閃爍,如果時(shí)鐘速度高,那么就不會(huì)有這樣的閃爍,可以看到穩(wěn)定的時(shí)間。

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    8403

    瀏覽量

    164726
  • lcd
    lcd
    +關(guān)注

    關(guān)注

    36

    文章

    4619

    瀏覽量

    177365
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1894

    瀏覽量

    94190
  • 模擬時(shí)鐘
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    2006
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    探索MAXIM四位顯示解碼器/驅(qū)動(dòng)器:ICM7211深度解析

    探索MAXIM四位顯示解碼器/驅(qū)動(dòng)器:ICM7211與ICM7212深度解析 在電子設(shè)備的顯示需求日益多樣化的今天,一款高效、穩(wěn)定的顯示解碼器/驅(qū)動(dòng)器顯得尤為重要。MAXIM推出的ICM7211
    的頭像 發(fā)表于 02-03 10:25 ?162次閱讀

    探索Maxim ICM7212:四位顯示解碼器/驅(qū)動(dòng)器的卓越之選

    探索Maxim ICM7211/7212:四位顯示解碼器/驅(qū)動(dòng)器的卓越之選 在硬件設(shè)計(jì)中,顯示驅(qū)動(dòng)是一個(gè)關(guān)鍵環(huán)節(jié),需要穩(wěn)定、高效且功能豐富的解決方案。Maxim的ICM7211和ICM7212四位
    的頭像 發(fā)表于 02-03 10:25 ?154次閱讀

    如何根據(jù)厚聲電阻上的代碼查詢具體阻值?

    %(G),部分廠家也用于±1%(F)。 二、四位數(shù)字標(biāo)注法(高精度電阻) 規(guī)則:前三為有效數(shù)字,第四位表示
    的頭像 發(fā)表于 12-30 15:23 ?633次閱讀
    如何根據(jù)厚聲電阻上的代碼查詢具體阻值?

    UNO Q:開(kāi)啟Arduino的全新未來(lái)

    計(jì)算與實(shí)時(shí)響應(yīng)能力。這種處理能力的結(jié)合彌合了數(shù)字世界與物理世界的鴻溝,借助強(qiáng)大的開(kāi)發(fā)工具套件,將用戶的創(chuàng)意變?yōu)楝F(xiàn)實(shí)。 [UNO Q]將Arduino推動(dòng)技術(shù)普及的理念與Qualcomm的微處理器專業(yè)
    的頭像 發(fā)表于 12-15 11:46 ?854次閱讀

    字符串關(guān)聯(lián)數(shù)字變量如何使用?我們的地址都是16位數(shù)據(jù),可以使用16位數(shù)字變量顯示字符串嗎?

    字符串關(guān)聯(lián)數(shù)字變量如何使用?我們的地址都是16位數(shù)據(jù),可以使用16位數(shù)字變量顯示字符串嗎?
    發(fā)表于 12-15 08:24

    貿(mào)澤電子開(kāi)售全新Arduino UNO Q單板計(jì)算機(jī)

    貿(mào)澤電子開(kāi)售全新Arduino UNO Q單板計(jì)算機(jī)。Arduino UNO Q單板計(jì)算機(jī)(SBC)將高性能計(jì)算與實(shí)時(shí)控制結(jié)合,提供理想的創(chuàng)新平臺(tái)。
    的頭像 發(fā)表于 11-08 09:50 ?1370次閱讀

    Arduino Uno l兩輪自平衡機(jī)器人 電機(jī)驅(qū)動(dòng)無(wú)輸出求解

    Arduino Uno l兩輪自平衡機(jī)器人 電機(jī)驅(qū)動(dòng)無(wú)輸出求解
    發(fā)表于 10-15 06:36

    Arduino UNO Q 登陸 DigiKey,現(xiàn)已開(kāi)放預(yù)訂

    融合高性能微處理器與專用微控制器,Arduino UNO Q加強(qiáng)創(chuàng)新開(kāi)發(fā)能力 美國(guó), 明尼蘇達(dá), 錫夫里弗福爾斯市 - 2025 年 10 月 07 日 全球領(lǐng)先的電子元器件與自動(dòng)化產(chǎn)品分銷商
    的頭像 發(fā)表于 10-13 14:55 ?610次閱讀
    <b class='flag-5'>Arduino</b> <b class='flag-5'>UNO</b> Q 登陸 DigiKey,現(xiàn)已開(kāi)放預(yù)訂

    如何判斷貼片電容和電阻的阻值?

    有效數(shù)字,第三為倍率(10?)。 示例: 103?= 10 × 103 = 10kΩ 472?= 47 × 102 = 4.7kΩ 105?= 10 × 10? = 1MΩ 四位數(shù)標(biāo)識(shí)(精度±1
    的頭像 發(fā)表于 08-12 14:22 ?1963次閱讀
    如何判斷貼片電容和電阻的阻值?

    如何用Arduino Nano/UNO R3開(kāi)發(fā)板給另一個(gè)Arduino IDE不能下載的Arduino Nano/UNO R3開(kāi)發(fā)板重新燒錄引導(dǎo)程序bootlaoder

    本文介紹了如何用能夠Arduino IDE下載的Arduino Nano/UNO R3開(kāi)發(fā)板給另一個(gè)Arduino IDE不能下載的Arduino
    的頭像 發(fā)表于 08-08 20:16 ?3619次閱讀
    如何用<b class='flag-5'>Arduino</b> Nano/<b class='flag-5'>UNO</b> R3開(kāi)發(fā)板給另一個(gè)<b class='flag-5'>Arduino</b> IDE不能下載的<b class='flag-5'>Arduino</b> Nano/<b class='flag-5'>UNO</b> R3開(kāi)發(fā)板重新燒錄引導(dǎo)程序bootlaoder

    Texas Instruments INA4230 16位數(shù)字電流監(jiān)控器數(shù)據(jù)手冊(cè)

    Texas Instruments INA4230通道16位數(shù)字電流監(jiān)控器具有一個(gè)兼容I ^2 C^ /SMBus的接口,兼容1.2V至5V的數(shù)字總線電壓。該器件可監(jiān)測(cè)外部感應(yīng)電阻器上的電壓,并報(bào)告每個(gè)通道的分流電壓、總線電壓
    的頭像 發(fā)表于 07-25 14:43 ?720次閱讀
    Texas Instruments INA4230 16<b class='flag-5'>位數(shù)字</b>電流監(jiān)控器數(shù)據(jù)手冊(cè)

    0.1-3.0 GHz 四位數(shù)字衰減器 (1 dB LSB) skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()0.1-3.0 GHz 四位數(shù)字衰減器 (1 dB LSB)相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有0.1-3.0 GHz 四位數(shù)字衰減器 (1 dB LSB)的引腳圖、接線圖、封裝手冊(cè)
    發(fā)表于 05-26 18:29
    0.1-3.0 GHz <b class='flag-5'>四位數(shù)字</b>衰減器 (1 dB LSB) skyworksinc

    貼片電阻的阻值如何判斷?

    以下幾種方法: 一、觀察表面標(biāo)識(shí) 1、數(shù)字編碼 三位數(shù)字編碼:前兩位數(shù)字代表電阻值的有效數(shù)字,第三位數(shù)字代表乘數(shù)(即10的冪次方)。例如,標(biāo)
    的頭像 發(fā)表于 05-14 15:32 ?4646次閱讀
    貼片電阻的阻值如何判斷?

    AD9912 1 GSPS直接數(shù)字頻率合成器,內(nèi)置14位數(shù)模轉(zhuǎn)換器技術(shù)手冊(cè)

    AD9912是一款集成14位數(shù)模轉(zhuǎn)換器(DAC)的直接數(shù)字頻率合成器(DDS)。AD9912具有一個(gè)48頻率調(diào)諧字(FTW),可以合成步長(zhǎng)不超過(guò)4μHz的頻率。通過(guò)調(diào)整DAC系統(tǒng)時(shí)鐘
    的頭像 發(fā)表于 05-06 09:58 ?1569次閱讀
    AD9912 1 GSPS直接<b class='flag-5'>數(shù)字</b>頻率合成器,內(nèi)置14<b class='flag-5'>位數(shù)</b>模轉(zhuǎn)換器技術(shù)手冊(cè)

    # quartus ii 9.1對(duì)registered adder仿真出錯(cuò),但硬件上能夠?qū)崿F(xiàn),怎么解決?

    D=B; input reset,Clock;//復(fù)位信號(hào)和時(shí)鐘信號(hào) output[3:0] S;//最終輸出的四位數(shù)結(jié)果 output Cout;//進(jìn)位輸出 reg[3:0] QA,QB
    發(fā)表于 04-14 21:35