Hel/Halvljus automatik till bilen med Arduino kort.
Hel/Halvljus automatik till bilen med Arduino kort.
Dom ljussensorer som blev tillövers vid regnsensor projektet tänkte jag använda i detta projekt
som går ut på att dom ska känna av omgivande ljus för att aktivera halvljuset.
Byter ut bygeln under reläboxen i motorutrymmet med ett relä och när
halvljuset är av så tänkte jag koppla in en lampa i den bakre delen av blinkersen.
Och den andra funktionen blir automatiskt avbländning av helljuset vid möte.
Så en sensor är riktad framåt och en uppåt som mäter bakgrundsljuset.
Samt en signal in när helljuset är aktivt.
Så just nu kör jag omkring i tunnlar mm. för att se hur stabilt det fungerar.
Jag har hittat en tunnel som verkar påverka allt brutalt så klara man den ska man nog klara
höstmörkret.
Återkommer med lite scheman och bilder mm.
som går ut på att dom ska känna av omgivande ljus för att aktivera halvljuset.
Byter ut bygeln under reläboxen i motorutrymmet med ett relä och när
halvljuset är av så tänkte jag koppla in en lampa i den bakre delen av blinkersen.
Och den andra funktionen blir automatiskt avbländning av helljuset vid möte.
Så en sensor är riktad framåt och en uppåt som mäter bakgrundsljuset.
Samt en signal in när helljuset är aktivt.
Så just nu kör jag omkring i tunnlar mm. för att se hur stabilt det fungerar.
Jag har hittat en tunnel som verkar påverka allt brutalt så klara man den ska man nog klara
höstmörkret.
Återkommer med lite scheman och bilder mm.
Senast redigerad av Timpa 12 augusti 2012, 18:28:15, redigerad totalt 3 gånger.
Re: Hel/Halvljus automatik till bilen med Arduino kort.
Kod: Markera allt
// Testversion utan relän på utgångarna bara dioder som indikerar.
int frontlightPin = 3; // ljussensor ingång
int reflightPin = 4; // refljus sensor ingången
int lightrelayPin = 3; // avbländar helljuset vid möte
int headlightPin = 2; // halvljus på vid mörker
const int numReadings = 30; // antal värden för medelvärdesbildningen
int readings[numReadings]; // the readings from the analog input
int index = 0; // the index of the current reading
int total = 0; // the running total
int lightsensorValue = 0; // variable to store ljussensorn värdet
int refValue = 0; // variable to store ref.sensor value
int headlightIN = 0; // headlight is on or off 12 volt/3 = 4 volt
int lightOn = LOW ; // blir HIGH när halvljuset är aktiverat
int sense = 600 ; // ljus skillnad
int dark = 200 ; // mörker värde
void setup() {
Serial.begin(9600);
pinMode(lightrelayPin, OUTPUT); // avbländnings ljusrelä
pinMode(headlightPin, OUTPUT); // halvljus utgång ON/OFF
for (int thisReading = 0; thisReading < numReadings; thisReading++)
readings[thisReading] = 0;
pinMode(5,OUTPUT);
delay(3000);
digitalWrite(5, HIGH); //test signal
digitalWrite(lightrelayPin,HIGH); //test signal diod
digitalWrite(headlightPin,HIGH); //test signal diod
delay(300);
digitalWrite(5, LOW);
digitalWrite(lightrelayPin,LOW);
digitalWrite(headlightPin,LOW);
}
void loop() {
lightsensorValue = analogRead(frontlightPin); //läser ljusensor värdet
refValue = analogRead(reflightPin); //läser ref.ljusensor värdet
headlightIN = analogRead(5); //läser av om helljuset är på pin 5 analog ingång
//if (headlightIN > 500 && lightsensorValue - sense > refValue) // helljuset är på och ljussensorn ind. mer ljus än ref. sensorn
if (lightsensorValue - sense > refValue)
{
delay(60);
lightsensorValue = analogRead(frontlightPin); //läser ljusensor värdet
refValue = analogRead(reflightPin); //läser ref.ljusensor värdet
if (lightsensorValue - sense > refValue) // bekräftar att ljussensorn ind. mer ljus än ref. sensorn
{
digitalWrite(lightrelayPin,HIGH); // bländar av helljuset
delay(50);
}
}
else {
digitalWrite(lightrelayPin,LOW); // bländar av helljuset
}
//if (headlightIN < 200 && refValue > 400 && lightsensorValue >400)
if (lightOn == LOW && refValue > dark && lightsensorValue > dark)
{
for (int index=0; index < numReadings ; index++)
{
total= total - readings[index]; // subtract the last reading:
readings[index] = analogRead(reflightPin); // add the reading to the total:
delay(10); // delay in between reads for stability
total= total + readings[index]; // advance to the next position in the array:
}
if (index >= numReadings) // if we're at the end of the array...
index = 0; // ...wrap around to the beginning:
refValue = total / numReadings; // calculate the average:
delay(1); // delay in between reads for stability
if (refValue > dark && lightsensorValue > dark) //bekräftar att ref.ljusensor värdet indikerar mörker
{
digitalWrite(headlightPin,HIGH);
delay(50);
lightOn = 1;
}
}
if(lightOn == HIGH && refValue < dark && lightsensorValue < dark)
{
for (int index=0; index < numReadings ; index++)
{
total= total - readings[index]; // subtract the last reading:
readings[index] = analogRead(reflightPin); // add the reading to the total:
delay(10); // delay in between reads for stability
total= total + readings[index]; // advance to the next position in the array:
}
if (index >= numReadings) // if we're at the end of the array...
index = 0; // ...wrap around to the beginning:
refValue = total / numReadings; // calculate the average:
delay(1); // delay in between reads for stability
if (refValue < dark && lightsensorValue < dark)
{
digitalWrite(headlightPin,LOW);
delay(50);
lightOn = 0;
}
}
}
Senast redigerad av Timpa 8 augusti 2012, 13:41:47, redigerad totalt 1 gång.
- Swech
- EF Sponsor
- Inlägg: 4750
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: Hel/Halvljus automatik till bilen med Arduino kort.
Trevligt projekt.
Kör koden inom CODE taggar så blir det lättare att läsa och du får inte skäll
Swech
Kör koden inom CODE taggar så blir det lättare att läsa och du får inte skäll

Swech
Re: Hel/Halvljus automatik till bilen med Arduino kort.
lite OT: Jag har automatisk avbländning på min cadillac från 1964. Fungerar ganska hyfsat, men bländar av för gatbelysning (vilket faktiskt inte är fel) men klarar inte att blända av om man kör ifatt en bil.... jag är mest irriterad på det, så jag har kopplat ur funktionen och bländar av manuellt istället. På min bil sitter ljussensorn på instrumentbrädan, men senare 60-talare har den i grillen, och då ska det visst fungera lite bättre....
EDIT: felstavat...
EDIT: felstavat...
Re: Hel/Halvljus automatik till bilen med Arduino kort.
En bortglömd teknik till idag
Avbländning när man hinner upp en bil kommer nog heller
inte att funka för mig så man får väl jobba lite.
Schema:

Och sensorn:


Avbländning när man hinner upp en bil kommer nog heller
inte att funka för mig så man får väl jobba lite.
Schema:

Och sensorn:

Re: Hel/Halvljus automatik till bilen med Arduino kort.
bortglömd och bortglömd...... cadillac har haft det på både 80 och 90-tals modeller.... det är bara en funktion som inte har använts så mycket i europa.
Jag tror faktiskt att Citroën har haft det på någon modell på 90-talet...
Jag tror faktiskt att Citroën har haft det på någon modell på 90-talet...
Re: Hel/Halvljus automatik till bilen med Arduino kort.
Har du den här smarta kantsten "sensorn" på bilen ? En fjäder "pinne" som sticker ut och skrammlar när man
kommer för nära trottoarkanten. Det är väl en bort glömd funktion utan krånglig elektronik
kommer för nära trottoarkanten. Det är väl en bort glömd funktion utan krånglig elektronik

Re: Hel/Halvljus automatik till bilen med Arduino kort.
Jag tror faktiskt inte det har varit någon orginalutrustning på någon bil. Det är rena eftermarknadsgrejer.
Re: Hel/Halvljus automatik till bilen med Arduino kort.
Eftermarknad och den är ju för att rädda dyra däck och fälgar i första hand. Lite märkligt att det slagit igenom på (oftast amerikanska) veteranbilar men sällan på andra bilar. Är moderna bilar för ljudisolerade så att man inte hör skramlet?
För auto-avbländning behöver man nog nästan bildigenkänning. Hur ska man annars klara att blända av i tid när man möter en lastbil på var sida av ett backkörn?
För auto-avbländning behöver man nog nästan bildigenkänning. Hur ska man annars klara att blända av i tid när man möter en lastbil på var sida av ett backkörn?
Re: Hel/Halvljus automatik till bilen med Arduino kort.
Här i Sverige har vi i regel för låga trotoarkanter för att det skall fungera optimalt... Spröten måste sitta så lågt att dom även skrapar i vid nedfjädring.... Sen råder det ju delade meningar om det är snyggt eller inte 

Re: Hel/Halvljus automatik till bilen med Arduino kort.
Man kanske skulle montera en såndär ofjädrat? 

Re: Hel/Halvljus automatik till bilen med Arduino kort.
Lite skillnad på att repa en fin gammal jänkare än en modern dussinbil 

Re: Hel/Halvljus automatik till bilen med Arduino kort.
Jag hänger inte med... Du behöver bara bläna av när ljuskäglorna kommer, innan dess kan du omöjligt störa mötande lastbil....MiaM skrev:För auto-avbländning behöver man nog nästan bildigenkänning. Hur ska man annars klara att blända av i tid när man möter en lastbil på var sida av ett backkörn?
När jag tog körkort så ansåg teoriläraren att vi i Sverige använder helljus för lite. Man behöver inte blända av långt innan. När DU känner att DU börjar bli besvärad av mötande helljuset, då ska du blända av, ELLER om mötande bländar av, då skall du blända av (för då börjar mötande bli besvärad).
Re: Hel/Halvljus automatik till bilen med Arduino kort.
Lastbilsföraren sitter ju mycket högre upp, så föraren ser dina ljus långt innan du ser lastbilens ljus. Du ser dock reklamloggan och positionsljusen upptill på taket på hytten före du bländar föraren.
Re: Hel/Halvljus automatik till bilen med Arduino kort.
Avbländaren mäter hur mycket ljus som kommer, inte exakt var ljusen sitter, så jag vågar påstå att i just det avseendet så funkar det ganska bra, däremot bländar den av lite mer ofta än vad den behöver, viöket kan vara irriterande, men som sagt: nyare bilar har ljussensorn i fronten på bilen istället för i framrutan som jag har, och då ska det visst funka bättre. Dessutom så har de flesta lastbilar jag möter här omkring extraljus på taket 
