Maybe the oldest controversy about microcontrollers:
Which one is better? PIC or AVR?
My answer: decide for yourself!
I will not go into detail about the different architecture, this simply would be too much for here. I’ll compare both from a users point of view what can be directly seen.
Every controller family has its own pros and cons. PICs are older, but are scattered all over the place in old machinery and facilities (Yes, I have seen PLCs running on multiple PICs…), but AVRs took the stage in a blink of an eye (more or less…).
Both systems have good structures and both are programmable in C, for the good old people in assembly too.
There are good kits and boards available for both families, which aren’t expensive at all (e.g. Arduino (AVR) and PICAXE (well, PIC of course)). And both with plenty of documentation and examples.
Both systems have a variety of products with lots of different possible applications. Comparable microcontrollers have more or less the same costs, the same about programmers for both.
And for the PIC-fanboys out there telling me that the PIC architecture is faster:
Yes it is, but speed is not always the important thing to look for… If you have slow or sluggish applications like temperature control, you don’t need the speed of the architecture, a slower type would be sufficient, too. And hand on heart: for faster jobs, you don’t use microcontrollers nowadays…. (Ever heard of FPGAs?)
Pros for AVRs: you don’t need a 12V programming voltage like the PICs do. For AVRs you can build yourself a USBtinyISP with 5V and you’re done. PICs (at least the ones I use…) still need their 12V and a bit more complicated programming hardware (though the PICkit 2 is not that difficult to build, the PICkit 3 is a whole other story…). But if you are running a small bootloader on them, they will happily accept data fed through an FTDI (but it will take some ROM space…)
As you can see, both families are about equal and both have good microcontrollers. I am using both, because
1. I got tons of PICs for free, so you can bet I’ll use them and
2. I have some old projects with some PICs in them while in the meantime I made a lot of projects with AVRs.
Currently I’m using mainly AVRs, since most ideas are starting as an Arduino project because of easy to code. If the project expands, I will likely port them to C and then I can run the code pretty much on everything… And if the PICs fit better, they will be used for it. If not, the AVRs are not mad at me and will happily take their duty.
As you can see, you can use both families side by side without bragging that one is better than the other. Jus keep calm and choose the best fitting microcontroller. Doesn’t matter if PIC or AVR….