Close

Logic board

A project log for Borg Washing Machine

Homemade PLC-like electronic replacement for the mechanical timer in my washing machine.

jose-ignacio-romeroJose Ignacio Romero 02/08/2015 at 18:070 Comments

[January 1, 2015]

The brains of this washing machine are built around a PIC16F887 microcontroller with a 20MHz crystal. Since I'll probably be modifying this board often I didn't bother designing a PCB and used perfboard instead.

Power comes from the main 24VDC rail and goes through a USB car charger's circuit board, which steps it down to a clean 5 volts to power the µC. The 24V power also feeds the pull-up resistors of the input interface:

This circuit is repeated for each of the 8 inputs, it's basically a voltage divider to bring 24v signals down to 0-5V for the PIC's input ports. The 9v1 Zener diode rejects all noise under 9V, preventing false transitions in the output. I copied this design from a 1980's vintage Italian PLC I worked a lot with in a previous job. The circuit proved fairly reliable for the last 30 years under far less than ideal conditions, so I thought it was worth using for this application. I feel the Zener was really important in that particular circuit because it used TTL technology, which has a much lower noise margin around 0v than CMOS. Still, I think it does help when there's a lot of electrical noise around.

The outputs are just wired to a ULN2003 array of 7 NPN transistors, which drive the relays in the power boards.

I wired an ICSP header for ease of reprogramming, and the µC still has many free IO pins, including the UART, which I have reserved for future features (Maybe "Internet of Things", remote control panel, etc.)

Discussions