Категории Статей
Популярные Статьи
Arduino, ИК(IR) приемник и пульт управления
Необходимый набор электронных компонентов: Плата Arduino UNO(или любая другая) Макетная плат ...»
Плавное мигание светодиодом с использованием ШИМ порта
Необходимый набор электронных компонентов: плата Arduino UNO(или любая другая) Макетная плат ...»
Использование RGB светодиода, эффект хамелеона :)
Необходимый набор электронных компонентов: Плата Arduino UNO(или любая другая) Макетная плат ...»

Светодиод, кнопки и программное устранение дребезга

Необходимый набор электронных компонентов:

  1. Плата Arduino UNO(или любая другая)
  2. Макетная плата breadboard
  3. Светодиод
  4. Резистор ~220 Ом, 2 резистора 1-10кОм
  5. Кнопки тактовые 2 шт.
  6. Провода "папа-папа"

Софт:

  1. Arduino IDE
  2. Библиотека Bounce скачать. Библиотеки устанавливаются в папку Arduino/libraries в документах или в папку "libraries" Ardionno IDE

Подробнее о библиотеке Bounce можно узнать на сайте arduino.cc

Принципиальная схема подключения:

Схема подключения на макетной плате:

Исходный код программы:


/*
Включение-выключение светодиода с помошью кнопок
*/

// Библиотека, помогающая программно устранить эфеект "дребезга" кнопок
#include 

// Определение портов для наших кнопок и светодиода
#define LED_PIN 8
#define BUTTON_PIN_ON 12
#define BUTTON_PIN_OFF 11

// Флаг, устанавливающий, включен светодиод или нет. По умолчанию, светодиод выключен и флаг выставлен в false 
boolean flag = false;

// Определяем два объекта класса Bounce из одноименной подключенной библиотеки. 
// Они нам понадобятся для обработки значения при нажатии на механическую конпку.
Bounce bounce_on = Bounce();
Bounce bounce_off = Bounce();

void setup() {
  // Определяем тип пинов для нашего светодиода и подключенных кнопок.
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUTTON_PIN_ON, INPUT);
  pinMode(BUTTON_PIN_OFF, INPUT);
  
  // Привязываем к нашим объектам типа Bounce пины кнопок и задаем время дребезга их контактов. 
  bounce_on.attach(BUTTON_PIN_ON);
  bounce_on.interval(10);
  bounce_off.attach(BUTTON_PIN_OFF);
  bounce_off.interval(10);
}

void loop() {
  // Проверяем, было ли нажатие кнопок
  if (bounce_on.update() || bounce_off.update()) {   
    // Проверяем, какая кнопка у нас нажата и горит ли светодиод. 
    // Далее инвентируем значение на пине LED_PIN и переменной flag.
    if (bounce_on.read() == HIGH && flag == true) {
      digitalWrite(LED_PIN, HIGH);
      flag = true;
    }
    else if (bounce_off.read() == HIGH && flag == false) {
      digitalWrite(LED_PIN, LOW);
      flag = false;
    }
  }
}

После загрузки скетча на плату ардуино мы сможем включать светодиод одной кнопкой, а другой его выключать.

  Отзывов: 0
Ваше Имя:


Ваш отзыв: Внимание: HTML не поддерживается! Используйте обычный текст.

Оценка: Плохо           Хорошо

Введите код, указанный на картинке:



Последние Статьи
Выпущена новая модель миниатюрного компьютера Raspberry Pi Zero
Выпущена новая модель миниатюрного одноплатного компьютера Raspberry Pi Zero стоимостью около 5$ Гл ...»
16.12.2015    Просмотров: 472
Arduino, ИК(IR) приемник и пульт управления
Необходимый набор электронных компонентов: Плата Arduino UNO(или любая другая) Макетная плат ...»
11.03.2015    Просмотров: 7759
Управление RGB светодиодом с компьютера через USB порт
Необходимый набор электронных компонентов: Плата Arduino UNO(или любая другая) Макетная плат ...»
10.03.2015    Просмотров: 3545
Последние отзывы
Использование RGB светодиода, эффект хамелеона :)
Скорее всего перепутаны пины для RGB светодиода. Попробуйте поменять либо подключение светодиода, либо порядок вызова функции setFadeColor. ...»
05.04.2016    Просмотров: 5336
Администратор
Использование RGB светодиода, эффект хамелеона :)
Хм. Почему-то, всё ещё резкий переход у меня выходит. ...»
05.04.2016    Просмотров: 5336
Summerwind