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