Что не так с моим жидкокристаллическим дисплеем и кодом клавиатуры?

Я делаю все, что в моих силах. Кто-нибудь может мне помочь?

#include <LiquidCrystal.h>
#include <Keypad.h>

int sensePin = A0; //это в Arduino pin, который будет читать TMP36 датчик выходной
int sensorInput;    //переменная, которую мы будем использовать для хранения входной сигнал датчика
double tempc; //переменная, которую мы будем использовать, чтобы сохранить температуру в градусах Цельсия
double tempf;//переменная, которую мы будем использовать для сохранения температуры в градусах Фаренгейта
int speedPin = A3;//PIN, используемый, чтобы управлять скоростью двигателя
int dir1 = A1; //мотор L293D pin3
int dir2 = A2; //привод мотора L@93D pin6
LiquidCrystal lcd(13,12,11,10,9,8);//lcd pins
const byte ROWS = 4;//константа для строк в клавиатуре
const byte COLS = 4;//константа для столбца в клавиатуре
char HexaKeys[ROWS][COLS] =
{
    {'1', '2', '3', 'A'},
    {'4', '5', '6', 'B'},
    {'7', '8', '9', 'C'},
    {'*', '0', '#', 'D'},
};
byte rowPins[ROWS] = {7,6,5,4};
byte colPins[COLS] = {3,2,1,0};

Keypad customKeypad = Keypad(makeKeymap(HexaKeys), rowPins, colPins, ROWS, COLS);

void setup()
{
    pinMode(speedPin, OUTPUT);
    pinMode(dir1, OUTPUT);
    pinMode(dir2, OUTPUT);
    lcd.begin(16, 2);
    lcd.clear();
}

void loop()
{
    char customKey = customKeypad.getKey();//считывание нажатой клавиши
    sensorInput = analogRead(A0);    //считывание аналогового датчика и сохранение его
    tempc = (double)sensorInput / 1024;       //поиск процента считывания входного сигнала
    tempc = tempc * 5;                 //умножьте на 5 В, чтобы получить напряжение
    tempc = tempc - 0.5;               //Вычтите смещение
    tempc = tempc * 100;               //преобразовать в градусы
    tempf = (tempc * 9.0 / 5.0) + 32.0;//преобразовать в Фаренгейт
    if (customKey == '1')
    {
        lcd.print("TEMP");
        lcd.print(tempf,"F");
        lcd.setCursor(0,1);
        if(tempc>=27)
        {
            digitalWrite(dir1,LOW);
            digitalWrite(dir2,HIGH);
            lcd.print("fan speed=100%");
        }
        else
        {
            digitalWrite(dir1,HIGH);
            digitalWrite(dir2,HIGH);
            lcd.print("fan speed=0%");
        }
    }
    if(customKey=='2')
    {
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("TEMP:");
        lcd.print(tempc,"C");
        lcd.print(tempf,"F");
        lcd.setCursor(0,1);
        if(tempc>=27)
        {
            digitalWrite(dir1,LOW);
            digitalWrite(dir2,HIGH);
            lcd.print("fan speed=100%");
        }
        else
        {
            digitalWrite(dir1,LOW);
            digitalWrite(dir2,HIGH);
            lcd.print("fan speed=100%");
        }
    }
    if (customKey == '3')
    {
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("TEMP:");
        lcd.setCursor(5, 0);
        lcd.print(tempc,"C");
        lcd.print(tempf,"F");
        if(tempc>27.0)
        {
            digitalWrite(dir1,LOW);
            digitalWrite(dir2,HIGH);
            analogWrite(speedPin,64);
            lcd.setCursor(0,1);
            lcd.print("fan speed=25%");
        }
        else
        {
            digitalWrite(dir1,HIGH);
            digitalWrite(dir2,HIGH);
            analogWrite(speedPin,64);
            lcd.print("fan speed=25%");
        }
    }
    if(customKey=='4')
    {
        lcd.setCursor(0,2);
        lcd.print("GOOD BYE");
    }
}

, 👍-1

Обсуждение

Пожалуйста, потратьте время, чтобы правильно отформатировать код в вопросах; это значительно облегчает помощь. Также важно объяснить, что происходит не так - "это не работает" не дает много информации. Отличная схема, однако! Что вы использовали, чтобы сделать его?, @Dave Newton

Мы не знаем, что не так, пока вы не скажете нам, с какой проблемой вы столкнулись. Кроме того, вместо того, чтобы быть программистом "копирования и вставки", сделайте шаг назад, чтобы проверить одну часть кода, чтобы убедиться, что он работает первым, комментируя все несвязанные коды(например, сначала проверьте ЖК-дисплей, затем добавьте датчик температуры, затем добавьте клавиатуру). Вы узнаете больше и лучше поймете код., @hcheung

в вашем коде нет ничего плохого, он делает именно то, на что запрограммирован ... почему вы говорите, что что-то не так?, @jsotola