Найти в Дзене
Amaros_Arduino

Простой счетчик нажатий с LCD дисплеем на Ардуино

Доброго времени суток! В этой статье я постараюсь подробно и на понятном языке объяснить принцип его работы,а так же как его собрать.Этот счетчик будет уметь добавлять переменную (цифры счета) и убавлять их нажатием на одну из 2-ух кнопок. Что нужно для проекта: Схема проекта: 2. Кнопки к минусу проводить через резистор на 220 ом.Первую кнопку провести к выходу D2 (это будет добавление переменной),а вторую к выходу D3 (это будет убавлением переменной) на ардуино. 3. Питание подключается к выходам GND(-) и VIN(+),если это ардуино нано. Код проекта: #include <Wire.h> #include <LiquidCrystal_I2C_OLED.h> LiquidCrystal_I2C lcd(0x27,16,2); const int buttonPin = 2; const int button1Pin = 3; bool button_old = 1 bool button1_old = 1; int count = 0; void setup() { lcd.init(); lcd.backlight(); lcd.setCursor(0,0); lcd.print("creator Amaros"); lcd.setCursor(0,1); lcd.print("0"); pinMode(buttonPin, INPUT_PULLUP); pinMode(button1
Оглавление

Доброго времени суток! В этой статье я постараюсь подробно и на понятном языке объяснить принцип его работы,а так же как его собрать.Этот счетчик будет уметь добавлять переменную (цифры счета) и убавлять их нажатием на одну из 2-ух кнопок.

Что нужно для проекта:

  • Arduino nano/uno
  • Lcd 16x2 дисплей
  • i2c интерфейс
  • 2 резистора на 220ом
  • 2 кнопки

Схема проекта:

  1. К Lcd дисплею припаиваем I2c интерфейс,что бы его выходы были с левого верхнего угла дисплея.
  • Выход GND на I2C интерфейсе подключаем к выходу GND На ардуино
  • Выход VCC на I2C интерфейсе подключаем к выходу 5v(VIN) на ардуино.
  • Выход SDA на I2C интерфейсе подключаем к выходу A4 на ардуино.
  • Выход SCL на I2C интерфейсе подключаем к выходу A5 на ардуино .

2. Кнопки к минусу проводить через резистор на 220 ом.Первую кнопку

провести к выходу D2 (это будет добавление переменной),а вторую к

выходу D3 (это будет убавлением переменной) на ардуино.

3. Питание подключается к выходам GND(-) и VIN(+),если это ардуино нано.

Код проекта:

#include <Wire.h>
#include <LiquidCrystal_I2C_OLED.h>
LiquidCrystal_I2C lcd(0x27,16,2);
const int buttonPin = 2;
const int button1Pin = 3;
bool button_old = 1
bool button1_old = 1;
int count = 0;
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("creator Amaros");
lcd.setCursor(0,1);
lcd.print("0");
pinMode(buttonPin, INPUT_PULLUP);
pinMode(button1Pin, INPUT_PULLUP);
}
void loop() {
bool button = digitalRead(buttonPin);
if (!button && button_old) {
button_old = 0;
delay(10);
count = count + 1;
if (count >= 9999) count = 00;
lcd.setCursor(0,1);
lcd.print(count);
lcd.print(" ");
}
if (button && !button_old) {
button_old = 1;
delay(50);
}
bool button1 = digitalRead(button1Pin);
if (!button1 && button1_old) {
button1_old = 0;
delay(10);
count = count - 1;
if (count < 0) count = 00;
lcd.setCursor(0,1);
lcd.print(count);
lcd.print(" ");
}
if (button1 && !button1_old) {
button1_old = 1;
delay(50);
}
}

Подробное объяснение кода будет в прикрепленном файле ниже.

https://yadi.sk/d/8yixzszPBa2WdA

Этот счетчик можно использовать не только с кнопками,так же и с модулями либо датчиками.К примеру с модулем датчика звука,с ИК датчиком и многое другое.

Спасибо за внимание!