Hi, everyone!
I want to learn how to program microcontrollers. I already know C and C++ language I'm starting with Arduino but I want to go further. Is there any good starter kit? Should I buy pickit, another programmer or some dev board?
I know nothing.. I don't even know where to search...
Anyone could help me or just put me on the right path?
There are many good advice posted thus far, but few from beginners. I am fresh from no experience to being able to built a few things, so I relate to your feeling overwhelm at the get go.
Beginner to beginner, Arduino is cheap and it is easy. If it is your first foray into MCU's, I cannot think of a better choice. There are lots of resource on the web with Arduino, many of them are based on the UNO. So if you get that version, you are sure to find some "how-to's" specific to UNO. It is very comforting when they are demo-ing using exactly what you got so you know it works. Nano is actually better and a bit cheaper, but when you are uncertain and don't know what is what, having the exact model being demonstrated cuts down the confusion and learning cure.
I suggest:
- get a couple (you will blow something for sure) of Arduino UNO R3 from the cheap Chinese clones,
- get a bunch of generic LEDs and a few resistors (1k, 2k, 3k, 10k, ~600, 470, 300, 100) from places like Tayda.
Make your Arduino do a traffic light for a cross (+) street. Better have both-green-lights for crossing traffic.
Now that you have that going, you are beginning to know what those pins are, and how the MCU does things (in the Arduino Environment).
Step 2, input
- get a buzzer from Tayda (75cents, so get it with the first group of stuff to avoid long shipping wait)
- get some Photo Resisters from Tayda. They are also cheap.
- and/or get a PIR motion sensor from the cheap Chinese clones.
With the PIR, now you can have a cat alarm. Mine is still in use. I feed homeless cats and I like to see who came.
Or with the photo resister, you can have the Arduino blink something when it gets dark.
Step 3, fancy output
- LCD 20x4 (aka 2004) using I2C
- Dot matrix like the Nokia display
- TFT display (some with SD card reader)
I have a mini photo display using a tiny TFT (about 2 inches)
Step 4, which I just started - getting outside the Arduino Environment
I just took my baby steps in this direction.
- I just completed a project using TINY13A. For other reasons, I got a flashlight to play with, and I decided to get a driver (NANJG 105c) that uses the TINY13A. That became my perfect testbed to move away from Arduino. Perfect environment for learning as there is a ton of info on the Web on that.
I blew away their firmware and using the TINY13A datasheet plus examples on the web, I manage to write my own driver. AVR coded totally independent from the Arduino Environment. With Arduino UNO at hand, I have an ISP programmer already, so all I needed to begin doing non-Ardunio software was just to download WinAVR and off I go. I know have a flashlight operated entirely by my software - with different light levels I want. It even blink out the battery voltage at my command. (Blink Hi 3 times and low 4 times means 3.4Volts)
I just completed an upgrade to the TINY85 for more space so I can have more options.
Well, if I want to dig deeper and do more, now I am equipped with more knowledge to choose better tools.
What worked for me may not work for you. But that is how this beginner got into it. Hope this info is helpful to you.