PHP код:
//#define RPMpin 2;
//#define SPEEDpin 3;
unsigned long microsRPM = 0;
unsigned long microsCKOP = 0;
int rpm = 0;
int ckop = 0;
float naprBS = 0;
int DRL =9;
int brightness=0;
int fading =5;
void setup() {
Serial.begin(19200);
//digitalWrite(2,1);
//digitalWrite(3,1);
attachInterrupt(0,RPM,FALLING); //прерывание на 0 порт, на тахометр, на ПАДЕНИЕ напряжения
attachInterrupt(1,CKOP,RISING); //прерывание на 1 порт, на спидометр, на ПОДНЯТИЕ напряжения
pinMode(DRL,OUTPUT);
}
void loop(){
Serial.println("TAXOMETP");
Serial.println(rpm, DEC); //для проверки, пишем в сериал показание тахометра
Serial.println("cnugoMeTp");
Serial.println(ckop,DEC); //для проверки, пишем в сериал показание спидометра
Serial.println("HAnP");
Serial.println(naprBS); //для проверки, пишем в сериал напряжение БС
Serial.println(brightness);
float voltage=analogRead(0);
naprBS = 3.000*5.0/1024.0*voltage;
delay (10);
if (ckop>(0));{
analogWrite(DRL, brightness);
brightness = brightness + fading;
if (brightness == 255)
fading = (0) ;
}
/*if (digitalRead(7)!=1);{
analogWrite(DRL, brightness);
brightness = brightness - fading;
if (brightness == 0)
fading = (0);}*/
}
/* модуль тахометра*/
void RPM (){
rpm = (1000000.0/(micros()-microsRPM))*60; //вычисляем обороты для тахометра
microsRPM=micros(); //приравнивание старого значения времени к новому
}
/*модуль спидометра!!!!!!!!!!!!!!!вычитать из спецификации
датчика спидометра отношение импульсов к пройденному пути!!*/
void CKOP(){
ckop = ((1000000.0/((micros()-microsCKOP)*6))*60*60*0.00105); //вычисляем скорость, по датчику ХОЛЛА спидометра, ДЕЛИТЕЛЬ менять!
microsCKOP=micros(); //приравниваем старое значение на новое
//delay(10);
}
вот то что я написал, пока в протеусе эмуляция вроде работает.
если что не так с кодом, прошу подсказать так как я только начинающий