помогите пожалуйста, не могу разобраться что делаю не так: void loop() {if ( PIN_OUT == 0) // значение датчика тока при котором осуществляется переключение реле { PIN_R = !PIN_R; // переключение реле }} собственно на строке PIN_R = !PIN_R; выдаёт ошибку: lvalue required as left operand of assignment
А где эти PIN_OUT и PIN_R определены ? Двай полный тект. И вставь как положено. А вообще в ардуино для работы с пинами используют digialRead() / digitalWirte()
Код (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); }
Ну да, все как и предполагалось. Для того что бы менять состояние пина надо использовать Код (C++): digitalWrite(PIN_R, <желаемое состояние пина>); что бы читать напряжение на аналоговом пине Код (C++): analogRead(PIN_OUT);