цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Приостанавливаем и возобновляем работу программы Arduino с помощью кнопок

Приостанавливаем и возобновляем работу программы Arduino с помощью кнопок

Автор: Mike(admin) от 24-08-2019, 13:15

Arduino является открытой микроконтроллерной платформой, которая прославилась в очень короткие сроки благодаря своим мощным функциям и простоте. Arduino – это находка для изобретателя, энтузиаста, художника и т. д. Можно создать собственную систему, не имея глубоких знаний в области базовой электроники и программирования.


Приостанавливаем и возобновляем работу программы Arduino с помощью кнопок

В этой статье вы узнаете, как приостановить выполнение кода и возобновить его с помощью кнопочного переключателя. Иногда мы хотим, чтобы наш код запускался только тогда, когда пользователь выполняет какое-либо действие, например, нажимает кнопку, чтобы получить какое-то значение датчика. В материале вы узнаете, как приостановить программу и возобновить ее только одним нажатием кнопки без использования функции задержки, поскольку мы не можем использовать функцию задержки, если программа должна возобновить работу после взаимодействия с пользователем.


Схема подключения показана на следующем рисунке, она основана на Arduino Nano, двух кнопочных переключателей, ЖК-дисплея и нескольких других пассивных электронных компонентов, таких как резистор. ЖК используется здесь только для демонстрации.


Приостанавливаем и возобновляем работу программы Arduino с помощью кнопок

Программный код написан на языке программирования Arduino и скомпилирован с использованием Arduino IDE. В скетче мы будем использовать функции CheckButton().Функция CheckButton1() проверяет, нажата кнопка 1 или нет. При нажатии кнопки значение становится высоким для CheckButtonPress1, и программа возвращается к функции цикла.



#include <LiquidCrystal.h>
int Button1 = A0;
int Button2 = A1;
 
const int rs = 7, en = 6, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
 
void setup() {
  lcd.begin(16, 2);
  pinMode(Button1, INPUT);
  pinMode(Button2, INPUT);
}
 
void loop() {
  CheckButton1();
  CheckButton2();
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("***Program is***");
  lcd.setCursor(0, 1);
  lcd.print("***Resumed***");
  delay(5000);
}
 
 void CheckButton1(){
  int CheckButtonPress1 = 0;
  while(1){
    CheckButtonPress1 = digitalRead(Button1);
    //lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Press 1st Button");
    lcd.setCursor(0, 1);
    lcd.print("   to continue");
    if(CheckButtonPress1 == HIGH){
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("1st But. Pressed");
      delay(2000);
      return;
      }
    }
  }
 
 void CheckButton2(){
  int CheckButtonPress2 = 0;
  while(1){
    CheckButtonPress2 = digitalRead(Button2);
    //lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Press 2nd Button");
    lcd.setCursor(0, 1);
    lcd.print("   to continue");
    if(CheckButtonPress2 == HIGH){
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("2nd But. Pressed");
      delay(2000);
      return;
      }
    }
  }



© digitrode.ru


Теги: Arduino



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий