int taho = 2; //задает порт считавания тахометра
int tahom; //переменная для считывания частоты
int tah; //определяет диапазон включения регулировки холостого хода
int termo = 5; //задает порт считывания термодчика
int tempovol; //переменная для считывания температуры
int termom; //определяет переменную для значения оборотов холостого хода в зависимости от оборотов
//переменная для значения оборотов холостого хода в зависимости от оборотов
int termo1 = 10;
int termo2 = 20;
int termo3 = 30;
int termo4 = 40;
int termo5 = 50;
// для расчета значения оборотов холостого хода в зависимости от оборотов
int termom1 = 1;
int termom2 = 63;
int termom3 =127;
int termom4 = 190;
int termom5 = 253;
//задает значение необходимого холостого хода в зависимости от оборотов
int tahomraz;
int tahomm;
int tahomm1 = 1400;
int tahomm2 = 1200;
int tahomm3 = 1100;
int tahomm4 = 900;
int tahomm5 = 850;
int drosel = 6; //задает порт определения положения дроселя
int drosel1; //переменная для считывания положения дроселя
int dros; //определяет диапазон дроселя для регулерови холостого хода
int rhhod; //переменная контроля соблюдения условий включения регулировки холостого хода
int hhodplus = 14; //задает порт для повышения оборотов
int hhodminus = 15; //задает порт для снижения оборотов
void setup() {
pinMode(taho, INPUT);
pinMode(termo, INPUT);
pinMode(drosel, INPUT);
pinMode(hhodplus, OUTPUT);
pinMode(hhodminus, OUTPUT);
}
void loop(){
tahom = pulseIn(taho, HIGH) //мерием импульсы тахометра
tempovol = analogRead(termo /4 ); // мерием температуру
drosel1 = analogRead(drosel /4 ); //мерием положение дроселя
// вычесляем темпратурный режим
if (tempovol >= temom1 | tempovol <=temom2) {termom = termo1};
if (tempovol >= temom2 | tempovol <=temom3) {termom = termo2};
if (tempovol >= temom3 | tempovol <=temom4) {termom = termo3};
if (tempovol >= temom4 | tempovol <=temom5) {termom = termo4};
if (tempovol >= temom5 ) {termom = termo5};
//вычесляем необходимые обороты в зависимости от температуры
if (termom == termo1) {tahomm = tahom1}
if (termom == termo2) {tahomm = tahom2}
if (termom == termo3) {tahomm = tahom3}
if (termom == termo4) {tahomm = tahom4}
if (termom == termo5) {tahomm = tahom5}
if (drosel >= 8 && drosl >= 40) {dros=true}; // задаем условие холостого хода по дроселю
if (tahom >500 && tahom < 1600) {tah=true}; // задаем условие холостого хода по оборотам
if (tahom == tahomm) {tahomraz=false}; //приравневаем темперануру к оборотам
if (dros = true && tah = true && tahomraz = true) {rhhod=true}; //даем разрешение на регулеровку холостого хода
if(rhhod = true && tahom > tahomm) {
digitalWrite(hhodminus, HIGH);
delay(10);
digitalWrite(hhodminus, LOW);
delay(10);
digitalWrite(hhodminus, HIGH);
delay(10);
digitalWrite(hhodminus, LOW);
delay(10);
digitalWrite(hhodminus, HIGH);
delay(10);
digitalWrite(hhodminus, LOW);
delay(10);
digitalWrite(hhodminus, HIGH);
delay(10);
digitalWrite(hhodminus, LOW);
delay(10);
digitalWrite(hhodminus, HIGH);
}
if(rhhod = true && tahom < tahomm) {
digitalWrite(hhodplus, HIGH);
delay(10);
digitalWrite(hhodplus, LOW);
delay(10);
digitalWrite(hhodplus, HIGH);
delay(10);
digitalWrite(hhodplus, LOW);
delay(10);
digitalWrite(hhodplus, HIGH);
delay(10);
digitalWrite(hhodplus, LOW);
delay(10);
digitalWrite(hhodplus, HIGH);
delay(10);
digitalWrite(hhodplus, LOW);
delay(10);
digitalWrite(hhodplus, HIGH);
}