# 4.互動式感測器(ArduinoDemo4)
###### tags: `ArduinoDemo`
**分類:互動式感測器**
**總覽:**
14-2使用Arduino 板讀取類比電壓值,並顯示於Serial Monitor 視窗。當類比電壓大於2.5V 則LED 亮,否則LED 不亮。
19-2使用Arduino 板讀取類比電壓值,控制LED 亮度。當類比電壓值愈小時,LED 較暗,當類比電壓值愈大時,LED 較亮。
30-2使用Arduino 板配合CDS 元件偵測光線的強弱,並以三個LED指示光線的強弱。當光線轉暗時,只有LED1 亮;當光線介於全暗與全亮之間時,只有LED2 亮;當光線轉強時,只有LED3 亮。
37-2配合移動偵測器設計自動小夜燈,當晚上有人靠近時,點亮LED 20秒後關閉,當無人靠近時,關閉LED。
45-2使用Arduino 板配合PING)))超音波距離感測器測量物體的距離(單位:公分),以Serial Monitor 視窗顯示距離,並控制一個LED 閃爍速度及一個蜂鳴器嗶聲,距離愈近,則LED 閃爍速度愈快且蜂鳴器嗶聲愈急促。
---
14-2使用Arduino 板讀取類比電壓值,並顯示於Serial Monitor 視窗。當類比電壓大於2.5V 則LED 亮,否則LED 不亮。
---
```Arduino=
const int refVolts=5;
const byte Led = 13;
int val;
float volts;
void setup()
{
Serial.begin(9600);
}
void loop()
{
val=analogRead(0);
volts=(float)val*refVolts/1024;
Serial.print("voltage=");
Serial.print(volts,2);
Serial.println("V");
if (volts>=2.5)
analogWrite(Led, 255);
else
analogWrite(Led, 0);
delay(1000);
}
```
---
19-2使用Arduino 板讀取類比電壓值,控制LED 亮度。當類比電壓值愈小時,LED 較暗,當類比電壓值愈大時,LED 較亮。
---
```Arduino=
const int led=3;
int val;
float volts;
void setup()
{
}
void loop()
{
val=analogRead(0);
val=map(val,0,1023,0,255);
analogWrite(led,val);
}
```
---
30-2使用Arduino 板配合CDS 元件偵測光線的強弱,並以三個LED指示光線的強弱。當光線轉暗時,只有LED1 亮;當光線介於全暗與全亮之間時,只有LED2 亮;當光線轉強時,只有LED3 亮。
---
```Arduino=
const int cds=0;
const int led[]={11,12,13};
int val;
float volts;
void setup()
{
pinMode(led,OUTPUT);
digitalWrite(led,LOW);
}
void loop()
{
val=analogRead(cds);
if(val>683)
digitalWrite(led[2],HIGH);
else if(val<=341)
digitalWrite(led[0],HIGH);
else
digitalWrite(led[1],HIGH);
}
```
---
37-2配合移動偵測器設計自動小夜燈,當晚上有人靠近時,點亮LED 20秒後關閉,當無人靠近時,關閉LED。
---
```Arduino=
const int cds=0;
const int led=13;
const int PIRout=2;
int val;
float volts;
void setup()
{
pinMode(led,OUTPUT);
pinMode(PIRout,INPUT);
digitalWrite(led,LOW);
}
void loop()
{
val=analogRead(cds);
if(val>512)
digitalWrite(led,LOW);
else
int val=digitalRead(PIRout);
if(val==HIGH)
{
digitalWrite(led,HIGH);
delay(20000);
digitalWrite(led,LOW);
}
else
{
digitalWrite(led,LOW);
}
}
```
---
45-2使用Arduino 板配合PING)))超音波距離感測器測量物體的距離(單位:公分),以Serial Monitor 視窗顯示距離,並控制一個LED 閃爍速度及一個蜂鳴器嗶聲,距離愈近,則LED 閃爍速度愈快且蜂鳴器嗶聲愈急促。
---
```Arduino=
#define TRIGPIN 2
#define ECHOPIN 3
#define LED 13
#define speaker 12
long ping() {
digitalWrite(TRIGPIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW);
return pulseIn(ECHOPIN, HIGH)/58;
}
void setup() {
Serial.begin(9600);
pinMode(TRIGPIN, OUTPUT);
pinMode(ECHOPIN, INPUT);
pinMode(LED, OUTPUT);
}
void loop() {
long cm = ping();
Serial.println(cm);
if (cm <= 100) {
digitalWrite(LED, HIGH);
delay(cm*1.5 + 10);
digitalWrite(LED, LOW);
tone(speaker,1000);
delay(cm*1.5 + 10);
tone(speaker,500);
delay(cm*1.5 + 10);
}
noTone(speaker);
delay(100);
}
```