2015年3月17日 星期二

感測器使用-電位計(可變電阻)

感測器使用-電位計(可變電阻)


常見的電位計模組(可變電組)有旋轉電位計(圓形)和滑動電位計(長條型),在兩端通電後利用中間的旋鈕旋轉或滑桿移動來改變模組的電阻,利用分壓原理來改變在電路中模組兩邊的電壓降,藉由此電壓訊號送進ARDUINO的A0-A5類比輸入端。

旋轉電位計









滑動電位計











圖片取自:www.playrobot.com

電路接法













電位計端    ARDUINO端
=======     =========
    V(VCC) ←→  5V(模組供電)
    G(GND) ←→  GND
    S(OUT)  ←→  A0-A5類比訊號輸入

訊號轉換


在模組端的0~5V,在進入ARDUINO後變成0~1023的數值,因此可以知道,每個數字1代表了0.00488V左右,所以0V=數值0、0.00488V=1、2.5V大約是512、5V是1023...,不過在這裡這個轉換完全不重要,你可以不用知道。

如何使用


電位計通常會用來做手動的大小、位置、角度、程度...的調整,舉例來說打磚塊遊戲時下方檔球的平台的位置、射擊遊戲時飛機上下移動的位置、或是砲塔旋轉的角度、數位調光的亮度...等等,所以必須做一些處理才能達到想要的效果,例如

調整水平移動的位置


S4A的畫面中,要在X軸的範圍內(-240~240)移動,這中間間隔範圍是480,而A0~A5的範圍是0-1023,間隔是1024,因此要把1024轉換成480,就要做將A0~A5的偵測數值*480/1024,然後因為轉換後會在0~480,所以還要向左位移240,所以要-240,因此最後要將A0~A5的偵測值*480/1024-240(四則運算先後順序不能錯,小朋友常常發生),這樣就能在畫面的範圍內左右移動,當然如果你要移動的範圍不是這樣的話,就要根據實際情況調整。

影片在這裡(待續)

調整垂直移動的位置


S4A的畫面中,要在Y軸的範圍內(-180~180)移動,這中間間隔範圍是360,而A0~A5的範圍是0-1023,間隔是1024,因此要把1024轉換成360,就要做將A0~A5的偵測數值*360/1024,然後因為轉換後會在0~360,所以還要向下位移180,所以要-180,因此最後要將A0~A5的偵測值*360/1024-180(四則運算先後順序不能錯,小朋友常常發生),這樣就能在畫面的範圍內上下移動,當然如果你要移動的範圍不是這樣的話,就要根據實際情況調整。

影片在這裡(待續)

調整旋轉的角度


假設你的砲塔在下方,要向上方的範圍內做角度的調整(0~180度內),因此將A0~A5的數值*180/1024,然後因為S4A中面向上是0度,向右是90度,向左是-90度,因此最後的結果要向逆時針轉90度,所以最後就變成A0~A5的數值*180/1024-90,當然如果你要移動的範圍不是這樣的話,就要根據實際情況調整。

影片在這裡(待續)

調整角色的亮度、大小、特效的程度


依據上方的調整方法,如果你的特效,例如亮度,範圍是在-100~100變動,所以最後就變成A0~A5的數值*200/1024-100

影片在這裡(待續)

翻轉教學


1.製作一個飛機射擊遊戲:影片在這裡
2.製作一個城堡防禦遊戲
3.用2個電位計製作桌球雙打遊戲
4.配合3個電位計和1個RGB LED製作全彩調色燈

感想:


小朋友常常抱怨在學校學數學用不上,或是學得太虛無飄渺,無法與生活結合,瞧,我們這不是用上了,數學和生活和科學都是可以結合的歐!





2015年3月5日 星期四

電路原理-共陰與共陽模組的差異

電路原理-共陰與共陽模組的差異

簡單的說,他是不同的電路設計的方法,優缺點如下:

共陰極:電源由訊號端提供,經過元件,然後共同接地形成迴路。



  1. 使用arduino控制時方便直覺,例如HIGH、ON就是送電,LOW、OFF就是斷電。
  2. 電源輸出受限Arduino的每支接腳最大40mA,因此有些元件會改成共陽極設計。
  3. 國小比較建議使用。
  4. 以下的RGB LED模組就是採共陰極設計,“-”就是接地GND,另三個R、G、B就是控制三原色的腳位。







共陰極的RGB LED模組














共陽極:電源共同由電源端直接供應,經過元件,然後經過訊號控制端迴路。

  1.  使用arduino控制時比較不直覺,例如HIGH、ON是斷電,LOW、OFF反而是送電。
  2. 電源輸出來自於直接的5V或外接電,不受限Arduino的每支接腳最大40mA。
  3. 下圖就是共陽極的RGB LED模組,“V”,要接在5V或外接電源,R、G、B是三原色訊號控制。















我們在網路上買到的ARDUINO的模組,例如RGB-LED、七段顯示器、繼電器模組...等,有些是共陽極,有些是共陰極的設計,到底什麼是共陽和共陰極呢?讓我們假設麵包板的電路是一個模組的話,請看下面的說明:


共陰模組


如下圖,模組共同的接點是GND接地。




















  1. 當D10/11/13送電5V時,LED的正極有5V,負極則是GND接地(0V),因此電路產生電位差,電流會由D10/11/13流經LED→電組→回到GND,因此LED會發亮。
  2. 當D10/11/13送電0V時,LED的正極有0V,負極則是GND接地(0V),因此電路沒有電位差,電流不會流通,因此LED不會發亮。
  3. 優點:符合人類習慣,送電(ON)就是開,送(OFF)是關,學習與認知方便。
  4. 缺點:Arduino的輸出有電流額度限制,僅能負擔40mA,因此如果你的後端輸出設備電流需求大於40mA,就會無法驅動元件,例如直流馬達,或是瓦數較高或是電流需求量大的燈泡。

共陽模組

電路原理-共陰與共陽模組的差異

如下圖,模組共同的接點是+5V電源。





















  1. 當D10/11/13送電5V時,LED的正極有5V,負極也是D10/11/13的5V,因此電路沒有電位差,電流不會流通,因此LED不會發亮。
  2. 當D10/11/13送電0V時,LED的正極有電源端來的5V,負極則是D10/11/13的0V,因此電路產生電位差,電流會由電源5V端流經LED→電組→回到D10/11/13的0V(GND),因此LED會發亮。
  3. 優點:雖然Arduino的輸出有電流額度限制,但是利用共陽的接法,可以將電源端改成電池或其他大電流的供電設備,因此可以負擔需求40mA以上的電流的元件。(待求證)
  4. 缺點:不符合人類習慣,送電(ON)變成關,送(OFF)變成開,學習與認知會很衝突。

2015年3月1日 星期日

感測器使用-光線亮度

感測器使用-光線亮度


常用的亮度感測器模組照片如下:









接腳說明:


VCC:模組供電5V、V、V+、電源
GND:接地、G、V+
D0:當開關用的數位訊號端,可調整上方電阻至所需亮度臨界點,視為數位輸入的開關使用
A0:一般用這類比訊號端傳輸訊號,在S4A中顯示0(0V)-1023(5V)數值

不用模組接法:


其實它就是就是光敏電阻串接一個固定電阻,電阻無極性,不用擔心接反,電路如下圖:

模組             ARDUINO
---------          ---------------------
VCC ←→ 5V
GND ←→ GND
A0  ←→ A0




使用模組接法:


本模組是類比輸入模組,可以感測外界的光線亮度訊號,透過分壓原理提供ARDUINO訊號,在使用擴充板時可以接在A0-A5輸入端任一排(G接地、V電源、S訊號),接線圖如下:


模組             ARDUINO(擴充板A0那排)
---------          ---------------------
VCC ←→ V
GND ←→ G
A0  ←→ S



S4A程式範例:


利用亮度感測器當數位開關調整角色亮度











影片在這裡:感測器使用-光線感測器-S4A


S4A程式範例:


背景隨著亮度變化(待續)

影片在這裡:背景隨著亮度變化