This page is a guide on how to put together the core of the Arduino on the breadboard. ATmega328P-PU is a microcontroller around which Arduino Uno is built. This manual builds a version that runs at 16 MHz. Programming this microcontroller can be as instructed by Arduino as an ISP programmer.
We will need a breadboard that has 30 columns. It fits neatly microcontroller, reset circuit, crystal and LED.
Insert the ATmega328P into the breadboard so that
PIN1 is at position
e9. This will give us plenty of space on both sides where we will place the reset button and the LED.
Connect both longitudinal paths that are designed for + 5V and GND. Add a link between
GND. Add a connection between
+5 V and
+5 V. The
j16 connections may not necessarily be connected, because they provide analogue measurement. Sometimes a 0.1 μF capacitor between each supply pin and GND is added in such schemes. It is a filter capacitor whose task is to compensate for voltage fluctuations. It is positioned as close as possible to the microcontroller. If you connect such a circuit on the circuit board, you should add the capacitors there.
You can reset the circuit at any time by pushing the button. Put the button next to the microcontroller. Different types are produced that vary slightly in size. My position was at
c6-e8. Make sure they are horizontally in the conductor path with the microcontroller. Place a 10k resistor between
e9 is pin 1 of microcontroller. Thanks to the pull-up resistor, it is held at +5 V. By pressing the button, the pin will be connected to the GND and will reset the microcontroller. For this to work, it is still necessary to connect
Crystal is needed only if we want to have an identical Arduino at 16 MHz. Connect the 22 pF capacitor between
GND. Connect a 22 pF capacitor between
GND. Connect the 16 MHz crystal between
b18. By default, the microcontroller is factory set to 1 MHz. In order to operate at a higher frequency, a crystal is needed and the fuses must be set.
The LED serves us to indicate the correct operation of the circuit. We connect it to the same pin where the Arduino Uno LED is on the digital output 13. Connect the
h24. Place the LED on
i24 (anode - longer leg) and
i25. Connect resistor 1k between
GND. In other tutorials you can also meet with the value of 330R. The resistor value sets the current flowing through the LED. Today, super bright LEDs are sold, so the value of 1k will be enough for you.
Now the circuit is ready for programming and testing. See the hyperlink at the beginning of this page for an accurate description. Be sure to set all parameters correctly. Frequently, the mistake is that you do not correctly set the programmer's version to
ArduinoISP. Take care also to set fuses.
In order to get an idea of what it really looks like, I've also added photographs.
On the first picture, it is made with interconnecting cables. A little confusing.
In the second picture, it is made using interconnecting wires that can be bought in a cheap package. The result can be really clear.
Because the current consumption of the microcontroller involved is minimal. Arduino has many parts that consumes a current. With such a connection, the consumption is only 16 mA. Arduino UNO has a consumption of approximately 50 mA.
If you want to get the power even lower, the microcontroller can fall asleep. If one does not want to be very exhausted by exploring sleep modes, he will use the prebuild solution through the