Всем привет! Прошу помощи в программном решении. Подключаю к Arduino Uno Wi-Fi Rev2 два датчика освещенности (питаются от 3.3 / 5 В) (Датчик схема LM393 + фоторезистор). Мне необходимо реализовать логику: Отправляю с ПК в COM порт одну из двух команд (Стринги, цифры, неважно) Если ввести первую команду, arduino должна считывать данные с первого датчика и, в зависимости от его значения, выводить надпись ON или OFF. Если ввести вторую команду, arduino должна считывать данные со второго датчика и, в зависимости от его значения, выводить надпись ON или OFF. Код: Код (C++): int ScreenPin = A0; //Указываем пин к которому подклюен Фоторезистор экрана. unsigned int ScreenValue = 0; //Переменная для хранения значений фоторезистора с экрана. int LedPin = A1; //Указываем пин к которому подключен Фоторезистор LED индикатора. unsigned int LedValue = 0; //Переменная для хранения значений Фоторезистора с LED индикатора. int Income = 0; void setup() { pinMode(LED_BUILTIN, OUTPUT); Serial.begin(115200); } void loop() { if (Serial.available() > 0) { Income = Serial.read() - '0'; Serial.println(Income); if (Income = 1) { LedValue = analogRead(LedPin); //Считываем значения с фоторезистора LED индикатора. if(LedValue>500) Serial.println("LED Off"); else Serial.println("LED On"); Serial.println(LedValue, DEC); //Вывод данных с фоторезистора (0-1024) }else if (Income = 2) { ScreenValue = analogRead(ScreenPin); //Считываем значения с фоторезистора экрана. if(ScreenValue>500) Serial.println("Screen Off"); else Serial.println("Screen On"); Serial.println(ScreenValue, DEC); //Вывод данных с фоторезистора (0-1024) } delay(500); } } В данном варианте кода, что бы я не вводил, будет считываться только LEDPin Схема подключения - Удалено модератором Если убрать все условия, датчики нормально выводят показатели, так что дело точно не в них. Так же не понятно, почему при Код (C++): Income = Serial.read() - '0'; мне выводит это - Удалено модератором , откуда эти -38? Заранее спасибо)
Спасибо))) Ошибся в операторах, с == все работает, походу нужно отдохнуть)). При вводе цифр или букв в буфер они считываются в символьном формате, согласно таблице ASCII, т.е, если ввести цифру 5 на выходе будет совсем другое значение, для того, что бы вводилось оригинальное значение, к Serial.read(); (выводит данные с буфера) добавляется Код (C++): -'0';