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

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

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

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

使用Arduino和7段顯示的兩位數(shù)定時(shí)器的制作

454398 ? 來源:wv ? 2019-10-25 10:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:將組件放置在面包板上

使用Arduino和7段顯示的兩位數(shù)定時(shí)器的制作

找到位于IC的一個(gè)角上的點(diǎn),該標(biāo)記標(biāo)記IC的第一個(gè)引腳1,其他引腳沿逆時(shí)針方向計(jì)數(shù)。

通過電阻將按鈕的一個(gè)端子連接至5V,并通過電阻將另一端子連接至地面。

步驟2:將BCD連接至7段邏輯

BCD代表二進(jìn)制編碼的十進(jìn)制,其中十進(jìn)制數(shù)字表示為4位二進(jìn)制。

我們使用BCD到7段解碼器,因?yàn)樗鼘p少使用的Arduino數(shù)字引腳分配的數(shù)量連接單個(gè)7段顯示器。一個(gè)7段顯示器至少需要7個(gè)arduino引腳,其中兩個(gè)至少需要14個(gè),而我們在Arduino Uno上只有13個(gè)數(shù)字引腳。

一個(gè)BCD至7段解碼器將只需要4個(gè)Arduino引腳和2個(gè)他們將只使用8個(gè)數(shù)字引腳。

BCD到十進(jìn)制映射如下。

BCD ---- DECIMAL

0000 ---- 0

0001 ---- 1

0010 ---- 2

0011 ---- 3

0100- -4

0101 ---- 5

0110 ---- 6

0111 ---- 7

1000- --- 8

1001 ---- 9

BCD到十進(jìn)制轉(zhuǎn)換一直到15,但我將它列出到9,因?yàn)樗菃蝹€(gè)可以顯示的最大數(shù)量7-段顯示

步驟3:將Arduino引腳分配連接到BCD輸入。

在這里,我們使用的是IC CD4511 7段解碼器,

引腳1,2,6,7是IC CD4511的BCD輸入引腳。

其中,

引腳7 =位0

Pin 1 = Bit 1

Pin 2 = Bit 2

Pin 6 = Bit 3

只連接兩個(gè)IC之一首先是Arduino,現(xiàn)在是第一個(gè)解碼器IC,即顯示在顯示器右側(cè)的那個(gè)

現(xiàn)在是第一個(gè)解碼器IC,即顯示在顯示器右側(cè)的那個(gè)。。

CD4511(1 ) Arduino

Pin 7 -----》 Pin 4

Pin 1 -----》 Pin 5

Pin 2 -----》 Pin 6

Pin 6 -----》 Pin 7

步驟4:連接7段顯示器并為IC供電

IC上的引腳9至15是對應(yīng)于7段顯示器的引腳。

映射到7段顯示器的IC引腳分配如下。

CD4511 ----》 7段顯示

13 ----》 a

12 ----》 b

11 ----》 c

10 ----》 d

9 ----》 e

15 ----》 f

14 ----》 g

按照說明將右側(cè)顯示屏連接到左側(cè)的解碼器1

如圖所示,通過電阻將兩個(gè)顯示器的公共端接地。

要為IC供電,您需要進(jìn)行CD4511的以下連接

CD4511

Pin 3 ---》 Vcc(+ 5v)

Pin 4 ---》 Vcc(+ 5v)

Pin 5 ---》 GND

Pin 8 ---》 GND

Pin 16 ---》 Vcc(+ 5V)

現(xiàn)在,我們進(jìn)入下一步,

步驟5:用于測試第一顯示的Arduino Sketch

Arduino Sketch如下,編寫并上傳到Arduino。在這里,我們顯示數(shù)字8來檢查所有線段是否正常工作,但是應(yīng)使用0以外的任何數(shù)字,因?yàn)槿绻覀兊牟輬D不工作,它將始終顯示0。

如果不起作用檢查您的連接。進(jìn)行正確的連接,尤其是對于Vcc和地線,因?yàn)?a target="_blank">電源輸入錯(cuò)誤的引腳可能會(huì)損壞IC。

您可以在圖像中看到輸出。

------ -------------------------------------------------- --------

//BCD 1

int a1 = 4;

int a2 = 5;

int a3 = 6;

int a4 = 7;

void setup()

{

pinMode(4,OUTPUT);

pinMode(5,OUTPUT);

pinMode(6,OUTPUT);

pinMode(7,OUTPUT);

}

void loop()

{

disp1(8);

}

void disp1(int num)

{

if(num == 8)

{

digitalWrite(a1, LOW);

digitalWrite(a2, LOW);

digitalWrite(a3, LOW);

digitalWrite(a4, HIGH);

}

}

步驟6:連接其他顯示器并對其進(jìn)行測試。

Arduino到CD4511(2)的引腳分配,即第二個(gè)解碼器,即左側(cè)的解碼器,如下所示。

CD4511(2)-----》 Arduino

Pin 7 -----》 8

Pin 1 -----》 9

Pin 2 -----》 10

Pin 6 -----》 11

按步驟4所示,將IC的7段引腳連接到另一個(gè)顯示器,并進(jìn)行電源連接。

將以下草圖運(yùn)行到

//BCD 1

int a1 = 4;

int a2 = 5;

int a3 = 6;

int a4 = 7;

//BCD 2

int b1 = 8;

int b2 = 9;

int b3 = 10;

int b4 = 11;

void setup()

{

pinMode(4,OUTPUT);

pinMode(5,OUTPUT);

pinMode(6,OUTPUT);

pinMode(7,OUTPUT);

pinMode(8,OUTPUT);

pinMode(9,OUTPUT);

pinMode(10,OUTPUT);

pinMode(11,OUTPUT);

}

void loop()

{

disp1(8);

}

void disp1(int num)

{

if(num == 8)

{

digitalWrite(a1, LOW);

digitalWrite(a2, LOW);

digitalWrite(a3, LOW);

digitalWrite(a4, HIGH);

}

}

void disp2(int num)

{

if(num == 8)

{

digitalWrite(b1, LOW);

digitalWrite(b2, LOW);

digitalWrite(b3, LOW);

digitalWrite(b4, HIGH);

}

}

步驟7:完成用于顯示數(shù)字0到9的顯示功能。

在顯示功能中disp1(),進(jìn)行以下更改

void disp1(int num){

if(num == 0)//0000

{

digitalWrite(a1, LOW);

digitalWrite(a2, LOW);

digitalWrite(a3, LOW);

digitalWrite(a4, LOW);

}

if(num == 1)//0001

{

digitalWrite(a1, HIGH);

digitalWrite(a2, LOW);

digitalWrite(a3, LOW);

digitalWrite(a4, LOW);

}

if(num == 2)//0010

{

digitalWrite(a1, LOW);//0

digitalWrite(a2, HIGH);//1

digitalWrite(a3, LOW);//0

digitalWrite(a4, LOW);//0

}

if(num == 3)//0011

{

digitalWrite(a1, HIGH);//1

digitalWrite(a2, HIGH);//1

digitalWrite(a3, LOW);//0

digitalWrite(a4, LOW);//0

}

if(num == 4)//0100

{

digitalWrite(a1, LOW);//0

digitalWrite(a2, LOW);//0

digitalWrite(a3, HIGH);//1

digitalWrite(a4, LOW);//0

}

if(num == 5)//0101

{

digitalWrite(a1, HIGH);//1

digitalWrite(a2, LOW);//0

digitalWrite(a3, HIGH);//1

digitalWrite(a4, LOW);//0

}

if(num == 6)//0110

{

digitalWrite(a1, LOW);//0

digitalWrite(a2, HIGH);//1

digitalWrite(a3, HIGH);//1

digitalWrite(a4, LOW);//0

}

if(num == 7) //0111

{

digitalWrite(a1, HIGH);//1

digitalWrite(a2, HIGH);//1

digitalWrite(a3, HIGH);//1

digitalWrite(a4, LOW);//0

}

if(num == 8) //1000

{

digitalWrite(a1, LOW);//0

digitalWrite(a2, LOW);//0

digitalWrite(a3, LOW);//0

digitalWrite(a4, HIGH);//1

}

if(num == 9)//1001

{

digitalWrite(a1, HIGH);//1

digitalWrite(a2, LOW);//0

digitalWrite(a3, LOW);//0

digitalWrite(a4, HIGH);//1

}

}

以類似的方式,編輯函數(shù)disp2()

void disp2(int num){

if(num == 0)//0000

{

digitalWrite(b1, LOW);//

digitalWrite(b2, LOW);//0

digitalWrite(b3, LOW);//0

digitalWrite(b4, LOW);//0

}

if(num == 1)//0001

{

digitalWrite(b1, HIGH);//1

digitalWrite(b2, LOW);//0

digitalWrite(b3, LOW);//0

digitalWrite(b4, LOW);//0

}

if(num == 2)//0010

{

digitalWrite(b1, LOW);//0

digitalWrite(b2, HIGH);//1

digitalWrite(b3, LOW);//0

digitalWrite(b4, LOW);//0

}

if(num == 3)//0011

{

digitalWrite(b1, HIGH);//1

digitalWrite(b2, HIGH);//1

digitalWrite(b3, LOW);//0

digitalWrite(b4, LOW);//0

}

if(num == 4)//0100

{

digitalWrite(b1, LOW);//0

digitalWrite(b2, LOW);//0

digitalWrite(b3, HIGH);//1

digitalWrite(b4, LOW);//0

}

if(num == 5) //0101

{

digitalWrite(b1, HIGH);//1

digitalWrite(b2, LOW);//0

digitalWrite(b3, HIGH);//1

digitalWrite(b4, LOW);//0

}

if(num == 6) //0110

{

digitalWrite(b1, LOW);//0

digitalWrite(b2, HIGH);//1

digitalWrite(b3, HIGH);//1

digitalWrite(b4, LOW);//0

}

if(num == 7) //0111

{

digitalWrite(b1, HIGH);//1

digitalWrite(b2, HIGH);//1

digitalWrite(b3, HIGH);//1

digitalWrite(b4, LOW);//0

}

if(num == 8) //1000

{

digitalWrite(b1, LOW);//0

digitalWrite(b2, LOW);//0

digitalWrite(b3, LOW);//0

digitalWrite(b4, HIGH);//1

}

if(num == 9)//1001

{

digitalWrite(b1, HIGH);//1

digitalWrite(b2, LOW);//0

digitalWrite(b3, LOW);//0

digitalWrite(b4, HIGH);//1

}

}

步驟8:顯示一個(gè)兩位數(shù)

哇下面是將使用兩個(gè)7段顯示器顯示兩位數(shù)字的代碼。

但是我們知道7段顯示器不能顯示大于9的任何數(shù)字。

要顯示一個(gè)兩位數(shù)的數(shù)字,我們將編寫代碼以將兩位數(shù)的數(shù)字分開,并將其值存儲(chǔ)到d1和d2中,其中d1是一位數(shù)字,而d2是十位數(shù)。

然后,我們將使用disp1()和disp(2)函數(shù)將其寫入兩個(gè)顯示。。其中,disp1()控制數(shù)據(jù)到7段解碼器1的二進(jìn)制輸入(即右側(cè)的一個(gè)),然后依次控制7段顯示放在一個(gè)位置,并且disp2()將數(shù)據(jù)控制到7段解碼器2的二進(jìn)制輸入(即左側(cè)的一個(gè)),進(jìn)而控制十段的7段顯示。

首先全局聲明以下整數(shù)變量

int n; //To Store the Number

int d1; //To Store the first Digit

int d2; // To Store the Second Digit

現(xiàn)在在 void循環(huán)()中輸入以下代碼行

void loop()

{

n=25; //I have taken 25 as an example. you may take any number you wish

d1= n%10;

d2= n/10;

/* d1 = n%10, will store to remainder of n/10 to d1 i.e 5 in this case,

it will be our digit at ones place.

d2 = n/10, will store the answer of n/10 to d2, ignoring the numbers after decimals,

here n = 25 so n/10 = 2.5 and 2 will be stored ignoring the 5 after the decimal point,

because int will store only whole number.

disp1(d1); //The value of d1 i.e the digit at ones place will be send to corresponding Display

disp2(d2); //The value of d2 i.e the digit at tens place will be send to corresponding Display

}

第9步:計(jì)時(shí)器的Arduino草圖。

現(xiàn)在,我們將n的值從零延遲增加到99,然后將其重置為0,然后再次將其遞增到99。

并在7段顯示器上顯示數(shù)字。

在全局聲明中更改

int n=0;

保持d1和d2不變,

現(xiàn)在編輯 void loop()如下所示

void loop(){

delay(1000); // Delay of 1 Second

n++;

if(n==100)

{

n=0;

}

d1=n%10; // This will divide n by 10 and the remainder will be stored in d1

d2=n/10; // This will divide n by 10 and the value before decimal will be stored in d2

disp1(d1);

disp2(d2);

}

在此處使用延遲,否則初始值0將在執(zhí)行循環(huán)后立即增加到1,

步驟10:連接按鈕并為計(jì)數(shù)器編寫草圖

所有這些時(shí)候,您可能想知道按鈕是否放置在

好,現(xiàn)在是時(shí)候連接它并用它做計(jì)數(shù)器了。

我們將修改草圖,以便n的值僅在按下按鈕時(shí)才會(huì)增加。

為此,我們首先如圖所示連接按鈕,其中一個(gè)端子通過電阻器連接到Vcc,另一端子通過電阻器連接到Vcc。一個(gè)通過電阻連接到GND。接地確保在接通電路時(shí)突然的峰值電壓跨接在電阻上,否則將觸發(fā)arduino上的按鈕輸入引腳為HIGH。

現(xiàn)在連接另一個(gè)端子

聲明一個(gè)全局整數(shù)變量并將其分配給引腳2(讓int button = 2;)和一個(gè)變量(int狀態(tài)= 0);

然后在設(shè)置中,將按鈕分配為INPUT

int n=0; //Setting initial value of n to 0

int d1;

int d2;

int button = 2;

int state = 0; void setup()

{

pinMode(4,OUTPUT);

pinMode(5,OUTPUT);

pinMode(6,OUTPUT);

pinMode(7,OUTPUT);

pinMode(8,OUTPUT);

pinMode(9,OUTPUT);

pinMode(10,OUTPUT);

pinMode(11,OUTPUT);

pinMode(button,INPUT);

}

在void loop()中,進(jìn)行如下修改:

void loop()

{

state = digitalRead(button);

if(state == HIGH)

{

n++;

}

if(n==100)

{

n=0;

}

d1=n%10; // This will divide n by 10 and the remainder will be stored in d1

d2=n/10; // This will divide n by 10 and the value before decimal will be stored in d2

disp1(d1);

disp2(d2);

delay(100);//100 ms delay to debounce

}

可以根據(jù)您的方便更改反跳時(shí)間。

現(xiàn)在上傳并運(yùn)行最終草圖,您的計(jì)數(shù)器就會(huì)工作。

使用我認(rèn)為這是可指導(dǎo)的,我是我的第一個(gè)Intructable,我竭盡全力提供我要分享的知識,假定已經(jīng)知道很多事情,并且這對于使解釋盡可能短是必要的。如果我遺漏了任何解釋,或者您有任何問題,請隨時(shí)提出。隨時(shí)準(zhǔn)備為您提供幫助。

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

    關(guān)注

    23

    文章

    3368

    瀏覽量

    123835
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6526

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    LM555QML定時(shí)器:功能特性、應(yīng)用及設(shè)計(jì)要點(diǎn)

    了解一下它。 文件下載: lm555qml.pdf 一、LM555QML簡介 LM555QML是一款可直接替代SE555/NE555的定時(shí)器,能實(shí)現(xiàn)從微秒到數(shù)小時(shí)的定時(shí),支持單穩(wěn)態(tài)和無穩(wěn)態(tài)種工作模式,并且占空比可調(diào)。它額外提供
    的頭像 發(fā)表于 02-10 15:40 ?155次閱讀

    深入解析 LM555 定時(shí)器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    深入解析 LM555 定時(shí)器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 一、引言 在電子工程師的工具箱中,定時(shí)器芯片是常用的基礎(chǔ)元件之一。而 TI 公司的 LM555 定時(shí)器,以其高穩(wěn)定性、多種工作模式和廣泛的應(yīng)用范圍
    的頭像 發(fā)表于 02-10 15:35 ?281次閱讀

    探索xx555系列精密定時(shí)器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    的特性、應(yīng)用以及設(shè)計(jì)要點(diǎn)。 文件下載: se555.pdf 一、產(chǎn)品概述 xx555系列定時(shí)器是一款經(jīng)典的精密定時(shí)電路,能夠產(chǎn)生精確的時(shí)間延遲或振蕩。它具有從微秒到數(shù)小時(shí)的定時(shí)能力,支持單穩(wěn)態(tài)和無穩(wěn)態(tài)
    的頭像 發(fā)表于 02-10 14:45 ?182次閱讀

    LAT1173高精度定時(shí)器的同步功能應(yīng)用筆記

    STM32G474 所含的高精度定時(shí)器(HRTIMER)其實(shí)包含了多個(gè)定時(shí)器,多個(gè)定時(shí)器之間可以單獨(dú)工作,也可以進(jìn)行同步,且高精度定時(shí)器還能與片上的其他
    發(fā)表于 01-11 17:32 ?0次下載

    CW32F030是32位的MCU為什么不提供32位的定時(shí)器?

    CW32F030提供豐富的定時(shí)器資源,有1個(gè)高級定時(shí)器、4個(gè)通用定時(shí)器和3個(gè)基本定時(shí)器,雖然定時(shí)器是16位的,但各個(gè)
    發(fā)表于 12-22 15:22

    單片機(jī)定時(shí)器中斷

    51單片機(jī)內(nèi)部共有個(gè)16位可編程的定時(shí)器/計(jì)數(shù),即定時(shí)器T0和定時(shí)器T1。它們既有定時(shí)功能又
    發(fā)表于 11-24 06:22

    PWM、定時(shí)器、SysTick 區(qū)別及應(yīng)用場景

    在單片機(jī)和嵌入式開發(fā)中,經(jīng)常會(huì)遇到PWM(脈寬調(diào)制)、定時(shí)器、SysTick(系統(tǒng)滴答定時(shí)器)這幾個(gè)詞。很多初學(xué)者容易把它們混為一談,以為都是“定時(shí)相關(guān)的東西”。其實(shí),它們在本質(zhì)和應(yīng)用上有明顯差別
    的頭像 發(fā)表于 11-17 10:53 ?542次閱讀
    PWM、<b class='flag-5'>定時(shí)器</b>、SysTick 區(qū)別及應(yīng)用場景

    SysTick系統(tǒng)滴答定時(shí)器簡介

    SysTick—系統(tǒng)定時(shí)器是屬于CM33內(nèi)核中的一個(gè)外設(shè),內(nèi)嵌在NVIC中。系統(tǒng)定時(shí)器是一個(gè)24bit的向下遞減的計(jì)數(shù),計(jì)數(shù)每計(jì)數(shù)一次的時(shí)間為 1/SYSCLK,一般我們設(shè)置系統(tǒng)時(shí)
    的頭像 發(fā)表于 09-23 09:50 ?1648次閱讀
    SysTick系統(tǒng)滴答<b class='flag-5'>定時(shí)器</b>簡介

    ?TPL5010-Q1 納米功耗系統(tǒng)定時(shí)器(帶看門狗功能)技術(shù)文檔摘要

    TPL5010-Q1 Nano 定時(shí)器是一款低功耗、符合 AEC-Q100 標(biāo)準(zhǔn)的定時(shí)器,帶有看門狗 該功能非常適合占空比或電池供電應(yīng)用中的系統(tǒng)喚醒。在這樣的系統(tǒng)中 微控制定時(shí)器可用
    的頭像 發(fā)表于 09-13 10:01 ?1610次閱讀
    ?TPL5010-Q1 納米功耗系統(tǒng)<b class='flag-5'>定時(shí)器</b>(帶看門狗功能)技術(shù)文檔摘要

    大彩講堂:VisualHMI-LUA教程-定時(shí)器的使用指南

    定時(shí)器的使用
    的頭像 發(fā)表于 08-31 16:59 ?1177次閱讀
    大彩講堂:VisualHMI-LUA教程-<b class='flag-5'>定時(shí)器</b>的使用指南

    第二十章 TIM——基本定時(shí)器

    本章介紹了W55H32基本定時(shí)器TIM6、TIM7,16位向上計(jì)數(shù),含時(shí)鐘源、預(yù)分頻等,講解定時(shí)計(jì)算及初始化結(jié)構(gòu)體。
    的頭像 發(fā)表于 06-20 13:51 ?1173次閱讀
    第二十章 TIM——基本<b class='flag-5'>定時(shí)器</b>

    TIMER定時(shí)器

    TIMER0和TIMER7定時(shí)器載波相位有偏差,如何解決
    發(fā)表于 06-06 14:41

    第十二章 SysTick——系統(tǒng)定時(shí)器

    本章介紹了W55MH32的SysTick系統(tǒng)定時(shí)器,它是24位遞減計(jì)數(shù),含4個(gè)寄存,可配置定時(shí)、中斷,用于產(chǎn)生時(shí)基 等。
    的頭像 發(fā)表于 05-22 17:16 ?1102次閱讀
    第十二章 SysTick——系統(tǒng)<b class='flag-5'>定時(shí)器</b>

    Arduino 與 樹莓派:新手如何讀懂它們的優(yōu)劣?

    不同供應(yīng)商的特定硬件組件,這些組件正是為這一目的而設(shè)計(jì)的。除了體積小巧外,它們通常還以令人難以置信的實(shí)惠價(jià)格著稱,價(jià)格通常在個(gè)位數(shù)兩位數(shù)的美元范圍內(nèi)。在這些微型
    的頭像 發(fā)表于 05-19 16:57 ?1339次閱讀
    <b class='flag-5'>Arduino</b> 與 樹莓派:新手如何讀懂它們的優(yōu)劣?

    MCU定時(shí)器/計(jì)數(shù)

    RISC-V核低功耗MCU通過靈活的定時(shí)器架構(gòu)、低功耗模式適配及硬件級中斷優(yōu)化,在工業(yè)控制、智能家居等場景中實(shí)現(xiàn)高精度計(jì)時(shí)與能耗控制的協(xié)同設(shè)計(jì),滿足復(fù)雜任務(wù)調(diào)度與實(shí)時(shí)響應(yīng)的雙重需求?。 一、?硬件
    的頭像 發(fā)表于 04-27 13:54 ?802次閱讀