| type | width | default | signed range | unsigned range |
| bool | 1 bit | unsigned | x | 0 ~ 1 |
| char | 1 byte | signed | -128 ~ 127 | 0 ~ 255 |
| short | 2 bytes | signed | -32768 ~ 32767 | 0 ~ 65535 |
| int | 2 bytes | signed | -32768 ~ 32767 | 0 ~ 65535 |
| long | 4 bytes | signed | -2147483648 ~ 2147483647 | 0 ~ 4294967295 |
| float | 4 bytes | signed | ? | 1.175494351E-38 ~ 3.402823466E+38 |
| pointer | 1~4 bytes | generic | x | x |
PWM (Pulse Width Modulation) 稱為脈波寬度調變,常用於直流馬達的控制、電源變換器之穩壓控制、甚至是直流轉換交流弦波的控制等,是控制直流馬達轉速最常見的方法。
duty cycle
- duty cycle D = DT / T
- 也就是指 Ymax 的部份在一個 period(T) 佔有多少比率。
- 台灣稱 duty cycle 為「責任週期」。
- 大陆称 duty cycle 为「占空比」。
duty cycle 不同說法
- duty cycle high time = TH / T。
- duty cycle low time = TL / T。
- duty cycle high/low = TH / TL。
- TH = 維持在 HIGH 的時間。
- TL = 維持在 LOW 的時間。
- T = TH+TL。
紅外線感應器的種類非常之多,通常可以區分為量子型與熱型兩大類。而量子型感應器主要動作原理是利用光電效應,例如光二極體,以及利用光電效應的 CdS、PbS 等元件,此類型最為一般所常見。
此外尚有利用焦電效應的焦電型紅外線感應器,其動作原理是熱型的代表作,而所謂焦電效應(pyroelectric effect)簡單地說就是利用溫度的變化而產生電荷之現象。因此,我們可以說若是沒有溫度變化,即無法生電荷輸出訊號。
焦電型紅外線感應器俗稱 PIR 是 Passive Infrared Sensor 的英文簡寫,它主要的感應方法為利用溫度之變化,來感應待測物體之移動。舉例來說,人在 PIR 的感應範圍之內移動,PIR 上的感應點會因為溫度的變化而轉化成電流訊號輸出去,這個訊號就可以使電燈開啟、警報器作響……,達成我們所要的需求。
但是上述情形的感應方式會有一些問題,那就是 PIR 的感應距離太近(約 1~2 公尺),而且感應點會不夠多,所以最簡單的解決方法就是為 PIR 戴眼鏡,我們可以利用凸透鏡可以將光線聚焦的原理,將較遠處的人體的紅外線能量聚焦至 PIR 元件的感應點上,如此有可大大增加了感應距離,另一方面我們再把凸透鏡集合在一起,形成一個透鏡陣列 (Lens Arrays),這樣就可以增加許多感應點。至於透鏡的材質,必須要讓人體所發出的紅外光能夠順利通過,為了避免誤動,我們選擇對可見光阻絕性好的高密度 PE 可以避掉許多光線之干擾,而減少誤動之情形。
在自然界,任何高於絕對溫度(-273℃)時物體都將產生紅外光譜,不同溫度的物體,其釋放的紅外能量的波長是不一樣的,因此紅外波長與溫度的高低是相關的。
人體輻射的紅外線中心波長為 9~10μm,而探測元件的波長靈敏度在 0.2~20μm 範圍內幾乎穩定不變。在熱釋感測器頂端開設了一個裝有濾光鏡片的視窗,這個濾光片可通過光的波長範圍為 7~10μm,正好適合於人體紅外輻射的探測,而對其他波長的紅外線由濾光片予以吸收,這樣便形成了一種專門用作探測人體輻射的紅外線感測器。
在被動紅外探測器中有兩個關鍵性的元件,一個是熱釋電紅外感測器,它能將波長為 8-12μm 之間的紅外信號變化轉變為電信號,並能對自然界中的白光信號具有抑制作用,因此在被動紅外探測器的探測範圍內,當無人體移動時,熱釋電紅外感應器感應到的只是背景溫度,當人體進人探測範圍,通過菲涅爾透鏡,熱釋電紅外感應器感應到的是人體溫度與背景溫度的差異信號,因此,紅外探測器的紅外探測的基本概念就是感應移動物體與背景物體的溫度的差異。
另外一個元件就是菲涅爾透鏡,菲涅爾透鏡有兩種形式,即折射式和反射式。菲涅爾透鏡作用有兩個:一是聚焦作用,即將熱釋的紅外信號折射(反射)在熱釋電紅外感測器上,第二個作用是將探測範圍內分為若干個明區和暗區,使進入探測範圍的移動物體能以溫度變化的形式在熱釋電紅外感測器上產生變化熱釋紅外信號,這樣熱釋電紅外感測器就能產生變化的電信號。
人體都有恒定的體溫,一般在 37 度,所以會發出特定波長 10 微米左右的紅外線,被動式紅外探頭就是靠探測人體發射的 10 微米左右的紅外線而進行工作的。人體發射的 10 微米左右的紅外線通過菲泥爾濾光片增強後聚集到紅外感應源上。紅外感應源通常採用熱釋電元件,這種元件在接收到人體紅外輻射溫度發生變化時就會失去電荷平衡,向外釋放電荷,後續電路經檢測處理後就能產生信號。
紅外線 (Infrared) 在防盜系統用途上,可區分為主動式紅外線 twin-bean infrared sensor (感應器本身會發射紅外線光束偵測物體移動),與被動式紅外線 PIR (感應器本身不會發射紅外線光束,而是靠物體之熱源移動觸發感應器)。
一般而言,主動式紅外線大多數皆為2個(壹組)一起使用,一為發射紅外線光束 (Transimter),另一為接收紅外線光束 (Reciver),適用於室內或室外點對點之直線距離使用 (例如:對照式圍牆用紅外線投射器)。
被動式紅外線則適用於室內封閉空間使用,例如:一般室內防盜常用之紅外線感應器。之所以會有此區別用途,乃因室外溫差氣候變化大,例如:馬路溫度、汽車溫度、下雨天、刮風天.....等等外在因素,皆有可能會導致被動式紅外線誤報。而主動式紅外線因本身會持續發射紅外線光束,故受干擾誤報機會不大,相對的,其所能偵測的範圍僅限於點對點之直線距離,又不如被動式紅外線 PIR 有著整個空間的大涵蓋警戒範圍。
- PIR sensor 啟動時,需要有一段時間做 Calibration,依據不同的 sensor 有不同的時間,大約 10~60 秒,這個時間所輸出的值不具參考值。
- 沒有任何物體被偵測到移動時,輸出為 LOW。
- 當有物體被偵測到移動時,輸出為 HIGH,然後又回到 LOW。
- 如果有物體不斷的移動,輸出就會變成 HIGH LOW 不停變換,而不是維持在 HIGH 喔。
- 使用 parallax PIR Sensor (#555-28027) 則可以設定成輸出一直維持在 HIGH。
一般指令時脈圖

- 圖一:0 與 1 的時脈圖。

- 圖二:傳送一個完整指令的時脈圖。
- 根據圖一,每次都會先送出 560us 的紅外線,再停止一段時間,再送出 560us 紅外線........直到資料送完。
- 根據圖一,送出一個 bit 1 需時 2.25ms 的時間。
- 根據圖一,送出一個 bit 0 需時 1.12ms 的時間。
- 根據圖二,會先送出一個 start sync (13.5ms),再依序送出 32bit 的資料,總共耗時 67.42ms。
- 一般來說 address 我們稱為 custom code,遙控器上的每一個按鍵送出的 address 都一樣,而只有 command 不一樣,以做區別。
重複指令時脈圖

- 圖三:傳送一個重複指令的時脈圖。

- 圖四:重複指令放大的時脈圖。
- 根據圖四,傳送一個重複指令需時 11.25ms。
- 根據圖三,傳送一個完整重複指令需時 110ms,所以後面空白時間為 110-11.25-0.56=98.19ms。
- 但是實際拿了三支不同的遙控器來試,結果發現三支的空白時間均不同,分別為 96.18ms、96.78ms、97.26ms。所以切記不要拿空白時間來當 repeat 訊號。
紅外線接收圖
- 圖五:紅外線接受器的訊號輸出圖。
- 根據圖五可以知道,當收到紅外線時,會產生一個 falling edge-triggered,剛好可以配合 8051 的 external interrupt。
- 只要利用二個 falling edge-triggered,就可以算出一個 pulse 所需的時間,進而知道是那一種訊號。
- 另外再利用 timer 8-bit auto-reload mode 的功能,可以精確計時。
