Дроссельная заслонка с функцией прогрева двигателя для катринга

Lordch
Offline
Зарегистрирован: 23.01.2017

Всем привет!

Слепил не большой скетч, все работает но часто возникают ошибки.

Подскажите плиз, что не так и как поправить.

Заранее спасибо. 

#include <Servo.h>
#include <button_coin.h>
#include <LiquidCrystal.h>

button_coin button(7, 0, 10);

LiquidCrystal lcd(12,11,5,4,3,2);    //жк дисплей 1602
int fara = 6;                        // вкл. фар
int raw = 0;
float temp = 0;
Servo servo;
int porog = 25;
int alarm = 13;
int ledprog = 9;
int timeout = 3000;
int timeout1 = 60;
unsigned long nextime;
unsigned long nextime1;
int sr1;
int sr2 = 0;




void setup() {
  pinMode(fara, OUTPUT);
  lcd.begin(16 , 2);
  Serial.begin(9600);
  pinMode( A0, INPUT );
  pinMode( A1, INPUT );
  servo.attach(10);
  pinMode(13, OUTPUT);
  pinMode(9, OUTPUT);
 nextime = millis() + timeout;
 
  
}

void loop() {

 int nowtime1 = millis();
  if( nowtime1 >= nextime1 ){
  nextime1 = nowtime1 + timeout1;
  lcd.clear();
  }
  
  int nowtime = millis();                                 //считываем каждые 3 сек термодатчик
  if( nowtime >= nextime ){
  nextime = nowtime + timeout;
  raw = analogRead(A0);
  temp = ( raw/1023.0 )*100-70;
  Serial.println(temp);

  }
    
    if(temp < porog){                                   // если темп. ниже заданного значения
    servo.write(analogRead(A1)/4);
    Serial.println(analogRead(A1)/4);      // серво (заслонка) приоткрыта
    Serial.println(analogRead(A1)/4);
                                                                   // педаль газа (патенциометр) реагирует на нажатие в приделах
    lcd.setCursor(0, 1);                             // от приоткрытого состояния и выше
    lcd.print("progrev");
    digitalWrite(ledprog, HIGH);
    
   
   }
  
    
   
    else {
      servo.write(analogRead(A1)/7);         // если темп. привысила заданное значение 
      Serial.println(analogRead(A1)/7);      // серво (заслонка) закрыта
      digitalWrite(ledprog, LOW);            
                                                                        // педаль газа (патенциометр) реагирует на нажатие в приделах
                                                                       // от закрытого состояния (холостой ход) и выше
                                             
   }
  
  lcd.setCursor(0, 0);                                   // выводим темп. на жк дисплей
  lcd.print("temp");
  lcd.print(temp);
  

    
    button.but();                                                  //кнопка вкл. фар
    digitalWrite(fara, button.trigger_push);
     sr1 = button.trigger_push;
      
        if (sr1>sr2){
             lcd.setCursor(11, 0);
             lcd.print("fari");
             lcd.setCursor(11, 1);
             lcd.print("ON");
             
             }
        else {
             lcd.setCursor(11, 0);
             lcd.print("fari");
             lcd.setCursor(11, 1);
             lcd.print("OFF");
             
             }
    
 
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Lordch пишет:

Слепил не большой скетч, все работает но часто возникают ошибки.

Подскажите плиз, что не так и как поправить.

Я тут как-то не очень хорошо себя чувствую с утра, подскажите плиз, что не так и как лечиться.

Может Вы потрудитесь объяснить, что этот код делает (должен делать) и какого рода ошибки в нём возникают? А нет - ну, на нет и суда нет.