Условие задачи: В порт монитора вводим "1" Потенциометром меняем яркость первого светодиода. Вводим "2" первым гаснет, меняем яркость второго светодиода.
#define pot 2 // Пин, к которому подключен потенциометр
#define led 14 // Пин, к которому подключен первый светодиод
#define led1 26 // Пин, к которому подключен второй светодиод
int i = 0;
char dir;
void setup() {
pinMode (led1, OUTPUT);
pinMode (led, OUTPUT);
Serial.begin (9600);
}
void loop() {
if (Serial.available()){
dir = Serial.read();
Serial.println(dir);
}
if (dir == '1'){
i = 1;
analogWrite (led1,0);
}
else {
if (dir == '2'){
i = 2;
analogWrite (led,0);
}
}
if (i==1){
unsigned int adcValue = analogRead (pot);
adcValue = map(adcValue, 0, 1023, 0, 255);
analogWrite (led, adcValue);
}
if (i==2){
unsigned int adcValue1 = analogRead (pot);
adcValue1 = map(adcValue1, 0, 1023, 0, 255);
analogWrite (led1, adcValue1);
}
}
Прилагаю ссылку на симулятор:
<a href="https://wokwi.com/projects/384549189495543809">Wokwi</a>
В симуляторе код работает, а непосредственно на железе Нет!. Точнее даже не корректно, при вводе 1, загорается светодиод с той яркостью, на которую мы установили потенциометр до ввода данных. Уже всяко разно пробовал и даже как в этом варианте постарался как-то разделить.