Ви не увійшли.
Доброго времени суток ардуинщики! Тема 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сть, за скорые ответы и помощь в учебе и в понимании, буду учиться.
Неактивний
Всем привет. Раньше в подобном не участвовал, начал вот разбираться. В общем, порылся по интернету в поисках ответа на свой вопрос, но так и не смог найти внятного и поясняющего ответа. Мне нужно что бы ардуино отслеживало состояние кнопки, и при измененнии ее положения давала команду на открытие тиристоров. Через кнопку у меня проходит 29в на потребитель,( меньше никак нельзя), а как я понял, конопку нужно подключать через вход 5в и GND. Так вот вопрос. Можно ли с кнопки на пин кинуть с кнопки один провод, минус в итоге все равно общий ну и при этом как сделать что бы ардуино не сгорел. Спасибо)
Можно ли с кнопки на пин кинуть с кнопки один провод, минус в итоге все равно общий ну и при этом как сделать что бы ардуино не сгорел. Спасибо)
Правильно розумію, що кнопка послідовно зі споживачем, "входом" до живлення 29 В, які з "вихода" при натисненні подаються на споживач? Споживач має реактивну складову чи суто активний? Відбуваються якісь перехідні процеси при відпусканні кнопки? Чи допустимий невеликий струм (порядка десятків мікроампер) через споживач у вимкненому стані?
Є різні варіанти, в кожного свої переваги і недоліки, в залежності від схеми підключення вашої кнопки, характеру навантаження та інших вимог. Наприклад:
1) Дільник напруги на резисторах.
2) Діод і резистор.
3) Перетворювач рівня на транзисторі (ймовірно, знадобиться ще стабілітрон).
3.5) Комбінація попередніх.
4) Оптопара.
Так вот вопрос.
Чому відповіддю в іншій темі, а не окремою темою? В "Апаратних питаннях", наприклад.
Неактивний
>> Мне нужно что бы ардуино отслеживало состояние кнопки, и при измененнии ее положения давала команду на открытие тиристоров.
Для ввімкнення тиристора ардуїну за 160 грн не обов'язково тягнути. Досить тріггера за 10 грн.
29 В - скоріше за все силовуха, скоріше за все двигун. Я за оптронну розв"язку.
З оптроном і двигуном теж треба уважно. При певних умовах його можна заставити спрацьовувати без подачі живлення, просто обертаючи двигун
Неактивний
З електрикою треба бути уважно взагалі. 1 лишній рух - і білий дим, транзистори в чіпі вибирають нового папу
Я більше про проектування схеми, а не про монтаж і техніку безпеки. Була ситуація, коли керуюча схема запускалась і нормально собі працювала без зовнішнього живлення, коли обертали вал колекторного двигуна у зворотній бік, і він працював як генератор.
Тому, щоб отримати корисні поради, потрібно давати більше інформації про проблему.
Якщо там кнопка напряму дає живлення на двигун, то можливо краще замість кнопки поставити ключ на мосфеті або й реле, а кнопкою вже керувати і тим ключем, і тиристорами. Як вже зазначили, ніяке ардуіно там, мабуть, взагалі не потрібне.
Неактивний
Тому, щоб отримати корисні поради, потрібно давати більше інформації про проблему.
Як правило, коли людина досить детально формулює питання, вона вже на 50% це питання вирішила.
Неактивний