SlideShare a Scribd company logo
04   Arduino Peripheral Interfacing
Temperature sensors
0 Gives a Vout propotional to ambient room
 temperature.

0 Concept : as temperature increases, voltage
 across a p-n junction increases at a known
 rate. (in this case Vbe)

0 Voltage at Anlg.Pin in Volts = (reading
  from ADC) * (5/1024) V
0 Centigrade temperature = [(analog voltage
  in V) – 0.5] * 100
Before: Writing the code
0 Review:
   0 How does the lm35 work?
   0 Read datasheet of lm35.
   0 How to connect it to arduino?
   0 What reference to use?
   0 What sort of noises will be present?
   0 What does the analogue input signify?
Datasheet of LM35
Circuit connection diagram
Temp sensor code
0 Connect lm35 as per circuit diagram in 7. Temp Sensor
 folder.

0 We’re giving AREF as 3.3V to reduce noise from the
 LM35 and give more accurate readings.

0 Upload code onto Arduino and Output is seen in the
 Serial monitor of the Arduino.
Write the code
1. Decide which analogue pin you’re going to and
     assign it to a global variable
2.   in setup() { }, initialize serial port to 9600 baud rate
     to send temp reading out to PC.
3.   In loop() { }, take the analogue reading from a pin
     and store it in a temp float variable.
4.   Multiply reading by 5.0 and then divide by 1024 to
     get voltage value read by the port. Store this is a
     float variable called volt.
5.   Print out this value to the serial port and check.
Keep Writing the code
0 To get temp in centigrade, (volt – 0.5) * 100

0 This is the ambient temperature recognized by the
 LM35 in Celsius.

0 Send it to the serial port and check your code.

0 To convert to fahrenheight, mult by 9 then divide by 5
 then add 32 to that result. Send it to serial port too.

              0 Congratulate yourself please.
Improvements?
0 Use 3.3V as reference to increase resolution since
 datasheet says that resolution of lm35 ~ 10mV.

0 Put in on PCB to avoid noise by breadboard internal
 resistance,

0 DO NOT LIGHT THE LM35 OR IMMERSE IT IN WATER.

0 Make a waterproof casing for the lm35 to test temp of
 liquids.

0 Any other applications?
LDR
0 An LDR is a Light Dependent Resistor.
0 As in the resistance offered by this device to an
 electrical circuit is dependent on the amount of light
 falling on the circuit.

0 Also called photocells because they convert light
 energy to an electrical response.

0 Useful for on-when-light/off-when-dark.
04   Arduino Peripheral Interfacing
How to connect the LDR
0 LDR is basically a resistor, so it can be connected
  anyway.

0 You need a pull-down resistor to avoid sinking all the
  current onto the arduino pin.

0 Circuit is GND-10kohn-LDR-VCC.

0 This circuit will only work if between 0-5V. If light is
  too bright, it will saturate at 5V.
0 putting a variable resistor in place of 10k allows for
  controlling saturation with too bright/too dark light.
Photocell               Current
Ambient       Ambient                    LDR + R               Voltage
                            resistance              thru LDR
light like…   light (lux)                (Ω)                   across R
                            (Ω)                     +R
Dim
              0.1 lux       600KΩ        610 KΩ     0.008 mA   0.1 V
hallway
Moonlit
              1 lux         70 KΩ        80 KΩ      0.07 mA    0.6 V
night
Room          10 lux        10 KΩ        20 KΩ      0.25 mA    2.5 V
Dark
overcast
day /         100 lux       1.5 KΩ       11.5 KΩ    0.43 mA    4.3 V
Bright
room
Overcast
              1000 lux      300 Ω        10.03 KΩ   0.5 mA     5V
day
04   Arduino Peripheral Interfacing
Writing code!
0 decide analoge pin used as input to LDR.

0 In setup(){ }, initialize serial port with 9600.

0 In loop(){ }, first do an analogueread(pin) and store it in an
  int variable called reading.

0 This value represents illumination received by LDR.
0 Send it to Serial Port.

0 Allow delay of some time to let the ADC settle.
Application 1
0 Make thresholds and determine the brightness
 received and send it via serial port.




if (reading < 10)              { Serial.println(" - Dark"); }
else if (reading < 200)        { Serial.println(" - Dim"); }
else if (reading < 500)        { Serial.println(" - Light"); }
else if (reading < 800)        { Serial.println(" - Bright"); }
else { Serial.println(" - Very bright"); }
Application 2
0 Take the analogue reading and use it as the delay
 amount in an LED blinking scenario. Use ledpin = 13.

void loop()
 {
         val = analogRead(LDR);
         digitalWrite(ledPin, HIGH);
         delay(val);
         digitalWrite(ledPin, LOW);
         delay(val);
}
Another Application
0 Put three LEDs around the LDR. Red, Green and Blue.

0 Put an object of a particular color in front of the LDR.

0 Light up RED LED and measure LDR value
0 Light up GREEN LED and measure LDR value
0 Light up BLUE LED and measure LDR value

0 From these three analogue values you can determine the
  color of object being sensed.
Sensor Data on PC
0 Reading and plotting sensor data on PC is very simple
 on the arduino.

0 Send data continuously to the computer over the
 serial port.

0 Data can be viewed by any program capable of
 viewing this data
Send sensor data to serial
            port
0 Open the folder Sensor data graph

0 Upload the arduino code onto the arduino and close
 arduino IDE after checking serial monitor.

0 In softwares folder extract the processing folder.

0 Open processing and copy the processing code onto it and
 run.

0 Make sure serial port number in the processing sketch
 matches arduino
The motor shield
                                             The motor shield goes on top
1. DC Motor Interface                        of the arduino neatly.
Drives 2 motors with L293D DC Motor
Driver IC.
                                             There are loads of shields for
                                             the arduino that provide
2. IR paired sensors
                                             different functionality.
For line sensing, 4 IR sensor pairs can be
attached and controlled.
                                             Be careful removing the
                                             shield, if you bend the pins,
3. The Buzzer or Servo Motor
                                             you cant put the shield in
Selectable via jumper
                                             again.
4. The Switch or Servo Motor
Selectable via jumper

5. Two LEDs
04   Arduino Peripheral Interfacing
04   Arduino Peripheral Interfacing
IR TX RX Pair
0 An IR transmitter (TX) is a LED that emits
  light in the infrared spectrum.
0 (most cameras see IR, light up the IR LED
  and point a camera at it to check)

0 An IR Receiver (RX) is a transistor with the
  base exposed.
0 The base voltage depends on the amount of
  IR received and it controls the amount of
  current passing through the C-E junction
  (leads).
IR schematic
0 The IR TX LED is connected through a current
  limiting resisto
0 The IR RX is connected via a variable potentiometer
  to a voltage comparator to give a digital output.

0 The pot is used to adjust
For ambient light intensity.
Remember
0 The IR TX RX pairs should be spaced 1/4th of an inch apart
  for optimal detection.

0 Calibration of IR sensors is important to adjust the sensors
  for ambient light.

0 The output of this circuit is DIGITAL and read by a digital
  pin. 1 – obstruction; 0 – No obstruction.

0 If you have to use IR sensors in the sun, use electrical tape
  to provide adequate shielding.
Using the IR sensors
0 The motor shield has 4 IR sensors and 4 pots.
0 Connect the IR dongles to the placeholders. They go in only
  one way
0 There are status LEDs just next to each IR socket, if the
  comparator goes HIGH, the LED lights. This is for
  calibration.
0 Keep the IR sensor pointed at nothing (no obstruction).
0 Use a screwdriver and GENTLY turn the appropriate POT
  until the respective IR sensors status LED turns dark.
0 Check with your hand if LED lights, if not readjust as you
  like.
PINS
0 The table below shows the pin arrangement for the 4
 sensors on the shield.

0 If the shield is mounted, then these 4 pins provide the
 output of the comparator.

0 Use digitalread(pin) to see the state of the pin at any
 time.
Try
0 Connect all four IR sensors and calibrate them.

0 Write a program to output which of the 4 IR sensors
 has gone HIGH to the serial port.

0 CHALLENGE: Try and make sure that the message on
 the serial port doesn’t repeat until the IR sensor has
 gone LOW again (obstruction removed). It shouldn't
 continuously output the message if the IR sensor is
 obstructed,
DC motors
0 Motors are devices that convert electrical energy to
 mechanical energy.

0 Motors come in different varieties: AC, DC, Servo, Stepper
 etc

0 If motor draws less than 40mA of current, it can be directlu
 wired to an arduino pin.

0 Current drawn by a DC motor is propotional to speed and
 torque. To avoid burning out the arduino, we use motor
 drivers to control DC motors.
The L293 driver
0 This chip isolates logic level voltages and the motor supply
  voltages.

0 It as also called a H-bridge.


0 It uses the transistors as a switch concept to electrically
  switch a DC power supply onto the terminals of the motor.

0 The driver can control two motors independently from the
  same supply.
Motor Driver
The Motor Shield
0 The motor driver is present on the
 shield which also contains a wire
 block for easy connection of the
 wires.

0 The supply will have terminals
 marked on the board. Do not reverse      -
 these connections.                       +

0 Motor can be connected in anyway.
 The direction might have to be
 calibrated by testing if the terminals
 are reversed.
Arduino shield to Motor
         Driver Pinout
0 To use a motor, set the enable pin to high in the setup() { }

0 Motor movement is done in loop() { }
0 If l1 is HIGH and l2 is LOW, motor turn in one direction.
0 If l1 is LOW and l2 is HIGH, the motor turns in the other
  direction.

0 If both l1 and l2 are set to HIGH or LOW, then motor is stopped.
Wiring motors
0 Attach the arduino shield onto the arduino.


0 Take a 9V battery cap and screw it onto the motor
 supply terminals. Take care of polarity.
  0 Red >> + and Black >> -


0 Wire up the motors and connect them to the
 terminals.
TRY
0 Move both motors in same direction.


0 Reverse both motors.


0 Stop one and turn the other.
0 Stop the other and turn the one.


0 Make each motor turn in a different direction.
Exercise
0 Combine the functionality of 2 IR sensors and the
  motors to make an obstacle avoider bot.

0 Algorith:
   0 Move forward, left and right randomly.
   0 If IR sensors detect an obstruction, move a little back in
     the opposite side of the obstruction
   0 Continue.

More Related Content

PPTX
03 analogue anrduino fundamentals
PDF
Contactless digital tachometer using microcontroller
PPTX
02 General Purpose Input - Output on the Arduino
PDF
Bot Robo Tanker Sound Detector
DOCX
Sound detectorcircuit
PDF
Arduino based Applications-part 5
PDF
Arduino projects-pdf-download-list-jan-2015
PPTX
Humidity and Temperature Measurement Using Arduino
03 analogue anrduino fundamentals
Contactless digital tachometer using microcontroller
02 General Purpose Input - Output on the Arduino
Bot Robo Tanker Sound Detector
Sound detectorcircuit
Arduino based Applications-part 5
Arduino projects-pdf-download-list-jan-2015
Humidity and Temperature Measurement Using Arduino

What's hot (20)

PDF
DHT11 Digital Temperature and Humidity Sensor
PDF
Build your own electronics lab
PDF
protection on lineman while working on transmission line report
PDF
Arduino - Ch 2: Sunrise-Sunset Light Switch
PPT
Physical prototyping lab5-complex_sensors
PPTX
Automatic Room Lock And Lights Off Circuit
PDF
Electronics schematic circuits for the hobbyist
PPTX
Sensor interfacing in 8051
PDF
International Journal of Engineering Research and Development
PDF
Home automationusing ir remote
PPTX
DHT11 with Arduino
PPTX
Operating electrical devices with PIR sensor. No coding, No controller
PPT
Sensor Lecture Interfacing
PDF
Arduino - CH 1: The Trick Switch
PPTX
Arduino Water level tank with Ultrasonic sensor
PPTX
digi mul ppt
DOCX
Automatic doorbell with object detection
PPTX
Wireless transmission of voice signal using nRF24L01 module
PPTX
Wireless sensors
PPTX
Anti theft & Automation using Arduino
DHT11 Digital Temperature and Humidity Sensor
Build your own electronics lab
protection on lineman while working on transmission line report
Arduino - Ch 2: Sunrise-Sunset Light Switch
Physical prototyping lab5-complex_sensors
Automatic Room Lock And Lights Off Circuit
Electronics schematic circuits for the hobbyist
Sensor interfacing in 8051
International Journal of Engineering Research and Development
Home automationusing ir remote
DHT11 with Arduino
Operating electrical devices with PIR sensor. No coding, No controller
Sensor Lecture Interfacing
Arduino - CH 1: The Trick Switch
Arduino Water level tank with Ultrasonic sensor
digi mul ppt
Automatic doorbell with object detection
Wireless transmission of voice signal using nRF24L01 module
Wireless sensors
Anti theft & Automation using Arduino
Ad

Viewers also liked (20)

PPTX
introduction of Gsm
PPTX
Unit vi (1)
PPTX
Arduino e-Course Syllabus for Beginners
PPTX
Unit vi (2)
PDF
PPT
Arduino workshop proposal
DOCX
Embedded system development-Arduino UNO
PPTX
Arduino Robotics workshop Day1
PDF
GSM Module
PPT
Introduction to GSM - an Overview of Global System for Mobile Communication
PPTX
Project presentation on wireless lpg leakage detector
PPT
8051 Presentation
PPT
GSM Presentation
PPTX
Vehicle tracking system using gps and gsm
PPTX
Gps tracking system
PPTX
PPT
Gsm.....ppt
DOC
PIC MICROCONTROLLERS -CLASS NOTES
PDF
Gas Leakage Detector using Arduino with SMS Alert - Engineering Project
introduction of Gsm
Unit vi (1)
Arduino e-Course Syllabus for Beginners
Unit vi (2)
Arduino workshop proposal
Embedded system development-Arduino UNO
Arduino Robotics workshop Day1
GSM Module
Introduction to GSM - an Overview of Global System for Mobile Communication
Project presentation on wireless lpg leakage detector
8051 Presentation
GSM Presentation
Vehicle tracking system using gps and gsm
Gps tracking system
Gsm.....ppt
PIC MICROCONTROLLERS -CLASS NOTES
Gas Leakage Detector using Arduino with SMS Alert - Engineering Project
Ad

Similar to 04 Arduino Peripheral Interfacing (20)

PPTX
Raspberry pi Part 18
PPTX
Microcontroller ppt
PPT
Physical prototyping lab2-analog_digital
PPT
Physical prototyping lab2-analog_digital
PDF
To measure the intensity of light using LDR sensor by calibrating voltage wit...
PPT
PIC Microcontroller
PPTX
PPTX
Automatic street light using ldr and relay
PPTX
Electronz_Chapter_4.pptx
PPTX
Arduino Workshop (3).pptx
PPTX
Therft alert system
DOCX
Measurements upload
PPTX
Fire Fighting Robot
PDF
70 interesting circuits
DOCX
LIGHT DETECTOR USING NAND GATE
DOCX
LDR (LIGHT DEPENDENT RESISTOR)
PPTX
Sensitive intrucer alaram
DOCX
ir sensor.docx
PDF
PPTX
A Portable Wearable Tele-ECG Monitoring System.pptx
Raspberry pi Part 18
Microcontroller ppt
Physical prototyping lab2-analog_digital
Physical prototyping lab2-analog_digital
To measure the intensity of light using LDR sensor by calibrating voltage wit...
PIC Microcontroller
Automatic street light using ldr and relay
Electronz_Chapter_4.pptx
Arduino Workshop (3).pptx
Therft alert system
Measurements upload
Fire Fighting Robot
70 interesting circuits
LIGHT DETECTOR USING NAND GATE
LDR (LIGHT DEPENDENT RESISTOR)
Sensitive intrucer alaram
ir sensor.docx
A Portable Wearable Tele-ECG Monitoring System.pptx

More from Wingston (20)

PPTX
OpenCV @ Droidcon 2012
PPTX
05 content providers - Android
PPTX
04 activities - Android
PPTX
03 layouts & ui design - Android
PPTX
02 hello world - Android
PPTX
01 introduction & setup - Android
PPTX
OpenCV with android
PPTX
C game programming - SDL
PPTX
C programming - Pointers
PPTX
Introduction to Basic C programming 02
PPT
Introduction to Basic C programming 01
PPTX
Linux – an introduction
PPTX
Embedded linux
PPTX
Introduction to the Arduino
PPTX
4.content mgmt
PPTX
8 Web Practices for Drupal
PPTX
7 Theming in Drupal
PPTX
6 Special Howtos for Drupal
PPTX
5 User Mgmt in Drupal
PPTX
3 Configuring Drupal
OpenCV @ Droidcon 2012
05 content providers - Android
04 activities - Android
03 layouts & ui design - Android
02 hello world - Android
01 introduction & setup - Android
OpenCV with android
C game programming - SDL
C programming - Pointers
Introduction to Basic C programming 02
Introduction to Basic C programming 01
Linux – an introduction
Embedded linux
Introduction to the Arduino
4.content mgmt
8 Web Practices for Drupal
7 Theming in Drupal
6 Special Howtos for Drupal
5 User Mgmt in Drupal
3 Configuring Drupal

Recently uploaded (20)

PDF
BsN 7th Sem Course GridNNNNNNNN CCN.pdf
PPTX
2025 Product Deck V1.0.pptxCATALOGTCLCIA
PDF
Ôn tập tiếng anh trong kinh doanh nâng cao
PPTX
5 Stages of group development guide.pptx
PPT
Chapter four Project-Preparation material
PPTX
AI-assistance in Knowledge Collection and Curation supporting Safe and Sustai...
PPTX
New Microsoft PowerPoint Presentation - Copy.pptx
PDF
MSPs in 10 Words - Created by US MSP Network
PPTX
HR Introduction Slide (1).pptx on hr intro
PPTX
Amazon (Business Studies) management studies
PPTX
svnfcksanfskjcsnvvjknsnvsdscnsncxasxa saccacxsax
PDF
Tata consultancy services case study shri Sharda college, basrur
PPTX
ICG2025_ICG 6th steering committee 30-8-24.pptx
PDF
Elevate Cleaning Efficiency Using Tallfly Hair Remover Roller Factory Expertise
PDF
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
PDF
Types of control:Qualitative vs Quantitative
DOCX
Euro SEO Services 1st 3 General Updates.docx
PPTX
CkgxkgxydkydyldylydlydyldlyddolydyoyyU2.pptx
PPTX
Lecture (1)-Introduction.pptx business communication
PDF
Nidhal Samdaie CV - International Business Consultant
BsN 7th Sem Course GridNNNNNNNN CCN.pdf
2025 Product Deck V1.0.pptxCATALOGTCLCIA
Ôn tập tiếng anh trong kinh doanh nâng cao
5 Stages of group development guide.pptx
Chapter four Project-Preparation material
AI-assistance in Knowledge Collection and Curation supporting Safe and Sustai...
New Microsoft PowerPoint Presentation - Copy.pptx
MSPs in 10 Words - Created by US MSP Network
HR Introduction Slide (1).pptx on hr intro
Amazon (Business Studies) management studies
svnfcksanfskjcsnvvjknsnvsdscnsncxasxa saccacxsax
Tata consultancy services case study shri Sharda college, basrur
ICG2025_ICG 6th steering committee 30-8-24.pptx
Elevate Cleaning Efficiency Using Tallfly Hair Remover Roller Factory Expertise
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
Types of control:Qualitative vs Quantitative
Euro SEO Services 1st 3 General Updates.docx
CkgxkgxydkydyldylydlydyldlyddolydyoyyU2.pptx
Lecture (1)-Introduction.pptx business communication
Nidhal Samdaie CV - International Business Consultant

04 Arduino Peripheral Interfacing

  • 2. Temperature sensors 0 Gives a Vout propotional to ambient room temperature. 0 Concept : as temperature increases, voltage across a p-n junction increases at a known rate. (in this case Vbe) 0 Voltage at Anlg.Pin in Volts = (reading from ADC) * (5/1024) V 0 Centigrade temperature = [(analog voltage in V) – 0.5] * 100
  • 3. Before: Writing the code 0 Review: 0 How does the lm35 work? 0 Read datasheet of lm35. 0 How to connect it to arduino? 0 What reference to use? 0 What sort of noises will be present? 0 What does the analogue input signify?
  • 6. Temp sensor code 0 Connect lm35 as per circuit diagram in 7. Temp Sensor folder. 0 We’re giving AREF as 3.3V to reduce noise from the LM35 and give more accurate readings. 0 Upload code onto Arduino and Output is seen in the Serial monitor of the Arduino.
  • 7. Write the code 1. Decide which analogue pin you’re going to and assign it to a global variable 2. in setup() { }, initialize serial port to 9600 baud rate to send temp reading out to PC. 3. In loop() { }, take the analogue reading from a pin and store it in a temp float variable. 4. Multiply reading by 5.0 and then divide by 1024 to get voltage value read by the port. Store this is a float variable called volt. 5. Print out this value to the serial port and check.
  • 8. Keep Writing the code 0 To get temp in centigrade, (volt – 0.5) * 100 0 This is the ambient temperature recognized by the LM35 in Celsius. 0 Send it to the serial port and check your code. 0 To convert to fahrenheight, mult by 9 then divide by 5 then add 32 to that result. Send it to serial port too. 0 Congratulate yourself please.
  • 9. Improvements? 0 Use 3.3V as reference to increase resolution since datasheet says that resolution of lm35 ~ 10mV. 0 Put in on PCB to avoid noise by breadboard internal resistance, 0 DO NOT LIGHT THE LM35 OR IMMERSE IT IN WATER. 0 Make a waterproof casing for the lm35 to test temp of liquids. 0 Any other applications?
  • 10. LDR 0 An LDR is a Light Dependent Resistor. 0 As in the resistance offered by this device to an electrical circuit is dependent on the amount of light falling on the circuit. 0 Also called photocells because they convert light energy to an electrical response. 0 Useful for on-when-light/off-when-dark.
  • 12. How to connect the LDR 0 LDR is basically a resistor, so it can be connected anyway. 0 You need a pull-down resistor to avoid sinking all the current onto the arduino pin. 0 Circuit is GND-10kohn-LDR-VCC. 0 This circuit will only work if between 0-5V. If light is too bright, it will saturate at 5V. 0 putting a variable resistor in place of 10k allows for controlling saturation with too bright/too dark light.
  • 13. Photocell Current Ambient Ambient LDR + R Voltage resistance thru LDR light like… light (lux) (Ω) across R (Ω) +R Dim 0.1 lux 600KΩ 610 KΩ 0.008 mA 0.1 V hallway Moonlit 1 lux 70 KΩ 80 KΩ 0.07 mA 0.6 V night Room 10 lux 10 KΩ 20 KΩ 0.25 mA 2.5 V Dark overcast day / 100 lux 1.5 KΩ 11.5 KΩ 0.43 mA 4.3 V Bright room Overcast 1000 lux 300 Ω 10.03 KΩ 0.5 mA 5V day
  • 15. Writing code! 0 decide analoge pin used as input to LDR. 0 In setup(){ }, initialize serial port with 9600. 0 In loop(){ }, first do an analogueread(pin) and store it in an int variable called reading. 0 This value represents illumination received by LDR. 0 Send it to Serial Port. 0 Allow delay of some time to let the ADC settle.
  • 16. Application 1 0 Make thresholds and determine the brightness received and send it via serial port. if (reading < 10) { Serial.println(" - Dark"); } else if (reading < 200) { Serial.println(" - Dim"); } else if (reading < 500) { Serial.println(" - Light"); } else if (reading < 800) { Serial.println(" - Bright"); } else { Serial.println(" - Very bright"); }
  • 17. Application 2 0 Take the analogue reading and use it as the delay amount in an LED blinking scenario. Use ledpin = 13. void loop() { val = analogRead(LDR); digitalWrite(ledPin, HIGH); delay(val); digitalWrite(ledPin, LOW); delay(val); }
  • 18. Another Application 0 Put three LEDs around the LDR. Red, Green and Blue. 0 Put an object of a particular color in front of the LDR. 0 Light up RED LED and measure LDR value 0 Light up GREEN LED and measure LDR value 0 Light up BLUE LED and measure LDR value 0 From these three analogue values you can determine the color of object being sensed.
  • 19. Sensor Data on PC 0 Reading and plotting sensor data on PC is very simple on the arduino. 0 Send data continuously to the computer over the serial port. 0 Data can be viewed by any program capable of viewing this data
  • 20. Send sensor data to serial port 0 Open the folder Sensor data graph 0 Upload the arduino code onto the arduino and close arduino IDE after checking serial monitor. 0 In softwares folder extract the processing folder. 0 Open processing and copy the processing code onto it and run. 0 Make sure serial port number in the processing sketch matches arduino
  • 21. The motor shield The motor shield goes on top 1. DC Motor Interface of the arduino neatly. Drives 2 motors with L293D DC Motor Driver IC. There are loads of shields for the arduino that provide 2. IR paired sensors different functionality. For line sensing, 4 IR sensor pairs can be attached and controlled. Be careful removing the shield, if you bend the pins, 3. The Buzzer or Servo Motor you cant put the shield in Selectable via jumper again. 4. The Switch or Servo Motor Selectable via jumper 5. Two LEDs
  • 24. IR TX RX Pair 0 An IR transmitter (TX) is a LED that emits light in the infrared spectrum. 0 (most cameras see IR, light up the IR LED and point a camera at it to check) 0 An IR Receiver (RX) is a transistor with the base exposed. 0 The base voltage depends on the amount of IR received and it controls the amount of current passing through the C-E junction (leads).
  • 25. IR schematic 0 The IR TX LED is connected through a current limiting resisto 0 The IR RX is connected via a variable potentiometer to a voltage comparator to give a digital output. 0 The pot is used to adjust For ambient light intensity.
  • 26. Remember 0 The IR TX RX pairs should be spaced 1/4th of an inch apart for optimal detection. 0 Calibration of IR sensors is important to adjust the sensors for ambient light. 0 The output of this circuit is DIGITAL and read by a digital pin. 1 – obstruction; 0 – No obstruction. 0 If you have to use IR sensors in the sun, use electrical tape to provide adequate shielding.
  • 27. Using the IR sensors 0 The motor shield has 4 IR sensors and 4 pots. 0 Connect the IR dongles to the placeholders. They go in only one way 0 There are status LEDs just next to each IR socket, if the comparator goes HIGH, the LED lights. This is for calibration. 0 Keep the IR sensor pointed at nothing (no obstruction). 0 Use a screwdriver and GENTLY turn the appropriate POT until the respective IR sensors status LED turns dark. 0 Check with your hand if LED lights, if not readjust as you like.
  • 28. PINS 0 The table below shows the pin arrangement for the 4 sensors on the shield. 0 If the shield is mounted, then these 4 pins provide the output of the comparator. 0 Use digitalread(pin) to see the state of the pin at any time.
  • 29. Try 0 Connect all four IR sensors and calibrate them. 0 Write a program to output which of the 4 IR sensors has gone HIGH to the serial port. 0 CHALLENGE: Try and make sure that the message on the serial port doesn’t repeat until the IR sensor has gone LOW again (obstruction removed). It shouldn't continuously output the message if the IR sensor is obstructed,
  • 30. DC motors 0 Motors are devices that convert electrical energy to mechanical energy. 0 Motors come in different varieties: AC, DC, Servo, Stepper etc 0 If motor draws less than 40mA of current, it can be directlu wired to an arduino pin. 0 Current drawn by a DC motor is propotional to speed and torque. To avoid burning out the arduino, we use motor drivers to control DC motors.
  • 31. The L293 driver 0 This chip isolates logic level voltages and the motor supply voltages. 0 It as also called a H-bridge. 0 It uses the transistors as a switch concept to electrically switch a DC power supply onto the terminals of the motor. 0 The driver can control two motors independently from the same supply.
  • 33. The Motor Shield 0 The motor driver is present on the shield which also contains a wire block for easy connection of the wires. 0 The supply will have terminals marked on the board. Do not reverse - these connections. + 0 Motor can be connected in anyway. The direction might have to be calibrated by testing if the terminals are reversed.
  • 34. Arduino shield to Motor Driver Pinout 0 To use a motor, set the enable pin to high in the setup() { } 0 Motor movement is done in loop() { } 0 If l1 is HIGH and l2 is LOW, motor turn in one direction. 0 If l1 is LOW and l2 is HIGH, the motor turns in the other direction. 0 If both l1 and l2 are set to HIGH or LOW, then motor is stopped.
  • 35. Wiring motors 0 Attach the arduino shield onto the arduino. 0 Take a 9V battery cap and screw it onto the motor supply terminals. Take care of polarity. 0 Red >> + and Black >> - 0 Wire up the motors and connect them to the terminals.
  • 36. TRY 0 Move both motors in same direction. 0 Reverse both motors. 0 Stop one and turn the other. 0 Stop the other and turn the one. 0 Make each motor turn in a different direction.
  • 37. Exercise 0 Combine the functionality of 2 IR sensors and the motors to make an obstacle avoider bot. 0 Algorith: 0 Move forward, left and right randomly. 0 If IR sensors detect an obstruction, move a little back in the opposite side of the obstruction 0 Continue.