Ви не увійшли.
Доброго времени суток ардуинщики! Тема arduino для меня новая. Вопрос - ошибка в компиляции этого скетча:
const int LED=10;//Контакт 10 для подключения светодиода
const int BUTTON=2;//Контакт 2 для подключения кнопки
int tekButton = HIGH;//Переменная для сохранение текущего состояния кнопки
int prevButton = LOW;//Переменная для сохранения предыдущего состояния кнопки
boolean LedOn = false;//Текущее состояние светодиода(включен/выключен)
void setup()
{
//Сконфигурирувать контакт светодиода как выход
pinMode(LED, OUTPUT);
//Сконфигурирувать контакт кнопки как вход
pinMode (BUTTON, INPUT);
}
void loop()
{
// поместите сюда свой основной код для многократного запуска:
tekButton=digitalRead(BUTTON);
if (tekButton == HIGH&&prevButton == LOW);
{
//нажатие кнопки - изменить состояние светодиода
ledOn=!ledOn;// инвертирувать значение состояния светодиода
digitalWrite(LED,ledOn);//изменить статус состояния светодиода
}
prevButton=tekButton;
}
Меня интересует не готовый ответ, а грамотное объяснение, в направлении понять, потому что хочется научиться. Потратил несколько дней на поправку данного скетча, менял знаки, слова - местами и не получилось исправить.
Хочу разобраться с данным скетчем, помогите.
Неактивний
Меня интересует объяснение
Ну так компилятор сам все уже объяснил. Если не знаете аглицкого - вбиваете сообщение ошибки в переводчик и получаете:
"«ledOn» не был объявлен в этой области". Теперь смотрите где у вас объявлена переменная ledOn?
С переменной разобралась ошибка исчезла благодаря Вам, участникам форума!
Но при компиляции скетча кнопка не реагирует на включение и выключение светодиода, что здесь нужно сделать, ошибка не появляется. Проверил более 5-ти различных вариантов компилируя в самое железо Arduino UNO R3 уже нет идей. Это самый простой вариант скетча с изменениями:
const int LED=10;//Контакт 10 для подключения светодиода
const int BUTTON=2;//Контакт 2 для подключения кнопки
int tekButton = HIGH;//Переменная для сохранение текущего состояния кнопки
int prevButton = LOW;//Переменная для сохранения предыдущего состояния кнопки
boolean LedOn = false;//Текущее состояние светодиода(включен/выключен)
int ledOn;//Переменная для сохранения состояния светодиода
void setup()
{
//Сконфигурирувать контакт светодиода как выход
pinMode(LED, OUTPUT);
//Сконфигурирувать контакт кнопки как вход
pinMode (BUTTON, INPUT);
}
void loop()
{
// поместите сюда свой основной код для многократного запуска:
tekButton=digitalRead(BUTTON);
if (tekButton == HIGH&&prevButton == LOW);
{
//нажатие кнопки - изменить состояние светодиода
ledOn=!ledOn;// инвертирувать значение состояния светодиода
digitalWrite(LED,ledOn);//изменить статус состояния светодиода
}
prevButton=tekButton;
}
Остання редакція Assduinshik (2024-01-18 14:53:59)
Неактивний
А текущее состояние кнопки после отпускания кто сбрасывать будет?
Обшибся - prev, а не текущее
А вообще-то внимательно посмотрите на свою строчку if(tekButton ... ) Ничего не замечаете?
Благодарю - тебя Г0сть (с Большой буквы) за помощь. Исправил – теперь первое нажатие кнопки включает светодиод и он постоянно светит, повторное нажатие кнопки отключает светодиод.
Так же, должно быть?
if (tekButton == HIGH&&prevButton == LOW)
; что этот символ означает в программировании? Может есть источник где их можно научиться?
Ибо думал нажму на кнопку и пока кнопка нажата светодиод светится как отпускаю гаснет. Так как применял скетч из библиотеки, только при нажатии кнопки светодиод светился, при отпускании гас.
Я только вхожу в изучение программирования Arduino и не имею представления о знаках и символах, которые играют важную роль в программировании. Так как скетчи можно было бы скачивать через библиотеку, но тогда мало чему научусь, бывает что надо и в них искать ошибки.
А это то, что мне было нужно, благодарю тебя Г0сть и удачи!
Однако есть продолжение скетча на эту тему, но еще не проверял, если что-то будет не ок, отпишусь!
Остання редакція Assduinshik (2024-01-18 18:59:41)
Неактивний
Так же, должно быть?
Должно быть в соответствии с синтаксисом написания функции и операторов https://doc.arduino.ua/ru/prog/If
Может есть источник где их можно научиться?
В качестве шпаргалки можно использовать это https://doc.arduino.ua/ru/prog/
А вообще любой учебник по языку С или С++, например, https://aidigitalhealthhub.kpi.ua/~prat/edu/books/programming/c/1_K_R.pdf
Благодарю тебя Г0сть, за скорые ответы и помощь в учебе и в понимании, буду учиться.
Неактивний