int Trig = 12;
int Echo = 14;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
pinMode(18, INPUT);
pinMode(13, OUTPUT);
pinMode(26, INPUT);
}
void loop() {
if (digitalRead(18) == 1) //判斷開關是否打開
{
Serial.println("On");
digitalWrite(Trig, LOW); //先關閉
delayMicroseconds(5);
digitalWrite(Trig, HIGH); //再打開
delayMicroseconds(10);
digitalWrite(Trig, LOW); //關閉
float EchoTime = pulseIn(Echo, HIGH); //計算回傳時間
float CMValue = EchoTime / 29.4 / 2; //將時間換成距離
double dim = analogRead(26) * 255;
dim /= 4095;
if (CMValue <= 100) //人在書桌前
{
analogWrite(13, dim); //設定燈的亮度
}
else
{
analogWrite(13, 0);
}
delay(100);
}
else
{
//Serial.println("Off");
analogWrite(13, 0); //關燈
delay(50);
}
}