一、74HC595實驗
74HC595簡單說來就是具有8 位移位寄存器和一個存儲器,以及三態輸出功能。 這里我們用它來控制8 個LED 小燈。我們為什么要用74HC595 來控制小燈呢?一定有很多朋友會問這個問題。另外,要是單純用Arduino 控制8 個小燈的話要占用多少個I/O 呢?答案是8個,但是我們的Arduino 168 有幾個I/O 口呢?加上模擬接口也就20個吧,這8 個小燈占用了太多的資源了,我們用74HC595 的目的就是減少I/O 口的使用數量,用3 個數字I/O口控制8 個LED 小燈豈不美哉。下面是我們要準備的元器件:
二、舵機控制實驗
舵機是一種位置伺服的驅動器,主要是由外殼、電路板、無核心馬達、齒輪與位置檢測器所構成(圖3)。其工作原理是由接收機或者單片機發出信號給舵機,其內部有一個基準電路,產生周期為20ms、寬度為1.5ms 的基準信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。經由電路板上的IC 判斷轉動方向,再驅動無核心馬達開始轉動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回信號,判斷是否已經到達定位。適用于那些需要角度不斷變化并可以保持的控制系統。當電機轉速一定時,通過級聯減速齒輪帶動電位器旋轉,使得電壓差為0,電機停止轉動。一般舵機旋轉的角度范圍是0 度到180 度。
舵機有很多規格,但所有的舵機都有外接三根線,分別用棕、紅、橙三種顏色進行區分,由于舵機品牌不同,顏色也會有所差異,棕色為接地線,紅色為電源正極線(+5V),橙色為信號線(圖4)。
舵機的轉動的角度是通過調節PWM(脈沖寬度調制)信號的占空比來實現的,標準PWM信號的周期固定為20ms(50Hz),理論上脈寬分布應在1ms到2ms 之間,但是,事實上脈寬可在0.5ms 到2.5ms 之間,脈寬和舵機的轉角0°~180°相對應。有一點值得注意的地方,由于舵機牌子不同,對于同一信號,不同牌子的舵機旋轉的角度也會有所不同(圖5)。
了解了基礎知識以后我們就可以來學習控制一個舵機了,本實驗所需要的元器件很少,只需要舵機一個、跳線一扎就可以了。
RB-412 舵機*1
面包板跳線*1 扎
用Arduino 控制舵機的方法有兩種,第一種是通過Arduino 的普通數字傳感器接口產生占空比不同的方波,模擬產生PWM 信號進行舵機定位,第二種是直接利用Arduino 自帶的Servo 函數進行舵機的控制,這種控制方法的優點在于程序編寫,缺點是只能控制2 路舵機,因為Arduino 自帶函數只能利用數字9、10 接口。Arduino 的驅動能力有限,所以當需要控制1 個以上的舵機時需要外接電源。
方法1:
將舵機接數字 9 接口上(圖6),編寫一個程序讓舵機轉動到用戶輸入數字所對應的角度數的位置,并將角度打印顯示到屏幕上。