智慧電子應用設計導論(1/3) Sensor-II Chin-Shiuh Shieh (謝欽旭) http://bit.kuas.edu.tw/~csshieh Department of Electronic Engineering National Kaohsiung University of Applied Sciences, Taiwan TA:范家禎、姜丞俞 Autumn, 2015 C.-S. Shieh, EC, KUAS, Taiwan
Vibration Piezo Vibration Sensor(壓電式 振動感測器) 當在表面作用一個力時就會產一個電信號。 高靈敏度,高電壓輸出, 疊層使輸出電壓更高。 應用: 低功耗喚醒開關、成本低振動傳感、汽車防盜
Vibration (cont) void setup() { pinMode(2,INPUT); pinMode(13,OUTPUT); } void loop() { digitalWrite(13,digitalRead(2));
Bending Flex Sensor(彎曲感測器) 平常狀態下電阻值約25kΩ,彎曲後電阻值上升。 應用: 機器人手臂彎曲控制、虛擬實境機器、輔助人體關節復健。
Bending (cont) void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(A0)); delay(500);
Loudness Arduino 音量感測器
Loudness (cont) void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(A0)); delay(500);
Temperature Arduino 溫度感測器 DS18B20 DS18B20是DALLAS公司推出的單線數位溫度感測器,測量溫度範圍為 -55°C~+125°C,在-10~+85°C範圍內的精度為±0.5°C。
Temperature/ Humidity SHT15 溫溼度計 DATA:串列資料輸出腳 SCK:串列時脈輸入腳 SHT1x 溫溼計使用程序較繁瑣,但SHT1x Library 已經把事情變簡單了,可以輕鬆地讀取 SHT1x 系列的溫溼度計讀值。
Temperature/ Humidity (cont) https://github.com/practicalarduino/SHT1x #include <SHT1x.h> #define dataPin 2 #define clockPin 3 SHT1x sht1x(dataPin, clockPin); void setup() { Serial.begin(9600); Serial.println("Starting up"); }
Temperature/ Humidity (cont) void loop() { float temp_c; float temp_f; float humidity; // Read values from the sensor temp_c = sht1x.readTemperatureC(); temp_f = sht1x.readTemperatureF(); humidity = sht1x.readHumidity(); // Print the values to the serial port Serial.print("Temperature: "); Serial.print(temp_c, DEC); Serial.print("C / "); Serial.print(temp_f, DEC); Serial.print("F. Humidity: "); Serial.print(humidity); Serial.println("%"); delay(2000); }
Passive Infrared Sensor Module Arduino PIR 人體紅外線感應器 只能檢測出運動中的人體,當有人走過它的作用範圍內,輸出高電壓信號,信號會持續一段時間(0.3秒到18秒),持續時間可以由感測器上的可變電阻來進行調整。
PIR (cont) int ledPin = 13; int switchPin = 2; int value = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(switchPin, INPUT); } void loop() { value = digitalRead(switchPin); if (HIGH == value) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW);