// базовый пример инициализации и вывода текста
#include <LiquidCrystal_I2C.h> // подключаем библу
// адрес дисплея 0x3f или 0x27
// размер дисплея 16x2 (поддерживаются и другие, например 20x4)
LiquidCrystal_I2C lcd(0x27, 16, 2); // адрес, столбцов, строк
#define PIN_RELAY1 8 // константа выхода реле
const int buttonPin1 = 13; // константа входа кнопки концевик
const int buttonPin2 = 12; // константа входа кнопки сброса
const int buttonPin3 = 11; // константа входа кнопки инициализации
int buttonState = 0;
//int buttonState2 = 0;
//int buttonState3 = 0;
int count1 = 0; // переменная для подсчета нажатий на кнопку
int count2 = 0; // переменная для подсчета нажатий на кнопку в коробке
int count3 = 5;
void setup() {
pinMode(PIN_RELAY1, OUTPUT); // реле
digitalWrite(PIN_RELAY1, LOW); // исходное состояние реле
pinMode(buttonPin1, INPUT); // вход кнопки
pinMode(buttonPin2, INPUT); // вход кнопки
pinMode(buttonPin3, INPUT); // вход кнопки
lcd.init(); // инициализация
lcd.backlight(); // включить подсветку
//lcd.setCursor(1, 0); // столбец 1 строка 0
// buttonState = digitalRead(buttonPin2); // считываем кнопку 1
for (int i = 0;i<1000;i++){
lcd.setCursor(0, 0);
lcd.print(i);
buttonState = digitalRead(buttonPin2);
if (buttonState == HIGH) {
delay(30);
count3 = 300;
lcd.setCursor(0, 0);
lcd.print("300");
delay(5000);
lcd.setCursor(0, 0);
lcd.print(" ");
break;
}
}
}
void loop()
{
if (count2 < count3) // если партия меньше этого значения, то работать
{
buttonState = digitalRead(buttonPin1); // считываем кнопку 1
if (buttonState == HIGH) {
delay(50);
buttonState = digitalRead(buttonPin1);
if (buttonState == HIGH) {
delay(20);
digitalWrite(PIN_RELAY1, HIGH); //включаем реле
delay(800); // ; время обжима
digitalWrite(PIN_RELAY1, LOW); //выключаем реле
count1 = count1 + 1; // прибавляем на одно число
count2 = count2 + 1; // прибавляем на одно число
lcd.setCursor(4, 0); // столбец 4 строка 1
lcd.print(count1); // печатаем
lcd.setCursor(4, 1); // столбец 11 строка 0
lcd.print(count2); // печатаем
//delay(500); // за это время деталь долж��а упасть и отпустить кнопку
}}
}
buttonState = digitalRead(buttonPin2); // считываем кнопку 1
if (buttonState == HIGH) {
delay(50);
lcd.setCursor(4, 1); // столбец 4 строка 1
lcd.print(" "); // это сброс партии
count2 = 0;
delay(50);
lcd.init();
delay(100);
lcd.setCursor(4, 0); // столбец 4 строка 1
lcd.print(count1); // печатаем
lcd.setCursor(4, 1); // столбец 11 строка 0
lcd.print(count2); // печатаем
}
buttonState = digitalRead(buttonPin3); // считываем кнопку 1
if (buttonState == HIGH) {
delay(50);
lcd.init();
delay(100);
lcd.setCursor(4, 0); // столбец 4 строка 1
lcd.print(count1); // печатаем
lcd.setCursor(4, 1); // столбец 11 строка 0
lcd.print(count2); // печатаем
// инициализация
}}