нужна консультация по монитору порта

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Evgeny, 13 май 2013.

  1. Evgeny

    Evgeny Нерд

    Всем привет и здрасьте!! в общем каким то образом при мониторе порта, датчик перестал давать сигналы!! датчик работает, проверял! контакты тоже есть!! в программе ничего не менял! сори, новичок в этом деле!! заранее спасибо!!
     
  2. Unixon

    Unixon Оракул Модератор

    Принципиальную схему устройства, фото установки в сборе, текст программы в студию.
     
  3. Megakoteyka

    Megakoteyka Оракул Модератор

    Порт сперва проверьте, они имеют свойство иногда гореть.
    Чтобы проверить порт, достаточно замкнуть RX-TX и RTS-CTS (контакты 2-3 и 7-8 разъема DB-9). Затем откройте любой терминал и запишите что-нибудь в порт. Если порт исправен, то записанные данные тут же отобразятся на приеме.
     
  4. Evgeny

    Evgeny Нерд

  5. Evgeny

    Evgeny Нерд

    описание следующее: есть 2 пары клапанов! которые переключают 2 типа жидкости!! при нагреве одной жидкости до определенной температуры и срабатывания индукционного датчика происходит открытие клапанов! почему пары клапанов? - они работают на слив! (клапаны все нормально закрытые - других не нашел) написал скетч (так как чайник , учился в ВИКИ и пытался писать аналогию) к сожалению не могу доделать код так как запутался!!! проблема в том, что в схеме есть кнопки переключения режимов, я их не знаю как прописать!!!
     
  6. Evgeny

    Evgeny Нерд

    #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);

    }
    }