Arduino距离显示和警报的实现

电子说

1.2w人已加入

描述

步骤1:

Arduino

该项目的草图在这里给出。

I2C总线的连接性

VCC-面包板上的5v电源

TRIG-Arduino的引脚12

ECHO-Arduino的引脚11

GND-面包板上的GND

蜂鸣器的连通性

到Arduino的引脚6和7

I2C的连接

GND-面包板上的GND

VCC-到5v电源在面包板上

SDA-连接到Arduino中的A4引脚

SCL-连接到Arduino中的A5引脚

LCD 16 x 2

如连接到I2C总线的草图1:1所示

Arduino将通过USB端口连接到PC/笔记本电脑。

下一步是找出它是I2C模块的十六进制地址,以便我们与之通信。

步骤2:

可以从以下位置找到获取十六进制地址的代码:此处给出的链接

https://brainy-bits.com/tutorials/connect-a-charac 。..

之后,我们需要在主代码中使用该代码她的e

#include

#include

#include

#include

#define I2C_ADDR 0x27 // Add your address here.

#define Rs_pin 0

#define Rw_pin 1

#define En_pin 2

#define BACKLIGHT_PIN 3

#define D4_pin 4

#define D5_pin 5

#define D6_pin 6

#define D7_pin 7

#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.

#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.

#define MAX_DISTANCE 500 // Maximum distance we want to ping for (in centimeters)。 Maximum sensor distance is rated at 400500cm. NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

void setup()

{

pinMode(7,OUTPUT);

pinMode(6,OUTPUT);

lcd.begin (16,2); // 《《-- our LCD is a 20x4, change for your LCD if needed

// LCD Backlight ON

lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);

lcd.setBacklight(HIGH);

lcd.home (); // go home on LCD

lcd.print(“Range Finder”);

}

void loop()

{

digitalWrite(TRIGGER_PIN, HIGH);

delayMicroseconds(1000);

digitalWrite(TRIGGER_PIN,LOW);

unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS)。

unsigned int dist = sonar.convert_cm(uS); // Convert into centimeters if(dist》=200 || dist《=0){

lcd.clear();

lcd.setCursor (0,1); // go to start of 2nd line

lcd.print(“Distance:”);

lcd.setCursor (0,3); // go to start of 4th line

lcd.print(“Ping: ”);

lcd.print(“Out of Range”);

}else if(dist 》= 0 && dist 《=50){

lcd.clear();

beepFast();

lcd.setCursor (0,1); // go to start of 2nd line

lcd.print(“Distance:”);

lcd.setCursor (0,3); // go to start of 4th line

lcd.print(“Ping: ”);

lcd.print(dist);

lcd.print(“ cm ”);

}

else{

lcd.clear();

Silent();

lcd.print(dist);

lcd.print(“ cm ”);

}

delay(1000);

}

void beepFast(){

tone(8,440,200);

digitalWrite(7,HIGH);

delay(50);

noTone(8);

digitalWrite(7,LOW);

delay(300);

} void Silent(){

noTone(8);

digitalWrite(6,HIGH);

delay(300);

digitalWrite(6,LOW);

}
       责任编辑:wv 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分