c - C Tinkercad 模型 Arduino 在哪个 lcd 中不工作?
问题描述
最近,我将一个典型的 16*2 LCD(液晶显示器)显示器连接到我的 Arduino Uno,并将所有引脚连接起来。这是我的连接:1=GND, 2=+5v, 4=8, 6=9, 11=5, 12=4, 12=2, 14=1 模型截图
#include <LiquidCrystal.h>
#define trigPin 7
#define echoPin 6
#define led 13
#define led3 12
#define led5 11
#define buzzer 3
int sound = 250;
LiquidCrystal lcd(9, 8, 5, 4, 2, 1);
void setup()
{
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop()
{
lcd.setCursor(0, 1);
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(1000);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance <= 30) {
digitalWrite(led, HIGH);
lcd.setCursor(0,0);
lcd.print("Someone near");
sound = 250;
}
else
{
digitalWrite(led,LOW);
}
if (distance < 25) {
digitalWrite(led, HIGH);
lcd.setCursor(0,0);
lcd.print("Someone nearer");
sound = 260;
}
else {
digitalWrite(led, LOW);
}
if (distance < 20) {
digitalWrite(led3, HIGH);
lcd.setCursor(0,0);
lcd.print("Getting close");
sound = 270;
}
else {
digitalWrite(led3, LOW);
}
if (distance < 15) {
digitalWrite(led3, HIGH);
lcd.setCursor(0,0);
lcd.print("Getting closer");
sound = 280;
}
else {
digitalWrite(led3,LOW);
}
if (distance < 10) {
digitalWrite(led5, HIGH);
lcd.setCursor(0,0);
lcd.print("Door Open");
sound = 290;
}
else {
digitalWrite(led5,LOW);
}
if (distance < 5) {
digitalWrite(led5, HIGH);
lcd.setCursor(0,0);
lcd.print("Door Open");
sound = 300;
}
else {
digitalWrite(led5,LOW);
}
if (distance > 30 || distance <= 0){
Serial.println("Door closed");
lcd.setCursor(0,0);
lcd.print("Door closed");
noTone(buzzer);
}
else {
Serial.print(distance);
Serial.println(" cm");
tone(buzzer, sound);
}
delay(500);
}
总体而言,除 LCD 外,代码运行良好。我不确定我做错了什么。我是新来学习这些的。
解决方案
推荐阅读
- verilog - Verilog 中的符号扩展器不在乎吗?
- authentication - 登录失败,使用 Ctrl + C 取消基本凭据提示
- arrays - 如何在 C 中的函数中创建、修改和返回指针数组?
- java - 打印收据后清除 JTable 并在我再次订购时返回
- angular - 如何使用 rxjs 进行多个内部嵌套订阅
- python - 将 CSV 文件数据转换为联合数据
- spring - Spring JDBC with PostgreSQL native query with list as a parameter不起作用
- reactjs - 如何在 PWA 应用程序的 SPA shell 中动态加载 html 部分
- javascript - 我无法为 Vue cli 安装工作做 Vue Select 组件
- python - 将kafka从python应用程序内的主机与docker连接