Chapter Two: ARDUINO
Arduino is a platform (open source) used for creating electronics projects. Arduino consist of two units, one is the physical or hardware programmable circuit board (often referred to as microcontroller) and second is the piece of software, or IDE (Integrated development environment) that runs on computer used to write and upload computer code to the physical board.
Arduino works as brain of the projects made on it ,and act as the controller of the project. Arduino was first made at Ivera interaction Design Institute as an easy tool for fast prototyping for students without a background in electronics and programming.
Unlike most older programmable circuits boards the arduino does not require a separate part of hardware in order to program a new code onto board you can just use a USB cable. Arduino uses a basic version of c++ , making it simpler to learn the program. Arduino boards offers a typical form factor that breaks out the function of microcontroller into a more variable package.
There are different types of arduino boards available according to the processor, memory, digital I/O, analog I/O used in these boards.
The list of arduino board include :
Arduino Board Processor Memory Digital I/O Analogue I/O
Arduino Uno 16Mhz ATmega328 2KB SRAM, 32KB flash 14 6 input, 0 output
Arduino Due 84MHz AT91SAM3X8E 96KB SRAM, 512KB flash 54 12 input, 2 output
Arduino Mega 16MHz ATmega2560 8KB SRAM, 256KB flash 54 16 input, 0 output
Arduino Leonardo 16MHz ATmega32u4 2.5KB SRAM, 32KB flash 20 12 input, 0 output
The term “open source hardware” in defining of arduino means that these arduino boards can be modified further for more form factors and functionality. There can be more derivatives of these boards.
2.2Board Used (Arduino Uno R3)
2.2.1Reason To Choose Arduino Uno R3
The Arduino Uno R3 is a best choice for us because it is the best for the students to get started initially in this field of Arduino.
It has got everything which are useful for initial start such has 14 digital input/output pins out of these 14 pins, 6 can be used as PWM output pins. 6 Analog input pins, a USB connection , Power Jack, Reset Button , Power Led Indicator, TX RX Leds, Main IC, Voltage Regulator.
2.2.2Components of Arduino
1) Power USB (USB Connector)
Power USB acts as a way to connect the power source with Arduino . If the power supply is coming from the USB then we use power USB as a connector.
It is also used to load code into Arduino board.
2)Barrel Jack (Power Connector)
Barrel Jack is also used as a way to connect power source with Arduino . If the power supply is coming from wall power then we use Barrel Jack as a connector.
Do not use the power supply greater than 20 volts. If the supply is greater than 20 volts there is overpowering of Aduino and due to this Arduino can destroy.
Suitable operating voltage for most Arduino boards is between 6 and 12 volts.
The pins are the places on Arduino where we connect the wire coming from breadboard in order to implement a circuit.
Made up of black plastics headers that allows you to just plug a wire right into the board.
3)Ground Pins (GND)
There are two ground pins on Arduino which are used to ground the circuit we are making on breadboard.
The 5V pin supplies a power of 5 volt which is used to drive different components such as sensors.
The 3.3V pin supplies a power of 3.3 volt which is used to drive different components such as sensors.
The Analog pins as shown in Arduino given by “Analog In” from pin A0 to pin A5 on UNO used only as Analog input pins.
The pins are used to read signal/values from the the Analog sensor and convert it to a digital value that is understandable by microcontroller of Arduino.
Each of analog input pins provide 10 bits of resolution(i.e 1024 different values of sensor). By default they measure from ground to 5 volts though it is possible to change upper end of this range by using AREF pin.
A4 and A5 are also known as SDA(Serial data) and SCL(Serial clock) pins for TWI communication using wire library. These are the two wires for communicate using I2C bus between I2C master and I2C device , and hence communication is know as Two wire interface.
The Digital pins as shown in Arduino given by “Digital (PWM~)” from pin 0 to pin 13 on UNO can be used in both ways as Digital input pins or Digital output pins. Out of these 14 pins some are also used as PWM output pins, Interrupts pins(2 and 3) to trigger interrupt at low values or rising edge or falling edge or due to change in value, pin 13 an inbuilt led and TX RX pins(used for serial communication).
The PWM output pins denoted by the symbol of “~” with the some of the Digital pins on UNO. These pins are 5, 6, 9, 10, 11 on UNO.
These pins normally acts as Digital pins but can also be used as PWM pins. The pulse width modulation allow us to vary how much time the signal is high in analog fashion. The PWM pins are able to simulate analog output.
AREF pins used to set an external refrence voltage as an limit for the Analog input pins.
The Reset Button on Arduino will act as a switch. When the switch is pressed it will temporarily connects the Reset pin to the ground and restart any code that is loaded in arduino at that time.
This pin can be very useful if your code does not repeat but you want to test it multiple times. Reset button will reset microcontroller when low.
11)Power Led Indicator
The Power led indicator is the small led located just below the point on the Board where UNO is written.
This led always light up whenever we plug the Arduino to the Power source. If this light does not turn on there is a good chance that there is a fault in the circuit.
12)TX RX LEDs
The word TX stands for transmitter and RX stands for receiver. These types of definition of TX and RX are frequently used in electronics to indicate pins responsible for serial communication.
In this Arduino board there are two times these TX and RX appear i.e one time by the digital pins 0 and 1 , and second times on the indicator leds.
These Leds will provide the information when the Arduino is transmitting data or receiving data by glowing that Led at the moment (for ex : when we are loading new program onto the board RX led will glow).
13)MAIN IC (Microcontroller Ic ATMEGA328)
The black thing with metal legs is know as the main IC also known as ATmega328 is a microcontroller which is the Brain of arduino. The IC is made by ATMEL.
Main focus to understand that the Arduino board includes a microcontroller, and this microcontroller is what executes the program instruction. If you know this the there is a difference between Arduino and ATmega328.
The ATmega328 microcontroller is the microcontroller used in Arduino UNO as a controller. ATmega328 belongs to family AVR , it is an 8-bit device means it has data bus of 8 bit, internal registers are designed to handle 8 parallel data signals.
ATmega328 has three types of memory:
*Flash memory: 32KB nonvolatile memory.(for storing codes)
*SRAM memory: 2KB volatile memory.(for storing variables used at time of running the code)
*EEPROM memory: 1KB nonvolatile memory.(for storing data that will be needed Arduino is switched on)
?Pin diagram of Atmega328
Pin Number Description Function
1 PC6 Reset
2 PD0 Digital Pin (RX)
3 PD1 Digital Pin (TX)
4 PD2 Digital Pin
5 PD3 Digital Pin (PWM)
6 PD4 Digital Pin
7 Vcc Positive Voltage (Power)
8 GND Ground
9 XTAL 1 Crystal Oscillator
10 XTAL 2 Crystal Oscillator
11 PD5 Digital Pin (PWM)
12 PD6 Digital Pin (PWM)
13 PD7 Digital Pin
14 PB0 Digital Pin
15 PB1 Digital Pin (PWM)
16 PB2 Digital Pin (PWM)
17 PB3 Digital Pin (PWM)
18 PB4 Digital Pin
19 PB5 Digital Pin
20 AVCC Positive voltage for ADC (power)
21 AREF Reference Voltage
22 GND Ground
23 PC0 Analog Input
24 PC1 Analog Input
25 PC2 Analog Input
26 PC3 Analog Input
27 PC4 Analog Input
28 PC5 Analog Input
?Features Of Atmega328
CPU 8-bit AVR
Number of Pins 28
Operating Voltage (V) +1.8 V TO +5.5V
Number of programmable I/O lines 23
Communication Interface Master/Slave SPI Serial Interface(17,18,19 PINS) Can be used for programming this controller
Programmable Serial USART(2,3 PINS) Can be used for programming this controller
Two-wire Serial Interface(27,28 PINS)Can be used to connect peripheral devices like Servos, sensors and memory devices
JTAG Interface Not available
ADC Module 6channels, 10-bit resolution ADC
Timer Module Two 8-bit counters with Separate Prescaler and compare mode, One 16-bit counter with Separate Prescaler,compare mode and capture mode.
Analog Comparators 1(12,13 PINS)
DAC Module Nil
PWM channels 6
External Oscillator 0-4MHz @ 1.8V to 5.5V
0-10MHz @ 2.7V to 5.5V
0-20MHz @ 4.5V to 5.5V
Internal Oscillator 8MHz Calibrated Internal Oscillator
Program Memory Type Flash
Program Memory or Flash memory 32Kbytes10000 write/erase cycles
CPU Speed 1MIPS for 1MHz
RAM 2Kbytes Internal SRAM
EEPROM 1Kbytes EEPROM
Watchdog Timer Programmable Watchdog Timer with Separate On-chip Oscillator
Program Lock Yes
Power Save Modes Six ModesIdle, ADC Noise Reduction, Power-save, Power-down, Standby and Extended Standby
Operating Temperature -40°C to +105°C(+105 being absolute maximum, -40 being absolute minimum)
The silver colour plate behind barrel jack is known as crystal oscillator. Crystal oscillator is available with a frequency of 16 MHZ.
In Our project we have main use of this oscillator in calculating time taken by the level sensor signal in twice leg travel ,first leg before deflection from object and second leg after deflection from the object.
The work of voltage regulator is similar as it name suggest. It will fix the voltage entering the Arduino. If the voltage greater than
voltage given by voltage regulator trys to enter Arduino , it will be stopped by this Voltage regulator.
Icsp pin generally consist of MOSI, MISO, RESET, VCC, GND, SCK all these things together makes icsp pin which is nothing but AVR (small program header for arduino).
The oher name given to iscp pin is SPI(serial peripheral interface). SPI can be taken as expansion of the output. The output device is a slave to the master of SPI bus which is used for programming this microcontroller.
1) Inexpensive: Due to this less cost of Arduino can be used by students easily to make DIY PROJECTS.
2)Less hardware: During the period of code uploading it does not require extra hardware, uses a bootloader of 0.5 kb of space which allow program to burn directly to ckt.
3)Compatibility : Can be used with all types of operating system such as windows, linux etc.
4)Open Source Hardware : This is the thing which help the user to make their individual kit by taking guide with available kit.
5)Open Source Software : This is the thing which help the programmers to merge the Arduino code with existing programming language libraries.
6)Convenient : All the peoples who are using arduino for the first time it is easy to understand and people get used to it in less time due to this quality.
Therefore people who are starting from their first project are generally advised to work on Arduino than any other microntroller.
7)Easy Connections : The uno can be connected easily with the computer cpu by using the usb port of cpu and can transfer code by using serial communication.
The serial communication is decided by the transmitter and receiver pins on the Arduino.
Arduino processor uses the architecture in which the program code and program data have individual separate memory. There are two memories one is program memory and the other one is data memory.
The code is stored in the memory which is known as flash program memory and the data is stored in the data memory.
Atmega 328 has 32kb of flash memory for storing code out of this 32kb , 0.5kb is used for the storing code by the bootloader, 2kb of SRAM, 1kb of EEPROM and operates with cock speed of15MHZ.
2.5Programming of Arduino
In Arduino is the program can be directly loaded to the device without usng any hardware programmer to burn the program, this all is done by 0.5kb bootloader which makes the program to burn into the circuit directly.
All we need for direct loading is Arduino software IDE on which code is written.
?STEPS TO PROGRAM ARDUINO
1) Declaration of variables.
2) Inialization: written in setup() function.
3) Control code: written in loop() function.
4) Sketch is saved with .ino extension.(in sketch book directory).
5) Choose the proper board from tool menu and the serial port number. And then click on the upload button then code uploaded by bootloader onto the microcontroller.
?Arduino Basic Functions
• digitalRead(pin): Reads the digital value at the given pin.
• digitalWrite(pin, value): Writes the digital value to the given pin.
• pinMode(pin, mode): Sets the pin to input or output mode.
• analogRead(pin): Reads and returns the value.
• analogWrite(pin, value): Writes the value to that pin.
• serial.begin(baud rate): Sets the beginning of serial communication by setting the bit rate.
2.6Making of Arduino
Parts needed to make an Arduino are Breadboard, a Led, a Power Jack, a IC socket, a Microcontroller atmega328, few resistors , 2 capacitors, 2 regulators.
?STEPS TO MAKE
1) First of all place Power Jack and IC socket on board.
2) Then by using capacitor and regulators make 5v and 3.3 v regulator ckts.
3) Make power connection to MCU pins.
4) The reset pin of IC socket attached with 10k resistor and then to reset puch button.
5) Attach crystal oscillator to pins 9, 10.
6) Connect the Power led.
7) Attach the pins with female headers.
8) Alternative should be kept with 6 male headers to upload program.
9) Upload the code on MCU of readymade Arduino.