#1 Програмування Arduino » Меню для вода параметров в программу при помощи LCD шилда 1602 » 2016-11-29 12:59:09

OlegKireen
відповідей: 3

Помогите разобраться с разработкой меню для вода параметров.

int a = 5; // время загрузки в секундах
int b = 2; // время задержки в секундах
int c = 10; // время предварительный вакуум в секундах
int d = 20; // время пропарки в секундах
int e = 5; // время вакуумное охлаждение в секундах
int f = 5; // время остывание в секундах

шилд LCD с кнопками

byte key(){ //// для кнопок ЛСДшилда i
nt val = analogRead(0); if (val < 50) return 5; // 0
else if (val < 110) return 3; // 98
else if (val < 300) return 4; // 257
else if (val < 450) return 2; // 409
else if (val < 650) return 1; // 639
else return 0;

Программа работает но приходится изменять параметры в ручную и перезаливать в ардуину.
программа выглядит так:

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

byte key(){ //// для кнопок ЛСДшилда
  int val = analogRead(0);
    if (val < 50) return 5;
    else if (val < 110) return 3;
    else if (val < 300) return 4;
    else if (val < 450) return 2;
    else if (val < 650) return 1;
    else return 0; 
}


   
int a = 5; // время загрузки в секундах
int b = 2; // время задержки в секундах
int c = 10; // время предварительный вакуум в секундах
int d = 20; // время пропарки в секундах
int e = 5; // время вакуумное охлаждение в секундах
int f = 5; // время остывание в секундах

void setup() {
  // put your setup code here, to run once:
// set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.


pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(3, OUTPUT);
pinMode(2, OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:

  lcd.clear();
  lcd.print("*     START    *");
  delay(3000);

  lcd.clear();
  lcd.print("*   ZAGRUZKA   *");
  digitalWrite(13, HIGH); // включен канал №13
  delay(a*1000);
  digitalWrite(13, LOW); // вывключен канал №13
  delay(5000);
  lcd.clear();
  lcd.print("* PRED  VAKUUM *");
  digitalWrite(12, HIGH); // включен канал №12
  delay(b*1000);
   lcd.clear();
  lcd.print("* VAKUUM + PAR *");
  digitalWrite(11, HIGH); // включен канал №11
  delay((c-b)*1000);
  digitalWrite(12, LOW); // вывключен канал №12
  lcd.clear();
  lcd.print("*      PAR     *");
  delay((d-b-c)*1000);
  digitalWrite(11, LOW); // вывключен канал №11
  //нужно условие выключения не по времени а от данных монометра
 
  lcd.clear();
  lcd.print("*VAK.OXLAGDENIE*");
  digitalWrite(3, HIGH); // включен канал №3
  delay(e*1000);
  digitalWrite(3, LOW); // вывключен канал №3
  lcd.clear();
  lcd.print("* STABILIZACIY *");
  digitalWrite(2, HIGH); // включен канал №2
  delay(f*1000);
  digitalWrite(2, LOW); // вывключен канал №2
  lcd.clear();
  lcd.print("*  BLOK GOTOV  *");
  // команда стоп перезапуск программы кнопка
  analogWrite(10,100);
  delay(1000);
  analogWrite(10,10);
  delay(1000);
  analogWrite(10,100);
  delay(1000);
  analogWrite(10,10);
  delay(1000);
  analogWrite(10,100);
  delay(1000);
  analogWrite(10,10);
  delay(1000);
  analogWrite(10,100);
  delay(1000);
  analogWrite(10,10);
  delay(1000);
  analogWrite(10,100);
  delay(1000);
  analogWrite(10,10);
  delay(1000);
  analogWrite(10,100);
  delay(1000);
  analogWrite(10,10);
  delay(1000);
  analogWrite(10,100);
  delay(1000);
  analogWrite(10,10);
  delay(1000);
  analogWrite(10,100);
  delay(1000);
  analogWrite(10,10);
  delay(1000);
  analogWrite(10,100);
  delay(1000);
  analogWrite(10,10);
  delay(1000);
  analogWrite(10,100);
  delay(1000);
  analogWrite(10,10);
  delay(1000);
  analogWrite(10,100);
delay(10000);

}

Буду благодарен за любой совет. Просто не могу понять в какую сторону двигаться.

Підвал форуму