Всем привет и здрасьте!! в общем каким то образом при мониторе порта, датчик перестал давать сигналы!! датчик работает, проверял! контакты тоже есть!! в программе ничего не менял! сори, новичок в этом деле!! заранее спасибо!!
Порт сперва проверьте, они имеют свойство иногда гореть. Чтобы проверить порт, достаточно замкнуть RX-TX и RTS-CTS (контакты 2-3 и 7-8 разъема DB-9). Затем откройте любой терминал и запишите что-нибудь в порт. Если порт исправен, то записанные данные тут же отобразятся на приеме.
описание следующее: есть 2 пары клапанов! которые переключают 2 типа жидкости!! при нагреве одной жидкости до определенной температуры и срабатывания индукционного датчика происходит открытие клапанов! почему пары клапанов? - они работают на слив! (клапаны все нормально закрытые - других не нашел) написал скетч (так как чайник , учился в ВИКИ и пытался писать аналогию) к сожалению не могу доделать код так как запутался!!! проблема в том, что в схеме есть кнопки переключения режимов, я их не знаю как прописать!!!
#define TEMP_SENSOR_PIN A0 // Датчик температуры #define MOTION_SENSOR_PIN 2 // датчик положения рейки #define RELAY_SV_PIN 6 //реле подачи #define RELAY_DV_PIN 7 //реле слив #define BUTTON_A_PIN 8 //кнопка переключения режимов Автомат #define BUTTON_H_PIN 9 //кнопка переключения режимов Ручной #define SCREEN_A_PIN 10 //табло Автомат #define SCREEN_D_PIN 11 //табло Д #define SCREEN_R_PIN 12 //табло Р #define TEMP_LEVEL_THRESHOLD 687 // показания термометра при температуре 55 градусов #define MOTION_TIMEOUT 3 // задержка на 3 секунды, сигнал с датчика положения рейки #define TEMP_TIMEOUT 5 // задержка на 5 секунд, сигнал с датчика температуры при появлении значения 687 void setup() { pinMode(TEMP_SENSOR_PIN, INPUT); pinMode(MOTION_SENSOR_PIN, INPUT); pinMode(RELAY_SV_PIN, OUTPUT); pinMode(RELAY_DV_PIN, OUTPUT); pinMode(BUTTON_A_PIN , INPUT); pinMode(BUTTON_H_PIN , INPUT); pinMode(SCREEN_A_PIN , OUTPUT); pinMode(SCREEN_D_PIN , OUTPUT); pinMode(SCREEN_R_PIN , OUTPUT); } void loop() { int tempLevel = analogRead(TEMP_SENSOR_PIN); bool motionDetected = digitalRead(MOTION_SENSOR_PIN); // датчик положения рейки bool tooClose = tempLevel > TEMP_LEVEL_THRESHOLD; // если температура ниже нужной, клапаны на р и слив д закрыты bool closetRequired = tooClose && motionDetected; // клапаны не откроются, пока что не будет выполнены 2 условия(тмпература и датчик положения рейки) digitalWrite(MOTION_SENSOR_PIN, closetRequired ? HIGH : LOW); // if (tooClose && motionDetected) { digitalWrite(RELAY_DV_PIN, HIGH); delay(20000); // } else { digitalWrite(RELAY_DV_PIN, LOW); } if (!digitalRead(MOTION_SENSOR_PIN)) { digitalWrite(RELAY_SV_PIN, HIGH); } else { digitalWrite(RELAY_SV_PIN, LOW); } bool dieselFuel = !digitalRead(RELAY_SV_PIN); // режим - д if (dieselFuel) { digitalWrite(RELAY_DV_PIN, HIGH); delay(20000); bool ScreenAEnabled = digitalRead(MOTION_SENSOR_PIN); if (ScreenAEnabled) { digitalWrite(SCREEN_A_PIN, HIGH); } } else { digitalWrite(RELAY_DV_PIN, LOW); } }