Пытаемся собрать алгоритм стабилизации
int butpin1=12;//кнопка + напряжения
int butpin2=11;//кнопка - напряжения
int butpin3=10;//кнопка - ток
int butpin4=9;//кнопка + ток
int V=100;//переменная напряжения
int I=0;// переменная тока
int i1=500;// задание тока
void setup()
{
Serial.begin(9600);
TCCR2B = TCCR2B & 0b11111000 | 1;
analogWrite(0,45); //выключаем напряжение
// конфигурация портов
pinMode(butpin1, INPUT);
pinMode(butpin2, INPUT);
digitalWrite(butpin1, HIGH);
digitalWrite(butpin2, HIGH);
pinMode(butpin3, INPUT);
pinMode(butpin4, INPUT);
digitalWrite(butpin3, HIGH);
digitalWrite(butpin4, HIGH);
}
void loop()
{
V=constrain(V,1,254);
i1=constrain(i1,1,500);
butpin1=digitalRead(12);
butpin2=digitalRead(11);
butpin3=digitalRead(10);
butpin4=digitalRead(9);
I=analogRead(0);
if(butpin1==HIGH){V++;delay(4);}
if(butpin2==HIGH){V--;delay(4);}
if(butpin3==LOW){i1++;delay(4);}
if(butpin4==LOW){i1--;delay(4);}
//стабилизация тока
if(I>=i1){V--;}
if(I<=i1){V++;}
Serial.print("V= ");Serial.println(V);
Serial.print("I= ");Serial.println(I);
Serial.print("Zadan= ");Serial.println(i1);
delay(100);
}
не выходит никак прицепить алгоритм к установленному напряжению, как переменную V ставить константой но чтоб ее можно было изменять кнопкой а алгоритм стабилизации его не увеличивал до самого упора




Ответить с цитированием