2019年9月5日 星期四

MAX7219 和 8x8 矩陣式LED顯示器

MAX7219是一種集成化的串列輸入/輸出共陰極顯示驅動器,它可以連接微處理器與8位數字的7段數字LED顯示,也可以連接條線圖顯示器或者64個獨立的LED
MAX7219其上包括一個片上的BBCD編碼器、多路掃描回路,段字驅動器,而且還有一個8*8的靜態RAM用來存儲每一個數據。只有一個外部寄存器用來設置各個LED的段電流。
一個方便的四線序列介面可以聯接所有通用的微處理器。每個數據可以尋址在更新時不需要改寫所有的顯示。MAX7219同樣允許用戶對每一個數據選擇編碼或者不編碼。
整個設備包含一個150μA的低功耗關閉模式,模擬和數字亮度控制,一個掃描限制寄存器允許用戶顯示1-8位數據,還有一個讓所有LED發光的檢測模式。
只需要3IO口即可驅動1個點陣!點陣顯示時無閃爍!支持級聯!



MAX7219除了用於驅動七段顯示器,



MAX7219 另一種常見的應用為驅動 8x8 矩陣式 LED 顯示器。


8x8 LED Matrix 腳方式 
8x8 LED Matrix模組
Arduino UNO
VCC
5V
GND
GND
DIN
D12
CS (Load)
A4
CLK
A5

MAX7219 最多可驅動 8 x 8 = 64 LED,而這個數字,正好就是 8 x 8 矩陣式顯示器內所具有的 LED 數目。因此,讓 MAX7219 原始資料模式運作,即可用於驅動 8 x 8 矩陣顯示器。
雖然七段顯示器與 8 x 8 矩陣式顯示器在外型上有極大的差異,但本質上兩者是相同的東西:皆為內含多顆LED的顯示裝置。一個七段顯示器含有 8 LED (筆畫部分使用 7 LED、小數點使用1LED),而MAX7219可同時驅動 8 組七段顯示器,也就是說,MAX7219 最多可驅動 8 x 8 = 64 LED,而這個數字,正好就是 8 x 8 矩陣式顯示器內所具有的 LED 數目。因此,讓 MAX7219 以原始資料模式運作,即可用於驅動 8x8 矩陣顯示器。




矩陣顯示器的每個欄位可對應到一個Digit暫存器,也就是說,第0欄對應到 Digit 0、第1欄對應到 Digit 1... 以此類推。

而矩陣顯示器的每一列則對應到七段顯示器中的不同筆畫,從顯示器最上方開始,第0列對應到Digit暫存器資料的第0個位元 (LSB)、第 1 列對應到 Digit 暫存器的第1個位元... 依序下去,直到第 7 列對應到 Digit 暫存器的 MSB (7位元)

以NknuBlock 控制 8x8LED矩陣 可以使用積木



2019年4月21日 星期日

TCRT5000尋跡感測器


TCRT5000一款紅外反射式光電開關。由高發射功率紅外光電二極體和高靈敏度光電晶體管組成,輸出信號經施密特電路整形,穩定可靠。

TCRT5000尋跡感測器模組的紅外發射二極體不斷發射紅外線。
當發射出的紅外線沒有被反射回來或被反射回來但強度不夠大時,光敏三極管一直處於關斷狀態,此時模組的輸出端為低電平,指示二極體一直處於熄滅狀態;被檢測物體出現在檢測範圍內時,紅外線被反射回來且強度足夠大,光敏三極管飽和,此時模組的輸出端為高電平,指示二極體被點亮。



模組用途:
  • 電度錶脈衝資料採樣
  • 機碎紙機紙張檢測
  • 障礙檢測
  • 黑白線檢測

模塊特色:
1、採用TCRT5000紅外反射傳感器
2、檢測距離:1mm~8mm適用,焦點距離為2.5mm
3、比較器輸出,信號乾淨,波形好,驅動能力強,超過15mA
4、配多圈可調精密電位器調節靈敏度
5、工作電壓3.3V-5V
6、輸出形式 :數字開關量輸出(01
7、設有固定螺栓孔,方便安裝
8、小板PCB尺寸:3.2cm x 1.4cm
9、使用寬電壓LM393比較器

TCRT5000 紅外線收發 LED,經 IC LM393 處理後,具有兩個輸出腳位,D0 為數位,A0 為類比。
無反射訊號時(黑線) D0 腳位輸出 1A0 腳位輸出大於 700
有反射訊號時(非黑線) D0 腳位輸出 0A0 腳位輸出小於 700

上述 700 之數值非為固定值,會因不同模塊而不同,也可以透過模塊上面的 VR 調整。調整 VR 會影響偵測的靈敏度。

接線

Arduino
TCRT5000
VCC
VCC
GND
GND
D2
D0
A0
A0

 應用:
1.     透過紅外線會被黑色部份吸收而無反射之特性,可進行黑/白線之辨識,用於追蹤線條軌跡
2.     透過紅外線穿透/反射車輪上的孔洞,計數刻度並進行累積,可用做編碼器使用,藉此進行里程累積


2019年3月21日 星期四

減速馬達GA12-N20 和直流步進電機驅動板L9110S


減速馬達GA12-N20 和直流步進電機驅動板L9110S


GA12-N20  微型金屬減速馬達 全金屬齒輪 體積小、扭力大、全金屬齒輪,耐用不易磨損!可順逆/正反轉具有自鎖功能噪音小扭矩大. 電機精小,用處大,做用廣.是開發者的首選。N20 金屬馬達體積小,扭力大,電流小,減速比越大,電機運行越靜音。12 MM 直流減速馬達可用 PWM 控速。


L9110S模塊描述
1. L9110S芯片的電機驅動
2. 模塊供電電壓:2.5-12V
3. 適合的電機範圍:電機工作電壓2.5v-12V之間,最大工作電流0.8A
4. 可以同時驅動2個直流電機,或者142相式步進電機。
5. PCB板尺寸:2.8cm*2.1cm 超小體積,適合組裝
6. 設有固定安裝孔,直徑:3mm


L9110S電路圖

您可以在電路圖裏看到接馬達的 P1P2 端子旁邊已經有加上 C3C4 電容 0.1uF
因此在幫直流馬達(
A)焊電線時,就不需要再焊上 0.1uF 電容。
---------------------------------------------------

接線  (單顆馬達這裏用A)
Arduino
L9110S模塊
VCC
VCC (B)
GND
GND
D2
A-IA ()
D3PWM功能)
A-IB ()
D4
B-IA ()
D5PWM功能)
B-IB ()

L9110S   外接電源 (C)
VCC       +
GND      GND


簡單練習
按a 馬達順時鐘
按b 馬達逆時鐘轉




--------------------------------------------------------------------------
A
一般 TT 直流馬達供應電壓為 3~6V,耗電流約 150~250mA

B
L9110S 模塊的 VCC 如果由 Arduino VCC 供電,因為馬達的耗電流很大,將會造成 Arduino 電流不足而當掉,因此 L9110S 模塊的 VCC 應該另外由外接電源供電。

C

雖然供給 L9110S 模塊的供電電壓可以是 2.5~12V,然而  TT 直流馬達只能承受 3~6V 的電壓,因此外接電源需要降壓。

2019年3月6日 星期三

雙軸按鍵搖桿


雙軸按鍵搖桿


模塊設有,全部有5個接腳,分別是GND5VVRxVRySW
共有三路輸出,二路類比輸出和SW一路數位輸出。
搖桿輸出值分別對應(XY)雙軸偏移量,其類型為類比量。
按鍵表示用戶是否在Z軸上按下,其類型為數位開關量。
模塊集成電源指示燈,可顯示工作狀態。
坐標標識符清晰簡明、準確定位;用其可以輕鬆控制物體(如二自由度舵機雲台)在二維空間運動,可以通過控制器編程。




接線
Arduino
搖桿模塊
GND
GND
VCC
+5V
A0
VRX
A1
VRY
D7
SW


X軸的讀取值對應是搖桿從左至右
Y軸的讀取值對應是搖桿從上至下
Z(按鈕)的值按下是1,放開是0

練習
1.用搖捍控制,伺服馬達手臂。

2019年2月21日 星期四

SG-90 伺服馬達



伺服馬達(servo motor),因常用於遙控模型飛機,所以又常稱為RC伺服機、伺服馬達舵機。

伺服馬達裡含有直流馬達、齒輪箱、軸柄、以及控制電路,我們可透過訊號控制軸柄的停止角度,大概都是0180度,但不同廠牌型號會有不同的範圍;經由齒輪箱降速後,變成適當可用的轉速,並且提供更高的轉矩(扭轉力)。

 
一般伺服馬達有三條線
1.     電源(紅色)    -VCC
2.     負極(棕色)    - GND
3.     訊號線(橘色)- D6

一般伺服馬達有三條線,
1.     電源(紅色)、
2.     接地(棕色)、
3.     訊號線(橘色)-可以接D3、D5、D6、D9、D10、D11等。

透過訊號線傳送PWM脈波來控制軸柄的停止位置旋轉角度,這個訊號脈波必須每秒重複50次(也就是50Hz),而脈衝持續時間的長短便代表了馬達該將軸柄轉到什麼位置,範圍從1.0ms2.0msmillisecond,毫秒,千分之一秒),若想置中則是1.5ms;也可將1.0ms當做角度0度,那麼1.5ms會是90度,2.0ms則是轉到底180度。注意,也有可能反過來。

伺服馬達的基本原理是接受 PWM 訊號,經由內部電路計算出馬達的轉動角度,大多數伺服馬達旋轉角度是 0 180 度,PWM 訊號的頻率必須是 50 Hz,控制馬達的角度是由脈衝持續時間的長度來決定
持續時間的範圍從 1.0 ms 2.0 ms
脈衝持續時間若為 1.0 ms 時角度為 0 度,
脈衝持續時間若為 1.2 ms 時角度為 45 度,
脈衝持續時間若為 1.5 ms 時角度為 90 度,
脈衝持續時間若為 2.0 ms 時角度為 180 度。



1.         工作電壓:4.8V
2.         轉矩:1.8kg-cm,當工作電壓為4.8V
3.         運轉速度:0.1秒 ∕ 60度 ,當工作電壓為4.8V
4.         脈衝寬度範圍:500~2400µs
5.         死頻帶寬度(dead band width):10µs

從上我們可知,可允許的脈衝範圍是500~2400µs,也就是0.5~2.4ms,比剛剛說的一般範圍還要寬,也就代表這個伺服馬達能旋轉的角度更大。
另外有項值得一提的數據是死頻帶寬度,意思是說,因為訊號可能不穩上下起伏,當這一次脈衝寬度與上一次相差不超過死頻帶寬度時,伺服馬達便不會動作。
msmillisecond,毫秒,千分之一秒

注意:
  1. 不要使用 D9 和 D10 (已被用於發送伺服馬達的PWM訊號)
  2. 一個Arduino板最多可控制12顆伺服馬達。
介紹影片 https://www.youtube.com/watch?v=cLs5xwUgGkc
             https://www.youtube.com/watch?v=Yxp7e67_g5I


練習:

1.    伺服馬達從0à90à180à90à0(間隔0.3)

 使用 Scratch 3.0 控制 Arduino  轉動 SG-90 伺服馬達

2018年12月18日 星期二

1602-I2C-LCD點陣液晶模組


1602-I2C-LCD點陣液晶模組



1602 LCD 點陣液晶模組,可以顯示簡單的文字。此LCD模組具有2行顯示,每行可顯示16個字元


這塊模組的背面已經焊接好一片 LCM1602 IIC 控制板,他可以讓我們很方便的使用 IIC (I2C)來控制 LCD 顯示器



有了這片顯示模組之後,就可以直接讓沒有螢幕輸出的 Arduino 顯示一些簡單的文字訊息。




IIC (I2C) 匯流排能夠讓兩個裝置之間以穩定、高速、雙向的方式及最少的I/O針腳的情形來進行通訊。
因為它使用兩條線來進行通訊,一條時脈線(SCL)和一條數據線(SDA),所以I2C匯流排所使用的通訊協定也被稱之為「雙線」通訊協定。

比較特別的是,I2C匯流排允許多個從屬裝置能共享同條通訊線路,但也就因為如此,開啟通訊的功能則是由匯流排主體來控制要與誰通訊。

我們這裡是由Arduino當作主體去做控制,並且板子內A4A5的接腳分別具有SDASCL的功能。當大家需要使用I2C的功能時,就會用到Wire函式庫。而這函式庫,當大家在安裝Arduino IDE時就已經內建進去了,所以大家不用擔心。


-----------------------------------------------------------
以下是針腳的接法與控制的程式。
在顯示器背面的 LCM1602 IIC 控制板有 I2C 的四個針腳,
分別為 GNDVCCSDA SCL
其說明如下





說明
接線方法
GND
地線
GND接地線
VCC
電源(5V or 3.3v
電源不同顯示效果有點差別
5V 電源
SDA
I2C 數據線
A4
SCL
I2C 時鐘線
A5


練習
1.     在第一列顯示 :  What is today?
在第二列顯示 : //
2.     配合超音波感測器,在第一列顯示 : How long is it?
在第二列顯示 : 距離(cm)