之前製作計算器都是使用 Arduino 再透過 LED 等顯示器
但每次都要使用微控制器再編寫程式又有點累贅
因此想尋找一些方法只需要接駁線路便可以簡單地計算數值
但每次都要使用微控制器再編寫程式又有點累贅
因此想尋找一些方法只需要接駁線路便可以簡單地計算數值
CD4017
CD4017 是一種 十位元計算器,但每支輸出引腳都是獨立輸出
CD4017晶片 的 正面
CD4017晶片 的 背面
引腳
CD4017 使用 雙列直插封裝 (Dual In-line Package (DIP)) ,共有 16支引腳
後 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 |
---|---|---|---|---|---|---|---|---|
前 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
用途 | VCC | RST | CLK | EN | CO | OUT9 | OUT4 | OUT8 |
OUT5 | OUT1 | OUT0 | OUT2 | OUT6 | OUT7 | OUT3 | GND |
編號 | 引腳 | 方向 | 用途 |
---|---|---|---|
1 | OUT5 | 輸出 | 第5 輸出 當計算器數值為 5 時,此引腳為高電壓,以外為低電壓 |
2 | OUT2 | 輸出 | 第2 輸出 當計算器數值為 2 時,此引腳為高電壓,以外為低電壓 |
3 | OUT0 | 輸出 | 第0 輸出 當計算器數值為 0 時,此引腳為高電壓,以外為低電壓 |
4 | OUT2 | 輸出 | 第2 輸出 當計算器數值為 2 時,此引腳為高電壓,以外為低電壓 |
5 | OUT6 | 輸出 | 第6 輸出 當計算器數值為 6 時,此引腳為高電壓,以外為低電壓 |
6 | OUT7 | 輸出 | 第7 輸出 當計算器數值為 7 時,此引腳為高電壓,以外為低電壓 |
7 | OUT3 | 輸出 | 第3 輸出 當計算器數值為 3 時,此引腳為高電壓,以外為低電壓 |
8 | GND | 接地 | |
9 | OUT8 | 輸出 | 第8 輸出 當計算器數值為 8 時,此引腳為高電壓,以外為低電壓 |
10 | OUT4 | 輸出 | 第4 輸出 當計算器數值為 4 時,此引腳為高電壓,以外為低電壓 |
11 | OUT9 | 輸出 | 第9 輸出 當計算器數值為 9 時,此引腳為高電壓,以外為低電壓 |
12 | CO | 輸出 | 當計算器數值為 0 至 4 ,輸出高電壓 當計算器數值為 5 至 9 ,輸出低電壓 |
13 | EN | 輸入 | 當電壓為低,讓 CD4017 運作 |
14 | CLK | 輸入 | 當電壓由低至高,會將計算器數值加 1 當計算器數值為 9 時加 1 會回到 0 |
15 | RST | 輸入 | 當電壓由高至低,會將計算器數值重設到 0 |
16 | VCC | 電源 (接受 3V 至 15V) |
引腳 | 初始化 | 10位元週期 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
第0位元 | 第1位元 | 第2位元 | 第3位元 | 第4位元 | 第5位元 | 第6位元 | 第7位元 | 第8位元 | 第9位元 | ||||||||||||
EN | 高 | 低 | |||||||||||||||||||
RST | 高 | 低 | |||||||||||||||||||
CLK | 低 | 高 | 低 | 高 | 低 | 高 | 低 | 高 | 低 | 高 | 低 | 高 | 低 | 高 | 低 | 高 | 低 | 高 | 低 | 高 | |
CO | 高 | 低 | |||||||||||||||||||
OUT0 | 高 | 低 | 低 | 低 | 低 | 低 | 低 | 低 | 低 | 低 | |||||||||||
OUT1 | 低 | 高 | 低 | 低 | 低 | 低 | 低 | 低 | 低 | 低 | |||||||||||
OUT2 | 低 | 低 | 高 | 低 | 低 | 低 | 低 | 低 | 低 | 低 | |||||||||||
OUT3 | 低 | 低 | 低 | 高 | 低 | 低 | 低 | 低 | 低 | 低 | |||||||||||
OUT4 | 低 | 低 | 低 | 低 | 高 | 低 | 低 | 低 | 低 | 低 | |||||||||||
OUT5 | 低 | 低 | 低 | 低 | 低 | 高 | 低 | 低 | 低 | 低 | |||||||||||
OUT6 | 低 | 低 | 低 | 低 | 低 | 低 | 高 | 低 | 低 | 低 | |||||||||||
OUT7 | 低 | 低 | 低 | 低 | 低 | 低 | 低 | 高 | 低 | 低 | |||||||||||
OUT8 | 低 | 低 | 低 | 低 | 低 | 低 | 低 | 低 | 高 | 低 | |||||||||||
OUT9 | 低 | 低 | 低 | 低 | 低 | 低 | 低 | 低 | 低 | 高 |
訊號波紋時序圖
線路配置
線路設計
將 CD4017 安裝到 麵包板
10位 LED燈排 安裝到 麵包板
將 LED燈排 的 負極全部連接
(因為在下沒有足夠的短接駁線,才這樣接駁)
(因為在下沒有足夠的短接駁線,才這樣接駁)
CD4017 的
- VCC 接駁到 電源
- GND 、 EN 及 RST 接駁到 接地
CD4017 的 OUT0 至 OUT9 分別順序接駁到 LED燈排 的 正極
220Ω 電阻 接駁 LED燈排 及 接地
DM1微開關掣
這種微開關掣有3支引腳
這種微開關掣有3支引腳
- 共用:目標訊號引腳
- 關閉:電源
- 開啟:接地
固定用的金屬線
因為在下購買的 DM1微開關掣 引腳太短,所以使用金屬線固定在麵包板
線路原型
效果
測試結果
測試累加
測試重設
連續線路
1粒 CD4017 可以表達 0 至 9 的數值資料
2粒 便可以表達 0 至 99 的數值資料
3粒 便可以表達 0 至 999 的數值資料……
2粒 便可以表達 0 至 99 的數值資料
3粒 便可以表達 0 至 999 的數值資料……
連續線路的原型設計
接駁方法只需要將 第一位值的 CD4017 的 OUT0引腳 連接到 第2位值的 CD4017 的 SCK引腳
便會令 第一位值的 CD4017的 計算器為 0 時,將第二位值的 計算器 累加
但有機會因為初始似時 計算器 的內容就是 0 ,令第二位值累加
所以初始時,最好先執行 RST引腳 重設所有累加,避免出錯
接駁方法只需要將 第一位值的 CD4017 的 OUT0引腳 連接到 第2位值的 CD4017 的 SCK引腳
便會令 第一位值的 CD4017的 計算器為 0 時,將第二位值的 計算器 累加
但有機會因為初始似時 計算器 的內容就是 0 ,令第二位值累加
所以初始時,最好先執行 RST引腳 重設所有累加,避免出錯
使用 Arduino Sketch 測試
(原型設計最後與在下的實際線路有些微不同,在下將 2粒 CD4017 的 RST 都額外連接到 Arduino 方便執行重設)
(原型設計最後與在下的實際線路有些微不同,在下將 2粒 CD4017 的 RST 都額外連接到 Arduino 方便執行重設)
const byte RST = A1; const byte CLK = A0; void setup() { pinMode(RST, OUTPUT); pinMode(CLK, OUTPUT); digitalWrite(RST, HIGH); digitalWrite(RST, LOW); } void loop() { digitalWrite(RST, LOW); digitalWrite(RST, HIGH); delay(100); }
亦可以不使用微控制器運作,原理亦相同
總結
CD4017 計算器累加功能,可以製作簡單的計算器
只需要線路接駁 CD4017 不需要編程,便可以應用
只需要線路接駁 CD4017 不需要編程,便可以應用
作者已經移除這則留言。
回覆刪除