找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3868|回复: 0
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
RT,把超声波获取的距离,反馈给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 秒
  }
}



IMG_20190129_174432.jpg (1.27 MB, 下载次数: 111)

超声波的反射板

超声波的反射板
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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