Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

Smithd5
2017-05-29 19:29:39

I've been absent for a while, but now I remember why I used to love this site. Thank you, I'll try and check back more frequently. How frequently you update your site? bfcgddeeddafcecb

Charles
2017-05-23 02:46:38

griseofulvin isoelectric point

loans
2017-05-23 02:45:33

griseofulvin isoelectric point

James
2017-05-13 23:13:09

As soon as I found  this  internet site  I went on reddit to share some of the love with them.

cheap_viagra
2017-05-01 22:42:15

Hi, Neat post. There's a problem with your website in internet explorer, would test this IE still is the market leader and a good portion of people will miss your great writing due to this problem.

apeplov
2017-04-14 16:25:08
gidrobort пише:

Доброго времени суток уважаемые форумчане, кто может помочь, нужен скетч и приложение андроид. Задача такая:
показания с трех реостатов нужно отобразить на андроид приложении на одном экране но в отдельных окошках,связь по bluetooth.
Заранее спасибо за уделенное время и информацию.

Задача простая у вас, но конкретики вы мало написали. Если реостаты у вас будут подключены только  контроллеру, то берете arduino+HM-05. Реостаты подключаете к аналоговым входам контроллера. Далее в цикле опрашиваете аналоговые входа и выдаете через Bluetooth на мобилу. Примеров - куча.
Но скорей всего у вас реостаты уже к чему то подключены и понадобится схема сопряжения.

vovka
2017-02-14 19:42:29

А не легче это зделать в программе FLProg - визуальное программирование Arduino для не программистов

gidrobort
2016-12-17 18:20:09

я так понимаю что ни кто не хочет поделится знаниями, или тут нету спецов? А жаль, я думал что здесь иногда появляются профессионалы.

gidrobort
2016-12-12 14:51:49

Доброго времени суток уважаемые форумчане, кто может помочь, нужен скетч и приложение андроид. Задача такая:
показания с трех реостатов нужно отобразить на андроид приложении на одном экране но в отдельных окошках,связь по bluetooth.
Заранее спасибо за уделенное время и информацию.

gidrobort
2016-12-04 12:02:33

qwone
помоги сделать таймер обратного отсчета,
должен работать не зависимо от цикла, т. е. пока идут другие циклы, таймер работает (допустим 5 минут) и включает 2 реле одно реле клапана G_PIN сброса а другое реле клапана E_PIN центральной плиты. Таймер должен сработать по датчику S2_PIN давления, отключение реле по нижнему датчику центральной плиты L1_PIN, выбор показаний таймера по приходу сигнала с приложения. В СКЕТЧЕ указаны данные вот его кусок
}
if(taimer== 'a2')
   {
     taim=60000;


}
if(taimer == 'a3')
      {
     taim=70000;


}

if(taimer == 'a4')
     {
  taim=80000;

gidrobort
2016-12-04 11:52:34

qwone  Спасибо что уделил время и внимание, вот исправленный скетч, ошибок нет, только осталось проверит на работоспособность по датчикам, проверю отпишусь.



/* Программа написана для станка по производству резиной плитки в 2016 году
ДАТЧИКИ:
датчик положения платформы слева               -> A2 (sensorY1_pin)
датчик положения платформы центр               -> A3 (sensorY2_pin)
датчик положения платформы справа              -> A4 (sensorY3_pin)
датчик температуры правой плиты                -> A5 (sensorY4_pin)
датчик температуры центральной плиты           -> A6 (sensorY5_pin)
датчик температуры левой плиты                 -> A7 (sensorY6_pin)
датчик левого левого положения аппарели        -> 22 (S1_pin)  0 сработал / 1 нет
датчик давления                                -> 23 (S2_pin)  0 сработал / 1 нет
датчик левого положения лифта                  -> 24 (S3_pin)  0 сработал / 1 нет
датчик положения всех лифтов внижнем положении -> 25 (S4_pin)  0 сработал / 1 нет
датчик правого положения аппарели              -> 26 (S5_pin)  0 сработал / 1 нет
датчик положения ВВЕРХУ СПРАВА                 -> 27 (S6_pin)  0 сработал / 1 нет
датчик положения КРЫШКИ ВВЕРХУ                 -> 28 (S7_pin)  0 сработал / 1 нет
датчик положения КРЫШКИ ВНИЗУ                  -> 29 (S8_pin)  0 сработал / 1 нет

КЛАПАНЫ МОТОРЫ ТЕНЫ:
клапан платформы влево                         ->30 (A_pin)
клапан платформы вправо                        ->31 (B_pin)
клапан левого цилиндра                         ->32 (C_pin)
клапан цилиндра верхней плиты                  ->33 (D_pin)
клапан цилиндра пресса                         ->34 (E_pin)
клапан правого цилиндра                        ->35 (F_pin)
клапан сброса давления                         ->36 (G_pin)
контактор мотора                               ->37 (H_pin)
выбор толщины резиновой плитки +              ->38 (MOTOR1_pin) в проектировании
выбор толщины резиновой плитки -              ->39 (MOTOR2_pin) в проектировании
реле тэна справа 1                            ->40 (AL1_pin)    в проектировании
реле тэна справа 2                            ->41 (AL2_pin)    в проектировании
реле тэна центр 1                             ->42 (AC1_pin)    в проектировании
реле тэна центр 2                             ->43 (AC2_pin)    в проектировании
реле тэна слева 1                             ->44 (AR1_pin)    в проектировании
реле тэна слева 2                             ->45 (AR2_pin)    в проектировании

КНОПКИ УПРАВЛЕНИЯ ЛАМПЫ СИГНАЛИЗАЦИЯ:
лампа пусковой кнопки                         ->46 (LAMP_pin)   в проектировании
сирена окончания цикла                        ->47 (SIRENA_pin) в проектировании
кнопка АВАРИЙН СТОП                           ->48 (R_pin)      в проектировании
кнопка ПУСК                                   ->49 (R1_pin)
кнопка ПЛИТА ВВЕРХ                            ->50 (R2_pin)
кнопка ПЛИТА ВНИЗ                             ->51 (R3_pin)
*/
// ДАТЧИКИ:
const int sensorY1_pin = A2; // датчик положения лифта слева
int sensorY1; // 0 - 1023 потенциометр
const int sensorY2_pin = A3; // датчик положения платформы центр
int sensorY2; // 0 - 1023 потенциометр
const int sensorY3_pin = A4; // датчик положения платформы справа
int sensorY3;  // 0 - 1023 потенциометр
const int sensorY4_pin = A5; // датчик температуры правой плиты
int sensorY4;  // 0 - 1023
const int sensorY5_pin = A6; // датчик температуры центральной плиты
int sensorY5;  // 0 - 1023
const int sensorY6_pin = A7; // датчик температуры левой плиты
int sensorY6;  // 0 - 1023
const int S1_pin = 22; // вход сигнала левого положения аппарели
const int S2_pin = 23; // вход сигнала датчика давления
const int S3_pin = 24; // вход сигнала левого положения лифта
const int S4_pin = 25; // вход сигнала положения всех лифтов внижнем положении
const int S5_pin = 26; // вход сигнала правого положения аппарели
const int S6_pin = 27; // датчик положения ВВЕРХУ СПРАВА
const int S7_pin = 28; // вход сигнала датчика положения КРЫШКИ ВВЕРХУ
const int S8_pin = 29; // вход сигнала датчика положения КРЫШКИ ВНИЗУ

// КЛАПАНЫ МОТОРЫ ТЕНЫ:
const int A_pin = 30; // клапан платформы влево         0 вкл / 1 нет
const int B_pin = 31; // клапан платформы вправо        0 вкл / 1 нет
const int C_pin = 32; // клапан левого цилиндра         0 вкл / 1 нет
const int D_pin = 33; // клапан цилиндра верхней плиты  0 вкл / 1 нет
const int E_pin = 34; // клапан цилиндра пресса         0 вкл / 1 нет
const int F_pin = 35; // клапан правого цилиндра        0 вкл / 1 нет
const int G_pin = 36; // клапан сброса давления         0 вкл / 1 нет
const int H_pin = 37; // контактор мотора               0 вкл / 1 нет
const int MOTOR1_pin = 38; // выбор толщины резиновой плитки +
const int MOTOR2_pin = 39; // выбор толщины резиновой плитки -
const int AL1_pin = 40; // реле тэна справа 1
const int AL2_pin = 41; // реле тэна справа 2
const int AC1_pin = 42; // реле тэна центр 1
const int AC2_pin = 43; // реле тэна центр 2
const int AR1_pin = 44; // реле тэна слева 1
const int AR2_pin = 45; // реле тэна слева 2
//КНОПКИ УПРАВЛЕНИЯ ЛАМПЫ СИГНАЛИЗАЦИЯ:
const int LAMP_pin = 46; // лампа пусковой кнопки
const int SIRENA_pin = 47; // сирена окончания цикла
const int R_pin = 48; // кнопка АВАРИЙН СТОП          0 нажата / 1 нет
const int R1_pin = 49; // кнопка ПУСК                 0 нажата / 1 нет
const int R2_pin = 50; // кнопка ПЛИТА ВВЕРХ          0 нажата / 1 нет
const int R3_pin = 51; // кнопка ПЛИТА ВНИЗ           0 нажата / 1 нет

unsigned char button_state; // просто вспомогательная переменная
unsigned char button_mem; // этапы программы

void setup()  {   // -----------------------------------------------------
  Serial.begin(9600);
  // ДАТЧИКИ:
  pinMode(S1_pin, INPUT_PULLUP); // вход сигнала левого положения аппарели
  pinMode(S2_pin, INPUT_PULLUP); // вход сигнала датчика давления
  pinMode(S3_pin, INPUT_PULLUP); // вход сигнала левого положения лифта
  pinMode(S4_pin, INPUT_PULLUP); // вход сигнала положения всех лифтов внижнем положении
  pinMode(S5_pin, INPUT_PULLUP); // вход сигнала правого положения аппарели
  pinMode(S6_pin, INPUT_PULLUP); // датчик положения ВВЕРХУ СПРАВА
  pinMode(S7_pin, INPUT_PULLUP); // вход сигнала датчика положения КРЫШКИ ВВЕРХУ
  pinMode(S8_pin, INPUT_PULLUP); // вход сигнала датчика положения КРЫШКИ ВНИЗУ

  //КНОПКИ УПРАВЛЕНИЯ ЛАМПЫ СИГНАЛИЗАЦИЯ:
  pinMode(LAMP_pin, OUTPUT);
  pinMode(SIRENA_pin, OUTPUT);
  pinMode(R_pin, INPUT_PULLUP); // подключить кнопку АВАРИЙН СТОП с подтянутым резистором
  pinMode(R1_pin, INPUT_PULLUP);// подключить кнопку ПУСК        с подтянутым резистором
  pinMode(R2_pin, INPUT_PULLUP);// подключить кнопку ПЛИТА ВВЕРХ с подтянутым резистором
  pinMode(R3_pin, INPUT_PULLUP);// подключить кнопку ПЛИТА ВНИЗ  с подтянутым резистором

  // КЛАПАНЫ МОТОРЫ ТЕНЫ:
  pinMode(A_pin, OUTPUT);// клапан платформы влево
  digitalWrite(A_pin, 1);// откл клапан платформы влево
  pinMode(B_pin, OUTPUT);// клапан платформы враво
  digitalWrite(B_pin, 1);// откл клапана платформы враво
  pinMode(C_pin, OUTPUT);// клапан левого цилиндра
  digitalWrite(C_pin, 1);// откл клапана левого цилиндра
  pinMode(D_pin, OUTPUT);// клапан цилиндра верхней плиты
  digitalWrite(D_pin, 1);// откл клапана цилиндра верхней плиты
  pinMode(E_pin, OUTPUT);// клапан цилиндра пресса
  digitalWrite(E_pin, 1);// откл цилиндра пресса
  pinMode(F_pin, OUTPUT);// клапан правого цилиндра
  digitalWrite(F_pin, 1);// откл клапана правого цилиндра
  pinMode(G_pin, OUTPUT);// клапан сброса давления
  digitalWrite(G_pin, 1);// откл клапана сброса давления
  pinMode(H_pin, OUTPUT);// контактор мотора
  digitalWrite(H_pin, 1);// откл контактор мотора

  pinMode(AL1_pin, OUTPUT);// реле тэна справа 1
  pinMode(AL2_pin, OUTPUT);// реле тэна справа 2
  pinMode(AC1_pin, OUTPUT);// реле тэна центр 1
  pinMode(AC2_pin, OUTPUT);// реле тэна центр 2
  pinMode(AR1_pin, OUTPUT);// реле тэна слева 1
  pinMode(AR2_pin, OUTPUT);// реле тэна слева 2
  pinMode(MOTOR1_pin, OUTPUT);// выбор толщины резиновой плитки +
  pinMode(MOTOR2_pin, OUTPUT);// выбор толщины резиновой плитки -
}
void loop()   {   // -----------------------------------------------------
  sensorY1 = analogRead(sensorY1_pin); // РЕЗИСТОР положения лифта слева
  sensorY2 = analogRead(sensorY2_pin); // датчик положения платформы центр
  sensorY3 = analogRead(sensorY3_pin); // датчик положения платформы справа
  sensorY4 = analogRead(sensorY4_pin); // датчик температуры правой плиты
  sensorY5 = analogRead(sensorY5_pin); // датчик температуры центральной плиты
  sensorY6 = analogRead(sensorY6_pin); // датчик температуры левой плиты

  // ЗДЕСЬ УПРАВЛЕНИЕ ЦЕНТРАЛЬНОЙ КРЫШКОЙ
  button_state = digitalRead(R2_pin);
  if (! digitalRead(R2_pin)) {  // если кнопка ПЛИТА ВВЕРХ нажата
    digitalWrite(D_pin, 0); // вкл цилиндра верхней плиты
    digitalWrite(H_pin, 0); // вкл контактор мотора
    while (!digitalRead(R2_pin)) {}// ждать пока кнопка ПЛИТА ВВЕРХ нажата
  }
  button_state = digitalRead(S7_pin);
  if (! digitalRead(S7_pin) )   {
    digitalWrite(G_pin, 1);// откл клапана сброса давления
    digitalWrite(D_pin, 1);// откл цилиндра верхней плиты
    button_state = digitalRead(R3_pin);
    if (! digitalRead(R3_pin) )      { // если кнопку ПЛИТА ВНИЗ нажата
      digitalWrite(G_pin, 0); // вкл клапана сброса давления
      digitalWrite(H_pin, 0);// вкл контактор мотора
    }
  }
  button_state = digitalRead(S8_pin);
  if (! digitalRead(S8_pin) )     { // если сработал датчик положения КРЫШКИ ВНИЗУ
    digitalWrite(H_pin, 1);// откл контактор мотора
    digitalWrite(D_pin, 1);// откл цилиндра верхней плиты
    while (! digitalRead(R3_pin)) { // ждать пока кнопка ПЛИТА ВНИЗ нажата
      //*********************************************************************************************************************************//
      // ТУТ НАЧАЛО РАБОТЫ
      button_state = digitalRead(R1_pin);  // если кнопка ПУСК нажата
      if ((button_mem == 0) && !digitalRead(R1_pin) && !button_state && !digitalRead(S4_pin) && digitalRead(S7_pin) && !digitalRead(S8_pin)) { // условие выполняется если датчик нижного положения всех лифтов активирован
        digitalWrite(A_pin, 0); // вкл клапан платформы влево
        digitalWrite(H_pin, 0); // вкл контактор мотора
        button_mem = 1; //запомнить состояние реле
        while (!digitalRead(R1_pin) ) { } // ждать пока кнопка ПУСК нажата
      }
      else {
        button_state = digitalRead(S1_pin); //когда платформа подошла к датчику положения платформы слева
        if ((button_mem == 1) && !digitalRead(S1_pin) && !button_state  &&  digitalRead(S7_pin) && ! digitalRead(S8_pin) ) { // и при таких условиях памяти
          digitalWrite(A_pin, 1); // отк клапан платформы влево
          digitalWrite(E_pin, 0); // вкл цилиндра пресса
          button_mem = 2; //запомнить состояние датчик положения платформы слева
          while (! digitalRead(S1_pin)) {}
        }
        else {
          button_state = digitalRead(S2_pin); //ДАТЧИК ДАВЛЕНИЯ
          if ((button_mem == 2) && !digitalRead(S2_pin) && button_state ) { // сработал датчик давления центральной платформы
            digitalWrite(C_pin, 0);// вкл левого цилиндра
            digitalWrite(E_pin, 1);// откл цилиндра пресса
            button_mem = 3; //запомнить состояние реле
            while (! digitalRead(S2_pin)) {
              /**********************************ЗДЕСЬ НУЖНО УСТАНОВИТЬ ТАЙМЕР КОТОРЫЙ ОПУСТИТ ВНИЗ ЦЕНТРАЛЬНУЮ ПЛИТУ***********************************************/
              //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
              //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
              /*И КАК ТОЛЬКО ТАЙМЕР ОТСЧИТАЕТ , НАПРИМЕ 5 МИНУТ,
              ЦЕНТРАЛЬНАЯ ПЛАТФОРМА ДОЛЖНА ПОЙТИ ВНИЗ
              digitalWrite(E_pin, 0);// вкл цилиндра пресса
              digitalWrite(G_pin, 0);// вкл клапана сброса давления
              АКТИВИРУЕТСЯ ДАТЧИК digitalRead(S4_pin) == 0 И ПОСЛЕ АКТИВАЦИИ
              digitalWrite(E_pin, 1);// откл цилиндра пресса
              digitalWrite(G_pin, 1);// откл клапана сброса давления
              */
              /**************************************************************************************************************/
            }
          }
          else {
            button_state = digitalRead(S3_pin); //ДАТЧИК ПОЛОЖЕНИЯ ВВЕРХУ СЛЕВА
            if (button_mem == 3 && !digitalRead(S3_pin) && !button_state  &&  digitalRead(S7_pin)  && ! digitalRead(S8_pin))  {
              digitalWrite(C_pin, 1);// откл левого цилиндра
              digitalWrite(H_pin, 1);// откл контактор мотора
              button_mem = 4; //запомнить состояние реле
              while (! digitalRead(S3_pin)) {} // ТУТ ЖДЕМ НАЖАТИЯ КНОПКИ ПОКА НЕ ВЫГРУЗЯТ ПЛИТКУ
            }
         
          else {
            button_state = digitalRead(R1_pin);// если кнопка ПУСК нажата
            if ((button_mem == 4) && !digitalRead(R1_pin) && !button_state &&  digitalRead(S7_pin) && ! digitalRead(S8_pin)) {
              digitalWrite(C_pin, 0); // вкл левого цилиндра
              digitalWrite(G_pin, 0);// вкл клапана сброса давления
              button_mem = 5; //запомнить состояние датчик положения платформы слева
              while (! digitalRead(R1_pin)) {} // ждать пока кнопка ПУСК нажата
            }
            else               {
              button_state = analogRead(sensorY1_pin); //прочитать состояние РЕОСТАТ СЛЕВА
              sensorY1 = analogRead(sensorY1_pin);//прочитать состояние
              if (analogRead(sensorY1_pin) < 50 && digitalRead(S7_pin) && ! digitalRead(S8_pin)) { // СРАБОТАЛ РЕОСТАТ ЗНАЧЕНИЕ "50" УСЛОВНОЕ ОНО ДОЛЖНО ПРОГРАММИРОВАТЬСЯ ВМЕСТЕ С УСТАНОВКОЙ РАЗМЕРА ПЛИТКИ
                // В ДАЛЬНЕЙШЕМ ВМЕСТО 50 ДОЛЖНА СТОЯТЬ ПЕРЕМЕННАЯ КОТОРАЯ БУДЕТ ВВОДИТСЯ И КОРРЕКТИРОВАТЬСЯ С ПРИЛОЖЕНИЯ
                digitalWrite(C_pin, 1);// откл левого цилиндра
                digitalWrite(G_pin, 1);// откл клапана сброса давления
              }
              else                 {
                // ПОСЛЕ ЗАГРУЗКИ КРОШКИ НАЖИМАЕМ ОПЯТЬ КНОПКУ ПУСК
                button_state = digitalRead(R1_pin); // если кнопка ПУСК нажата
                if (button_mem == 5 && !digitalRead(R1_pin) && !button_state &&  digitalRead(S7_pin) && !digitalRead(S8_pin)) {
                  digitalWrite(C_pin, 0);// вкл левого цилиндра
                  digitalWrite(G_pin, 0);// вкл клапана сброса давления
                  button_mem = 6; //запомнить состояние датчик положения платформы слева
                  while (! digitalRead(R1_pin)) {} // ждать пока кнопка ПУСК нажата
                }
                else {
                  button_state = digitalRead(S4_pin ); //ДАТЧИК НИЖНЕГО ПЛОЖЕНИЯ ВСЕХ ЛИФТОВ
                  if (button_mem == 6 && !digitalRead(S4_pin) && ! button_state &&  digitalRead(S7_pin) && ! digitalRead(S8_pin)) {
                    // ТУТ НАДО ПОСТАВИТЬ ЕЩЕ УСЛОВИЕ ЭТО ТАЙМЕР ПОКА ОН НЕ ОТСЧИТАЕТ НАПРИМЕР 5 МИНУТ И ЦЕНТРАЛЬНАЯ ПЛАТФОРМА НЕ ОПУСТИТСЯ ВНИЗ ПЛАТФОРМА НЕ ДОЛЖНА ПОЕХАТЬ ВПРАВО
                    digitalWrite(C_pin, 1);// откл левого цилиндра
                    digitalWrite(G_pin, 1);// откл клапана сброса давления

                    digitalWrite(H_pin, 0);// вкл контактор мотора
                    digitalWrite(B_pin, 0);// вкл платформы враво
                    button_mem = 7; //запомнить состояние
                    while (! digitalRead(S4_pin)) {} // пока датчик не покажет все лифты в нижнем положении
                  }
                  else {
                    button_state = digitalRead(S5_pin); //ДАТЧИК ПОЛОЖЕНИЯ ПЛАТФОРМЫ СПРАВА
                    delay(10); // пауза для проверки дребезга
                    if ((button_mem == 7) && !digitalRead(S5_pin) && !button_state &&  digitalRead(S7_pin) && !digitalRead(S8_pin)) {
                      digitalWrite(B_pin, 1);// откл клапана платформы враво
                      digitalWrite(E_pin, 0);// вкл клапана цилиндра пресса
                      button_mem = 8; //запомнить состояние датчик положения платформы слева
                      while (! digitalRead(S5_pin)) {}  // Весь цикл только в обратном порядке
                    }
                    else {
                      button_state = digitalRead(S2_pin); //ДАТЧИК ДАВЛЕНИЯ
                      if ((button_mem == 8) && !digitalRead(S2_pin) && !button_state  &&  digitalRead(S7_pin) && !digitalRead(S8_pin)) {
                        digitalWrite(F_pin, 0);// вкл клапана правого цилиндра
                        digitalWrite(E_pin, 1);// откл клапана цилиндра пресса
                        button_mem = 9; //запомнить состояние реле
                        while (! digitalRead(S2_pin)) {}// пока датчик ДАВЛЕНИЯ не сработает
                      }
                      else {
                        button_state = digitalRead(S6_pin); //ДАТЧИК ПОЛОЖЕНИЯ ВВЕРХУ СПРАВА
                        if ((button_mem == 9) && !digitalRead(S6_pin) && !button_state &&  digitalRead(S7_pin) && !digitalRead(S8_pin)) {
                          digitalWrite(F_pin, 1);// откл правого цилиндра
                          digitalWrite(H_pin, 1);// откл контактор мотора
                          button_mem = 10; //запомнить состояние реле
                          while (! digitalRead(S6_pin)) {} // пока датчик ВВЕРХ СПРАВА не сработает
                         }
                          else {
                            button_state = digitalRead(R1_pin);//  если кнопка ПУСК нажата
                            if ((button_mem == 10) && !digitalRead(R1_pin) && !button_state  &&  digitalRead(S7_pin) && !digitalRead(S8_pin)) {
                              digitalWrite(F_pin, 0);// вкл правого цилиндра
                              digitalWrite(G_pin, 0);// вкл клапана сброса давления
                              button_mem = 11; //запомнить состояние датчик положения платформы слева
                              while (! digitalRead(R1_pin)) {}// ждать пока кнопка ПУСК нажата
                            }
                         
                          else {
                            button_state = analogRead(sensorY3_pin); //прочитать состояние РЕОСТАТ СЛЕВА
                            sensorY1 = analogRead(sensorY3_pin);//прочитать состояние
                            if (analogRead(sensorY3_pin) < 50 && digitalRead(S7_pin) && !digitalRead(S8_pin)) { // В ДАЛЬНЕЙШЕМ ВМЕСТО 50 ДОЛЖНА СТОЯТЬ ПЕРЕМЕННАЯ КОТОРАЯ БУДЕТ ВВОДИТСЯ И КОРРЕКТИРОВАТЬСЯ С ПРИЛОЖЕНИЯ
                              digitalWrite(F_pin, 1);// откл правого цилиндра
                              digitalWrite(G_pin, 1);// откл клапана сброса давления
                            }
                            button_state = digitalRead(R1_pin);// если кнопка ПУСК нажата
                            if ((button_mem == 11) && !digitalRead(R1_pin) && !button_state  &&  digitalRead(S7_pin) && !digitalRead(S8_pin)) {
                              digitalWrite(F_pin, 0);// вкл правого цилиндра
                              digitalWrite(G_pin, 0);// вкл клапана сброса давления
                              button_mem = 12; //запомнить состояние датчик положения платформы слева
                              while (! digitalRead(R1_pin)) {} // ждать пока кнопка ПУСК нажата
                            }
                            button_state = digitalRead(S4_pin); //ДАТЧИК НИЖНЕГО ПЛОЖЕНИЯ ВСЕХ ЛИФТОВ
                            if ((button_mem == 12) && !digitalRead(S4_pin) && !button_state  &&  digitalRead(S7_pin)  && !digitalRead(S8_pin)) {
                              digitalWrite(F_pin, 1);// откл правого цилиндра
                              digitalWrite(G_pin, 1);// откл клапана сброса давления
                              digitalWrite(H_pin, 0);// вкл контактор мотора
                              digitalWrite(A_pin, 0);// вкл клапан платформы влево
                              button_mem = 13; //запомнить состояние
                              while (!digitalRead(S4_pin)) {} // пока датчик не покажет все лифты в нижнем положении
                            }
                            button_state = digitalRead(S1_pin); //датчик положения платформы слева
                            if ((button_mem == 13) && ! digitalRead(S1_pin) && ! button_state &&  digitalRead(S7_pin) && !digitalRead(S8_pin)) {
                              digitalWrite(A_pin, 1);// откл клапан платформы влево
                              digitalWrite(E_pin, 0);// вкл цилиндра пресса
                              button_mem = 2; //запомнить состояние датчик положения платформы слева
                              while (! digitalRead(S1_pin)) {} // пока датчик не покажет аппарель слева
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}}

gidrobort
2016-12-04 11:18:59

Сейчас работаю по приложению, не могу ни как понять как передавать разные данные на разные окна , например три показания температур на три скрина в одном окне приложения, а так же работаю над таймером. А за корректировку кода спасибо, подправлю в ближайшее время.
По поводу цены сначала назначили около 5 т.р. а сказал делайте, потом когда узнали что еще и приложение надо писать то и вовсе отказались.
Я в отличии от некоторых своей работой поделюсь когда полностью допишу(поделюсь бесплатно!)

gidrobort
2016-12-04 11:14:03

Спасибо за интерес, автор(я не забил) сижу разбираю дальнейшие циклы и управление через андроид особо времени нету
вот продолжение уже работает управление через приложение с андроида.


// Программа написана для станка по производству резиной плитки в 2016 году


unsigned char button_state;
unsigned char button_mem;
# define L1_PIN 10 // вход сигнала левого положения аппарели
# define S1_PIN 22 // вход сигнала левого положения аппарели
# define S2_PIN 23 // вход сигнала датчика давления
# define S3_PIN 24 // вход сигнала левого положения лифта
# define S4_PIN 25 // вход сигнала положения всех лифтов внижнем положении
# define S5_PIN 26 // вход сигнала правого положения аппарели
# define S6_PIN 27 // ДАТЧИК ПОЛОЖЕНИЯ ВВЕРХУ СПРАВА
# define S7_PIN 28 // вход сигнала датчика положения КРЫШКИ ВВЕРХУ
# define S8_PIN 29 // вход сигнала датчика положения КРЫШКИ ВНИЗУ
int A_PIN = 30; // клапан платформы влево
int B_PIN = 31; // клапан платформы вправо
int C_PIN = 32; // клапан левого цилиндра
int D_PIN = 33; // клапан цилиндра верхней плиты
int E_PIN = 34; // клапан цилиндра пресса
int F_PIN = 35; // клапан правого цилиндра
int G_PIN = 36; // клапан сброса давления
int H_PIN = 37; // котактор мотора


# define MOTOR1_PIN 38 // выбор толщины резиновой плитки +-
# define MOTOR2_PIN 39 // выбор толщины резиновой плитки +-
# define AL1_PIN 40 // реле тэна справа 1
# define AL2_PIN 41 // реле тэна справа 2
# define AC1_PIN 42 // реле тэна центр 1
# define AC2_PIN 43 // реле тэна центр 2
# define AR1_PIN 44 // реле тэна слева 1
# define AR2_PIN 45 // реле тэна слева 2
# define LAMP 46 // лампа пусковой кнопки
# define SIRENA_PIN 47 // сирена окончания цикла
# define R_PIN 48 // кнопка аварийной остановки
# define R1_PIN 49 // кнпка пусковая цикла
# define R2_PIN 50 // кнопка вверх плиты
# define R3_PIN 51 // кнопка вниз плиты

unsigned long next_time; // время очередного переключения первого светодиода

const int ledPin_1 = 10;
const int ledPin_2 = 11;



int now_time;

int  v;
int  V=70;
int  taimer=50000;
int  taim;
int  W=90;

unsigned long next_time_1; // время очередного переключения первого светодиода
unsigned long next_time_2; // ... второго светодиода
int timeout_1 = 500; // половина периода мигания первого светодиода
int timeout_2 = 800; // ... второго светодиода
int led_state_1 = 0; // начальное состояние первого светодиода - выключен
int led_state_2 = 0; // ... второго светодиода

void setup()
{
Serial3.begin(9600);

  next_time = millis() + taimer; // вычисляем время следующего переключения первого светодиода
  pinMode(ledPin_1, OUTPUT);
    pinMode(ledPin_2, OUTPUT);

    digitalWrite(ledPin_1, led_state_1); // гасим первый светодиод
    digitalWrite(ledPin_2, led_state_2); // гасим второй светодиод

    next_time_1 = millis() + timeout_1; // вычисляем время следующего переключения первого светодиода
    next_time_2 = millis() + timeout_2; // ... второго светодиода
pinMode(L1_PIN, INPUT);
pinMode(S1_PIN, INPUT);
pinMode(S2_PIN, INPUT);
pinMode(S3_PIN, INPUT);
pinMode(S4_PIN, INPUT);
pinMode(S5_PIN, INPUT);
pinMode(S6_PIN, INPUT);
pinMode(S7_PIN, INPUT);
pinMode(S8_PIN, INPUT);
pinMode(R_PIN, INPUT);
pinMode(R1_PIN, INPUT);
pinMode(R2_PIN, INPUT);
pinMode(R3_PIN, INPUT);
pinMode(A_PIN, OUTPUT);
pinMode(B_PIN, OUTPUT);
pinMode(C_PIN, OUTPUT);
pinMode(D_PIN, OUTPUT);
pinMode(E_PIN, OUTPUT);
pinMode(F_PIN, OUTPUT);
pinMode(G_PIN, OUTPUT);
pinMode(H_PIN, OUTPUT);
pinMode(AL1_PIN, OUTPUT);
pinMode(AL2_PIN, OUTPUT);
pinMode(AC1_PIN, OUTPUT);
pinMode(AC2_PIN, OUTPUT);
pinMode(AR1_PIN, OUTPUT);
pinMode(AR2_PIN, OUTPUT);
pinMode(MOTOR1_PIN, OUTPUT);
pinMode(MOTOR2_PIN, OUTPUT);
pinMode(LAMP, OUTPUT);
pinMode(SIRENA_PIN, OUTPUT);

digitalWrite(A_PIN, HIGH);
digitalWrite(B_PIN, HIGH);
digitalWrite(C_PIN, HIGH);
digitalWrite(D_PIN, HIGH);
digitalWrite(E_PIN, HIGH);
digitalWrite(F_PIN, HIGH);
digitalWrite(G_PIN, HIGH);
digitalWrite(H_PIN, HIGH);
digitalWrite(MOTOR1_PIN, HIGH); //подключить внутренний подтягивающий резистор
digitalWrite(MOTOR2_PIN, HIGH); //подключить внутренний подтягивающий резистор
digitalWrite(AL1_PIN, HIGH);
digitalWrite(AL2_PIN, HIGH);
digitalWrite(AC1_PIN, HIGH);
digitalWrite(AC2_PIN, HIGH);
digitalWrite(AR1_PIN, HIGH);
digitalWrite(AR2_PIN, HIGH);

digitalWrite(L1_PIN, HIGH);// Датчик центрального лифта внизу


digitalWrite(S2_PIN, HIGH); //подключить внутренний подтягивающий резистор
digitalWrite(R1_PIN, HIGH); //подключить внутренний подтягивающий резистор
digitalWrite(S6_PIN, HIGH); //подключить внутренний подтягивающий резистор
digitalWrite(S1_PIN, HIGH); //подключить внутренний подтягивающий резистор
digitalWrite(S3_PIN, HIGH); //подключить внутренний подтягивающий резистор
digitalWrite(S4_PIN, HIGH); //подключить внутренний подтягивающий резистор
digitalWrite(S5_PIN, HIGH); //подключить внутренний подтягивающий резистор
digitalWrite(S6_PIN, HIGH); //подключить внутренний подтягивающий резистор
digitalWrite(S7_PIN, HIGH); //подключить внутренний подтягивающий резистор
digitalWrite(S8_PIN, HIGH); //подключить внутренний подтягивающий резистор
digitalWrite(R2_PIN, HIGH); //подключить внутренний подтягивающий резистор
digitalWrite(R3_PIN, HIGH); //подключить внутренний подтягивающий резистор

}
void loop()
{




//ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ
// Мигание ламп
    int now_time = millis(); // текущее время
    if( now_time >= next_time_1 ){ // если текущее время превысило намеченное время, то
        next_time_1 = now_time + timeout_1; // вычисляем время следующего переключения
        led_state_1 = !led_state_1; // меняем состояние на противоположное
        digitalWrite(ledPin_1, led_state_1); // зажигаем или гасим светодиод
    }

    now_time = millis();
    if( now_time >= next_time_2 ){
        next_time_2 = now_time + timeout_2;
        led_state_2 = !led_state_2;
        digitalWrite(ledPin_2, led_state_2);
    }



//ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ


















int sensorY0 = analogRead(A1); // датчик выбора размера плитки
int sensorY1 = analogRead(A2); // датчик положения платформы слева
int sensorY2 = analogRead(A3); // датчик положения платформы центр
int sensorY3 = analogRead(A4); // датчик положения платформы справа
int sensorY4 = analogRead(A5); // датчик температуры правой плиты
int sensorY5 = analogRead(A6); // датчик температуры центральной плиты
int sensorY6 = analogRead(A7); // датчик температуры левой плиты
//WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
{

  if(Serial3.available() > 0){ // есть ли что-то в буфере
   
 
    v = Serial3.read(); // чтение символа
   
   
/*Выбор размера плитки************************************************************************************/

if(v == '1')
      {
  V=70;
W=90;
   Serial3.println("1");
}
if(v == '2')
   {
      V=200;

W=280;
Serial3.println("2");
}
if(v == '3')
      {
      V=500;

W=580;
Serial3.println("3");
}

if(v == '4')
     {
      V=700;

W=780;
Serial3.println("4");
}

if(v == '5')
     {
      V=800;

W=1020;
Serial3.println("5");
}

if(taimer == 'a1')
      {
taim=50000;

}
if(taimer== 'a2')
   {
     taim=60000;


}
if(taimer == 'a3')
      {
     taim=70000;


}

if(taimer == 'a4')
     {
  taim=80000;

}

if(taimer == 'a5')
     {
taim=90000;

}

}









button_state = analogRead(A1); //прочитать состояние РЕОСТАТ СЛЕВА


sensorY1 = analogRead(A1);//прочитать состояние

if (analogRead(A1) > V) // ТУТ 800 ЭТО ПЕРЕМЕННАЯ КОТОРАЯ ДОЛЖНА ВЫСТАВЛЯТСЯ ПАРАМЕТРАМИ С ПРИЛОЖЕНИЯ

{

digitalWrite(MOTOR1_PIN, HIGH);

}

else

{
digitalWrite(MOTOR1_PIN, LOW);
}
if (analogRead(A1) < W ) // ТУТ 850 ЭТО ПЕРЕМЕННАЯ КОТОРАЯ ДОЛЖНА ВЫСТАВЛЯТСЯ ПАРАМЕТРАМИ С ПРИЛОЖЕНИЯ

{
digitalWrite(MOTOR2_PIN, HIGH);

}

else

{

digitalWrite(MOTOR2_PIN, LOW);


}

//Ручное управление!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       switch (v)
       { 
         case 'A':
         digitalWrite(D_PIN, LOW); // КРЫШКА ВВЕРХ
         digitalWrite(H_PIN, LOW);
       
         break;

         case 'a':
         digitalWrite(D_PIN,HIGH); // КРЫШКА ВВЕРХ СТОП
         digitalWrite(H_PIN,HIGH);
       
         break;


         case 'B':
         digitalWrite(D_PIN,LOW); // КРЫШКА ВНИЗ
         digitalWrite(G_PIN,LOW);
       
         break;

         case 'b':
         digitalWrite(D_PIN,HIGH); // КРЫШКА ВНИЗ СТОП
         digitalWrite(G_PIN,HIGH);
       
         break;


         case 'C':
         digitalWrite(A_PIN, LOW); // ПЛАТФОРМА ПОШЛА НАЛЕВО
         digitalWrite(H_PIN, LOW);
       
         break;

         case 'c':
         digitalWrite(A_PIN,HIGH); // ПЛАТФОРМА НАЛЕВО СТОП
         digitalWrite(H_PIN,HIGH);
       
         break;


         case 'D':
         digitalWrite(B_PIN, LOW); // ПЛАТФОРМА ПОШЛА НАПРАВО
         digitalWrite(H_PIN, LOW);
       
         break;

         case 'd':
         digitalWrite(B_PIN, HIGH); // ПЛАТФОРМА НАПРАВО СТОП
         digitalWrite(H_PIN, HIGH);
       
         break;


         case 'E':
         digitalWrite(E_PIN, LOW); // ЦЕНТРАЛЬНЫЙ ЛИФТ ВВЕРХ АКТИВИРОВАН
         digitalWrite(H_PIN, LOW);
       
         break;

         case 'e':
         digitalWrite(E_PIN, HIGH); // ЦЕНТРАЛЬНЫЙ ЛИФТ ВВЕРХ СТОП
         digitalWrite(H_PIN, HIGH);
         
         break;
         
         case 'F':
         digitalWrite(E_PIN, LOW); // ЦЕНТРАЛЬНЫЙ ЛИФТ ВНИЗ АКТИВИРОВАН
         digitalWrite(G_PIN, LOW);
         
         break;
         
         case 'f':
         digitalWrite(E_PIN, HIGH); // ЦЕНТРАЛЬНЫЙ ЛИФТ ВНИЗ СТОП
         digitalWrite(G_PIN, HIGH);
       
         break;

                  case 'K':
         digitalWrite(D_PIN, LOW); // ЛЕВЫЙ ЛИФТ ВВЕРХ
         digitalWrite(H_PIN, LOW);
       
         break;

                  case 'k':
         digitalWrite(D_PIN, HIGH); // ЛЕВЫЙ ЛИФТ ВВЕРХ СТОП
         digitalWrite(H_PIN, HIGH);
       
         break;

                  case 'G':
         digitalWrite(D_PIN, LOW); // ЛЕВЫЙ ЛИФТ ВНИЗ
         
         break;

                  case 'g':
         digitalWrite(D_PIN, HIGH); // ЛЕВЫЙ ЛИФТ ВНИЗ СТОП
         digitalWrite(G_PIN, HIGH);
       
         break;
         
                  case 'H':
         digitalWrite(F_PIN, LOW); // ПРАВЫЙ ЛИФТ ВВЕРХ
         digitalWrite(H_PIN, LOW);
       
         break;

                  case 'h':
         digitalWrite(F_PIN, HIGH); // ПРАВЫЙ ЛИФТ ВВЕРХ СТОП
         digitalWrite(H_PIN, HIGH);
       
         break;

                  case 'J':
         digitalWrite(F_PIN, LOW); // ПРАВЫЙ ЛИФТ ВНИЗ
         digitalWrite(G_PIN, LOW);
       
         break;

                  case 'j':
         digitalWrite(F_PIN, HIGH); // ПРАВЫЙ ЛИФТ ВНИЗ СТОП
         digitalWrite(G_PIN, HIGH);
     
         

       

break;

default:
 
   
 
     




/********************************************************************************************************************/
// ЗДЕСЬ УПРАВЛЕНИЕ ЦЕНТРАЛЬНОЙ КРЫШКОЙ

button_state = digitalRead(R2_PIN);
if (digitalRead(R2_PIN) == LOW )
{
digitalWrite(D_PIN, LOW); // КРЫШКА ВВЕРХ
digitalWrite(H_PIN, LOW);
while (digitalRead(R2_PIN) == LOW) {
}

} else
{
button_state = digitalRead(S7_PIN);


if (digitalRead(S7_PIN) == LOW )
{
digitalWrite(G_PIN, HIGH);
digitalWrite(D_PIN, HIGH);

button_state = digitalRead(R3_PIN);
if (digitalRead(R3_PIN) == LOW )
{
digitalWrite(G_PIN, LOW); // КРЫШКА ВНИЗ
digitalWrite(H_PIN, LOW);
}

} else
{
button_state = digitalRead(S8_PIN);


if (digitalRead(S8_PIN) == LOW )
{
digitalWrite(H_PIN, HIGH);
digitalWrite(D_PIN, HIGH);
while (digitalRead(R3_PIN) == LOW) {
//*********************************************************************************************************************************//
// ТУТ НАЧАЛО РАБОТЫ

button_state = digitalRead(R1_PIN); //КНОПКА ПУСК
if (digitalRead(R1_PIN) == LOW && button_state == LOW && button_mem == 0 && digitalRead(S4_PIN) == LOW && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW) // условие выполняется если датчик нижного положения всех лифтов активирован
{


digitalWrite(A_PIN, LOW); // ПЛАТФОРМА ПОШЛА НАЛЕВО
digitalWrite(H_PIN, LOW);
button_mem = 51; //запомнить состояние реле
while (digitalRead(R1_PIN) == LOW) {

}

} else
{
button_state = digitalRead(S1_PIN);


if (digitalRead(S1_PIN) == LOW && button_state == LOW && button_mem == 51 && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW ) // и при таких условиях памяти
{
digitalWrite(A_PIN, HIGH); // ПЛАТФОРМА ОТКЛЮЧИЛАСЬ И ВКЛЮЧИЛСЯ ЦЕНТРАЛЬНЫЙ ЛИФТ , мотор гидростанции продолжает работать.
digitalWrite(E_PIN, LOW); // активация клапана центральной плиты

button_mem = 52;
while (digitalRead(S1_PIN) == LOW) {

}

} else
{
button_state = digitalRead(S2_PIN); //ДАТЧИК ДАВЛЕНИЯ




if (digitalRead(S2_PIN) == LOW && button_state == LOW && button_mem == 52) // сработал датчик давления центральной платформы
{


digitalWrite(C_PIN, LOW); // ЦЕНТРАЛЬНЫЙ ЛИФТ ОТКЛЮЧИЛСЯ ПО ДАТЧИКУ ДАВЛЕНИЯ И ЛЕВЫЙ ПОДЪЕМНЫЙ ЛИФТ ПОШЕЛ НА ВЕРХ
digitalWrite(E_PIN, HIGH);
/**********************************ЗДЕСЬ НУЖНО УСТАНОВИТЬ ТАЙМЕР КОТОРЫЙ ОПУСТИТ ВНИЗ ЦЕНТРАЛЬНУЮ ПЛИТУ***********************************************/

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*И КАК ТОЛЬКО ТАЙМЕР ОТСЧИТАЕТ , НАПРИМЕ 5 МИНУТ,
ЦЕНТРАЛЬНАЯ ПЛАТФОРМА ДОЛЖНА ПОЙТИ ВНИЗ
digitalWrite(E_PIN, LOW);
digitalWrite(G_PIN, LOW);

АКТИВИРУЕТСЯ ДАТЧИК digitalRead(S4_PIN) == LOW И ПОСЛЕ АКТИВАЦИИ
digitalWrite(E_PIN, HIGH);
digitalWrite(G_PIN, HIGH);
*/

/**************************************************************************************************************/
now_time = millis(); // текущее время
    if( now_time >= taimer ){ // если текущее время превысило намеченное время, то

digitalWrite(G_PIN, LOW);
digitalWrite(E_PIN, LOW);
if( digitalRead(L1_PIN) == LOW){ // если текущее время превысило намеченное время, то

digitalWrite(G_PIN, HIGH); // ПЛАТФОРМА ОТКЛЮЧИЛАСЬ И ВКЛЮЧИЛСЯ ЦЕНТРАЛЬНЫЙ ЛИФТ , мотор гидростанции продолжает работать.
digitalWrite(E_PIN, HIGH);

button_mem = 53; //запомнить состояние реле
while (digitalRead(S2_PIN) == LOW) {



}

} else
{
button_state = digitalRead(S3_PIN); //ДАТЧИК ПОЛОЖЕНИЯ ВВЕРХУ СЛЕВА


if (digitalRead(S3_PIN) == LOW && button_state == LOW && button_mem == 53 && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW)
{
digitalWrite(C_PIN, HIGH); // ЗДЕСЬ СРАБОТАЛ ДАТЧИК ВЕРХНЕГО ПОЛОЖЕНИЯ ЛИФТА СЛЕВА
digitalWrite(H_PIN, HIGH);
button_mem = 54; //запомнить состояние реле
while (digitalRead(S3_PIN) == LOW) {


// ТУТ ЖДЕМ НАЖАТИЯ КНОПКИ ПОКА НЕ ВЫГРУЗЯТ ПЛИТКУ
}


} else
{
button_state = digitalRead(R1_PIN); //НАЖИМАЕМ КНОПКА ПУСК


if (digitalRead(R1_PIN) == LOW && button_state == LOW && button_mem == 54 && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW )
{
digitalWrite(C_PIN, LOW); // ЛИФТ СЛЕВА ПОШЕЛ ВНИЗ ДО СРАБАТЫВАНИЯ РЕОСТАТА
digitalWrite(G_PIN, LOW);

button_mem = 55; //запомнить состояние датчик положения платформы слева
while (digitalRead(R1_PIN) == LOW) {


}

} else
{
button_state = analogRead(A2); //прочитать состояние РЕОСТАТ СЛЕВА


sensorY1 = analogRead(A2);//прочитать состояние

if (analogRead(A2) < 50 && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW) // СРАБОТАЛ РЕОСТАТ ЗНАЧЕНИЕ "50" УСЛОВНОЕ ОНО ДОЛЖНО ПРОГРАММИРОВАТЬСЯ ВМЕСТЕ С УСТАНОВКОЙ РАЗМЕРА ПЛИТКИ
{
// В ДАЛЬНЕЙШЕМ ВМЕСТО 50 ДОЛЖНА СТОЯТЬ ПЕРЕМЕННАЯ КОТОРАЯ БУДЕТ ВВОДИТСЯ И КОРРЕКТИРОВАТЬСЯ С ПРИЛОЖЕНИЯ

digitalWrite(C_PIN, HIGH);

digitalWrite(G_PIN, HIGH);


{

}


} else
{
// ПОСЛЕ ЗАГРУЗКИ КРОШКИ НАЖИМАЕМ ОПЯТЬ КНОПКУ ПУСК
button_state = digitalRead(R1_PIN); //КНОПКА ПУСК

if (digitalRead(R1_PIN) == LOW && button_state == LOW && button_mem == 55 && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW)
{
digitalWrite(C_PIN, LOW);
digitalWrite(G_PIN, LOW);

button_mem = 56; //запомнить состояние датчик положения платформы слева
while (digitalRead(R1_PIN) == LOW) {

}


} else
{
button_state = digitalRead(S4_PIN ); //ДАТЧИК НИЖНЕГО ПЛОЖЕНИЯ ВСЕХ ЛИФТОВ

if (digitalRead(S4_PIN) == LOW && button_state == LOW && button_mem == 56 && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW)
// ТУТ НАДО ПОСТАВИТЬ ЕЩЕ УСЛОВИЕ ЭТО ТАЙМЕР ПОКА ОН НЕ ОТСЧИТАЕТ НАПРИМЕР 5 МИНУТ И ЦЕНТРАЛЬНАЯ ПЛАТФОРМА НЕ ОПУСТИТСЯ ВНИЗ ПЛАТФОРМА НЕ ДОЛЖНА ПОЕХАТЬ ВПРАВО
{
digitalWrite(C_PIN, HIGH);
digitalWrite(G_PIN, HIGH);


digitalWrite(H_PIN, LOW);
digitalWrite(B_PIN, LOW);
button_mem = 57; //запомнить состояние
while (digitalRead(S4_PIN) == LOW) {

}


} else
{
button_state = digitalRead(S5_PIN); //ДАТЧИК ПОЛОЖЕНИЯ ПЛАТФОРМЫ СПРАВА

delay(10); // пауза для проверки дребезга
if (digitalRead(S5_PIN) == LOW && button_state == LOW && button_mem ==57 && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW )
{
digitalWrite(B_PIN, HIGH);
digitalWrite(E_PIN, LOW);



button_mem = 58; //запомнить состояние датчик положения платформы слева
while (digitalRead(S5_PIN) == LOW) {

// Весь цикл только в обратном порядке

}

} else
{
button_state = digitalRead(S2_PIN); //ДАТЧИК ДАВЛЕНИЯ


if (digitalRead(S2_PIN) == LOW && button_state == LOW && button_mem == 58 && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW)
{
digitalWrite(F_PIN, LOW);
digitalWrite(E_PIN, HIGH);
/**********************************ЗДЕСЬ НУЖНО УСТАНОВИТЬ ТАЙМЕР КОТОРЫЙ ОПУСТИТ ВНИЗ ЦЕНТРАЛЬНУЮ ПЛИТУ***********************************************/

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*И КАК ТОЛЬКО ТАЙМЕР ОТСЧИТАЕТ , НАПРИМЕ 5 МИНУТ,
ЦЕНТРАЛЬНАЯ ПЛАТФОРМА ДОЛЖНА ПОЙТИ ВНИЗ
digitalWrite(E_PIN, LOW);
digitalWrite(G_PIN, LOW);

АКТИВИРУЕТСЯ ДАТЧИК digitalRead(S4_PIN) == LOW И ПОСЛЕ АКТИВАЦИИ
digitalWrite(E_PIN, HIGH);
digitalWrite(G_PIN, HIGH);
*/

/**************************************************************************************************************/
now_time = millis(); // текущее время
    if( now_time >= taimer ){ // если текущее время превысило намеченное время, то

digitalWrite(G_PIN, LOW);
digitalWrite(E_PIN, LOW);
if( digitalRead(L1_PIN) == LOW){ // если текущее время превысило намеченное время, то

digitalWrite(G_PIN, HIGH); // ПЛАТФОРМА ОТКЛЮЧИЛАСЬ И ВКЛЮЧИЛСЯ ЦЕНТРАЛЬНЫЙ ЛИФТ , мотор гидростанции продолжает работать.
digitalWrite(E_PIN, HIGH);
button_mem = 59; //запомнить состояние реле
while (digitalRead(S2_PIN) == LOW) {

}

} else
{
button_state = digitalRead(S6_PIN); //ДАТЧИК ПОЛОЖЕНИЯ ВВЕРХУ СПРАВА

if (digitalRead(S6_PIN) == LOW && button_state == LOW && button_mem == 59 && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW)
{
digitalWrite(F_PIN, HIGH);
digitalWrite(H_PIN, HIGH);
button_mem = 60; //запомнить состояние реле
while (digitalRead(S6_PIN) == LOW) {

}


} else
{
button_state = digitalRead(R1_PIN); //КНОПКА ПУСК

if (digitalRead(R1_PIN) == LOW && button_state == LOW && button_mem == 61 && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW)
{
digitalWrite(F_PIN, LOW);
digitalWrite(G_PIN, LOW);

button_mem = 62; //запомнить состояние датчик положения платформы слева
while (digitalRead(R1_PIN) == LOW) {


}

} else
{
button_state = analogRead(A4); //прочитать состояние РЕОСТАТ СЛЕВА


sensorY1 = analogRead(A4);//прочитать состояние

if (analogRead(A4) < 50 && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW) // В ДАЛЬНЕЙШЕМ ВМЕСТО 50 ДОЛЖНА СТОЯТЬ ПЕРЕМЕННАЯ КОТОРАЯ БУДЕТ ВВОДИТСЯ И КОРРЕКТИРОВАТЬСЯ С ПРИЛОЖЕНИЯ
{


digitalWrite(F_PIN, HIGH);

digitalWrite(G_PIN, HIGH);


{


}


} else
{
button_state = digitalRead(R1_PIN); //КНОПКА ПУСК


if (digitalRead(R1_PIN) == LOW && button_state == LOW && button_mem == 62 && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW)
{
digitalWrite(F_PIN, LOW);
digitalWrite(G_PIN, LOW);

button_mem = 63; //запомнить состояние датчик положения платформы слева
while (digitalRead(R1_PIN) == LOW) {


}


} else
{
button_state = digitalRead(S4_PIN); //ДАТЧИК НИЖНЕГО ПЛОЖЕНИЯ ВСЕХ ЛИФТОВ

if (digitalRead(S4_PIN) == LOW && button_state == LOW && button_mem == 63 && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW)
{
digitalWrite(F_PIN, HIGH);
digitalWrite(G_PIN, HIGH);
digitalWrite(H_PIN, LOW);
digitalWrite(A_PIN, LOW);
button_mem = 64; //запомнить состояние
while (digitalRead(S4_PIN) == LOW) {


}

} else
{
button_state = digitalRead(S1_PIN); //датчик положения платформы слева


if (digitalRead(S1_PIN) == LOW && button_state == LOW && button_mem == 64 && digitalRead(S7_PIN) == HIGH && digitalRead(S8_PIN) == LOW)
{
digitalWrite(A_PIN, HIGH);
digitalWrite(E_PIN, LOW);

button_mem = 52; //запомнить состояние датчик положения платформы слева
while (digitalRead(S1_PIN) == LOW) {
// И ОТСЮДА ЦИКЛ, СОГЛАСНО ПАМЯТИ 52, ПОШЕЛ НА ПОВТОР

}}}}}}}}}}}}}}}}}}}}}}}}}}}}

//*************************************************************************************************************************************************************

qwone
2016-11-22 20:30:05

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

NoName
2016-11-22 10:19:30

qwone ) браво, шикарно  отформатировали

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