RT,把超聲波獲取的距離,反饋給LED,LED的亮度會隨之改變,裝置見下
LED的位置
接線細節
接線情況
亮度變化
暗
教亮
亮
程序如下:
int potpin = 0; //定義模擬接口0
int ledpin = 11; //定義數字接口11(PWM 輸出)
const int TrigPin = 2;
const int EchoPin = 3;
float distance;
float UR;
float delta;
int val = 0; // 暫存來自傳感器的變量數值
void setup()
{
pinMode(ledpin, OUTPUT); //定義數字接口11 為輸出
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
Serial.begin(9600);//設置波特率為9600
//注意:模擬接口自動設置為輸入
}
void loop()
{
// 產生一個10us的高脈沖去觸發TrigPin
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
// 檢測脈沖寬度,并計算出距離
distance = pulseIn(EchoPin, HIGH) / 58.00;
Serial.print(distance);
Serial.print("cm");
Serial.println();
if (distance < 900)
{
val = distance; // 讀取傳感器的模擬值并賦值給val
Serial.println(val);//顯示val 變量
analogWrite(ledpin, val/4); // 打開LED 并設置亮度(PWM 輸__________出最大值255)
delay(10);//延時0.01 秒
}
}
|