Washing Machine Countdown Timer - Arduino

by sjowett in Circuits > Arduino

31510 Views, 46 Favorites, 0 Comments

Washing Machine Countdown Timer - Arduino

Washing machine timer demo - Arduino

Hello, and welcome to my instructable for a washing machine countdown timer. The timer is operated with the very popular Arduino micro controller. See here for more information. Arduino Home Page

Aim

The aim of this project is to be able to delay the start of the washing machine by a few hours. This is to provide a cost saving and a convenience.

Purpose

1) To be able to take advantage of off peak electricity.

The electricity supply to my home is via a "Time of Use" or ToU meter. This means that I am charged in 3 different bands which are "Peak", "Shoulder" and "off Peak" The details are as follows:

Peak = 2pm to 8pm Mon-Fri 51c/kWh

Shoulder = 7am-2pm & 8pm to 10pm Mon-Fri & 7am to 10pm weekends 20/kWh

Off Peak = all other times 11/kWh

These are prices effective from 15th Sept 2014 for Origin Energy supplied via AusGrid. The prices are in Australian cents and include tax.

As you can see it is considerably more expensive to use "Peak" electricity as opposed to "Off Peak". This project is fairly useless if you are still on the old style of 'whirling disc' single tariff meters. However, each year there are less and less of those types and ToU metering will become ubiquitous over time. FYI and comparison if you are still on an old style meter then the current tariff is 25c/kWh all day every day.

2) To be able a load of washing to be completed by the time I get up in the morning.

Rather that having the wet clothes sitting in the washing machine for several hours, a delay timer allows the machine to come on, say at 5am and be finished by the time your up.

Whilst my instructable has been applied to the machine that I own (a Miele W310) I believe that many modern electronic machines rely on a 'start' button to energise the machine programme so it should be transportable to your own washing machine with a few modifications.

Please watch the video to show how it works in practice. Comments and advice are always welcome.

The Unmodified Washing Machine

53f5f0f4dbf3ec2bd6000056.jpeg

Here is the unmodified 'before' photo!

My machine is a Miele Novotronic W310. It is about 12 years old so is well out of warranty! I was worried about 'frying' a perfectly good machine and would urge you to take caution if you decide on a similar conversion of your own machine.

The documentation says it uses 0.55kWh for a standard 40DegC cotton wash. This wash takes just under 2hours to run. If you do a more energy intensive 60DegC wash it is 1.00kWh and 1.75kWh for a 95Deg wash.

Safety

Mains Voltage.jpg
240VAC1.jpg

Mains electricity is dangerous....period

This Instructable concerns modifications to a washing machine powered off the main AC supply. Please do not attempt any modification of you are not confident and or competent!

However, having said this it should be possible to modify many machines without as much interfacing as I have described here. Essentially you could make your own battery powered control box and simply "parallel in" to the start button.

To be safe, always remove power before going inside such a machine. If you need to test the main board as I did then take your time and think carefully about what you are doing before doing it.

Tools

Tools.jpg

The tools and skills required to take on this project are:

Tools

1) Torx bit (for getting into my Miele washing machine)

2) Soldering iron and wire preparation tools.

3) Multimeter

3) PC with Arduino IDE software on it.

Programming skills - not really required if you just download my pre prepared program. However the more familiar you are with Arduino the easier this instructable will be to understand.

Parts Required

Parts required are as follows:

1) Arduino or Arduino compatible micro controller. I used a Leostick from Freetronics I think most boards would run this project.

Freetronics Leostick

It is the 1st time I've used this product and I like the idea it has a piezo buzzer already installed on the board. I picked one up from the Sydney maker faire last Saturday.

If you really want to keep costs down you could try making your own clone by following the instructions here:

Standalone Arduino

Freetronics also sell the ATmega controller (with bootloader) as a separate leaded chip.

Freetronics ATMega MCU

2) Reed Relay

I used a tiny reed relay to 'parallel in' to the start switch. This ensures that from an electrical perspective I am not altering the function of the start button, I am merely duplicating it. The relay has a 500Ohm coil so should draw 5/500 Amps = 0.01A = 10mA which is fine for an Arduino output.

Attached is the manufacturers pdf and here is where I bought it.

Jaycar reed relay

3) 7805 Voltage regulator

To provide a 5VDC supply for the project. See attached data sheet and the following link to Jaycar.

Jaycar 7805 Regulator

4) A 7 segment display (including a dot/decimal point) also bought from Jaycar.

Jaycar 7 segment display

5) Capacitors

1 x 100nf monolithic

1 x 1uF electrolytic

these smooth out the input and output of the voltage regulator.

5) Resistors

1 x 330Ohm for the 7 segment common cathode display

2 x 10kOhm for each of the 2 push buttons to 'pull' the inputs to ground.

Miscellaneous items.

Small perforated PCB

Solder

Epoxy - Araldite

Wire - various colours

Take a Break....

map-7.jpg
IMG_0038.JPG
LHI Sunset.JPG

Ok so this step is NOTHING to do with the project and you can skip over it.....

....but I thought I'd just let you know where I've been recently.....The beautiful Lord Howe Island. The island is 700km off the Australian NSW coast and if you ever in this part of the world its well worth a visit.

Here are a couple of links if you want to see more details....

http://www.visitnsw.com/destinations/lord-howe-isl...

http://en.wikipedia.org/wiki/Lord_Howe_Island

..and the best place to stay..

http://www.pinetrees.com.au/

Getting Into the Machine

DSC00073.JPG
DSC00071.JPG
DSC00072.JPG
DSC00070.JPG

I firstly need to get into the machine to make an assessment to see:

1) How accessible the start push button was and if I could solder some connections so as to piggy back on it

2) Whether the display and push buttons and/or the control board could be fitted into the machine or whether I would need to add a separate box on the outside of the machine

In my case the Miele is easy to get into.

1) Just remove/pry the plastic caps covering 2 torx screws 1 on each side of the machine. Fully remove both torx screws

2) The whole lid then hinges up and is removable (no more screws to remove)

Remove Front Panel

DSC00077.JPG
DSC00078.JPG

1) Grasp selector knob and pull.

2) The front panel can now be pried off using a small flat blade screwdriver. Start at the top right hand side as shown

Its Tight But......

DSC00027.JPG

It's is tight but I think there is just about enough room to get the all the necessary items into the machine.

1) There seems to be space above the start button for the display and the push buttons.

2) Also there is space behind the control panel to mount a small home made PCB.

Remove the Main PCB

DSC00029.JPG
DSC00028.JPG
DSC00041.JPG
DSC00030.JPG

Remove the main PCB by removing the 2 torx screws.

Now disconnect and unravel the various wire connections

The PCB can now be released from its plastic cage.

Oh gosh! Now the machine is in bits! What to do next?

The Start Push Button

DSC00033.JPG
DSC00036.JPG

Looking at the washing machine printed circuit board (PCB) the "Start" push button is located in the bottom left hand corner. It is an easy task to 'parallel in' to this button with a couple of wires soldered onto the surface mounted pads.

DC Power for the Arduino

DSC00032.JPG
DSC00034.JPG

Somehow I need to power the Arduino and its associated parts. If the project were to sited outside the machine I could either use a wall wart or possibly a battery but as I'm aiming to get it all in the machine I am going to attempt to find a useful supply from the washing machine itself.

To do this I took a look at the PCB and made an assessment of where I though there should be DC power. I then temporarily reconnected the cables, switched the machine on and used a multimeter. I found 13vDC on the pads indicated in the picture.

NB: There is a risk here of really mucking things up. I'm not the Miele designer of the board so I am taking a gamble that siphoning off a few mA is not going to overload the original board. See my later steps where I try to quantify the additional load.

Prepare the Front Panel and Buttons

DSC00037.JPG
DSC00031.JPG
DSC00039.JPG
DSC00040.JPG

Having decided to integrate the timer into the front panel I prepared the front panel by drilling 2 holes for the buttons and clearing a window for the 7 segment display.

The front panel is a strip of polycarbonate (or something very similar) The decals are printed on the reverse and then an application of white paint provides an opaque background. If you rub the white paint off a 'window' can be made in the panel. I did this as carefully as I could but the results are not perfect. The technique I used was as follows:

1) Mark out the position and shape of the 7 segment display on the back.

2) Gently scrape the paint of the back of the polycarbonate to reveal a clear 'window'. (Use a scalpel or a section of hobby knife blade).

3) Use 1200 grit emery then "Brasso" to polish the window. Brasso is quite abrasive but it does produce a nice optically clear window if done well. Brasso description

4) Epoxy (I used Araldite quick set) the 7 segment display in position over the window

5) Spray paint the surrounds of the 7 segment display (my window ended up being too big - so I had to include this step).

6) Epoxy the 2 buttons in place.

7) Wire up the 7 segment display and 2 push buttons (I used a 14 way ribbon, 10 for the 7 segment display and 2 each for the switches).

8) Reassemble the washing machine PCB into its plastic cage and cover. Ensure the wires are long enough to feed out to the new Arduino controller board.

Make the Arduino PCB

Washing Machine Timer_schem.jpg
DSC00043.JPG
DSC00045.JPG
DSC00046.JPG
DSC00048.JPG

I have shown a circuit diagram and a few photos of the assembly of the components onto a small piece of perforated PCB board.

The Freetronics Leostick is mounted using its ICSP header (which I don't need to use). You just need to make sure that that in doing this the pins are not shorted together. The USB section overhangs the board to help connection when inside the machine (just in case I want to update the software at some time). The other components were located fairly randomly!

Add Jumper Wires

DSC00053.JPG
DSC00051.JPG

I used a combination of jumper wires and soldered joints to give the flexibility of making pin changes where required.

2 capacitors were included on the input and output of the voltage regulator. These should smooth out any fluctuations in voltage.

The Arduino Program

DSC00057.JPG

Here I attach the Arduino program.

I have commented the program extensively so encourage you to look at the code directly to see what is happening. I have also incorporated messages to be posted @9600baud to the serial window. These messages are not actually needed for the program but I have left them in to help with debugging.

Parts of the program, including the writing to the 7 segment display and to de-bounce the buttons is copied from examples on the Arduino website.

What does it do?

When the machine door is closed and the power is applied the Arduino boots up in a few seconds. The default countdown time is 8Hrs and the countdown timer starts immediately. IE: if I load the washing machine at 9pm then it will start at 5am.

At any time the 'up' or 'down' buttons can be pressed to increase or decrease the number of hours 1 at a time (up to a maximum of 19 hours).

If both buttons are pressed simultaneously the timer zeros out and the signal to start the machine is initiated. The reason I added this was to help with commissioning - I did not want to have to wait around for hours to see if it all works!

What it doesn't do?

The washing machines 'start' button flashes as normal and can be pressed manually. The countdown timer is an additional function and in now way alters the original operation of the machine.

To summarise the I/O

Digital pins 2-9 are for the 7 segment display as follows:

Digital Pin 2 output 'a' on 7 segment display

Digital Pin 3 output for 'b' on 7 segment display

Digital Pin 4 output for 'c' on 7 segment display

Digital Pin 5 output for 'd' on 7 segment display

Digital Pin 6 output for 'e' on 7 segment display

Digital Pin 7 output for 'f' on 7 segment display

Digital Pin 8 output for 'g' on 7 segment display

Digital Pin 9 output for '.' on 7 segment display

Digital Pin 10 output for the start up relay

(PIN 11 is connected on the Leostick to the piezbuzzer)

Analog Pin A0 input for the "up" button

Analog Pin A1 input for the "down" button

Checking the Power Used.

DSC00058.JPG

When I had completed the programming I checked how much power the whole set up was drawing. I did this using a plug in USB power checker. Answer ~63mA. This made me more confident that tapping into the washing machines DC supply would not add much of an overhead.

To minimise the minor spike when the reed relay is energised I decided to momentarily switch off the 7 segment display.

See later to confirm the differences in power drawn with and without the timer energised.

Mounting the Finised PCB

DSC00060.JPG

After checking there was sufficient space, I mounted the PCB on 2 short plastic stand off's.

Refit the Panel

DSC00062.JPG
DSC00042.JPG
DSC00067.JPG

Make all the connection and refit the front panel. Its difficult to get a good photograph as there is just enough room!

The Finised Project

53f5ebf4dbf3ec2bd600004f.jpeg
DSC00074.JPG

Here is a view of the completed set up and a close up of the front panel. As I noted earlier the display is not as neat as it could be (particularly around the display) but I will live with it as is I think.

If you don't look too close it could be taken as an original fitment ;)

Overall Power Consupmtion Change

DSC00068.JPG
DSC00069.JPG

This is a repeat but confirmatory check to see what change adding the Arduino control board has added. The 1st is without and the second is including the board. As you can see the difference is 67mA which is very close to the 63mA measured earlier. The difference is due to the fact that I'm now including the 7805 voltage regulator efficiency. Also, at these low levels the accuracy of the measurement equipment will be contributing to the results.

Conclusions and Ideas

4655623347_222804_washboardjpg_xlarge_xlarge.gif

Well if your washing machine is this old it's time to get it updated!

I've been using the timer now for a week or so and it is proving quite useful. Perhaps you have an idea on where you could use a delay timer on another item of domestic equipment?

Let me know what you think....