發表文章

目前顯示的是有「shiftIn()」標籤的文章

Python可以這樣玩(17):用積體電路簡化線路

圖片
積體電路( IC )是把各種電子元件裝配在一個小矽晶上面,完成特定的電路功能。數位 IC 用於邏輯運算、計算、暫存資料、編 / 解碼…等處理 0 與 1 訊號。類比 IC 用於通訊、訊號放大、電壓調節…等連續訊號處理。用 74HC595 ,能把原本「並連」元件的接法,改成「串連」,減少佔用 Arduino 腳位。如下圖: 74HC595 是一個 8 位元位移暫存器( shift register ),「暫存器」相當於記憶體,代表它最多能保存 8 位元資料,「位移」則代表其內部資料可序列移動。當時脈訊號由低電位變成高電位時,序列輸入的資料將逐一往高位元方向移動,依序進入暫存器。依序進入 8 個位元資料並移動 8 次之後,左邊的輸出控制開關將被開啟,此時, 8 個位元資料將同時被傳送出去。 接下來,我們看一下它的接腳圖: 使用 74595 IC 連接七段顯示器,減少佔用 Arduino 板的接腳數,並在七段顯示器上每隔 0.5 秒顯示 0~9 數字 ( 採用 LSBFIRST) 。現在請使用共陰七段顯示器,然後按照下圖連接。主要資料連接腳為 14, 12, 11 。 Arduino 提供一個 shiftOut() 函數(直譯「資料位移輸出」),能一次傳送一個位元組 (8 個位元 ) 資料,我們只需負責打開和關閉 74HC595 的並列資料輸出閘門,語法如下: 其中的「位元順序」代表資料位元的傳送順序。採用的傳送方式,取決於 74HC595 資料輸出端的電路接法。 程式碼如下: const byte dataPin = 2;     // 74HC595 序列腳接數位 2 const byte latchPin = 3;    // 74HC595 暫存器時脈腳接數位 3 const byte clockPin = 4;    // 74HC595 序列時脈腳接數位 4 byte index = 0;             ...