why arduino over PIC? Why PIC over arduino?

Discussion in 'Embedded Systems and Microcontrollers' started by Steve C, Jun 4, 2009.

  1. Steve C

    Thread Starter Active Member

    Nov 29, 2008
    86
    0
    Hello,

    I'm hoping for a compare and contrast. I'm no stranger to a soldering iron, have a nice collection of 555's and various transistors, make my own circuits, etc. My applications almost always involve Input/output control to integrate certain devices with other devices such as power window behavior modification or remote start integration. (95% automotive applications)

    I'm no electrical engineer though.

    It is soon time to begin experimenting with microcontrollers to make more sophisticated devices. I can go either the PIC direction, or the arduino direction. As far as I can tell, the differences are:

    PIC - cheaper
    arduino - easier

    Where I almost have to do no circuit design or even construction with the arduino, and no programming more complex than I'd have to do for an HP calculator.

    Not sure what is involved programming a PIC compared to arduino, but the chip cost is a couple bucks (after programmer costs) which is pretty nice. widely available, I can buy PIC chips locally in a pinch, which which I can not do with arduino.

    Are there any other advantages or disadvantages to either choice besides what I've outlined already? I'm leaning toward arduino at the moment because it seems far more user friendly. But at $19 plus shipping per circuit plus a prototyping arduino for testing, that's kind of a drag! especially if I can get equivalent performance for $5 a pop plus an extra few hours of reading...
     
  2. thingmaker3

    Retired Moderator

    May 16, 2005
    5,072
    6
    Last time I checked, the Arduino was a PIC. The bootloader is what makes it an Arduino.

    You can make a bare-bones Arduino board, program your separately purchased Arduino DIP chips (PIC chips with the bootloader on board) and then drop them into whatever circuit you made for them.
     
  3. Razor Concepts

    Active Member

    Oct 7, 2008
    212
    1
    Arduinos are based off of AVRs, not PIC.

    Not sure how PIC is cheaper... usually to just start off you will need a PIC KIT programmer. With Arduino you get a nice development board, plus on-board USB bootloading so no external programmer is required.
     
  4. thingmaker3

    Retired Moderator

    May 16, 2005
    5,072
    6
    The Arduino chip is the Atmega 168, is it not? Indeed, not a PIC. Mea culpa.

    PIC programmers can be had for fifty bucks or less.

    I humbly submit the "development board" is hyperbole. A breadboard would work even better for "development."

    The serial to USB chip is also available separately.
     
  5. SgtWookie

    Expert

    Jul 17, 2007
    22,182
    1,728
    No, the Arduino uses the Atmel ATMega168 or ATMega8.

    You could go Atmel AVR C code after you run out of capabilities with the Arduino code.

    It really depends upon what you want to do. If you're just experimenting with a few projects and not planning on putting them into production, yet want to keep things pretty easy, the Arduino just might be the way to go.

    But if you're thinking of taking something into production, cost will be a major factor.

    I've heard nice things about Atmel's products; like the architecture between their various offerrings is highly similar, which makes code pretty transportable.

    Microchip's line of PIC uC's is practically bewilderingly large, and the architecture between lines changes. This can be a hassle if you're trying to transport code from one architecture to another.

    However, some of the newer PICs are both very cheap and very capable. Have a look at the PIC16F887; if you buy a PICkit 2 Debug Express kit (about $50), it comes with one mounted on a demo board. Lots of I/O pins, and a built-in clock that runs from around 250kHz to 4MHz, software selectable. If you need faster, you can use an external clock up to 20MHz.
    http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023805
    The PIC16F887 runs around $2.20 depending upon temp options and how many you're buying at once.

    It's a subjective decision.

    To make things easier, detail exactly what you need to do with your project.

    Then your processor selection will be much easier; if you've included enough details about your project, you'll know just how many I/O pins are required, clock speed, any ADC/DAC capabilities, communications options, etc.

    PICs can be programmed in Assembler or C. Other vendors are supporting PICs with different flavors of C, Pascal and Basic. Take your pick.
     
    Last edited: Jun 5, 2009
  6. Zenock

    Active Member

    Jun 1, 2009
    36
    1
    I've never used the Arduino or the Atmega so I can't speak to it, it may very well be much better than a PIC.

    However, I have used PIC and love it. I bought a programmer for around $40 but have since built two programmers for under 12 dollars each. Further more, I have sampled 20 + PICs over the years from Microchip simply by going out to their web site and filling out a form. Bam free PIC chip shows up in the mail.

    I have found all the PIC chips very easy to program both in C and in Assembly. But having never used the other maybe its easier. I find an automobile with a standard transmission extremely easy to drive so I figure it's about the same thing. Sure theoretically an automatic is easier but once you learn to drive a standard the difference is negligable.

    Z

    Edit... Actually I find an automatic more difficult confuse the heck out of me. I mean what are the other gears for? Does anyone else use anything other than Park, Drive, Neutral, and Reverse?
     
    Last edited: Jun 5, 2009
    bobcart likes this.
  7. John Luciani

    Active Member

    Apr 3, 2007
    477
    0
    The Arduino is a bootloader and a high-level library. You burn the bootloader onto
    Atmel chip -- usually an ATmega168 or ATmega328. The chips are around $3 and
    available at distributors.

    For an Arduino programming is done through the UART using an RS232 to
    USB converter. The expensive boards will add an FTDI USB converter IC
    to the board. The lower cost boards will add a header for an FTDI USB
    converter cable.

    You don't need the Arduino bootloader and tools to use the ATmega168. You
    can use the avr-gcc compiler and an Amel programmer (I use the AVRISPMKII).
    If you just use the chip and a couple of passive components you will be in
    the $4 - $5 range. One of the lower cost boards will put you in the $10 range.

    (* jcl *)
     
  8. kammenos

    Active Member

    Aug 3, 2008
    127
    0
    Is it really true that with arduino someone can do whatever with assembly or C could do? Thinking also in terms of memory space
     
  9. Steve C

    Thread Starter Active Member

    Nov 29, 2008
    86
    0
    Thanks guys. Sounds like the arduino is at the minimum the right starting point, with the choice to change over to PIC if the need arises. Assuming a programmer cost of $50, I need to make three microcontroller projects just to break even buying $20 arduino kits. I'm not sure how far I'll be going with the micros.

    The only project I have a need a microcontroller for is an intelligent timer. To control an output sequence with three outputs that must switch in a particular sequence but must be intelligent to know how to back out of mid-sequence should the position of a three position rotary switch change. This (besides blinking an LED) will be my starter project. And represents about the level of complexity projects I will be building.

    With one exception, my ambition for most complex project would be to interface the LCD from a car CD player (basically a multi-digit 7 segment LCD) to an OEM LCD which is an 11 digit non 7 segment LCD, but that project is so far out I may as well be an apprentice carpenter buying his first jigsaw dreaming of building an exotic hardwood china hutch. Not a project for this quarter. Or next quarter.

    definitely not looking to go any farther than that. Truly, my ambitions all lie in IO control and integrations.

    Anyways, I was looking at $20 micro arduinos and $10 USB programmer boards till I found this site: http://spiffie.org/kits/stickduino/. At $21 shipped for a complete board, I couldn't pass that up. I can breadboard on the iDuino and make complete projects with the stickduino.
     
  10. mindmapper

    Active Member

    Aug 17, 2008
    34
    0
    The difference is about the same as the difference between using different C-compilers. Of course the bootloader take some space in memory. If you do a lot of developing, it would be better to use a programmer with the AVR-mcu instead.

    The main advantage of the arduino is the ease of use for the beginner. By spending a small amount of money, you're on the mainroad of learning one of the bigger families of mcu's.
     
  11. Razor Concepts

    Active Member

    Oct 7, 2008
    212
    1
    Also you can code "true c" style in the Arduino software, using WinAVR's standard C code. So you still get to program in true c, but also you have nice features such as OOP.
     
  12. kammenos

    Active Member

    Aug 3, 2008
    127
    0
    I program in assembly many years and i am good at it. Would there be any reason to start with arduino, or it would be nonsense?
     
Loading...