Page 72 of 74

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603, div. småf

Posted: Tue 08 Jul, 2014 09:20
by aroncbds
Håkan J wrote:Snyggt jobbat ! Vore kul att se den live nångång !

Misstänker att du även tvättat/gjort rent själva bilbältet.
Mina är lite solkiga och har försökt få dom helt rena med div produkter utan fullgott resultat
så kanske du sitter inne med nåt bra tips ? Tas tacksamt emot !
Tackar! :-) Ja, det vore kul att fixa en träff någon gång! :-) Vore också kul att se din vagn live!
Vad gäller bältet så har jag faktiskt inte behövt tvätta de då de var i mycket fint skick (köpte de från en välvårdad, men krockad/skrotad 250CE). Så jag har tyvärr inte så mycket tips att komma med på den fronten. Möjligtvis om man kan demontera bältesrullen (vilket jag tvivlar starkt på, då det är en säkerhetsdetalj) och tvätta bältet i tvättmaskinen?

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603, div. småf

Posted: Tue 08 Jul, 2014 09:23
by aroncbds
Mattileinen wrote:Får du måla på grenrören emellanåt?
Verkar som färgen inte tål temperaturen riktigt? :-)
Nja, egentligen ska färgen tåla det enligt beskrivningen, men problemet i mitt fall var att jag inte hade tillfälle att varmköra motorn när jag lade på färgen första gången (motorn var ju demonterad). Står på burken att man måste värma upp den lackade detaljen till 250C i någon h, vilket jag gjorde nu sist, så det ska bli spännande att se om färgen håller bättre den här gången. :-)

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603, div. småf

Posted: Fri 03 Oct, 2014 15:39
by aroncbds
Hej på er!

Jag har äntligen hunnit bygga klart styrboxen för regleringen av kylfläkten, med mera. Såhär såg det ut vid sluttestningen innan jag monterade in kretsen i sin kapsling.

Image

Image

Image

Image

Kan vara smidigt med en liten anslutningsförteckning när elektronikprojekt som denna har vilat en tid! :-)
Image

Sluttestar kretsen efter monteringen i kapslingen.
Image

Ser ut att funka bra! :-)
Image

Nu är det bara att montera styrboxen i bilen för att sluttesta/kalibrera kretsen på plats! :-)

Forsättning följer (inklusive programkod)!

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603, styrboxby

Posted: Sat 04 Oct, 2014 12:26
by DieselThomsen
Så fruktansvärt härligt nördigt!! :-D

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603, styrboxby

Posted: Sun 05 Oct, 2014 17:10
by huckstar
Du är en gud på elektronik! :shock:

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603, styrboxby

Posted: Sun 05 Oct, 2014 17:29
by Farmarn
Kör du fläkten med pulsbreddsstyrning eller är det någon annan form av styrning?

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603, styrboxby

Posted: Mon 06 Oct, 2014 21:19
by MB_Star
Sånt där larm har ja plockat ur en bil för inte så länge sen =)
ganska rejäl låda.

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603, styrboxby

Posted: Tue 07 Oct, 2014 13:09
by aroncbds
Haha, tack för era kommentarer! :lol:

Nej, det är ingen pulsbreddsstyrning, utan bara på/av vid ett gränsvärde. Hade planer på PWM innan, men har alldeles för många projekt på gång, så denna lösning får duga till version 1.0. :-)

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603, styrboxby

Posted: Tue 07 Oct, 2014 13:10
by aroncbds
MB_Star wrote:Sånt där larm har ja plockat ur en bil för inte så länge sen =)
ganska rejäl låda.
Japp, jag återanvände lådan och gjorde en ny gavel till den. Ganska rejäl sak... :-)

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603, styrboxby

Posted: Tue 07 Oct, 2014 22:30
by Farmarn
aroncbds wrote:Haha, tack för era kommentarer! :lol:

Nej, det är ingen pulsbreddsstyrning, utan bara på/av vid ett gränsvärde. Hade planer på PWM innan, men har alldeles för många projekt på gång, så denna lösning får duga till version 1.0. :-)


Okej. Kändes ambitöst med styrboxbygge istället för typ en termostat och ett relä :wink:

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603, styrboxby

Posted: Wed 08 Oct, 2014 08:16
by aroncbds
Hej på er!

Farmarn wrote:
aroncbds wrote:Haha, tack för era kommentarer! :lol:

Nej, det är ingen pulsbreddsstyrning, utan bara på/av vid ett gränsvärde. Hade planer på PWM innan, men har alldeles för många projekt på gång, så denna lösning får duga till version 1.0. :-)


Okej. Kändes ambitöst med styrboxbygge istället för typ en termostat och ett relä :wink:
Haha, jo... Men det är kul! :mrgreen:

Nåväl, här kommer källkoden till styroxen, som utlovat! :-)

#include <math.h>
/*
Version: 1.03
- Added startup-test during initial startup

Description:
Arduino-based thermostat with manually-toggled fan-control for my Mercedes-Benz 250CE. Developed
on the Arduino Uno-platform. Intended hardware is Atmel 328PU MCU.

Disclaimer:
THIS CODE IS LICENSED UNDER THE GPL-LICENSE AND MAY BE USED AS IS AS LONG AS THIS SIGNATURE
IS INCLUDED IN ANY DISTRIBUTED COPY OF THE SOFTWARE. THE AUTHOR OF THIS SOFTWARE TAKES NO
GUARANTEE FOR ANY DAMAGE CAUSED DIRECTLY OR INDIRECTLY BY THIS SOFTWARE. ALL USE OF THIS
SOFTWARE IS DONE AT YOUR OWN RISK.

(C) 2013 ARON K - aroncbds@gmail.com
*/

// Inputs
#define FanButton 4 // Fan-timer startbutton
#define ThermistorPIN 5 // Engine-temperature (A5)

// Outputs
#define LED_Heartbeat 13
#define FanPIN 3 // f-n control (output)

// Engine temperature treshold values (Ohms), calibrated for thermistor from Biltema ("Reservgivare", art. 32-262)
long ENGINE_TEMP_NORMAL = 1600;
long ENGINE_TEMP_CRITICAL = 270; // Approx. 87C

int FanTimerState = 0; // State machine for fan-timer
int SensorState = 0; // State machine for the sensor-polling

// Delays in milliseconds
int FAN_STARTUP_RUNTIME = 3000L; // Run the f-n in three seconds after ignition-key has been turned on
int FAN_MANUAL_TIMEOUT = 30000L;
int ENGINE_TEMPERATURE_POLLING_DELAY = 1000L;

// Timers
long Time[4] = {0L, 0L, 0L, 0L};

boolean fanIsManuallyStarted = false;
boolean DEBUG_MODE = true;

void setup()
{
// Define outputs
pinMode(LED_Heartbeat, OUTPUT);
pinMode(FanPIN, OUTPUT);

// Define input with pullup
pinMode(FanButton, INPUT);
digitalWrite(FanButton, HIGH); // Use internal pullup

// Set initial state of outputs
digitalWrite(LED_Heartbeat, LOW);
digitalWrite(FanPIN, LOW);

// Start serial
if (DEBUG_MODE)
Serial.begin(9600);

// Perform "function-check" for the initial startup
digitalWrite(FanPIN, HIGH);
delay(FAN_STARTUP_RUNTIME);
digitalWrite(FanPIN, LOW);
}

void loop()
{
while (1)
{
//
// Temperature-assessment control
//
switch (SensorState)
{
case 0:
digitalWrite(LED_Heartbeat, LOW);
SetTimer(1, ENGINE_TEMPERATURE_POLLING_DELAY);
SensorState = 1;
break;

case 1:
if (TimerCheck(1)) {
digitalWrite(LED_Heartbeat, HIGH);
SetTimer(1, ENGINE_TEMPERATURE_POLLING_DELAY);
SensorState = 0;

// Check engine-temperature and start the f-n as needed
if (!fanIsManuallyStarted)
pollThermistor();
}
break;
default:
break;
}

//
// Fan-timer control
//
switch (FanTimerState)
{
case 0: // Initial State, done once at power up
if (fanIsManuallyStarted && DEBUG_MODE)
Serial.println("f-n stopping due to timeout. Returning to automatic-operation...");
fanIsManuallyStarted = false;
digitalWrite(FanPIN, LOW);
digitalWrite(LED_Heartbeat, HIGH);
FanTimerState++;
break;

// TODO: Protect the state machine of the timered f-n with a variable (to avoid the polling-procedure interfere with it)

case 1: // Fan-start detection (the button has been pushed)
if (digitalRead(FanButton) == 0) {
fanIsManuallyStarted = true;
digitalWrite(FanPIN, HIGH);
SetTimer(0, FAN_MANUAL_TIMEOUT);
if (DEBUG_MODE)
Serial.println("f-n started by button.");
FanTimerState++;
}
break;
case 2: // Let a few cars pass on main road before we can trigger cars on other road
if (TimerCheck(0)) {
FanTimerState = 0;
}
break;
}
}
}

void pollThermistor()
{
double Temp;
int rawADC = analogRead(ThermistorPIN);
long resistance = ((10240000 / rawADC) - 10000); // R = (1024 * balanceResistor / ADC) - balanceResistor

if (DEBUG_MODE)
{
Serial.print("Resistance: "); Serial.print(resistance); Serial.print("ohms / "); Serial.print("rawADC: "); Serial.print(rawADC); Serial.println();
}

if (resistance < ENGINE_TEMP_CRITICAL)
{
// Engine temperature is above 87C
digitalWrite(FanPIN, HIGH);
if (DEBUG_MODE)
Serial.println("Engine temperature is critical!");
}
else
{
digitalWrite(FanPIN, LOW);
if (DEBUG_MODE)
Serial.println("Engine temperature is OK!");
}
}

//
// Timer-helpers
//
void SetTimer(int tmr, long TimeDelay)
{
if (tmr >= 0 && tmr < 4) {
Time[tmr] = millis() + TimeDelay;
}
}

int TimerCheck(int tmr)
{
if (tmr >= 0 && tmr < 4) {
if (millis() >= Time[tmr]) {
return 1;
}
else {
return 0;
}
}
else {
return -1;
}
}

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603, styrboxby

Posted: Wed 08 Oct, 2014 16:31
by torake
Lägg den på github och länka istället.

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603, styrboxby

Posted: Sat 25 Oct, 2014 23:37
by kentapenta
Om jag skulle försöka förstå detta,
så hade min hjärna blivit överhettad :-D

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603, styrboxby

Posted: Mon 23 Mar, 2015 15:44
by aroncbds
Hej på er!

Nu börjar man bli ordentligt sugen på årets premiärrunda, så bilen åker nog fram de närmaste veckorna. Planen är att göra en storservice och:

- Byta i stort sett alla vätskor
- Få dit styrmodulen för fläkten
- Löda ihop kabelhärvan till skuffbelysningen
- Få dit Becker-radion och en högtalare
- Tvätta & vaxa
- Boka besiktningstid...
- Boka in sig på några av årets MB-träffar! :mrgreen:

Re: W114.022 (250CE) 1972 "3.0-edition" med OM603

Posted: Sat 25 Apr, 2015 20:40
by aroncbds
Hej på er!

I morse blev den besiktigad och redo för sommarens äventyr! Fräsch olja har den också fått under eftermiddagen och så har jag till min förvåning upptäckt att motorkuddarna har sjunkit ihop en aning då oljetråget har kommit nästan i kloss mot främre framvagnsbalken, så jag shimsade in motorns högra sida (i färdriktningen sett). :-)