Code Monkey home page Code Monkey logo

wmcontroller's Introduction

Washing Machine Controller

✨🐾✨ This project aims to design a Control System for Washing Machine using Verilog HDL.

The washing machine controller has the following functionalities:

  • The washing machine has the following states: start, ready, fill water, heat water, wash, rinse, spin and fault.

  • Different time durations are allocated to each mode of operation.

  • Resume washing cycle from the state when:

    🚫 the operation is timed out.

    🚫 the operation is out of balance.

    🚫 motor fails.

System Design

The microcontroller is composed of two blocks:

🔹📍 Finite state machine block (controller)

🔹📍 Timer block


⚪️ Controller

The FSM (controller) block receives some signals from the user, from the timer, and other hardware parts such as the door sensor. FSM block output controls the timer block and other hardware components of the washing machine. The FSM has the following states:

  • START
  • READY
  • FILL WATER
  • HEAT WATER
  • WASH
  • RINSE
  • SPIN
  • FAULT

State transitions take place according to the timing control signals generated by the timer block and inputs given to a particular state. The processing in the next state depends on outputs produced in the previous state.

⚪️ Timer

The timer block generates the correct time periods required for each cycle after it has been reset. The timer block gives the correct time signals once certain count values have been achieved.

Once the washing process starts, the state transitions take place according to the control signals generated by the Timer unit.


How it works

  • Once the coin is inserted, the FSM will go to the READY state. If in READY state the process is canceled, the coin is returned as the washing process has not yet started and the FSM returns to the START state. But once the washing process starts, cancellation results in loss of the coin.

  • The FSM has been designed to handle accidents such as motor failure in the middle of a cycle. The machine goes to READY stage in such situations.

  • The control signal to activate the water intake is generated during both the FILL WATER and RINSE states, as both the operations require a fresh intake of water.

  • In the last state, SPIN is completed, the FSM transits back to START state to take orders for the new wash cycle.

Dependencies

macOS

This project needs Icarus-Verilog and a VCD viewer.

Building on macOS

  1. Icarus-Verilog can be installed via Homebrew : $ brew install icarus-verilog
  2. Download Scansion from here.
  3. Clone the repository.
  4. $ make simulate - compiles design+TB & simulates the verilog design.
  5. $ make display - displays waveforms.

Washing cycle stages

wmcontroller's People

Contributors

yasnakateb avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

krutash

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.