Difference between revisions of "Microcontrollers for Beginners"

From OpenCircuits
Jump to navigation Jump to search
Line 61: Line 61:
 
*[http://forum.allaboutcircuits.com/showthread.php?t=21358 Which uC (Microcontroller)? - discussion]
 
*[http://forum.allaboutcircuits.com/showthread.php?t=21358 Which uC (Microcontroller)? - discussion]
 
*[http://www.instructables.com/id/How-to-choose-a-MicroController/ How to choose a MicroController]
 
*[http://www.instructables.com/id/How-to-choose-a-MicroController/ How to choose a MicroController]
 
+
*[http://todbot.com/blog/2006/09/25/arduino-the-basic-stamp-killer/Arduino, the Basic Stamp killer]
 
 
  
 
[[Category:Microcontroller]][[Category:Arduino]]
 
[[Category:Microcontroller]][[Category:Arduino]]

Revision as of 19:18, 27 September 2009

Assumptions

You:

  • Do not have a lot of money
  • Do not have a lot of electronics gear or experience.
  • Do not have a lot of programming experience.
  • Do want quick gratification.
  • Do not want to do really fancy stuff right off the bat.
  • Do not want to make a lot of decisions befor you can get down to work.

Use the Arduino

Use the Arduino Because:

  • It is a development board and a development environment.
  • It is inexpensive.
  • There is a broad amount of activity on the web, and a lot aimed at non technical users.
  • It and its software ( including a full development environment) is free, maintained, and open source.
  • There is a lot of library support for common tasks.
  • You do not even need a programmer, comes with a serial bootloader.
  • There are a bunch of "Shields" available as add ons: Shields Stuff to stick on your arduino!
  • Making this one choice saves you from a bunch of other questions. If you choose a PIC you still have to decide: which PIC what board or circuit, crystal or resonator, which language, which compiler for the language, which hardware programmer?
  • This answer is a little bit of a cheat because it does not recommend a microcontroller, it it a development board and a development environment. But that is a powerful choice for a beginner, it does an end run around a bunch of possible problems.

Arduino Limitation and Why they Do Not Matter

  • Even with the Arduino there are choice of which one to get. But it is hard to make a really big mistake, and the info. on each choice is pretty available and easy to understand.
  • The development environment does not include a simulator. Lots of times simulators are not useful because of the dependence on external events and the limited and difficult use of "stimulus files". Generally simulator are not really easy to use. But it would be nice to have one.

( needs more work )

Use Something Else

If the assumptions do not apply to you, or you have some special requirements then:

At least use a development Board

You are ready to go at almost the cost of components, you can get a kit or prebuilt. Some of these are:

  • USB Bitwacker
  • PIC Kit 2 or clone
  • Insert your favorite here.

Use a high level language

The best language may be C: this is written about the PIC but applies to other processors as well Use C for PIC Programming!

but almost any is better than assembler -- this is despite what the hard core says.

Down to the Metal

Lots of people like the PIC. I like the PIC. One of the great things about the PIC is that it is so popular. That means lots of code on the web, lots of programmers, languages.... There are also lots of different model PIC. That means you can buy just the right size PIC and not even pay 50 cents to much. And you can pay in the range of 50 cents for the chip. This can matter a lot when you are making a few thousand of your circuits. You can fine tune assembly language for the chip, design your own circuit board. But it is a not quick way to get results. If this approach interests you then consider the PIC. You can also buy the microcontroller on its own and work in a way similar to the PIC. And of course there are other families of microcontrollers. Move in this direction when and if you hit the limitations of the Arduino.

Room for Opposing Views

If you do not agree with the above, add your comments here or add a link to a new page to explain your opinion. Please do not re-edit my views ( but you may edit to strengthen the argument).

Other