Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Recommended Microcontrollers?

  1. Aug 11, 2008 #1
    Default Recommended Microcontrollers?
    Hey guys,

    Im looking into designing something for a Uni project. What we have in mind is a "Home Automated System". What we are going to do is find a model house (perhaps a doll house) that resembles a real house and design a system that can remotely control door locks, blinds/curtains, lights and heating.

    With the heating we're obviously not going to use a real heater, just something like an LED that shows the user that the "heater" has been switched on.

    My question to you guys is this: What microcontroller would you suggest for this job?

    These are some of the things we will probably need to take into account when choosing our microcontroller:

    * We don't have very much experience at coding assembly language, however we've had a fair bit of experience with coding of C and C++.
    * Cost isn't really much an issue.
    * With the heating, we plan to use a thermistor such as the LM335Z to indicate to the system whether or not the room needs to be heated. So the microcontroller might have to have analogue inputs.
    * We will be using stepper motors for the blinds/curtains.
    * And electromagnets for the door locks
    * We may think about adding in a security feature to the system such as an access pin at some later date.

    Any recommendations for a microcontroller would be greatly appreciated! Something that is easy to use and program would be absolutely ideal!!!

  2. jcsd
  3. Aug 11, 2008 #2


    User Avatar
    Science Advisor
    Homework Helper

    Just a thought
    Having made a blind controller, most stepper motors don't develop enough torque for this function.
    I needed to use a gearhead motor.
    So optical encoding and/or limit switches come to mind.

    Sorry, I'm not familiar enough with current uP selections.
    For ease of use you would want a uP development board, most of which have C or C++.
  4. Aug 11, 2008 #3


    User Avatar
    Science Advisor
    Homework Helper

    A basic stamp (http://www.parallax.com/) would be quickest and easiest.
    But it's programmed in Basic rather than C and not commonly used in industry

    The Atmel AVR is a very popular family with great community support. http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3146

    I haven't bought one yet, but I'm impressed with what you get for the money with this kit http://www.deccancode.com/multiple-micro-support-board.asp [Broken]
    Last edited by a moderator: May 3, 2017
  5. Aug 11, 2008 #4
    There's always the ubiquitous PICs... so many to choose from.

    And "free" downloads of C compilers to suit.
  6. Aug 12, 2008 #5
    Basic stamps are great because coding in them is really easy, AVR's are a very nice option too, but stick to the PIC's they're just really great and efficient.
    I started with the PICkit 2 Debug Express, and don't regret it at all.
    Last edited by a moderator: Apr 23, 2017
  7. Aug 12, 2008 #6
    PICs are ok if you're developing in C.

    The microchip assembler syntax sucks in my opinion.
  8. Aug 13, 2008 #7
    The Basic Stamp is incredibly easy and quick to program. Great for quick proof-of-concept work, but also very limited capabilities. BASIC only.

    PICs are numerous, pretty decent, sort of stuck at hobby-level applications. C compilers available.

    Atmel AVRs are what I would recommend. Capabilities span hobby to industrial usage. Lots of community help. C compilers available.

    Motorola/Freescale 68HC11 is an industry workhorse. Probably more expensive than the other options. C compilers available.
  9. Aug 13, 2008 #8
    8051 is good i think. check it out
  10. Aug 14, 2008 #9
    Well, if you need to do more complex motor control with encoders, A/D's for the temp sensor, code in C, and have enough GPIO do to random stuff (as well as serial interfaces for the planned keypad), you might want to check out a more advanced uP, such as the dsPIC33F from Microchip (the Motor Control (MC) sub family is where you want to look).

    The general class of device you're looking at is a DSC (Digital Signal Controller). A bunch of different companies make them, Atmel, TI, Microchip, etc. Sure, it might be a little overkill, but the extra horsepower will be worth it in prototyping, and you said cost wasn't that big of a factor.
  11. Aug 16, 2008 #10


    User Avatar
    Science Advisor

    These days, Assembly seems passé, what with 10s of MHz clock speeds, oodles of clock cycles to burn, and peripherals handling nearly everything under the sun. I'm a big fan of learning assembler because it gives you a better idea of what happens "under the hood" of your C, or C++ powered project. Then again, that's how I got introduced to microprocessors/controllers, and this may be an instance of propagating abuse. ;-)

    That said, C isn't too far abstracted from assembly, and if you pay attention to the datasheet / reference manual, you can learn a lot (assuming this is for a first project, for instance). I started out using PICs, but they're (at least, the PIC12,14,16,18 families) designed by EEs for EEs, and were not really designed with C in mind. The ATMEL family was designed to be programmed in C right from the git-go (if you go for the high-level language thing).

    The ATMEL 8-bit family offers:
    *GCC standard C (don't underestimate the importance of this) compiler support, with a good (official) free Windows tool chain (AVRStudio) and some decent Linux stuff.
    *(cheap) official programmer (good for nearly the entire line): AVRISP mkII (~$30)
    *not so expensive in-circuit emulator tool: AVR JTAG ICE mkII (~$300)
    *oodles of on-board peripherals (a few even offer USB and ethernet--if this is important, but then, so does the PIC)

    I was going to recommend something with oodles of I/O (e.g. ATmega644P), but then I saw that your project is targeted towards home automation. Not to tell you how to do your project, but give some consideration towards decentralization of your system (e.g. a micro to control a set of blinds), and a good communications system back to your central controller (HINT: don't expect passing of 5V logic and GND to be really reliable in a big network).
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook