A teaching model of a washing machine controlled by an ATmega328P microcontroller (Arduino Uno). It offers 6 typical wash programs; the selected program is highlighted by its own LED, and the machine runs a full cycle: fill → wash with heating → rinse → spin → done.
Buttons and indication. 6 program buttons are read as a resistor «ladder» on a single analog input A0: each press produces a distinct voltage and analogRead() identifies the program — this fits the ATmega328P pin count. Beside every button is an LED for the chosen program (D0…D5). Separate LEDs show the current phase: wash, rinse, spin and heating.
Displays. Two seven-segment displays count down the time remaining (in minutes), and two more show the heating temperature (°C). All four digits are driven through ready-made ICs: parallel latch registers (74×75 style) and BCD-to-7-segment decoders (CD4511 / 74×47 style). The controller puts a nibble on a shared 4-bit data bus (D10…D13) and a strobe (A1…A5) latches the target digit — so four displays and the LED panel are driven with few pins.
Power stage. The drum is turned by a powerful three-phase induction motor (its contactor is three solid-state switches, D6); water is pumped out by a single-phase pump (D7). The water inlet valve and the electromagnetic door-lock are coils (inductors) energised through switches (D8 and D9). The lock keeps the door shut for the whole cycle and releases it when finished.
How to use. While the model runs, press any program button: its LED lights, the machine locks the door, fills with water, starts washing with heating (the temperature rises on the display), then rinses, spins and stops — the time display counts down throughout. The setup()/loop() sketch is shown and editable below the schematic.
This page is a utility for simulating washing machine on atmega328p — 6 wash programs, time and temperature displays online with specified initial values.
Make your changes if necessary










Comments