ошибка в коде с переключением реле

Тема в разделе "Arduino & Shields", создана пользователем Dfktynby, 10 окт 2019.

  1. Dfktynby

    Dfktynby Нуб

    помогите пожалуйста, не могу разобраться что делаю не так:

    void loop()
    {if ( PIN_OUT == 0) // значение датчика тока при котором осуществляется переключение реле
    {
    PIN_R = !PIN_R; // переключение реле
    }}

    собственно на строке PIN_R = !PIN_R; выдаёт ошибку:
    lvalue required as left operand of assignment
     
  2. asam

    asam Нерд

    А где эти PIN_OUT и PIN_R определены ?
    Двай полный тект. И вставь как положено.
    А вообще в ардуино для работы с пинами используют digialRead() / digitalWirte()
     
    Dfktynby и Daniil нравится это.
  3. Asper Daffy

    Asper Daffy Гуру

    Не присваивай значение константе - не будет ругаться.
     
    Dfktynby, SergeiL и DetSimen нравится это.
  4. parovoZZ

    parovoZZ Гуру

    судя по ошибке, они определены через define/
     
    Dfktynby нравится это.
  5. asam

    asam Нерд

    Скорее всего да. Просто было интересно посмотреть, что именно там ТС наворотил.
     
  6. Dfktynby

    Dfktynby Нуб

    Код (Text):

    #define PIN_R 5 //  пин для реле
    #define PIN_OUT A0// пин для датчика тока
    #include <TroykaCurrent.h> // библиотека для работы с датчиком тока
    ACS712 sensorCurrent(PIN_OUT);//объект для работы с датчиком тока, пин для выходного сигнала д. тока

    void setup()
    {
      pinMode(PIN_R, OUTPUT); // Объявляем пин реле как выход
      Serial.begin(9600);
      }

    void loop()
    {if ( PIN_OUT == 0)// значение при котором осуществляется переключение реле
      {
        PIN_R = !PIN_R;// переключение реле
          }
      // I вывод показаний в порт
     Serial.print("I= ");
     Serial.print(sensorCurrent.readCurrentDC());
     Serial.println(" A");
       delay(1000);
    }
     
     
  7. asam

    asam Нерд

    Ну да, все как и предполагалось.

    Для того что бы менять состояние пина надо использовать
    Код (C++):
    digitalWrite(PIN_R, <желаемое состояние пина>);
    что бы читать напряжение на аналоговом пине
    Код (C++):
    analogRead(PIN_OUT);
     
  8. parovoZZ

    parovoZZ Гуру

    что и требовалось доказать...