测距仪-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1514|回复: 0

测距仪

[复制链接]
发表于 2022-4-18 19:09 | 显示全部楼层 |阅读模式
int fmq=2;
int kg=3;
int led=4;
int tp=5;
int ep=6;
int RG=A0;
int RGvol=0;
int cm=0;
int ledvol=0;
float cread(int t, int e) {
  digitalWrite(tp, LOW);
  delayMicroseconds(2);
  digitalWrite(tp, HIGH);
  delayMicroseconds(10);
  digitalWrite(tp, LOW);
  float distance = pulseIn(ep, HIGH, 30000);
  distance = distance / 58.0;
  return distance;
}
void setup() {
  pinMode(fmq,OUTPUT);
  digitalWrite(fmq,LOW);
  pinMode(led,OUTPUT);
  digitalWrite(led,LOW);
  pinMode(tp,OUTPUT);
  digitalWrite(tp,LOW);
  pinMode(ep,INPUT);
  digitalWrite(ep,LOW);
  pinMode(kg,INPUT);
  digitalWrite(kg,HIGH);
  Serial.begin(9600);
}
void loop() {
  cm=cread(tp,ep);
  if(cm<76){
    RGvol=analogRead(RG);
    if(RGvol>200){
      RGvol=200;
    }
    if(RGvol<0);
      RGvol=0;
    ledvol=255-RGvol;
    digitalWrite(fmq,HIGH);
    delay(1000);
    digitalWrite(fmq,LOW);  
    analogWrite(led,ledvol);
    delay(1000);
    digitalWrite(led,LOW);
    if(digitalRead(kg)==LOW){
      while(cm<80){
        cm=80;
        digitalWrite(led,LOW);
        digitalWrite(fmq,LOW);
      }
    }else{
      digitalWrite(led,LOW);
      digitalWrite(fmq,LOW);
    }
  }
  digitalWrite(fmq,LOW);
  //Serial.println(cm);
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-29 08:03 , Processed in 0.068822 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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