Кнопка реле концевик дисплей lcd 16x светодиод

Вот набросал, но выдает ошибку
‘relayPin’ was not declared in this scope
в конце void loop()
lastButten = currentButten; // Переприсваеваем прошлое состояние кнопки
digitalWrite (relayPin, relayOn); // Включаем или выключаем реле (смотря что пришло после инверсии)
delay (2); // Ждем 2 милисек.

digitalWrite (relayPin, relayOn); // Включаем или выключаем реле (смотря что пришло после инверсии) если конкретно то тут
Подскажите пожалуйста в чем дело


#include <LiquidCrystal.h>

// RS, E, DB4, DB5, DB6, DB7
LiquidCrystal lcd(4, 5, 10, 11, 12, 13);

#define BUTTON_PIN 10 // пин кнопки

// тут хранится текущее нажатие (от 0 до 5)
int clicks;
boolean buttonWasUp = true;

void setup()
{
lcd.begin(16, 2);
// initialize the LED pin as an output:
// initialize the pushbutton pin as an input:
pinMode(BUTTON_PIN, INPUT_PULLUP);

// начальное сообщение
lcd.setCursor(0, 0);
lcd.print("Здравствуйте наж"); // текст на экране
// устанавливаем курсор в колонку 0, строку 1. То есть на
// самом деле это вторая строка, т.к. нумерация начинается с нуля
lcd.setCursor(0, 1);
// печатаем вторую строку
lcd.print("мите кнопку 1раз");

{
// инициализируем пин, подключенный к реле, как выход
pinMode(relayPin, OUTPUT);
// инициализируем пин, подключенный к кнопке, как вход
pinMode(buttonPin, INPUT);
}
}

void loop()
{
// счетчик нажатий,
// каждый раз при нажатии к переменной прибавляется + 1, до 5 раз
if (buttonWasUp && !digitalRead(BUTTON_PIN))
{
delay(10);
if (!digitalRead(BUTTON_PIN))
clicks = (clicks + 1) % 3;
}

// если один раз нажали, то выводим первый текст
if (clicks == 1)
{
lcd.setCursor(0, 0);
lcd.print("Наполнение..."); // текст на экране №1
lcd.setCursor(0, 1);
lcd.print("Ожидайте");
}
// если второй раз нажали, следующий текст, и т.д.
if (clicks == 2)
{
lcd.setCursor(0, 1); // текст на экране №2
lcd.print("Приятного мытья!");
}

if (clicks == 3)
{
lcd.setCursor(0, 0);
lcd.print("С легким паром!");
lcd.setCursor(0, 1);
lcd.print("Выньте изрозетки");
}

{
currentButten = debvance (lastButten); // Передаем функции дребезга значение по умолчанию LOW
if (lastButten == LOW && currentButten == HIGH) // Проверяем отпускали мы кнопку или нет
{
relayOn = !relayOn; // инвертируем значение
}
lastButten = currentButten; // Переприсваеваем прошлое состояние кнопки
digitalWrite (relayPin, relayOn); // Включаем или выключаем реле (смотря что пришло после инверсии)
delay (2); // Ждем 2 милисек.
}
}

//--------------------------------реле-------------------------
const int buttonPin = 2; // номер входа, подключенный к кнопке
const int relayPin = 3; // номер выхода светодиода
/* переменные */
boolean lastButten = LOW; // предыдущее состояние кнопки
boolean currentButten = LOW; // текущее состояние кнопки
boolean relayOn = false; // текущее состояние свтодиода

boolean debvance (boolean last) //убираем дребизг
{
boolean current = digitalRead (buttonPin); // считываем данные с кнопки
if (last != current) // Если текущее состояние отличететься от предыдущего
{
delay (5); // Ждем 5 милисек.
current = digitalRead (buttonPin); // Присваеваем текущее состояние кнопки
return current;
}
}```

Если в 13 лет ребенок еще не умеет читать (про вставку кода в сообщение) то ребёнок… ну как сказать? - В общем заниматься программированием ему не стоит.
''' - это три апострофа.
``` - это три ОБРАТНЫХ апострофа.
обратный над буквой Ё.

Что вы накинулись и оскорбляете? Не нашел обратные нашел обычные. На ошибках учишься, а если вы меня будете оскорблять ничего хорошего не выйдет
Я умный способный. Вы же даже меня не знаете как можете рассуждать

После “Я” - тире, после “умный” - запятая. :wink:

Набрасывают навоз на грядки.

Возможно, это заговор Клигонской империи, но мне, почему-то кажется, что дело именно в том, что “‘relayPin’ was not declared in this scope”.

Что заставляет Вас думать, что это не так?

1 лайк

Что? Здесь чюрбек не поймет что вы сказали

это ошибка. Не компилируется из за нее!!!

Тебе говорят прочесть. Что не ясно?
Переведи, pls.

relayPin не был объявлен
А как что его объявлять?
Он же объявлен ниже ‘const int relayPin = 3;’

Ключевое слово НИЖЕ! Используешь в строке №77, а объявляешь в строке №84.
Это от того, что “умный” или от того, что “способный”?

1 лайк

Неадекватен вы конечно мне 13 лет я программирую неделю ничего не знаю пока

Единственный способ чему-то реально научиться - ненавидеть себя за тупость. У четырёхлетнего ребенка, споткнувшегося о стульчик и разбившего коленку, виноват стульчик, а не его невнимательность.
Пока у тебя виноват тот, кто ткнул тебя носом в ошибку, а не ты сам - ты безнадежен. Сорри.

Лучше перечисли, какие книжки ты уже успел прочесть прежде, чем начал “программировать”?

И какого же хрена он объявлен ниже?

Вы не программируете неделю, а тычете пальцами в клавиши. Если бы Вы прочитали любую, пусть самую тоненькую книжку о том, как программировать, Вы бы не говорили сейчас “он объявлен ниже”.

Вот Вам тоненькая, совсем для чайников книжка. Пока не выучите наизусть, даже не пытайтесь “программировать”.

1 лайк

“Мальчик” (ТС) Зачем же вы нас обманываете с вашим возрастом. Или вы считаете, что мы зря прожили свою жизнь и не можем отличить речь 13 летнего пацана, от зрелого мужчины? Скажу, что напрасно вы так думаете. Но понимаю, что прикинутся ребёнком проще чем признать себя неумехой безграмотным. Если хотите сами что то делать в программировании, то начните учиться, и не вылезайте больше на форум, пока не прочтёте пару книг по предмету, и не соберёте несколько схем из готовых примеров.

2 лайка