Ви не увійшли.
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
griseofulvin isoelectric point
griseofulvin isoelectric point
As soon as I found this internet site I went on reddit to share some of the love with them.
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.
Доброго времени суток уважаемые форумчане, кто может помочь, нужен скетч и приложение андроид. Задача такая:
показания с трех реостатов нужно отобразить на андроид приложении на одном экране но в отдельных окошках,связь по bluetooth.
Заранее спасибо за уделенное время и информацию.
Задача простая у вас, но конкретики вы мало написали. Если реостаты у вас будут подключены только контроллеру, то берете arduino+HM-05. Реостаты подключаете к аналоговым входам контроллера. Далее в цикле опрашиваете аналоговые входа и выдаете через Bluetooth на мобилу. Примеров - куча.
Но скорей всего у вас реостаты уже к чему то подключены и понадобится схема сопряжения.
А не легче это зделать в программе FLProg - визуальное программирование Arduino для не программистов
я так понимаю что ни кто не хочет поделится знаниями, или тут нету спецов? А жаль, я думал что здесь иногда появляются профессионалы.
Доброго времени суток уважаемые форумчане, кто может помочь, нужен скетч и приложение андроид. Задача такая:
показания с трех реостатов нужно отобразить на андроид приложении на одном экране но в отдельных окошках,связь по bluetooth.
Заранее спасибо за уделенное время и информацию.
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;
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)) {} // пока датчик не покажет аппарель слева
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}}
Сейчас работаю по приложению, не могу ни как понять как передавать разные данные на разные окна , например три показания температур на три скрина в одном окне приложения, а так же работаю над таймером. А за корректировку кода спасибо, подправлю в ближайшее время.
По поводу цены сначала назначили около 5 т.р. а сказал делайте, потом когда узнали что еще и приложение надо писать то и вовсе отказались.
Я в отличии от некоторых своей работой поделюсь когда полностью допишу(поделюсь бесплатно!)
Спасибо за интерес, автор(я не забил) сижу разбираю дальнейшие циклы и управление через андроид особо времени нету
вот продолжение уже работает управление через приложение с андроида.
// Программа написана для станка по производству резиной плитки в 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, ПОШЕЛ НА ПОВТОР
}}}}}}}}}}}}}}}}}}}}}}}}}}}}
//*************************************************************************************************************************************************************
NoName. Ну да произвел обратный инженеринг. Но когда я это сделал, то понял, что тут надо переделывать всю программу, включая и управление станком.
qwone ) браво, шикарно отформатировали