Hey guys i,m new on this forum i have one question i making some project for my car i want to make Domelight Supervision and i don't know how to make timeout with millis() can anyone help me ?
here is my code
#include <Adafruit_NeoPixel.h>
int LED_PIN = 7;
int odklep_pin = 8;
int zaklep_pin = 9;
int totalLEDs = 9;
int ledFadeinTime = 2;
int ledFadeoutTime = 5;
int ignition_pin = 6;
int leds = false;
int kontakt = false;
unsigned long led_timeout;
unsigned long previousMillis = 0;
long OnTime = 25000; // milliseconds of on-time //25000=25s
Adafruit_NeoPixel strip = Adafruit_NeoPixel(totalLEDs, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup()
{
strip.begin();
Serial.begin(9600);
strip.show(); // Initialize all pixels to 'off'
}
void loop()
{
if (digitalRead(8) == HIGH && leds==false && kontakt == false) //Avto Odklenjen
{
currentTime = millis();
if (currentTime<25000)
{
Serial.println("Avto odklenjen, Luci so prizgane");
rgbFadeIn(255, 255, 255, ledFadeinTime); // Bela
}
if (currentTime>25000)
{
Serial.println("Avto timeout");
rgbFadeout(255, 255, 255, ledFadeoutTime); // Bela
}
}
if (digitalRead(9) == HIGH && leds==true) //Avto Zaklenjen
{
Serial.println("Avto zaklenjen luci so ugasjene");
rgbFadeout(255, 255, 255, ledFadeoutTime); // Bela
}
if(digitalRead(6) == HIGH && leds == true && kontakt==false) //Kontakt
{
Serial.println("Kontankt je dan in luci so ugasnjene");
rgbFadeout(255, 255, 255, ledFadeoutTime);
kontakt == true;
}
if(digitalRead(6) == LOW && leds == false && kontakt==true) // Konatkt off
{
Serial.println("Kontakt je odvzet luci so ugasnjene");
rgbFadeIn(255, 255, 255, ledFadeinTime);
kontakt == false;
}
/*
if(leds && !kontakt && (currentMillis - previousMillis >= OnTime)) //Timeout
{
Serial.println("Luci so ugasnjene, predolgo ni bilo odziva :)");
rgbFadeout(255, 255, 255, ledFadeoutTime);
previousMillis = currentMillis;
}*/
}
void rgbFadeIn(uint8_t red, uint8_t green, uint8_t blue, uint8_t wait)
{
for(uint8_t b = 0; b <255; b++)
{
for(uint8_t i=0; i < strip.numPixels(); i++)
{
strip.setPixelColor(i, red * b/255, green * b/255, blue * b/255);
}
leds=true;
delay(wait);
strip.show();
}
}
void rgbFadeout(uint8_t red, uint8_t green, uint8_t blue, uint8_t wait)
{
for(uint8_t b=255; b > 0; b--)
{
for(uint8_t i = 0; i < strip.numPixels(); i++)
{
strip.setPixelColor(i, red * b/255, green * b/255, blue * b/255);
}
leds=false;
delay(wait);
strip.show();
}
strip.clear();
strip.show();
}