Лабораторный блок питания на ардуино
Здравствуйте, задумался вопросом о сборке лабораторного блока питания кто пробовал такие проекты собрать. в часности интересует стабилизация тока как организуется в самой ардуино, для этих целей задумано использовать аналоговый вход с операционным усилителем
Re: Лабораторный блок питания на ардуино
Может лучше использовать датчик тока acs712?
Re: Лабораторный блок питания на ардуино
уже на операционнике все отстроил
Re: Лабораторный блок питания на ардуино
вот с шимом сейчас упражняюсь , скетч набил напряжение регулирует потом дисплей прицеплять надо
int butpin1=12;//кнопка +
int butpin2=11;//кнопка -
int I=0;//переменная тока
int V=0;// переменная напряжения
void setup()
{
Serial.begin(9600);
TCCR2B = TCCR2B & 0b11111000 | 1;
analogWrite(0,45); //выключаем напряжение
// конфигурация портов
pinMode(butpin1, INPUT);
pinMode(butpin2, INPUT);
digitalWrite(butpin1, HIGH);
digitalWrite(butpin2, HIGH);
}
void loop()
{
V=constrain(V,1,254);
butpin1=digitalRead(12);
butpin2=digitalRead(11);
if(butpin1==LOW){
V++;
Serial.println(V);
delay(400);
}
if(butpin2==LOW){
V--;
Serial.println(V);
delay(400);
}
analogWrite(3,V);
}
Re: Лабораторный блок питания на ардуино
Пытаемся собрать алгоритм стабилизации
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 ставить константой но чтоб ее можно было изменять кнопкой а алгоритм стабилизации его не увеличивал до самого упора