You are on page 1of 49

Biometric Security System using Arduino and

Fingerprint Sensor :-

Arduino Finger Print Sensor Door Lock System

Security is a major concern in our day to day life, and digital locks have become an important part of
these security systems. There are many types of security systems available to secure our place.
Some examples are PIR based Security System, RFID based Security System, Digital Lock System,
bio-matrix systems, Electronics Code lock. In this post, we will Interface a Fingerprint Sensor
Module with Arduino and will build a Fingerprint based Biometric Security System with door
locking. Finger Print is considered one of the safest key to lock or unlock any system as it can
recognize any person uniquely and can’t be copied easily.
Components Required:
1. Arduino Uno

2. Finger Print Module

3. Push Button -4

4. LEDs -2

5. 1K Resistor -3

6. 2.2K resistor -1`

7. Power Supply

8. Connecting wires

9. Cardboard Box

10. Dc motor

11. 16x2 LCD -1

12. Bread Board -1

13. Wood box

14. Rectifier circuit

Finger Print Sensor Module with Arduino:


Finger Print Sensor Module or Finger Print Scanner is a module which captures finger’s
print image and then converts it into the equivalent template and saves them into its memory on
selected ID (location) by Arduino. Here all the process is commanded by Arduino like taking an
image of finger print, convert it into templates and storing location etc
In this Arduino Fingerprint Sensor Project, we have used Fingerprint Sensor Module to
take finger or thumb impression as input in the system. Here we are using 4 push buttons to
Enroll/back, Delete/OK, UP and Down. Every key has double features. Enroll key is used for
enrolling new finger impression into the system and back function as well. Means when the user
wants to enroll new finger then he/she needs to press enroll key then LCD asks for the ID or
Location where user wants to store the finger print output. Now if at this time user do not want to
proceed further then he/she can press enroll key again to go back (this time enroll key behave as
Back key). Means enroll key has both enrollment and back function. DEL/OK key also has same
double function like when user enrolls new finger then he/she need to select finger ID or Location by
using another two key namely UP/MATCH AND DOWN/MATCH (which also has double function)
now user needs to press DEL/OK key (this time this key behaves like OK) to proceed with selected
ID or Location. UP/DOWN keys also support Finger print match function. Check the Video at the
end for full demonstration.

Here we have also attached a cardboard box with a Servo Motor to act as a security gate, which will
only open when the system will read correct Finger Print. Yellow LED indicates gate is closed and
Green LED indicates gate is opened.
Working Explanation:
Working of this Fingerprint Sensor Door Lock is easy. In this project, we have used a gate
that will be open when we place stored finger at the finger print module. First of all, the user needs to
enroll finger with the help of push button/keys. To do this user need to press ENROLL key and then
LCD asks for entering location/ID where finger will be a store. So now user needs to enter ID
(Location) by using UP/DOWN keys. After selecting Location/ID user needs to press an OK key
(DEL key). Now LCD will ask for placing finger over the finger print module. Now user needs to put
his finger over finger print module. Then LCD will ask to remove the finger from finger print module
and again ask for placing the finger. Now user needs to put his finger again over finger print module.
Now finger print module takes an image and converts it into templates and stores it by selected ID in
to the finger print module’s memory. Now user can open the gate by placing the same finger that
he/she have added or enrolled into the system and then press MATCH key (UP/Down key). By the
same method, the user can add more fingers. Check the Video below for full demonstration.
Now if the user wants to remove or delete any of stored ID then he/she need to press DEL key, after
pressing DEL key, LCD will ask for select location means select ID that to be deleted. Now user
needs to select ID and press OK key (same DEL key). Now LCD will let you know that finger has
been deleted successfully. Now the user may check it was deleted or not by placing the same finger
over the finger print module and pressing MATCH key (UP/Down key).
When placed finger will be valid Green LED will glow for five second and gate also opens at the
same time. After 5-seconds gate will be closed automatically. The user may customize gate/door
opening and closing according to their requirement. Servo motor is responsible for open and closing
of the gate.

Circuit Explanation:
The circuit of this Arduino Fingerprint Security System is very simple which contains Arduino
which controls whole the process of the project, push button, buzzer, and LCD. Arduino controls the
complete processes.
The push button is directly connected to pin D14(ENROL),D15(DEL), D16(UP) and
D17(DOWN) of Arduino with respect to ground And Yellow LED is connected at Digital pin D7 of
Arduino with respect to ground through a 1k resistor and Green LED is connected to D6 of Arduino
with the same method. Finger Print Module’s Rx and Tx directly connected at Software Serial or
Digital pin D2 and D3 of Arduino. 5v supply is used for powering finger print module taken from
Arduino board and Servo motor is also connected to PWM pin D5 of Arduino. A 16x2 LCD is
configured in 4-bit mode and its RS, EN, D4, D5, D6, and D7 are directly connected at Digital pin
D13, D12, D11, D10, D9, and D8 of Arduino.

Project figures :-
Program Explanation:
In a program, we have used Adafruit Fingerprint Sensor Library for interfacing fingerprint
module with Arduino board. You can check the complete Code below, it can be easily understood.
Here we are explaining main functions of the Arduino Program.
 
Below piece of code is used to take Finger Print as input and take action according to validation of
finger. If finger will be validated gate will be open otherwise remain closed.

for(int i=0;i<5;i++)

lcd.clear();

lcd.print("Place Finger");

delay(2000);
int result=getFingerprintIDez();

if(result>=0)

digitalWrite(openLight, HIGH);

digitalWrite(closeLight, LOW);

lcd.clear();

lcd.print("Allowed");

lcd.setCursor(0,1);

lcd.print("Gete Opened ");

myServo.write(0);

delay(5000);

myServo.write(180);

digitalWrite(closeLight, HIGH);

digitalWrite(openLight, LOW);

lcd.setCursor(0,1);

lcd.print("Gate Closed ");

 
Given void checkKeys() function is used for checking Enroll or DEL key is pressed or not and what
to do if pressed. If the ENROL key pressed the Enroll() function is called and DEL key press
then delete() function is called.

void checkKeys()

if(digitalRead(enroll) == 0)

lcd.clear();

lcd.print("Please Wait");

delay(1000);
while(digitalRead(enroll) == 0);

Enroll();

else if(digitalRead(del) == 0)

lcd.clear();

lcd.print("Please Wait");

delay(1000);

delet();

 
Given function is used for entering ID to be deleted and calling uint8_t deleteFingerprint(uint8_t
id) function that will delete finger from records.

void delet()

int count=0;

lcd.clear();

lcd.print("Delete Finger ");

lcd.setCursor(0,1);

lcd.print("Location:");

while(1)

lcd.setCursor(9,1);

lcd.print(count);
if(digitalRead(up) == 0)

count++;

if(count>25)

count=0;

delay(500);

.... .....

..... .....

 
Given function is used for delete finger print from the record of selected ID.

uint8_t deleteFingerprint(uint8_t id)

uint8_t p = -1;

lcd.clear();

lcd.print("Please wait");

p = finger.deleteModel(id);

if (p == FINGERPRINT_OK)

Serial.println("Deleted!");

lcd.clear();

lcd.print("Figer Deleted");

lcd.setCursor(0,1);

lcd.print("Successfully");

delay(1000);

}
else

Serial.print("Something Wrong");

lcd.clear();

lcd.print("Something Wrong");

lcd.setCursor(0,1);

lcd.print("Try Again Later");

delay(2000);

return p;

 
 
Given Function is used to taking finger print image and convert them into the template and save it by
selected ID into the finger print module memory.

uint8_t getFingerprintEnroll()

int p = -1;

lcd.clear();

lcd.print("finger ID:");

lcd.print(id);

lcd.setCursor(0,1);

lcd.print("Place Finger");

delay(2000);

while (p != FINGERPRINT_OK)
{

p = finger.getImage();

..... .....

....... ....

Code :-
#include<LiquidCrystal.h>
LiquidCrystal lcd(13,12,11,10,9,8);
#include <SoftwareSerial.h>
SoftwareSerial fingerPrint(2, 3);
#include<dc motor.h>
Dcmotor myDcmotor;
#include <Adafruit_Fingerprint.h>
uint8_t id;
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&fingerPrint);
#define enroll 14
#define del 15
#define up 16
#define down 17
#define openLight 6
#define closeLight 7
#define DcmotorPin 5
void setup() 
{
    delay(1000);
    myDcmotor.attach(servoPin);
    myDcmotor.write(180);
    pinMode(enroll, INPUT_PULLUP);
    pinMode(up, INPUT_PULLUP); 
    pinMode(down, INPUT_PULLUP); 
    pinMode(del, INPUT_PULLUP); 
    pinMode(openLight, OUTPUT);
    pinMode(closeLight, OUTPUT);
    lcd.begin(16,2);
    lcd.print("Security System");
    lcd.setCursor(0,1);
    lcd.print("by Finger Print");
    delay(2000);
    lcd.clear();
    lcd.print("Circuit Digest");
    lcd.setCursor(0,1);
    lcd.print("Saddam Khan");
    delay(2000);
    finger.begin(57600);
    Serial.begin(9600);
    lcd.clear();
    lcd.print("Finding Module");
    lcd.setCursor(0,1);
    delay(1000);
    if (finger.verifyPassword()) 
  {
      Serial.println("Found fingerprint sensor!");
      lcd.clear();
      lcd.print("Found Module ");
      delay(1000);
    } 
    else 
  {
    Serial.println("Did not find fingerprint sensor :(");
    lcd.clear();
    lcd.print("module not Found");
    lcd.setCursor(0,1);
    lcd.print("Check Connections");
    while (1);
  }
}
void loop() 
{
 lcd.setCursor(0,0);
 lcd.print("Press UP/Down ");
 lcd.setCursor(0,1);
 lcd.print("to start System");
 digitalWrite(closeLight, HIGH);
 if(digitalRead(up)==0 || digitalRead(down)==0)
 {
  for(int i=0;i<5;i++)
 {
    lcd.clear();
    lcd.print("Place Finger");
    delay(2000);
    int result=getFingerprintIDez();
    if(result>=0)
  {
        digitalWrite(openLight, HIGH);
        digitalWrite(closeLight, LOW);
        lcd.clear();
        lcd.print("Allowed");
        lcd.setCursor(0,1);
        lcd.print("Gete Opened   ");
        myServo.write(0);
        delay(5000);
        myServo.write(180);
        digitalWrite(closeLight, HIGH);
        digitalWrite(openLight, LOW);
        lcd.setCursor(0,1);
        lcd.print("Gate Closed   ");
        return;
     }
   }
 }
 checkKeys();
 delay(1000);
}
void checkKeys()
{
   if(digitalRead(enroll) == 0)
   {
    lcd.clear();
    lcd.print("Please Wait");
    delay(1000);
    while(digitalRead(enroll) == 0);
    Enroll();
   }
   else if(digitalRead(del) == 0)
   {
    lcd.clear();
    lcd.print("Please Wait");
    delay(1000);
    delet();
   }  
}
void Enroll()
{
   int count=0;
   lcd.clear();
   lcd.print("Enroll Finger    ");
   lcd.setCursor(0,1);
   lcd.print("Location:");
   while(1)
   {
     lcd.setCursor(9,1);
     lcd.print(count);
     if(digitalRead(up) == 0)
     {
       count++;
       if(count>25)
       count=0;
       delay(500);
     }
     else if(digitalRead(down) == 0)
     {
       count--;
       if(count<0)
       count=25;
       delay(500);
     }
     else if(digitalRead(del) == 0)
     {
          id=count;
          getFingerprintEnroll();
          return;
     }
       else if(digitalRead(enroll) == 0)
     {        
          return;
     }
 }
}
void delet()
{
   int count=0;
   lcd.clear();
   lcd.print("Delete Finger    ");
   lcd.setCursor(0,1);
   lcd.print("Location:");
   while(1)
   {
     lcd.setCursor(9,1);
     lcd.print(count);
     if(digitalRead(up) == 0)
     {
       count++;
       if(count>25)
       count=0;
       delay(500);
     }
     else if(digitalRead(down) == 0)
     {
       count--;
       if(count<0)
       count=25;
       delay(500);
     }
     else if(digitalRead(del) == 0)
     {
          id=count;
          deleteFingerprint(id);
          return;
     }
       else if(digitalRead(enroll) == 0)
     {        
          return;
     }
 }
}
uint8_t getFingerprintEnroll() 
{
  int p = -1;
  lcd.clear();
  lcd.print("finger ID:");
  lcd.print(id);
  lcd.setCursor(0,1);
  lcd.print("Place Finger");
  delay(2000);
  while (p != FINGERPRINT_OK)
 {
    p = finger.getImage();
    switch (p)
  {
    case FINGERPRINT_OK:
      Serial.println("Image taken");
      lcd.clear();
      lcd.print("Image taken");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.println("No Finger");
      lcd.clear();
      lcd.print("No Finger");
      break;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      lcd.clear();
      lcd.print("Comm Error");
      break;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("Imaging error");
      lcd.clear();
      lcd.print("Imaging Error");
      break;
    default:
      Serial.println("Unknown error");
       lcd.clear();
      lcd.print("Unknown Error");
      break;
  }
 }
  // OK success!
  p = finger.image2Tz(1);
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image converted");
      lcd.clear();
      lcd.print("Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("Image too messy");
       lcd.clear();
       lcd.print("Image too messy");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      lcd.clear();
      lcd.print("Comm Error");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      Serial.println("Could not find fingerprint features");
      lcd.clear();
      lcd.print("Feature Not Found");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      Serial.println("Could not find fingerprint features");
      lcd.clear();
      lcd.print("Feature Not Found");
      return p;
    default:
      Serial.println("Unknown error");
      lcd.clear();
      lcd.print("Unknown Error");
      return p;
 }
  
  Serial.println("Remove finger");
  lcd.clear();
  lcd.print("Remove Finger");
  delay(2000);
  p = 0;
  while (p != FINGERPRINT_NOFINGER) {
    p = finger.getImage();
 }
  Serial.print("ID "); Serial.println(id);
  p = -1;
  Serial.println("Place same finger again");
   lcd.clear();
      lcd.print("Place Finger");
      lcd.setCursor(0,1);
      lcd.print("   Again");
  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
    switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image taken");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.print(".");
      break;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      break;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("Imaging error");
      break;
    default:
      Serial.println("Unknown error");
      return;
  }
 }
  // OK success!
  p = finger.image2Tz(2);
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("Image too messy");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      Serial.println("Could not find fingerprint features");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      Serial.println("Could not find fingerprint features");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
 }
  
  // OK converted!
  Serial.print("Creating model for #");  Serial.println(id);
  
  p = finger.createModel();
  if (p == FINGERPRINT_OK) {
    Serial.println("Prints matched!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_ENROLLMISMATCH) {
    Serial.println("Fingerprints did not match");
    return p;
  } else {
    Serial.println("Unknown error");
    return p;
  }   
  
  Serial.print("ID "); Serial.println(id);
  p = finger.storeModel(id);
  if (p == FINGERPRINT_OK) {
    Serial.println("Stored!");
    lcd.clear();
    lcd.print("Stored!");
    delay(2000);
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_BADLOCATION) {
    Serial.println("Could not store in that location");
    return p;
  } else if (p == FINGERPRINT_FLASHERR) {
    Serial.println("Error writing to flash");
    return p;
 }
  else {
    Serial.println("Unknown error");
    return p;
  }   
}
int getFingerprintIDez()
{
  uint8_t p = finger.getImage();
  
  if (p != FINGERPRINT_OK)  
  return -1;
  p = finger.image2Tz();
  if (p != FINGERPRINT_OK)  
  return -1;
  p = finger.fingerFastSearch();
  if (p != FINGERPRINT_OK)
 {
   lcd.clear();
   lcd.print("Finger Not Found");
   lcd.setCursor(0,1);
   lcd.print("Try Later");
   delay(2000);  
  return -1;
 }
  // found a match!
  Serial.print("Found ID #"); 
  Serial.print(finger.fingerID); 
  return finger.fingerID; 
}
uint8_t deleteFingerprint(uint8_t id) 
{
  uint8_t p = -1;  
  lcd.clear();
  lcd.print("Please wait");
  p = finger.deleteModel(id);
  if (p == FINGERPRINT_OK) 
 {
    Serial.println("Deleted!");
    lcd.clear();
    lcd.print("Figer Deleted");
    lcd.setCursor(0,1);
    lcd.print("Successfully");
    delay(1000);
  } 
  
  else 
 {
    Serial.print("Something Wrong"); 
    lcd.clear();
    lcd.print("Something Wrong");
    lcd.setCursor(0,1);
    lcd.print("Try Again Later");
    delay(2000);
    return p;
  }   
}

Arduino Projects: Fingerprint Door Unlock System:-

This simple fingerprint door unlock project using Arduino can be very


useful for door security, forensics, crime investigation, personal identification,
attendance system and much more. In the future, there could be many more
applications like fingerprint based driving licences, bank accounts operation and
so on.

The whole system works under a simple algorithm called matching algorithm,
which is used to compare previously-stored templates of fingerprints against
users’ fingerprints for authentication purposes.

A key is normally used for traditional door opening, but it provides very poor
security. In this fingerprint door unlock project, only when an authorized person
places a finger on the sensor, the door unlocks and the LCD displays a welcome
message along with that person’s name.
Circuit and working
The circuit shown in Fig. 1 operates using a 12V power supply. An Arduino
microcontroller (MCU) requires only 5V but the solenoid electric lock requires
12V. As Arduino Uno has an inbuilt 5V voltage regulator, a common 12V
supply can be used for the whole system.
The brain of the circuit is Arduino Uno MCU board (BOARD1). It is based on
ATmega328/ATmega328P and has 14 digital input/output (I/O) pins, six
analogue inputs, 32k flash memory, 16MHz crystal oscillator, a USB connection,
power jack, ICSP header and reset button, among others. It can be programmed
using Arduino IDE software

Fingerprint sensor module R305 (connected across CON2) has UART interface
with direct connections to the MCU or to the PC through max232/USB serial
adaptor. The user can store fingerprint data in the module and configure it in 1:1
or 1:N mode for identification. Pins TX and RX of R305 sensor are connected to
Arduino digital pins 2 and 3, which are used for serial communication.

The LCD display (LCD1) is used to display messages during action. Here, a
16×2 display is used; each character is made of 5×7 dot-matrix. Pins 3, 4, 5 and
6 of the LCD are the control lines connected to preset (PR1) output, pin 12
(Arduino), GND and pin 11 (Arduino). Pins 11, 12, 13 and 14 are data pins of the
LCD that are connected to pins 7, 6, 5 and 4 of Arduino, respectively. Preset PR1
is used to adjust the contrast of the LCD display.

An electronic door-lock solenoid (connected across connector CON3) is basically


an electromagnet made of a big coil of copper wire with an armature (slug of
metal) in the middle. When the coil is energised, the slug is pulled into the centre
of the coil. This allows the solenoid to move to one end.
Initial stage

Valid finger

Invalid finger
The solenoid lock requires more current than what Arduino can provide.
Therefore to operate the lock, a 5V relay (RL1) is used. CON3 is connected
between normally open (N/O) contacts of RL1 and GND. The sequence of
messages on the LCD from author’s prototype are shown in Figs 2, 3 and 4.
Software:-
Programs named enroll and fingerprint use different functions like
getFingerprintEnroll(int,id), Adafruit_Fingerprint(&mySerial) and
getFingerprintEnroll(id). These functions are defined inside the library and
pass arguments when called.

After uploading enroll in the Arduino, open serial monitor from Arduino IDE
from Tools→Serial monitor options. Change baud rate below the serial
monitor window to 38400. Choose Newline option from the same place.
Then, follow the instructions on the serial monitor. Place the finger on the
fingerprint module. Type any whole number as the ID number. Press Send
tab to send the ID number from the serial monitor to Arduino. This
fingerprint gets converted into digital data and gets store inside R305 module
database.

More than 200 fingerprints can be stored on this system. Make sure that
each fingerprint has a unique ID number. This ID number will be used in the
next program to identify the authenticated person’s name. The serial
monitor will guide the user as to when he or she should place the finger and
when to remove it.

For debugging without an LCD display, make the same settings for the serial
monitor after uploading Fingerprint program. This is used to compare the
fingerprint in the sensor with stored prints. The serial monitor guides here
also. The fingerprint program should be edited to change the name and ID
numbers according to how users want
Construction and testing
The single-side PCB for the fingerprint door unlock system is shown in Fig. 5
and it’s component layout in Fig. 6. For convenience, we have designed the
PCB as an Arduino shield. The users can modify the design as per
requirement. Also, they can test PCB with Arduino board using a cable
connector.
Make sure the baud rate given in the program is correct. Baud rate for the
serial monitor can be anything but the baud rate for R305 sensor should
match that given in its datasheet. Baud rate may vary with different versions
of the sensor. It is given in the program like Serial.begin(38400) [baud rate for
serial monitor]; finger.begin(57600) [baud rate for sensor]. Reset Arduino
board before validation of the fingerprint.
Arduino Uno:-

The Arduino Uno is an open-source microcontroller board based on


the Microchip ATmega328P microcontroller and developed by Arduino.cc.[2][3] The board
is equipped with sets of digital and analog input/output (I/O) pins that may be interfaced
to various expansion boards (shields) and other circuits.[1] The board has 14 Digital pins,
6 Analog pins, and programmable with the Arduino IDE (Integrated Development
Environment) via a type B USB cable.[4] It can be powered by the USB cable or by an
external 9-volt battery, though it accepts voltages between 7 and 20 volts. It is also
similar to the Arduino Nano and Leonardo.[5][6] The hardware reference design is
distributed under a Creative Commons Attribution Share-Alike 2.5 license and is
available on the Arduino website. Layout and production files for some versions of the
hardware are also available.
The word "uno" means "one" in Italian and was chosen to mark the initial release of
the Arduino Software.[1] The Uno board is the first in a series of USB-based Arduino
boards,[3] and it and version 1.0 of the Arduino IDE were the reference versions of
Arduino, now evolved to newer releases. [4] The ATmega328 on the board comes
preprogrammed with a bootloader that allows uploading new code to it without the use
of an external hardware programmer. [3]
While the Uno communicates using the original STK500 protocol, [1] it differs from all
preceding boards in that it does not use the FTDI USB-to-serial driver chip. Instead, it
uses the Atmega16U2 (Atmega8U2 up to version R2) programmed as a USB-to-serial
converter.[

Background:-

The Arduino project started at the Interaction Design Institute Ivrea (IDII) in Ivrea, Italy.
At that time, the students used a BASIC Stamp microcontroller at a cost of $100, a
considerable expense for many students. In 2003 Hernando Barragán created the
development platform Wiring as a Master's thesis project at IDII, under the supervision
of Massimo Banzi and Casey Reas, who are known for work on
the Processing language. The project goal was to create simple, low-cost tools for
creating digital projects by non-engineers. The Wiring platform consisted of a printed
circuit board (PCB) with an ATmega168 microcontroller, an IDE based on Processing
and library functions to easily program the microcontroller. [8] In 2003, Massimo Banzi,
with David Mellis, another IDII student, and David Cuartielles, added support for the
cheaper ATmega8 microcontroller to Wiring. But instead of continuing the work on
Wiring, they forked the project and renamed it Arduino. Early arduino boards used the
FTDI USB-to-serial driver chip and an ATmega168.[8] The Uno differed from all
preceding boards by featuring the ATmega328P microcontroller and an ATmega16U2
(Atmega8U2 up to version R2) programmed as a USB-to-serial converter.

Technical specifications:-

 Microcontroller: Microchip ATmega328P [7]
 Operating Voltage: 5 Volts
 Input Voltage: 7 to 20 Volts
 Digital I/O Pins: 14 (of which 6 provide PWM output)
 Analog Input Pins: 6
 DC Current per I/O Pin: 20 mA
 DC Current for 3.3V Pin: 50 mA
 Flash Memory: 32 KB of which 0.5 KB used by bootloader
 SRAM: 2 KB
 EEPROM: 1 KB
 Clock Speed: 16 MHz
 Length: 68.6 mm
 Width: 53.4 mm
 Weight: 25 g
Pins:-
General pin functions:-

 LED: There is a built-in LED driven by digital pin 13. When the pin is high value,
the LED is on, when the pin is low, it's off.
 VIN: The input voltage to the Arduino/Genuino board when it's using an external
power source (as opposed to 5 volts from the USB connection or other regulated
power source). You can supply voltage through this pin, or, if supplying voltage via
the power jack, access it through this pin.
 5V: This pin outputs a regulated 5V from the regulator on the board. The board
can be supplied with power either from the DC power jack (7 - 20V), the USB
connector (5V), or the VIN pin of the board (7-20V). Supplying voltage via the 5V or
3.3V pins bypasses the regulator, and can damage the board.
 3V3: A 3.3 volt supply generated by the on-board regulator. Maximum current
draw is 50 mA.
 GND: Ground pins.
 IOREF: This pin on the Arduino/Genuino board provides the voltage reference
with which the microcontroller operates. A properly configured shield can read the
IOREF pin voltage and select the appropriate power source or enable voltage
translators on the outputs to work with the 5V or 3.3V.
 Reset: Typically used to add a reset button to shields which block the one on the
board.[7]

Special pin functions:-


Each of the 14 digital pins and 6 analog pins on the Uno can be used as an input or
output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 5
volts. Each pin can provide or receive 20 mA as recommended operating condition and
has an internal pull-up resistor (disconnected by default) of 20-50k ohm. A maximum of
40mA is the value that must not be exceeded on any I/O pin to avoid permanent
damage to the microcontroller. The Uno has 6 analog inputs, labeled A0 through A5,
each of which provide 10 bits of resolution (i.e. 1024 different values). By default they
measure from ground to 5 volts, though is it possible to change the upper end of their
range using the AREF pin and the analogReference() function. [7]
In addition, some pins have specialized functions:

 Serial / UART: pins 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX)
TTL serial data. These pins are connected to the corresponding pins of the
ATmega8U2 USB-to-TTL serial chip.
 External interrupts: pins 2 and 3. These pins can be configured to trigger an
interrupt on a low value, a rising or falling edge, or a change in value.
 PWM (pulse-width modulation): 3, 5, 6, 9, 10, and 11. Can provide 8-bit PWM
output with the analogWrite() function.
 SPI (Serial Peripheral Interface): 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).
These pins support SPI communication using the SPI library.
 TWI (two-wire interface) / I²C: A4 or SDA pin and A5 or SCL pin. Support TWI
communication using the Wire library.
 AREF (analog reference): Reference voltage for the analog inputs. [7]

Communication:-
The Arduino/Genuino Uno has a number of facilities for communicating with a
computer, another Arduino/Genuino board, or other microcontrollers. The ATmega328
provides UART TTL (5V) serial communication, which is available on digital pins 0 (RX)
and 1 (TX). An ATmega16U2 on the board channels this serial communication over
USB and appears as a virtual com port to software on the computer. The 16U2 firmware
uses the standard USB COM drivers, and no external driver is needed. However, on
Windows, a .inf file is required. The Arduino Software (IDE) includes a serial monitor
which allows simple textual data to be sent to and from the board. The RX and TX LEDs
on the board will flash when data is being transmitted via the USB-to-serial chip and
USB connection to the computer (but not for serial communication on pins 0 and 1). A
SoftwareSerial library allows serial communication on any of the Uno's digital pins. [7]

Automatic (software) reset:-


Rather than requiring a physical press of the reset button before an upload, the
Arduino/Genuino Uno board is designed in a way that allows it to be reset by software
running on a connected computer. One of the hardware flow control lines (DTR) of the
ATmega8U2/16U2 is connected to the reset line of the ATmega328 via a 100 nanofarad
capacitor. When this line is asserted (taken low), the reset line drops long enough to
reset the chip.[7]
This setup has other implications. When the Uno is connected to a computer running
Mac OS X or Linux, it resets each time a connection is made to it from software (via
USB). For the following half-second or so, the bootloader is running on the Uno. While it
is programmed to ignore malformed data (i.e. anything besides an upload of new code),
it will intercept the first few bytes of data sent to the board after a connection is opened.
[7]
Fingerprint scanner :-

Fingerprint scanners are security systems of biometrics. They are used to unlock


doors and in other security applications. During the 2010s fingerprint scanners became
commonplace on mobile phones.
People have a pattern of ridges on their fingers. This fingerprint cannot be removed or
changed. Every fingerprint is different from any other in the world. Because there are
countless combinations, fingerprints are much used for identification.
Types:-

Optical reflexiv
They are based on the oldest technique, that consists of placing your finger on a glass
surface or a prism that is illuminated by a led diode. When the ridges of fingerprints
touch the surface, the light is absorbed, while between these crests a total reflection
occurs. The resulting light and dark areas are recorded in an image sensor.
In practice there are some difficulties with this technique: wet and dry fingers make very
different imagies, and the system is sensitive to dust and dirt on the surface. The unit is
large and expensive. This system is also easy to cheat and if the skin is damaged, the
fingerprint is not recognized correctly. The recognition of the fingerprint of older people
is also difficult to do because their skin may not be elastic enough. In some
circumstances this may result in false recognition. If the stored fingerprint was taken
with less pressure, false acceptances may occur

Capacitive
The sensor is a silicon integrated circuit with a surface that is covered by a large
number of transducer elements (or pixels), with a typical resolution of 500 dpi. Each
element contains two adjacent metal electrodes. The capacitance between the
electrodes, which forms a feedback path for an inverting amplifier, is reduced when the
finger is applied to said surface: it is further reduced when it detects ridges and less
reduced when it detects the space between them.
The sensor is susceptible to electrostatic discharge. These sensors only work with
normal healthy skins, they are not operative being used on skins with hard areas,
calluses or scars. Moisture, grease or dust can also affect its operation.

Mechanical
It consists of tens of thousands of tiny pressure transducers that are mounted on the
surface of the sensor. An alternative design uses switches that are closed when
pressed by a ridge, but that stay open when they are under a valley. This only provides
one bit of information per pixel, instead of working with a gray scale.

Therma
In this case the heat driven by the finger is detected, which is greater when there is a
ridge than when there is a valley. A silicon component has been developed with a
matrix of pixels called "FingerChip", that is, "finger integrated circuit", each of which is
covered with a layer of pyroelectric material in which a change in temperature translates
into a change in the load distribution of its surface. The image is in the gray scale that
has the right quality even with the finger worn, with dirt, with grease or with humidity.
The sensor has a robust protective layer and can provide a dynamic output.
Dynamic output
Most of the sensors described have been altered in the past. To avoid this, a new
operating mode has been added. Instead of simply placing your finger statically on the
sensor, the finger moves slowly along it. The sensor only has a narrow sensitive area,
and generates a complete sequence of images, which can be reassembled, by means
of a processor, in a complete image. The benefits are improved appreciably and the
elimination of any residual grease is guaranteed.

Use
Smartphone with round fingerprint scannerThe most important use area is in access
control for computers. This is especially important for laptops and PDAs. Thanks to the
price falling, more and more devices are equipped with sensors. Other devices with
built-in fingerprint sensors include USB hard drives, USB memory modules and card
readers. They are also available in mice and keyboards.
Sensors are increasingly used to secure financial transactions and change machines for
"online" banking. In the future, the owner's fingerprint will be stored securely on identity
cards and credit cards and may also be used for authentication of emails using digital
signatures.
Direct physical access to rooms and devices can also be ensured by coupling
fingerprint sensors with door opening systems.

Construction forms
There are two construction forms: the stagnant and the moving fingerprint scanner.
[source?]

 Stagnant: The finger must be dragged over the small scanning area. This is
cheaper and less reliable than the moving form. The image is not very good when
the finger is not regularly dragged over the scanning area.
 Moving: The finger lies on the scanning area, while the scanner runs underneath.
Because the scanner runs regularly over the fingerprint, the images are better.
Rectifier:-
A rectifier is an electrical device that converts alternating current (AC), which
periodically reverses direction, to direct current (DC), which flows in only one direction.
The process is known as rectification, since it "straightens" the direction of current.
Physically, rectifiers take a number of forms, including vacuum tube diodes, mercury-arc
valves, stacks of copper and selenium oxide plates, semiconductor diodes, silicon-
controlled rectifiers and other silicon-based semiconductor switches. Historically, even
synchronous electromechanical switches and motors have been used. Early radio
receivers, called crystal radios, used a "cat's whisker" of fine wire pressing on a crystal
of galena (lead sulfide) to serve as a point-contact rectifier or "crystal detector".
Rectifiers have many uses, but are often found serving as components of DC power
supplies and high-voltage direct current power transmission systems. Rectification may
serve in roles other than to generate direct current for use as a source of power. As
noted, detectors of radio signals serve as rectifiers. In gas heating systems flame
rectification is used to detect presence of a flame.
Depending on the type of alternating current supply and the arrangement of the rectifier
circuit, the output voltage may require additional smoothing to produce a uniform steady
voltage. Many applications of rectifiers, such as power supplies for radio, television and
computer equipment, require a steady constant DC voltage (as would be produced by
a battery). In these applications the output of the rectifier is smoothed by an electronic
filter, which may be a capacitor, choke, or set of capacitors, chokes and resistors,
possibly followed by a voltage regulator to produce a steady voltage.
More complex circuitry that performs the opposite function, converting DC to AC, is
called an inverter.

Rectifier devices
Before the development of silicon semiconductor rectifiers, vacuum tube thermionic
diodes and copper oxide- or selenium-based metal rectifier stacks were used.[1] With the
introduction of semiconductor electronics, vacuum tube rectifiers became obsolete,
except for some enthusiasts of vacuum tube audio equipment. For power rectification
from very low to very high current, semiconductor diodes of various types (junction
diodes, Schottky diodes, etc.) are widely used.
Other devices that have control electrodes as well as acting as unidirectional current
valves are used where more than simple rectification is required—e.g., where variable
output voltage is needed. High-power rectifiers, such as those used in high-voltage
direct current power transmission, employ silicon semiconductor devices of various
types. These are thyristors or other controlled switching solid-state switches, which
effectively function as diodes to pass current in only one direction.
Rectifier circuits
Rectifier circuits may be single-phase or multi-phase. Most low power rectifiers for
domestic equipment are single-phase, but three-phase rectification is very important for
industrial applications and for the transmission of energy as DC (HVDC).
Single-phase rectifiers
Half-wave rectification
In half-wave rectification of a single-phase supply, either the positive or negative half of
the AC wave is passed, while the other half is blocked. Mathematically, it is a step
function (for positive pass, negative block): passing positive corresponds to the ramp
function being the identity on positive inputs, blocking negative corresponds to being
zero on negative inputs. Because only one half of the input waveform reaches the
output, mean voltage is lower. Half-wave rectification requires a single diode in a single-
phase supply, or three in a three-phase supply. Rectifiers yield a unidirectional but
pulsating direct current; half-wave rectifiers produce far more ripple than full-wave
rectifiers, and much more filtering is needed to eliminate harmonics of the AC frequency
from the output.
The no-load output DC voltage of an ideal half-wave rectifier for a sinusoidal input
voltage is:[2]
where:
Vdc, Vav – the DC or average output voltage,
Vpeak, the peak value of the phase input voltages,Vrms,
the root mean square (RMS) value of output

A full-wave rectifier converts the whole of the input waveform to one of constant polarity
(positive or negative) at its output. Mathematically, this corresponds to the absolute
value function. Full-wave rectification converts both polarities of the input waveform to
pulsating DC (direct current), and yields a higher average output voltage. Two diodes
and a center tapped transformer, or four diodes in a bridge configuration and any AC
source (including a transformer without center tap), are needed. [3] Single semiconductor
diodes, double diodes with common cathode or common anode, and four-diode bridges,
are manufactured as single components.

For single-phase AC, if the transformer is center-tapped, then two diodes


back-to-back (cathode-to-cathode or anode-to-anode, depending upon output polarity
required) can form a full-wave rectifier. Twice as many turns are required on the
transformer secondary to obtain the same output voltage than for a bridge rectifier, but
the power rating is unchanged

The average and RMS no-load output voltages of an ideal single-phase full-wave rectifier


are:
Very common double-diode rectifier vacuum tubes contained a single
common cathode and two anodes inside a single envelope, achieving full-wave
rectification with positive output. The 5U4 and the 80/5Y3 (4 pin)/(octal)were popular
examples of this configuration.
Three-phase rectifiers
Single-phase rectifiers are commonly used for power supplies for domestic equipment.
However, for most industrial and high-power applications, three-phase rectifier circuits
are the norm. As with single-phase rectifiers, three-phase rectifiers can take the form of
a half-wave circuit, a full-wave circuit using a center-tapped transformer, or a full-wave
bridge circuit.
Thyristors are commonly used in place of diodes to create a circuit that can regulate
the output voltage

. Many devices that provide direct current actually generate three-phase AC. For


example, an automobile alternator contains six diodes, which function as a full-wave
rectifier for battery charging.

DC motor
A DC motor is any of a class of rotary electrical machines that converts direct current
electrical energy into mechanical energy. The most common types rely on the forces
produced by magnetic fields. Nearly all types of DC motors have some internal
mechanism, either electromechanical or electronic, to periodically change the direction
of current flow in part of the motor.
DC motors were the first form of motor widely used, as they could be powered from
existing direct-current lighting power distribution systems. A DC motor's speed can be
controlled over a wide range, using either a variable supply voltage or by changing the
strength of current in its field windings. Small DC motors are used in tools, toys, and
appliances. The universal motor can operate on direct current but is a
lightweight brushed motor used for portable power tools and appliances. Larger DC
motors are currently used in propulsion of electric vehicles, elevator and hoists, and in
drives for steel rolling mills. The advent of power electronics has made replacement of
DC motors with AC motors possible in many applications.

Electromagnetic motors
A coil of wire with a current running through it generates an electromagnetic field
aligned with the center of the coil. The direction and magnitude of the magnetic field
produced by the coil can be changed with the direction and magnitude of the current
flowing through it.
A simple DC motor has a stationary set of magnets in the stator and an armature with
one or more windings of insulated wire wrapped around a soft iron core that
concentrates the magnetic field. The windings usually have multiple turns around the
core, and in large motors there can be several parallel current paths. The ends of the
wire winding are connected to a commutator. The commutator allows each armature
coil to be energized in turn and connects the rotating coils with the external power
supply through brushes. (Brushless DC motors have electronics that switch the DC
current to each coil on and off and have no brushes.)
The total amount of current sent to the coil, the coil's size and what it's wrapped around
dictate the strength of the electromagnetic field created.
The sequence of turning a particular coil on or off dictates what direction the effective
electromagnetic fields are pointed. By turning on and off coils in sequence a rotating
magnetic field can be created. These rotating magnetic fields interact with the magnetic
fields of the magnets (permanent or electromagnets) in the stationary part of the motor
(stator) to create a torque on the armature which causes it to rotate. In some DC motor
designs the stator fields use electromagnets to create their magnetic fields which allow
greater control over the motor.
At high power levels, DC motors are almost always cooled using forced air.
Different number of stator and armature fields as well as how they are connected
provide different inherent speed/torque regulation characteristics. The speed of a DC
motor can be controlled by changing the voltage applied to the armature. The
introduction of variable resistance in the armature circuit or field circuit allowed speed
control. Modern DC motors are often controlled by power electronics systems which
adjust the voltage by "chopping" the DC current into on and off cycles which have an
effective lower voltage.
Since the series-wound DC motor develops its highest torque at low speed, it is often
used in traction applications such as electric locomotives, and trams. The DC motor was
the mainstay of electric traction drives on both electric and diesel-electric locomotives,
street-cars/trams and diesel electric drilling rigs for many years. The introduction of DC
motors and an electrical grid system to run machinery starting in the 1870s started a
new second Industrial Revolution. DC motors can operate directly from rechargeable
batteries, providing the motive power for the first electric vehicles and today's hybrid
cars and electric cars as well as driving a host of cordless tools. Today DC motors are
still found in applications as small as toys and disk drives, or in large sizes to operate
steel rolling mills and paper machines. Large DC motors with separately excited fields
were generally used with winder drives for mine hoists, for high torque as well as
smooth speed control using thyristor drives. These are now replaced with large AC
motors with variable frequency drives.
If external mechanical power is applied to a DC motor it acts as a DC generator,
a dynamo. This feature is used to slow down and recharge batteries on hybrid and
electric cars or to return electricity back to the electric grid used on a street car or
electric powered train line when they slow down. This process is called regenerative
braking on hybrid and electric cars. In diesel electric locomotives they also use their DC
motors as generators to slow down but dissipate the energy in resistor stacks. Newer
designs are adding large battery packs to recapture some of this energy.

Brushed
Main article: Brushed DC electric motor

A brushed DC electric motor generating torque from DC power supply by using an


internal mechanical commutation. Stationary permanent magnets form the stator field.
Torque is produced by the principle that any current-carrying conductor placed within an
external magnetic field experiences a force, known as Lorentz force. In a motor, the
magnitude of this Lorentz force (a vector represented by the green arrow), and thus the
output torque,is a function for rotor angle, leading to a phenomenon known as torque
ripple) Since this is a two-pole motor, the commutator consists of a split ring, so that the
current reverses each half turn ( 180 degrees).
The brushed DC electric motor generates torque directly from DC power supplied to the
motor by using internal commutation, stationary magnets
(permanent or electromagnets), and rotating electromagnets.
Advantages of a brushed DC motor include low initial cost, high reliability, and simple
control of motor speed. Disadvantages are high maintenance and low life-span for high
intensity uses. Maintenance involves regularly replacing the carbon brushes and springs
which carry the electric current, as well as cleaning or replacing the commutator. These
components are necessary for transferring electrical power from outside the motor to
the spinning wire windings of the rotor inside the motor.
Brushes are usually made of graphite or carbon, sometimes with added dispersed
copper to improve conductivity. In use, the soft brush material wears to fit the diameter
of the commutator, and continues to wear. A brush holder has a spring to maintain
pressure on the brush as it shortens. For brushes intended to carry more than an
ampere or two, a flying lead will be molded into the brush and connected to the motor
terminals. Very small brushes may rely on sliding contact with a metal brush holder to
carry current into the brush, or may rely on a contact spring pressing on the end of the
brush. The brushes in very small, short-lived motors, such as are used in toys, may be
made of a folded strip of metal that contacts the commutator.

Brushless
Main articles: Brushless DC electric motor and Switched reluctance motor
Typical brushless DC motors use one or more permanent magnets in the rotor
and electromagnets on the motor housing for the stator. A motor controller converts DC
to AC. This design is mechanically simpler than that of brushed motors because it
eliminates the complication of transferring power from outside the motor to the spinning
rotor. The motor controller can sense the rotor's position via Hall effect sensors or
similar devices and can precisely control the timing, phase, etc., of the current in the
rotor coils to optimize torque, conserve power, regulate speed, and even apply some
braking. Advantages of brushless motors include long life span, little or no maintenance,
and high efficiency. Disadvantages include high initial cost, and more complicated motor
speed controllers. Some such brushless motors are sometimes referred to as
"synchronous motors" although they have no external power supply to be synchronized
with, as would be the case with normal AC synchronous motors.

Uncommutated
Other types of DC motors require no commutation.

 Homopolar motor – A homopolar motor has a magnetic field along the axis of
rotation and an electric current that at some point is not parallel to the magnetic
field. The name homopolar refers to the absence of polarity change. Homopolar
motors necessarily have a single-turn coil, which limits them to very low voltages.
This has restricted the practical application of this type of motor.
 Ball bearing motor – A ball bearing motor is an unusual electric motor that
consists of two ball bearing-type bearings, with the inner races mounted on a
common conductive shaft, and the outer races connected to a high current, low
voltage power supply. An alternative construction fits the outer races inside a metal
tube, while the inner races are mounted on a shaft with a non-conductive section
(e.g. two sleeves on an insulating rod). This method has the advantage that the tube
will act as a flywheel. The direction of rotation is determined by the initial spin which
is usually required to get it going.

Permanent magnet stator


Main article: Permanent-magnet electric motor
A PM motor does not have a field winding on the stator frame, instead relying on PMs to
provide the magnetic field against which the rotor field interacts to produce torque.
Compensating windings in series with the armature may be used on large motors to
improve commutation under load. Because this field is fixed, it cannot be adjusted for
speed control. PM fields (stators) are convenient in miniature motors to eliminate the
power consumption of the field winding. Most larger DC motors are of the "dynamo"
type, which have stator windings. Historically, PMs could not be made to retain high flux
if they were disassembled; field windings were more practical to obtain the needed
amount of flux. However, large PMs are costly, as well as dangerous and difficult to
assemble; this favors wound fields for large machines.
To minimize overall weight and size, miniature PM motors may use high energy
magnets made with neodymium or other strategic elements; most such are neodymium-
iron-boron alloy. With their higher flux density, electric machines with high-energy PMs
are at least competitive with all optimally designed singly fed synchronous and induction
electric machines. Miniature motors resemble the structure in the illustration, except that
they have at least three rotor poles (to ensure starting, regardless of rotor position) and
their outer housing is a steel tube that magnetically links the exteriors of the curved field
magnets.

Wound stator
See also: Excitation (magnetic)
There are three types of electrical connections between the stator and rotor possible for
DC electric motors: series, shunt/parallel and compound (various blends of series and
shunt/parallel) and each has unique speed/torque characteristics appropriate for
different loading torque profiles/signatures. [1]
Series connection
A series DC motor connects the armature and field windings in series with
a common D.C. power source. The motor speed varies as a non-linear function of load
torque and armature current; current is common to both the stator and rotor yielding
current squared (I^2) behavior[citation needed]. A series motor has very high starting torque
and is commonly used for starting high inertia loads, such as trains, elevators or hoists.
[2]
 This speed/torque characteristic is useful in applications such as dragline excavators,
where the digging tool moves rapidly when unloaded but slowly when carrying a heavy
load.
A series motor should never be started at no load. With no mechanical load on the
series motor, the current is low, the counter-Electro motive force produced by the field
winding is weak, and so the armature must turn faster to produce sufficient counter-
EMF to balance the supply voltage. The motor can be damaged by overspeed. This is
called a runaway condition.
Series motors called universal motors can be used on alternating current. Since the
armature voltage and the field direction reverse at the same time, torque continues to
be produced in the same direction. However they run at a lower speed with lower torque
on AC supply when compared to DC due to reactance voltage drop in AC which is not
present in DC.[3]Since the speed is not related to the line frequency, universal motors
can develop higher-than-synchronous speeds, making them lighter than induction
motors of the same rated mechanical output. This is a valuable characteristic for hand-
held power tools. Universal motors for commercial utility are usually of small capacity,
not more than about 1 kW output. However, much larger universal motors were used for
electric locomotives, fed by special low-frequency traction power networks to avoid
problems with commutation under heavy and varying loads.
Shunt connection
A shunt DC motor connects the armature and field windings in parallel or shunt with a
common D.C. power source. This type of motor has good speed regulation even as the
load varies, but does not have the starting torque of a series DC motor. [4] It is typically
used for industrial, adjustable speed applications, such as machine tools,
winding/unwinding machines and tensioners.
Compound connection
A compound DC motor connects the armature and fields windings in a shunt and a
series combination to give it characteristics of both a shunt and a series DC motor.
[5]
 This motor is used when both a high starting torque and good speed regulation is
needed. The motor can be connected in two arrangements: cumulatively or
differentially. Cumulative compound motors connect the series field to aid the shunt
field, which provides higher starting torque but less speed regulation. Differential
compound DC motors have good speed regulation and are typically operated at
constant speed.
Breadboard:-

A breadboard is a construction base for prototyping of electronics. Originally the word


referred to a literal bread board, a polished piece of wood used for slicing bread. [1] In the
1970s the solderless breadboard (a.k.a. plugboard, a terminal array board) became
available and nowadays the term "breadboard" is commonly used to refer to these.
Because the solderless breadboard does not require soldering, it is reusable. This
makes it easy to use for creating temporary prototypes and experimenting with circuit
design. For this reason, solderless breadboards are also popular with students and in
technological education. Older breadboard types did not have this property.
A stripboard (Veroboard) and similar prototyping printed circuit boards, which are used
to build semi-permanent soldered prototypes or one-offs, cannot easily be reused. A
variety of electronic systems may be prototyped by using breadboards, from small
analog and digital circuits to complete central processing units (CPUs)

Evolution
This 1920s TRF radio manufactured by Signal was constructed on a wooden breadboard.

In the early days of radio, amateurs nailed bare copper wires or terminal strips to a wooden board
(often literally a board to slice bread on) and soldered electronic components to them. [2] Sometimes a
paper schematic diagram was first glued to the board as a guide to placing terminals, then
components and wires were installed over their symbols on the schematic. Using thumbtacks or
small nails as mounting posts was also common.
Breadboards have evolved over time, with the term now being used for all kinds of prototype
electronic devices. For example, US Patent 3,145,483, [3] was filed in 1961 and describes a wooden
plate breadboard with mounted springs and other facilities. US Patent 3,496,419, [4] was filed in 1967
and refers to a particular printed circuit board layout as a Printed Circuit Breadboard. Both examples
refer to and describe other types of breadboards as prior art.
The breadboard most commonly used today is usually made of white plastic and is a pluggable
(solderless) breadboard. It was designed by Ronald J. Portugal in 1971. [5]
Alternatives
Alternative methods to create prototypes are point-to-point construction (reminiscent of the original
wooden breadboards), wire wrap, wiring pencil, and boards like the stripboard. Complicated
systems, such as modern computers comprising millions of transistors, diodes, and resistors, do not
lend themselves to prototyping using breadboards, as their complex designs can be difficult to lay
out and debug on a breadboard.
Modern circuit designs are generally developed using a schematic capture and simulation system,
and tested in software simulation before the first prototype circuits are built on a printed circuit
board. Integrated circuit designs are a more extreme version of the same process: since producing
prototype silicon is costly, extensive software simulations are performed before fabricating the first
prototypes. However, prototyping techniques are still used for some applications such as RF circuits,
or where software models of components are inexact or incomplete.
It is also possible to use a square grid of pairs of holes where one hole per pair connects to its row
and the other connects to its column. This same shape can be in a circle with rows and columns
each spiraling opposite clockwise/counterclockwise.

Solderless breadboard
Typical specifications[edit]
A modern solderless breadboard socket consists of a perforated block of plastic with numerous tin
plated phosphor bronze or nickel silver alloy spring clips under the perforations. The clips are often
called tie points or contact points. The number of tie points is often given in the specification of the
breadboard.
The spacing between the clips (lead pitch) is typically 0.1 inches (2.54 mm). Integrated circuits (ICs)
in dual in-line packages (DIPs) can be inserted to straddle the centerline of the block.
Interconnecting wires and the leads of discrete components (such as capacitors, resistors,
and inductors) can be inserted into the remaining free holes to complete the circuit. Where ICs are
not used, discrete components and connecting wires may use any of the holes. Typically the spring
clips are rated for 1 ampere at 5 volts and 0.333 amperes at 15 volts (5 watts). The edge of the
board has male and female dovetail notches so boards can be clipped together to form a large
breadboard.

Bus and terminal strips[edit]


Solderless breadboards connect pin to pin by metal strips inside the breadboard. The
layout of a typical solderless breadboard is made up from two types of areas, called
strips. Strips consist of interconnected electrical terminals

Terminal strips
The main areas, to hold most of the electronic components.In the middle of a terminal
strip of a breadboard, one typically finds a notch running in parallel to the long side. The
notch is to mark the centerline of the terminal strip and provides limited airflow (cooling)
to DIP ICs straddling the centerline[citation needed]. The clips on the right and left of the notch
are each connected in a radial way; typically five clips (i.e., beneath five holes) in a row
on each side of the notch are electrically connected. The five rows on the left of the
notch are often marked as A, B, C, D, and E, while the ones on the right are marked F,
G, H, I and J. When a "skinny" dual in-line pin package (DIP) integrated circuit (such as
a typical DIP-14 or DIP-16, which have a 0.3-inch (7.6 mm) separation between the pin
rows) is plugged into a breadboard, the pins of one side of the chip are supposed to go
into row E while the pins of the other side go into row F on the other side of the notch.
The columns are identified by numbers from 1 to as many the breadboard design goes.
Most of the breadboards are designed to accommodate 17, 30 or 64 columns in the
mini, half, and full Solderless breadboard with dual bus strips on both sides

Bus strips
To provide power to the electronic components.
A bus strip usually contains two rows: one for ground and one for a supply voltage.
However, some breadboards only provide a single-row power distributions bus strip on
each long side. Typically the row intended for a supply voltage is marked in red, while
the row for ground is marked in blue or black. Some manufacturers connect all terminals
in a column. Others just connect groups of, for example, 25 consecutive terminals in a
column. The latter design provides a circuit designer with some more control
over crosstalk (inductively coupled noise) on the power supply bus. Often the groups in
a bus strip are indicated by gaps in the color marking.
Bus strips typically run down one or both sides of a terminal strip or between terminal
strips. On large breadboards additional bus strips can often be found on the top and
bottom of terminal strips.
Note there are two different common alignments for the power bus strips. On small
boards, with about 30 rows, the holes for the power bus are often aligned between the
signal holes. On larger boards, about 63 rows, the power bus strip holes are often in
alignment with the signal holes. This makes some accessories designed for one board
type incompatible with the other. For example, some Raspberry Pi GPIO to breadboard
adapters use offset aligned power pins, making them not fit breadboards with aligned
power bus rows. There are no official standards, so the users need to pay extra
attention to the compatibility between a specific model of breadboard and a specific
accessory. Vendors of accessories and breadboards are not always clear in their
specifications of which alignment they use. Seeing a close up photograph of the
pin/hole arrangement can help determine compatibility.
Inside of a solderless breadboard strip
Some manufacturers provide separate bus and terminal strips. Others just provide
breadboard blocks which contain both in one block. Often breadboard strips or blocks
of one brand can be clipped together to make a larger breadboard.
In a more robust variant, one or more breadboard strips are
mounted on a sheet of metal. Typically, that backing sheet also holds a number
of binding posts. These posts provide a clean way to connect an external power
supply. This type of breadboard may be slightly easier to handle. Several images in
this article show such solderless breadboards.

Diagram
A "full size" terminal breadboard strip typically consists of around 56 to 65 rows of
connectors, each row containing the above-mentioned two sets of connected clips (A to
E and F to J). Together with bus strips on each side this makes up a typical 784 to 910
tie point solderless breadboard. "Small size" strips typically come with around 30 rows.
Miniature solderless breadboards as small as 17 rows (no bus strips, 170 tie points) can
be found, but these are only suitable for small and simple designs.

Jump wires
Jump wires (also called jumper wires) for solderless breadboarding can be obtained in ready-to-use
jump wire sets or can be manually manufactured. The latter can become tedious work for larger
circuits. Ready-to-use jump wires come in different qualities, some even with tiny plugs attached to
the wire ends. Jump wire material for ready-made or homemade wires should usually be
22 AWG (0.33 mm2) solid copper, tin-plated wire - assuming no tiny plugs are to be attached to the
wire ends. The wire ends should be stripped 3⁄16 to 5⁄16 in (4.8 to 7.9 mm). Shorter stripped wires might
result in bad contact with the board's spring clips (insulation being caught in the springs). Longer
stripped wires increase the likelihood of short-circuits on the board. Needle-nose
pliers and tweezers are helpful when inserting or removing wires, particularly on crowded boards.
Differently colored wires and color-coding discipline are often adhered to for consistency. However,
the number of available colors is typically far fewer than the number of signal types or paths.
Typically, a few wire colors are reserved for the supply voltages and ground (e.g., red, blue, black),
some are reserved for main signals, and the rest are simply used where convenient. Some ready-to-
use jump wire sets use the color to indicate the length of the wires, but these sets do not allow a
meaningful color-coding schema.

Advanced solderless breadboards


Some manufacturers provide high-end versions of solderless breadboards. These are typically high-
quality breadboard modules mounted on a flat casing. The casing contains additional equipment for
breadboarding, such as a power supply, one or more signal generators, serial interfaces, LED
display or LCD modules, and logic probes.[6]
Solderless breadboard modules can also be found mounted on devices
like microcontroller evaluation boards. They provide an easy way to add additional periphery circuits
to the evaluation board.

High frequencies and dead bugs


For high-frequency development, a metal breadboard affords a desirable solderable ground plane,
often an unetched piece of printed circuit board; integrated circuits are sometimes stuck upside
down to the breadboard and soldered to directly, a technique sometimes called "dead bug"
construction because of its appearance. Examples of dead bug with ground plane construction are
illustrated in a Linear Technologies application note. [7]

Limitations
Due to relatively large parasitic capacitance compared to a properly laid out PCB (approx 2pF
between adjacent contact columns[8]), high inductance of some connections and a relatively high and
not very reproducible contact resistance, solderless breadboards are limited to operation at relatively
low frequencies, usually less than 10 MHz, depending on the nature of the circuit. The relatively high
contact resistance can already be a problem for some DC and very low frequency circuits.
Solderless breadboards are further limited by their voltage and current ratings.
Solderless breadboards usually cannot accommodate surface-mount technology devices (SMD) or
components with grid spacing other than 0.1 inches (2.54 mm). Further, they cannot accommodate
components with multiple rows of connectors if these connectors do not match the dual in-line layout
—it is impossible to provide the correct electrical connectivity. Sometimes small PCB adapters called
"breakout adapters" can be used to fit the component to the board. Such adapters carry one or more
components and have 0.1 inches (2.54 mm) spaced male connector pins in a single in-line or dual
in-line layout, for insertion into a solderless breadboard. Larger components are usually plugged into
a socket on the adapter, while smaller components (e.g., SMD resistors) are usually soldered
directly onto the adapter. The adapter is then plugged into the breadboard via the 0.1 in (2.54 mm)
connectors. However, the need to solder the components onto the adapter negates some of the
advantage of using a solderless breadboard.
Very complex circuits can become unmanageable on a solderless breadboard due to the large
amount of wiring required. The very convenience of easy plugging and unplugging of connections
also makes it too easy to accidentally disturb a connection, and the system becomes unreliable. It is
possible to prototype systems with thousands of connecting points, but great care must be taken in
careful assembly, and such a system becomes unreliable as contact resistance develops over time.
At some point, very complex systems must be implemented in a more reliable interconnection
technology, to have a likelihood of working over a usable time period.

You might also like