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

 
» » » Приостанавливаем и возобновляем работу программы 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




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

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

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