So back when I first started working with micro controllers, Arduinos mainly the most annoying this ever was when i would follow someones tutorial for a project and they would use the Arduino uno, I would be using the Arduino micro or something, i would spend like an hour wiring it up following the instructions piece by piece, get all excited to turn it on and as i do it just straight up doesn't work - the resulting hissy fits meant a lot of Arduinos lost their lives. Anyway after I calmed down i did some googling and found the cause and a solution which iv used ever since, in this article i hope to explain it to you so hopefully together we can end violence on innocent Micro controllers. Also I have seen looooots of comments asking "can i use the arduino micro instead of uno"
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: The Issue
The problem is that occasionally a project will work perfectly fine on an arduino uno but wont work at all on an arduino micro and sometimes a project will work perfectly on both, its the most annoying thing when you spend a tone of time wiring something up and it suddenly doesn't work for some reason and nothing you can do will get it working so im going to document the steps that will solve this issue most of the time
Step 2: The Differences
To understand why this problem occurs we need understand that Arduino boards and in fact most micro controllers have something called dedicated pins which perform one function such as the SPI or usb communication.They can be found on the io pins of the board, for example pin A5 on the Arduino Uno is an analogue pin but its also a dedicated scl pin. a lot of the pins also have dedicated functions and this is where our problem arises, lets say the tutorial you are using says plug your component into pin A5 on the Uno so the component can make use of the dedicated scl pin but if you are using the Arduino micro it just wont work because the scl pin isnt on a5 of the micro its on pin 4. Its a bit complicated but if you dont understand it dont worry! You can follow the steps to fix this problem without understanding this.
Step 3: Step 1
first we need to look at the components that you want to use and try and identify any dedicated pins that may be on them they are normally labelled like this (the labels are next to or near the pins)
- SCL (clock line)
- SDA (data line)
- MISO (Master in Slave Out)
- MOSI (Master Out Slave In)
- SS (Slave Select)
- TX (usb communication)
- RX (usb comminication)
if you find none of these and your project still doesn't work you're going to need to go find the pin-out of the board the instructions you are following are using and see if the components connects to any dedicated pins if it does it may have just not been labeled on the component and you should move step to, if it isnt connected to a dedicated pin you should check the troubleshooting part of this article.
Step 4: Step 2
Secondly we need to make sure the Arduino we are using has all the dedicated pins that our components need, for example if your components had a SDA, MOSI and MIso pin the Arduino you're using needs to have those as well you can find this out by googling the board you are using and adding pin-out then just look at images and you should see a list of the dedicated pins, ill add links to the pin-outs of all the most popular Arduino boards
- Arduino Uno ( https://goo.gl/E42WAo )
- Arduino Nano( https://goo.gl/Tniiip )
- Arduino Micro( https://goo.gl/xpPcwP )
- Arduino Leonardo( https://goo.gl/WCfeAU )
- Arduino Mega( https://goo.gl/R8niyR )
once you've found the pin-out for your board and you have all the necessary pins you can move onto step 3
Step 5: Step 3
Now we need to connect all the dedicated pins we found on the components to the corresponding pins on your Arduino. Now the chances are that your commponet have dedicated pins and pins that just need to connect to the IO of the Arduino so what you need to do is connect all the dedicated pins to the coresponding pins on your board and connect the rest the exact same way that the tutorial did as these are defined in the code. Once youve done that everything should work perfectly however if it doesnt check out the next step for troubleshooting
Step 6: Troubleshooting
if worst comes to worst and it still doesnt work your options are
- double check everything and i mean everything its so easy to miss a pin or plug something into the wrong socket
- make sure the wires/plugs you are using dont have false contacts inside of them i often find that my male to male jumper wires have broken off at the connector which is very annoying to fix
- Try it with a new Arduino, iv never had an Arduino brake it its very possible that something may be wrong with yours if all else fails
iv acompanied a video with this (still to come) which should help make this more clear. Thank you so much for reading i hope i could help, if you need any more help please feel free to send me a message or comment and ill do my best to answer you