找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5073|回复: 0
收起左侧

超声波测距控制led灯的亮度

[复制链接]
ID:473940 发表于 2019-1-29 17:49 | 显示全部楼层 |阅读模式
RT,把超声波获取的距离,反馈给LED,LED的亮度会随之改变,装置见下

LED的位置

LED的位置
IMG_20190129_174437.jpg
接线细节

接线情况

接线情况

亮度变化

暗

教亮

教亮

亮



程序如下:
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 秒
  }
}



超声波的反射板

超声波的反射板
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表