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

Should I learn PIC programming or stay with arduino?

  1. Apr 26, 2016 #1
    I'm enjoying playing around with Arduino. It's very nice and intuitive, and it was a great introduction to electronics for me. But I've heard some people complaining that Arduino makes you lazy, and that you should learn how to program PIC instead. Thing is: apart from undertanding better the underlying concepts of microcontroller programming, I can't see any advantage in switching from arduino to PIC. In general, does using PIC instead of arduino offer any real advantage? (For a hobbyist like me, I mean).

    That said, I do want to try learning PIC, just to get the feel of it. But as I'm used to programming Arduino, where everthing is already assembled, I don't know where to start. Apart from the PIC itself, I know I need a programmer like PicKit 3. That's all? To start programming PIC, do I need anything else? What about an IDE?
  2. jcsd
  3. Apr 26, 2016 #2


    User Avatar
    Gold Member

    If you already have an arduino you can use the Atmel tools to program in c/c++/asm with a full debug environment. You just need an ISP dongle.

    I have used the PIC tools and did not have any problems with them. I have not used the Atmel tools but have heard that they are much easier to use. Both have free versions of the IDE. Free Microchip c/c++ compilers have a crippled optimizer which is not and issue for learning the platform. Atmel tools are completely free. I don't know what features that are not included in them. If any they will likely not be a concern to you.

  4. Apr 26, 2016 #3
    Comparing Arduino with PIC makes no sense. A better comparison would be with PICAXE. A comparison between Microchip and Atmel devices (upon which the Arduino is based) is like-for-like, but hopelessly general. Note that the web has been awash for years with ill-informed Microchip vs Atmel "fanboy" arguments. Pass those by!

    The argument that Arduino makes you lazy is nonsense. It's simply one of many quick educational and prototyping platforms. Abstractions exist for a reason! Apply reductio ad absurdum: do those making the argument write only in assembly language, I wonder? That being said, using libraries for tasks like writing to IO pins may be hiding you from knowledge about your device that you may find interesting. If you program, why not check the Arduino library source to see what it's doing for you?

    Whether PIC offers "any real advantage" is too broad a question to answer. What sort of projects would you like to do? Be guided by problems. For example, if you want to develop your own products, you will probably not be embedding an entire Arduino board inside them.

    If you want to learn how to program PICs, grab Microchip's tools (MPLAB is free), and just dive in. For typical FAQs check Microchip's forums. There are probably more learning resources around for PICs than any other devices.
  5. Apr 26, 2016 #4
    I was studying the development of a embedded PID temperature control, for example. It looked like a very interesting project, and I do want to learn more about PIDs. I don't know if I try to implement Arduino or try PIC in this one. I'm a hobbyist, so I'm really not into developing commercial products or stuff like that.

    Also, are the PicKit and MPLAB all I need to dive in (apart from the microcontroller itself, or course)? Do I need a power supply or anything like that, just to start learning with some simple projects?
  6. Apr 26, 2016 #5


    User Avatar
    Gold Member

    If you can be tethered to the dev computer you don't have to have anything other than the board and a few bits and bobs to get you started. They run off of USB. As for a power supply other than USB, most of the arduino or other small boards they can be run on a simple battery. Likely whatever power source you are using for temperature control will be sufficient to drive the MCU. A small linear regulator will do nicely if not particularly efficiently.

Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted