|
RT,把超聲波獲取的距離,反饋給LED,LED的亮度會(huì)隨之改變,裝置見下
IMG_20190129_174509.jpg (1.32 MB, 下載次數(shù): 85)
下載附件
LED的位置
2019-1-29 17:46 上傳
IMG_20190129_174437.jpg (1.24 MB, 下載次數(shù): 70)
下載附件
2019-1-29 17:46 上傳
接線細(xì)節(jié)
IMG_20190129_174453.jpg (1.16 MB, 下載次數(shù): 81)
下載附件
接線情況
2019-1-29 17:46 上傳
亮度變化
IMG_20190129_172300.jpg (521.67 KB, 下載次數(shù): 63)
下載附件
暗
2019-1-29 17:46 上傳
IMG_20190129_172245.jpg (434.43 KB, 下載次數(shù): 48)
下載附件
教亮
2019-1-29 17:46 上傳
IMG_20190129_172354.jpg (553.12 KB, 下載次數(shù): 74)
下載附件
亮
2019-1-29 17:46 上傳
程序如下:
int potpin = 0; //定義模擬接口0
int ledpin = 11; //定義數(shù)字接口11(PWM 輸出)
const int TrigPin = 2;
const int EchoPin = 3;
float distance;
float UR;
float delta;
int val = 0; // 暫存來自傳感器的變量數(shù)值
void setup()
{
pinMode(ledpin, OUTPUT); //定義數(shù)字接口11 為輸出
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
Serial.begin(9600);//設(shè)置波特率為9600
//注意:模擬接口自動(dòng)設(shè)置為輸入
}
void loop()
{
// 產(chǎn)生一個(gè)10us的高脈沖去觸發(fā)TrigPin
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
// 檢測(cè)脈沖寬度,并計(jì)算出距離
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 并設(shè)置亮度(PWM 輸__________出最大值255)
delay(10);//延時(shí)0.01 秒
}
}
|
|