Дроссельная заслонка с функцией прогрева двигателя для катринга
- Войдите на сайт для отправки комментариев
Втр, 24/01/2017 - 00:17
Всем привет!
Слепил не большой скетч, все работает но часто возникают ошибки.
Подскажите плиз, что не так и как поправить.
Заранее спасибо.
#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");
}
}
Слепил не большой скетч, все работает но часто возникают ошибки.
Подскажите плиз, что не так и как поправить.
Я тут как-то не очень хорошо себя чувствую с утра, подскажите плиз, что не так и как лечиться.
Может Вы потрудитесь объяснить, что этот код делает (должен делать) и какого рода ошибки в нём возникают? А нет - ну, на нет и суда нет.