|
RT,把超聲波獲取的距離,反饋給LED,LED的亮度會隨之改變,裝置見下
IMG_20190129_174509.jpg (1.32 MB, 下載次數: 85)
下載附件
LED的位置
2019-1-29 17:46 上傳
IMG_20190129_174437.jpg (1.24 MB, 下載次數: 70)
下載附件
2019-1-29 17:46 上傳
接線細節
IMG_20190129_174453.jpg (1.16 MB, 下載次數: 81)
下載附件
接線情況
2019-1-29 17:46 上傳
亮度變化
IMG_20190129_172300.jpg (521.67 KB, 下載次數: 63)
下載附件
暗
2019-1-29 17:46 上傳
IMG_20190129_172245.jpg (434.43 KB, 下載次數: 48)
下載附件
教亮
2019-1-29 17:46 上傳
IMG_20190129_172354.jpg (553.12 KB, 下載次數: 74)
下載附件
亮
2019-1-29 17:46 上傳
程序如下:
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 秒
}
}
|
|