Introduction: How to Make Your Own Homemade Arduino Uno R3
If you're like me, after I got my Arduino and performed a final programming on my first chip, I wanted to pull it off my Arduino Uno R3 and put it on my own circuit. This would also free up my Arduino for future projects. After reading through many web pages and forums, I was able to put together this Instructable. I wanted to have the information I learned all in one place, and easy to follow.Comments and suggestions are welcome and appreciated as I'm still trying to learn all this stuff.
Step 1: Step 1: Parts Needed
To do this, you'll need:
Basic Parts for wiring up Arduino
- A breadboard 22 AWG wire
- 7805 Voltage regulator
- 2 LEDs
- 2 220 Ohm resistors
- 1 10k Ohm resistor
- 2 10 uF capacitors
- 16 MHz clock crystal
- 2 22 pF capacitors
- small momentary normally open ("off") button
Step 2: Step 2: Adding Circuitry for a Power Supply
Here I am using 5V mobile charger instead of LM7805 (This version uses a 5V regulated power supply). It's simple and save some space on board. You can you LM7805 but after that you have to use a higher voltage supply that's why I'm using 5V constant charger.
Step 3: Step 3: ATMEGA8/168/328 Basics
Before moving on, check out this image. It's a great resource for learning what each of the pins on your Atmega chip do in relation to the Arduino's functions. This will clarify a lot of confusion behind why you hook up certain pins the way you do. For even more detailed information, take a peek at the datasheet for the Atmega168 (short version) (long version). Here's the sheet for the Atmega328 (short version) (long version)
Step 4: Step 4: Start the Project
Start by connecting a 10k ohm pullup resistor to +5V from the RESET pin in order to prevent the chip from resetting itself during normal operation. The RESET pin reboots the chip when pulled down to ground.
Pin 7 - Vcc - Digital Supply Voltage
Pin 8 - GND
Pin 22 - GND
Pin 21 - AREF - Analog reference pin for ADC
Pin 20 - AVcc - Suppply voltage for the ADC converter.
Needs to be connected to power if ADC isn't being used and to power via a low-pass filter if it is (a low pass filter is a circuit that reduces noise from the power source. This example isn't using one)
Step 5: Step 5: Adding Cristal
Add a 16 MHz external clock between pin 9 and 10, and add two 22 pF capacitors running to ground from each of those pins.
Step 6: Step 6: Adding Reset Switch
Add the small tactile switch so that you can reset the Arduino whenever we'd like and prepare the chip for uploading a new program. A quick momentary press of this switch will reset the chip when needed. Add the switch just above the top of the Atmega chip crossing the gap in the breadboard. Then, add a wire from the bottom left leg of the switch to the RESET pin of the Atmega chip and a wire from the top left leg of the switch to ground.
Step 7: Step 7: LED Leads on Arduino Pin 13
The chip used on this board is actually already programmed using the blink_led program that comes with the Arduino software. If you already have an Arduino printed circuit board running, it is a good idea to go ahead and check the breadboard version you are building with a chip you know works. Pull the chip from your working Arduino and try it on this board. The blink_led program blinks pin 13. Pin 13 on the Arduino is NOT the AVR ATMEGA8-16PU/ATMEGA168-16PU pin 13. It is actually pin 19 on the Atmega chip.
Finally, add the LED. The long leg or the anode connects to the red wire and the short leg or the cathode connects to the 220 ohm resistor going to ground.
Step 8: Step 8: Arduino-Ready!
At this point if you had already programmed your chip somewhere else and didn't need this breadboard circuit to reprogram the chip, you could stop here. But part of the fun is in-circuit programming so keep going to really make a full USB-Arduino-circuit on a breadboard!
Step 9: Step 9: Software to Be Used
To make this Techduino Board I used Circuit Wizard Trial Version Software. You can use It or I'm providing the required circuit diagram and PCB layout here.
Thanks For viewing my project.