Вот набросал, но выдает ошибку
'relayPin' was not declared in this scope
в конце void loop()
lastButten = currentButten; // Переприсваеваем прошлое состояние кнопки
digitalWrite (relayPin, relayOn); // Включаем или выключаем реле (смотря что пришло после инверсии)
delay (2); // Ждем 2 милисек.
digitalWrite (relayPin, relayOn); // Включаем или выключаем реле (смотря что пришло после инверсии) если конкретно то тут
Подскажите пожалуйста в чем дело
//----------------------------menu-------------------------------------
#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;
}
}