Не работает простейший код
- Войдите на сайт для отправки комментариев
Пт, 30/08/2019 - 09:54
Здравствуйте! Я только начинаю своё знакомство с Ардуинкой и смотрю видеоуроки на YouTube. После просмотра видеоролика про вывод инфы о нажатии кнопки в монитор порта (https://www.youtube.com/watch?v=3UwgMAdV4xQ), загорелся идеей всё это сделать проще для человека читающего МП.
В видеоуроке в Мониторе Порта постоянно шло сообщение(цикл loop) аля BUTTON1: 1
Моя же идея быля такова, что-бы сообщение выводилось более понятное и на русском языке, ещё и не каждую секунду. И опираясь на свои знания, и на те что получил из ролика склепал вот это чудо(в самом низу)
Проблема: код не взаимодействует с кнопкой, выводит при любом положении кнопки - кнопка нажата
Что не так
void setup() {
pinMode(8,INPUT_PULLUP); // НАСТРАИВАЕМ ПИН
Serial.begin (9600);
}
void loop() {
boolean button = digitalRead(8);
if(digitalRead(button) == 1) { // условие при котором, если кнопка нажата выводится текст
Serial.println ("Кнопка нажата");
}
else Serial.println ("Кнопка не нажата");
delay (3500);//ЗАДЕРЖКА
}
Прочитал про то что не плохо было бы в вопроосах указывать о подключении физических элементов проекта.
К кнопке от самой Ардуины ведёт два провода, первый от ножки диода к Земле(GND), второй от ножки идёт к указанному в коде порту №8.
У вас на входе всегда единица,
вы её сами подали включив резистор подтяжки во второй строке.
Поэтому подключите кнопку между входом и землёй, поменяйте в восьмой строке единицу на ноль и радуйтесь жизни.
Спасибо , а где этот вход?
вторая строка прописывает 1 в пин button.
восьмая строка пишет Кнопка нажата, если на пине button единица.
Смекаешь?
купи себе книгу Саймон Монк "Программируем Ардуино", и пока не прочтёшь - не появляйся здесь.
Да. Понял. Спасибо
Вторую строку менял как только можно, и ничего не вышло. Проблему понимаю, а как исправить не догоняю
Проблему понимаю, а как исправить не догоняю
врешь ты все, понимал бы - давно бы исправил. Прочитай еще раз сообщение #2. Если все равно никаких идей - отправляйся читать про подключение кнопок, да хоть бы прикрепленную в шапке этого же раздела тему "Работа с кнопками"
Поменял код и подключение. Теперь одна ножка кнопки подключена резистором(ЖОСК) к земле , а вторая нога к пину (резистор и соединяющий провод на одной линии). Код такой:
Вывод
Кнопка не нажата
Кнопка не нажата
Кнопка не нажата
При нажатии кнопки та же хурма
void setup() { pinMode(A0, INPUT); Serial.begin(9600); } void loop() { if(digitalRead(A0)==HIGH) { Serial.println ("Кнопка нажата"); } else { Serial.println ("Кнопка не нажата"); } delay(3500); }а почему это в "программировании"?
чтоб отловить нажатие, 20 строчка программы говорит: надо нажать кнопку и держать не менее 3,5 секунд
схему нарисуй, чота описание путанное, чо куда подключено
Здравствуйте! Я только начинаю своё знакомство с Ардуинкой и смотрю видеоуроки на YouTube.
Не с того начинаешь. Начинать надо с книжек, а не мультиков.
Поменял код и подключение. Теперь одна ножка кнопки подключена резистором(ЖОСК) к земле , а вторая нога к пину (резистор и соединяющий провод на одной линии). Код такой:
в коде еще много строк - и менять их можно бесконечно, если не понимаешь, что к чему.Может все-таки учебник почитать?
При нажатии кнопки та же хурма
А какой же ещё быть, если Вы пришли за советом, а на советы плюёте?
Вам в #5 сказали, что делать. Вы сделали?
Пока не сделаете - не пишите сюда ни строки, иначе от репутации идиота потом не отмоетесь никогда.
Что это по Вашему, откуда читается и что Вы там ожидаете увидеть?
if(digitalRead(button) == 1)