首页 > 解决方案 > 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 外,代码运行良好。我不确定我做错了什么。我是新来学习这些的。

标签: carduinoarduino-unolcd

解决方案


推荐阅读