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 秒
}
}
|