Всем здравствуйте! Генерировал код ардуино в ии , суть была в этом. При нажатии первой кнопки светодиод горит 5 секунд а на lcd появляется надпись Внесено 2 рубля. 0.5 литров. И при повторном нажатии будет нарастать время и все числа на экране умножатся на два. Со второй кнопкой тоже самое, просто внесено рублей больше и секунд больше. У меня ардуино мега. При нажатии кнопок загорается тх или рх (в зависимости от кнопок) но никак не светодиод. Подскажите что мне стоит проверить, или может быть он что то не правильно написал? Я просто в кодах не разбираюсь, может кто то увидит что то
Я прикреплю код и его объяснения куда что сувать.
Хорошо, вот полная инструкция для твоего проекта “Vending Machine” на Arduino, учитывая наличие всего двух пинов GND на плате:
Инструкция:
Необходимые компоненты:
Arduino Uno
LCD 16x2 (с пинами RS, Enable, D4, D5, D6, D7, VDD, GND)
2 кнопки
Светодиод
Резисторы (220 Ом - для светодиода и подсветки LCD, если требуется)
Макетная плата (breadboard)
Соединительные провода
Подключение:
Питание:
LCD VDD → Arduino 5V
Arduino GND → Одна из линий питания на макетной плате (общая шина GND).
LCD:
LCD RS → Arduino pin 12
LCD Enable → Arduino pin 11
LCD D4 → Arduino pin 5
LCD D5 → Arduino pin 4
LCD D6 → Arduino pin 3
LCD D7 → Arduino pin 2
LCD GND → Общая шина GND на макетной плате.
LCD A (анод подсветки) → Arduino 5V через резистор 220 Ом (если есть подсветка).
LCD K (катод подсветки) → Общая шина GND (если есть подсветка).
Кнопки:
Одна ножка каждой кнопки → Arduino pins 2 и 3 соответственно.
Вторая ножка каждой кнопки → Общая шина GND на макетной плате.
Светодиод:
Анод (длинная ножка) → Arduino pin 9 через резистор 220 Ом.
Катод (короткая ножка) → Общая шина GND на макетной плате.
Если что я не нашел где буквы а и к поэтому подсветки нету.
Также потом уточнял все в один gnd ставить от платы - он сказал да ( в итоге в gnd от lcd ничего нету, только шнур в плату беспаячную вставлен а к нему ничего не идет)
#include <LiquidCrystal.h>
// Определяем пины
const int button1Pin = 0;
const int button2Pin = 1;
const int ledPin = 9;
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int button1Count = 0;
int button2Count = 0;
void setup() {
pinMode(button1Pin, INPUT_PULLUP);
pinMode(button2Pin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
lcd.begin(16, 2);
lcd.print("Vending Machine");
delay(2000);
lcd.clear();
}
void loop() {
if (digitalRead(button1Pin) == LOW) {
delay(50);
if (digitalRead(button1Pin) == LOW) {
button1Count++;
updateDisplay(button1Count, 2, 0.5);
while (digitalRead(button1Pin) == LOW);
}
}
if (digitalRead(button2Pin) == LOW) {
delay(50);
if (digitalRead(button2Pin) == LOW) {
button2Count++;
updateDisplay(button2Count, 3, 0.75);
while (digitalRead(button2Pin) == LOW);
}
}
}
void updateDisplay(int count, float price, float liters) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Vneseno ");
lcd.print(count * price);
lcd.print(" rub");
lcd.setCursor(0, 1);
lcd.print(count * liters);
lcd.print(" litrov");
delay(1000);
}