In this tutorial we will show you how to make your own DIY Arduino Uno board using the ATmega328p microcontroller IC. As a result, you will be able to understand how to make analogues of any boards in the future, plus create your own. Maybe you will even open your own company producing boards and microcontrollers.
Since Arduino is an open source platform, it is quite easy to learn about the innards and details of everything that makes Arduino what it is. So in this tutorial we will look at the Arduino Uno circuit, modify it a little according to our needs, make a PCB for it and solder the necessary components to create the final product.
We will not use any SMD components to create our version of Arduino Uno because not everyone has a soldering station and sometimes it is very difficult to find SMD components. Moreover, our method is cheaper than SMD components in most cases. For those who are just starting to understand electronics, surface mount technology of printed circuit boards is also called TMP (surface mount technology), SMT (surface mount technology) and SMD
-technology (from the English surface mounted device - a device mounted on a surface), and
components
for surface mounting are also called “chip components”.
What kind of Arduino
Arduino is a programmable microcontroller. That is, this is a board on which you can write your program, and this board can control other things: for example, light a light bulb, make a sound, turn on an electrical appliance, measure temperature, send SMS.
At its most basic level, the Arduino simply sends and reads electrical impulses. For example, you can connect a thermometer to it, and the Arduino can read the temperature in the room. And then, depending on the program, send a signal to the device, which will turn on the fan.
Or you can connect a carbon dioxide sensor to the Arduino. Arduino can be taught to read the sensor every five minutes and, when the level of carbon dioxide exceeds the norm, beep, flash a light, or use a series of motors to open a window.
How to program Arduino
There are many expansion boards and sensors for Arduino. The board's applications are almost limitless: automation, security systems, smart home, music, robotics and much more. Here's what you can do on this smart Italian board and on its Russian and foreign clones.
H Do-it-yourself on-board computer for a car using Arduino in drafts From the sandbox
Greetings! UPD 12/27/2017:
I decided to add to the article that the project was modified by another user, the sketch was improved in terms of automatic delay, restoration of communication in the event of a connection failure and many other nuances... thank you!!!
Oleg
his email for questions
Link to sketch and libraries: www.dropbox.com/s/9ioe43694kxxccw/OBD.rar?dl=0
His comments on the rework:
1.all wiring and connections of all modules and nodes are preserved from the original project. (except for connecting the bluetooth module, it is now on serial port “1”)
2. The program is strictly tailored for Arduino MEGA 2560!!! Debug is present on serial port “0”, provided the define is uncommented.
3. The delay parameter between polls has been removed, the delay is completely intelligent and dynamic, a new request will not be sent until a response to the previous one is received, taking into account the timeout.
4.Added the function of restoring communication in the event of a connection loss (the parameter for loss of communication is the lack of engine speed).
5. To work, you need the OBD.h library included in the archive with the project, this copy has several changes from the original which can be downloaded from the Internet, and without it most likely the project will not work or will be unstable. the folder needs to be copied to the folder "\Documents\Arduino\libraries"
Android application with all the nuances on Google Play: OliviaDrive
We can make an on-board computer that can calculate fuel consumption, show the coolant temperature, car speed, travel distance, gasoline spent during the trip, engine speed, pressure in the intake manifold, intake manifold temperature, SOP, fuel correction, oxygen sensor voltage, engine load and much more.
More photos
List of required parts for BC assembly
1) Arduino Uno R3 - 1 pc.
~$7: 2) LCD2004 LCD module ~$6:
3) Bluetooth module HC-05 ~ $4:
4) OBD ELM327 Bluetooth scanner ~ $4:
5) 10 kOhm trimming resistor, beeper for sound, 2 buttons for changing screens, wires for connections, housing ~ $3.
Setting up the HC-05 Bluetooth module for operation
Solder the wires to the bluetooth pins:
(
see the picture with the outputs in the description of the required parts
)
- 1 is TX
- 2 is RX
- 12 is 3.3V
- 13 is GND
- 34 - we also throw 3.3 V to this input (needed to put the module into configuration mode using AT commands).
We connect the Bluetooth module to the Arduino to configure it
- 1 - TX module in 6 pin Arduino. (attention there will be TX in TX this is not an error!)
- 2 - RX module in 7 pin Arduino. (similarly not an error!)
- 12 - and 34 pins to 3.3V arduino.
- 13 - GND arduino.
Open Aduino IDE 1.0.6 (I used this version) and upload the sketch via the USB port to the board.
#include SoftwareSerial BTSerial(6, 7); //TX | RX void setup() { Serial.begin(9600); Serial.println('Enter AT commands:'); BTSerial.begin(38400); }
void loop() { if (BTSerial.available()) Serial.write(BTSerial.read()); if (Serial.available()) BTSerial.write(Serial.read()); }
After successfully downloading the sketch, open: Tools->Port Monitor
. Next, at the bottom we set the speed to 9600 baud and NL+CR together.
Next, enter the commands one at a time and click [Send]. After each input there should be an ok response.
AT // (maybe an Error will pop up once, don’t be alarmed... it’s normal, repeat again) AT+NAME=Car //Assign a name to the Car module AT+ROLE=1 //Switch the module to Master mode AT+PSWD=1234 //Set password 1234 as on OBD ELM327 AT+BIND=AABB,CC,112233 //We register the Mac address of the OBD ELM327. AT+CMODE=1 // Connecting a module with a fixed address AT+UART=9600,0,0 // Speed of operation via UART
Please note that a mac address of the form: “AA:BB:CC:11:22:33” is entered as “AABB,CC,112233”. You can see the MAC address of your ELM327 module by first connecting to it from your mobile phone. (Standard passwords are usually: 1234, 6789, 0000).
That's it, setting up the Bluetooth module is complete.
Now you need to assemble the Arduino circuit + bluetooth + LCD screen
Scheme:
1. Let's start by connecting the HC-05 Bluetooth module.
- 1 - we put the TX of the module into the 7 Pin (Rx) of the arudin (exactly TX in RX, not like before);
- 2 - RX module is inserted into 8 Pin (Tx) arudin;
- 12 - Pin (3.3V) of the module to Pin 3.3V arduino;
- 13 - Pin (Gnd) to Gnd aruduins;
- 34 - We do not connect the Pin anywhere (isolate or unsolder).
2. Connect the LCD monitor.
- VSS of the screen to GND of the arduino;
- VDD screen to 5V arduino;
- V0 of the screen to the central output of the resistor;
- RS screen to pin 12 of Arduino;
- RW of the screen to GND of the arduino;
- E of the screen to pin 11 of the Arduino;
- DB4 screen to pin 5 of Arduino;
- DB5 screen to 4 pin of Arduino;
- DB6 screen to 3 pin of Arduino;
- DB7 screen to Arduino pin 2;
- A - to 5V arduino;
- K - GND of arduino.
Connect one of the remaining legs of the potentiometer to GND of the arduino.
The 10k Ohm variable resistor is needed to control the contrast of the monitor, so if the first time you turn it on and don't see anything, try adjusting the font contrast by turning the resistor.
3. Connect an additional button to switch data screens.
[1 button]: connect one end of the normally open button to GND of the Arduino, and the other end to pin 10. [2 button]: GND + pin 9.
Connect the beeper for sound warnings according to the following scheme “+” to pin 13, and minus to GND of the Arduino.
Upload the sketch to Arduino using Aduino IDE 1.0.6 (I used this version).
The only thing is that the sketch contains variables that need to be corrected.
Three variables will need to be taken into account:
1) ED=1.998
For example, engine capacity in liters is 1.398;
2) VE_correct=1.0;
Adjustment of the volumetric efficiency of the internal combustion engine according to the table: (if the consumption is really less, then we reduce the value as a percentage).
If you don’t want to calibrate, make sure that when the engine is warm, the instantaneous flow rate in l/hour is around half the engine volume; 5) speed_correct_val=1;
Adjustment of vehicle speed, watch via GPS/
Control
[Button 1], [button 2] - scroll the screen forward and backward.
When turned on, with the inscription “Connecting”... hold [button 1] to enter the mode of displaying technological screens and parameters sent by the ECU in 16-digit format. If you turn on the BC not in the car, then you need to disable the Bluetooth polling function, you must continue to hold the two buttons when the word “Recovery” appears... until the word “All off” appears... otherwise the screen will be blank all the time. [Button 1] + [Button 2]: 4 seconds - Resets the total mileage and gas used log on the second screen, it also resets errors on the error information screen.
Sketch:
The old sketch was removed in terms of many defects in the work... the new version is at the link at the top of the article... it was modified by the user Oleg, thank him very much!!!!.. his email for questions: [email protected]
That's it, let's go to the car, insert the ELM327 into the port, into the arduino into the car charger and check.
Robot bartender with Bluetooth control
Complexity: 4/5.
Time: 5/5.
An indispensable device for any party: it runs on eight batteries, prepares a lot of cocktails and is controlled wirelessly. The mechanical bartender is based on an Arduino board, drives for positioning the shaker and serving drinks, and position sensors.
The main difficulty in manufacturing is engineering. You need to accurately screw all the parts and connect them together so that the container is exactly under the desired bottles.
Details: usamodelkina.ru.
The most special projects
There are developments that solve important social or educational problems.
3D scanner
One of the latest technological advances is a 3D scanner to create an exact copy of a model of an object. The best implementation option for Arduino enthusiasts is an Open Source project called FabScan. Using open information, any beginner can make a scanner at home, spending no more than $100. The project is not difficult, but knowledge of the basics of microelectronics and skills in working with a board are required.
Easy Robot Toy PipeBot
Easy Robot Toy PipeBot is an intelligent toy that you can make with your kids. The robot has the shape of a tube with 2 wheels and is controlled using a remote control or smartphone.
You can add various devices to it: camera, accelerometer, etc.
By creating a craft, the child will master the logic of electronic circuits and programming.
Accessibility for people with disabilities
The Arduino platform allows you to design devices that are useful to people with disabilities. For example, today there is a demand for a robotic arm that performs the gripping function.
To control the manipulator, a highly sensitive remote control is assembled, which allows you to control the mechanism with minimal movements.
Today, many different devices are offered that are made to compensate for physical disabilities: a communication assistant, a guide robot, an inertial tracker, etc.
Glowing cube with 512 LEDs
Complexity: 3/5.
Time: 3/5.
A beautiful thing that can glow in time with music like a 3D equalizer and show 3D animation. It can also work as an unusual night light.
To assemble, you will need a wooden chassis with holes in it so that each tier is the same size and shape as the others. The number of LEDs in each face was not chosen by chance: 8 lamps = 8-bit logic, the easiest to program and control via a controller.
Details: instructables.com.
Tips for working with Arduino projects
The development of “constructors” based on Arduino requires going through standard stages that are typical for any project:
- Search for an idea. It is important to clearly define the objectives of the system.
- Providing conditions for implementation. It is necessary to prepare the resource base in advance.
- Selection of element base.
- Circuit simulation. Before creating a robot, a virtual prototype is first developed, its design and possible errors are thought through.
- Creating a program for the controller.
- Final assembly. This stage involves testing and final configuration.
To master basic assembly and programming skills, the book “25 Cool Projects with Arduino” by Mark Geddes will be useful.
Thanks to this publication, the path to the world of Arduino will be pleasant and exciting.
Code lock burglar
Complexity: 5/5.
Time: 4/5.
This project was developed by hacker Samy Kamkar and is provided for demonstration purposes only. For hacking, in addition to the Arduino board, the author took servo and stepper motors to try combinations and connected everything on a homemade aluminum chassis. The algorithm is based on a simple search of all combinations, but the robot does it faster than a human.
Details: YouTube.
Geyser coffee machine
The simplest one to make is a geyser-type coffee machine. The easiest way is to make the main unit responsible for making coffee. This homemade coffee maker looks something like this:
- At the bottom there is a water container.
- A two-chamber block is installed on it, the lower part of which is a container for ground coffee, the upper part is a compartment for the finished drink.
This homemade coffee machine works simply: when the liquid is heated, steam passes through the ground coffee, and the resulting drink enters the upper compartment through a vertical tube. As it accumulates, you can pour it into a cup and enjoy the taste. The design diagram is shown in the photo.
The operating principle of a geyser-type coffee maker
A homemade coffee machine of this class is equipped with heating elements made of nichrome wire. In practice, to reduce labor intensity, you can take a simple route - adapt the lower heating plate from an electric kettle. This solution is very beneficial:
- temperature is controlled;
- The internal safety system, which is present in many heating elements, will prevent the possibility of accidents.
A homemade geyser coffee machine served as a prototype for a serial product produced by Soviet industry.
There were also coffee machines for motorists, capable of preparing a cup or two of aromatic drink using a cigarette lighter.
Nod Bang - nod your head and make a beat
Complexity: 2/5.
Time: 3/5.
The idea is not just to nod to the beat of the music, but to generate the sound yourself with your nods. Andrew Lee made a special device that monitors the position of the head and plays the desired sound when tilted.
He built an accelerometer into the headphones, the buttons are responsible for selecting the sound, and the Arduino is responsible for playing the sound on the computer via a MIDI interface. To make everything look more impressive, the buttons are backlit, and they also make a beat.
Details: YouTube.
Smart home modules and solutions based on Arduino
The main element of a smart home is the central microcontroller board. Two or more interconnected boards are responsible for the interaction of all elements of the system.
There are three main microcontrollers in the system:
- Arduino UNO is a medium-sized board with its own processor and memory. The basis is the ATmega328 microcontroller. There are 14 digital inputs/outputs (6 of them can be used as PWM outputs), 6 analog inputs, a 16 MHz quartz resonator, a USB port (on some USB-B boards), a connector for in-circuit programming, and a RESET button. Flash memory – 32 KB, random access memory (SRAM) – 2 KB, non-volatile memory (EEPROM) – 1 KB.
Arduino UNO
- Arduino NANO is a board of minimal dimensions with an ATmega328 microcontroller. The difference from UNO is its compactness, due to the type of contact pads used - the so-called “comb of legs”.
Arduino Nano
- Arduino MEGA is a large board with an ATMega 2560 microcontroller. Clock frequency is 16 MHz (as in UNO), there are 54 digital pins instead of 14, and 16 analog pins instead of 6. Flash memory - 256 KB, SRAM - 8 KB, EEPROM - 4 .
Arduino Mega
Arduino UNO is the most common board, as it is easier to work with in terms of installation work. The NANO board is smaller and more compact - this allows it to be placed in any corner of a smart home. MEGA is used for complex tasks.
Now the 3rd generation of Arduino boards (R3) is presented on the market. Typically, when purchasing a board, a StarterKit training kit is included, containing:
- Stepper motor.
- Control manipulator.
- Electrocircuit relay SRD-05VDC-SL-C 5 V.
- Solderless board for MB-102 breadboard.
- Module with access card and two tags.
- Sound sensor LM393.
- Sensor with liquid level measurement.
- Two simple devices for displaying digital information.
- LCD display for displaying multiple characters.
- LED matrix TC15-11GWA.
- Three-color RGB module.
- Temperature sensor and humidity meter DHT11.
- Module real time DS1302.
- Servo drive SG-90.
- IR Remote Control.
- Keyboard matrix with 16 buttons.
- 74HC595N shift register chip for additional outputs.
- Basic small electronics components for circuit design.
You can also find a more complete kit for creating a smart home using Arduino from scratch with your own hands. And to implement another project, in addition to the elements of the training kit, you will need additional things and modules.
Sensors and sensors
To monitor the temperature and humidity in your home and basement, you will need a temperature and humidity sensor. In a smart home designer, this is a board that combines temperature and humidity sensors and an LCD display for data output.
The board is complemented by compatible motion sensors or other PIR sensors that determine the presence or absence of a person in the coverage area, and is linked via a relay to the lighting.
Arduino sensor
The gas sensor will allow you to quickly respond to smoke, carbon dioxide or gas leaks, and when connected to the circuit, will automatically turn on the hood.
Arduino Gas Sensor
Relay
The Relay circuit component connects electrical circuits with different parameters to each other. A relay turns external devices on and off by opening and closing the electrical circuit in which they are located. With the help of this module, lighting control occurs in the same way as if a person stood and independently switched the toggle switch.
Arduino relay
LEDs can indicate the state in which the relay is at a given time. For example, red means the lighting is off, green means the lighting is on. The connection diagram to the lamp looks like this.
For a larger project, it is better to use a relay bus, such as an eight-channel 5V relay module.
Controller
The controller is an Arduino UNO board. For installation you need to know:
- description of elements;
- board pinout;
- schematic diagram of the board's operation;
- ATMega 328 microcontroller pinout.
Software setup
Programming of connected Arduino elements takes place in the IDE editor. You can download it from the official website. For programming, you can use ready-made libraries.
Or use a ready-made sketch solution Ardublock - a graphical programming language built into the IDE. Essentially, all you need to do is download and install the software, then use the blocks to create your diagram.
Singing plant
Complexity: 2/5.
Time: 2/5.
Essentially this is a theremin made in the form of a plant. All other operating principles remain the same: sound occurs when the hands move, and different movements generate different melody.
The board registers changes in signal amplitude, for which the author uses a homemade touch detector to analyze touches to a flower. In addition, we needed a Gameduino expansion board and the flower itself.
Details: Vimeo.
A lock that opens on a secret knock
Complexity: 3/5.
Time: 2/5.
An interesting thing for those who want to play spies or let only their friends into the room. The lock recognizes a knock on the door and compares it with the basic sound that the owner has set. If it matches, the drives move the lock and the door opens; if not, nothing happens, you can knock again.
To set a new knock on the opening, you need to hold the button on the handle and knock on the door in a new way. The piezo sensor recognizes vibrations and records them in the board's memory.
Details: grathio.com
Flower pot with automatic watering
Complexity: 4/5.
Time: 3/5.
A useful pot for those who forget to water their flowers before leaving or simply don’t know how often to water them. All electronics, pumps and water container are located inside the pot. For each plant, you can program its own watering regime in each pot.
Main characteristics of the miracle pot:
- built-in water tank;
- soil moisture level control sensor;
- water supply pump;
- water level sensor in the tank;
- LED indicating lack of water in the tank.
Details: usamodelkina.ru.
Drum machine
Complexity: 1/5.
Time: 2/5.
A simple drum machine on Arduino. The project is interesting because this is not an ordinary search of recorded samples, but real sound generation using built-in hardware. There is also an audio spectrum analyzer: through the video output you can look at diagrams and frequency characteristics.
The mathematical basis of this device is the Fourier series expansion, which is solved by connecting the standard library.
Details: YouTube.
Development board diagram
To know how to use a development board, you need to understand the principle of its design. It's quite simple.
Development board diagram
The development board has a plastic base with many holes (the standard distance between them is 2.54 mm). Inside the structure are rows of metal plates. Each plate has clips that are hidden in the plastic part of the unit.
The wires are inserted into these clips. When a conductor is connected to one of the individual holes, the contact is simultaneously connected to all other contacts of the separate row. Therefore, by connecting the contacts of other devices to the remaining clips, we connect them with a conductor - a rail with clips.
It is worth noting that one rail contains 5 clips. This is a common standard for all development boards. That is, up to five elements can be connected to each rail, and they will be interconnected.
It should be noted that although there are ten holes in each row, they are still divided into two isolated parts, five in each. Between them there is a rail without pins. This design is necessary to isolate the plates from each other, and allows you to simply connect chips made in DIP packages.
Connecting the chip to the breadboard
To make it easier to navigate, the breadboard also contains numerical and alphabetic symbols that can be used as a guide when creating, for example, wiring instructions.
Some development boards also include two power lines on each side. Typically, the “red line” is used to supply “+” voltage, the “blue” line for “-”. Due to the presence of two power rails, two different voltage levels can be supplied to the board.
Attention! It is absolutely unacceptable to use breadboards with a voltage of 220V!
If the board is large, then the power lines “break” in the middle. This allows for more connection options. For example, you can assemble devices with 3 and 5 Volt power on one board.
Walking robot
Complexity: 2/5.
Time: 1/5.
An easy-to-make four-legged robot that walks and independently overcomes obstacles a centimeter high.
To make it, you will need servos for the legs, some wire and any plastic from which the chassis is made. For power supply - a battery of any model, which is mounted on the back of the robot.
Details: xakep.ru.
Accessories
To create a vending machine using Arduino, we will need a number of components.
Equipment
- Arduino Mega
- Lazercut vending machine × 1
- TFT LCD 2.8″ × 1
- Servo × 4
- Coin acceptor × 1
- 12V/1A power supply × 1
- 5V/1A power supply × 1
- Wire × 1
Software
- Arduino IDE
Hand tools
- Dremel engraver
Robot vacuum cleaner
Complexity: 4/5.
Time: 5/5.
Dmitry Ivanov from Sochi has assembled a real robot vacuum cleaner that does everything the same as industrial devices, only with the ability to fine-tune it to suit you and your apartment.
The main parts are an Arduino board, 6 infrared sensors, a turbine with a motor and brushes, and a battery. The robot also has collision sensors that help it avoid obstacles, and a battery controller that monitors the battery level and warns that the vacuum cleaner needs to be charged.
Details: habr.com.
conclusions
Breadboard development boards are optimal for creating prototypes and digital circuits of low complexity. In their practice, they are often used by both beginners who understand the basics of circuit design and experienced professionals due to the ease of installation and the fairly high quality of connecting working contacts. With the help of such boards, you can quickly and without unnecessary soldering create a prototype, test it, and then assemble a device with a more reliable connection option.
Despite the large number of advantages, breadboards also have disadvantages. They do not allow making a reliable device that can be used in difficult conditions. They are not intended for assembling analog circuits with high sensitivity to resistance values, because The resistance at the point of contact depends on many factors and can vary. The boards must not be connected to a high voltage line. Finally, such boards also cost money - circuit boards with soldering are cheaper.
In any case, for the first projects the Arduino engineer does not have any alternatives. In addition, connecting a breadboard promotes the development of abstract thinking - and this is never superfluous.