I started, as with many others programming the Arduino. This post is more about moving away from Arduino towards PIC and the reasons for doing so. But don’t get me wrong, Arduino is a great platform and very powerful.
Firstly PIC and Atmel are now the same company, Microchip, who have always develope the PIC chips and recently bought out Atmel. One of my decisions to switch was the thought about the future of Atmel and would Arduino maybe one day use PIC instead of AVR.
I am the type of programmer that likes to know as much as possible what is going on, I found myself very early on learning how to directly manipulate the registers with AVR on Arduino and trying as much as possible to move away from the libraries.
As a beginner the libraries are fantastic, you can download programs and easily upload them to your board and modify for your own needs, it is so much easier to program Arduino than PIC at this stage.
But I soon found myself wanting to make my own PCBs and taking the AVR chip off the Arduino board and then wanting to expand to the 40 pin chips (ATMega 644) and programming them via the SPI interface with the USBAsp.
PIC is similar to this with the PICKit.
Programming PIC vs Arduino
The programming environment for Arduino is easy, USB to your board, upload the sketch, done.
Alot of work is done via the Arduino platform that you don’t really need to worry about at an early stage.
With PIC you have to do everything, setup the oscillator registers, all the configuration bits. But this is what I like, more deeper control into the microcontroller.
But once you’ve done this a few times, it’s quite straight forward to look at the datasheet and set the registers, all the config bits are done in MPLAB X.
Why I move to PIC
The simple reason I moved to PIC is the greater choice of microcontroller available. You can use the parametric search and find the chip that’s perfect for your job. A 28 pin with 2 UARTS, the ATMEGA 328 only has one, same pin count.
And of course the greater feeling of control with the software and programming.
I feel personally PIC is a more professional platform.