Interfacing hardware with microcontroller

Download Report

Transcript Interfacing hardware with microcontroller

INTERFACING HARDWARE
WITH
MICROCONTROLLER
P.Raghavendra Prasad
Final Yr EEE
www.raghu.co.nr
What is a Microcontroller ?
A microcontroller (or MCU) is a computer-on-a-chip. It
is a type of microprocessor emphasizing selfsufficiency and cost-effectiveness, in contrast to a
general-purpose microprocessor (the kind used in a
PC). The only difference between a microcontroller and
a microprocessor is that a microprocessor has three
parts - ALU, Control Unit and registers (like memory),
while the microcontroller has additional elements like
ROM, RAM etc.
www.raghu.co.nr
ATMEGA32/ATMEGA32L
 High-performance, Low-power AVR 8-bit Microcontroller
 Up to 16 MIPS Throughput at 16 MHz
 32K Bytes of In-System Self-Programmable Flash
 1024 Bytes EEPROM
 2K Byte Internal SRAM
 Two 8-bit Timer/Counters, One 16-bit Timer/Counter
 In-System Programming by On-chip Boot Program
 Four PWM Channels
 8-channel, 10-bit ADC
 Programmable Serial USART
 Internal Calibrated RC Oscillator
 External and Internal Interrupt Sources
 Power-on Reset
 32 Programmable I/O Lines
www.raghu.co.nr
ATMEGA32/32L
ATMEGA16/16L
 32K Bytes of Flash memory
 16K Bytes of Flash memory
 1024 Bytes EEPROM
 512 Bytes EEPROM
 2K Byte Internal SRAM
 1K Byte Internal SRAM
www.raghu.co.nr
ATMEGA32/16
ATMEGA32L/16L
Operating Voltage
4.5 - 5.5 V
Operating Voltage
2.7 - 5.5 V
Speed Grades
0 – 16 MHz
Speed Grades
0 – 8 MHz
www.raghu.co.nr
Pin Diagram
www.raghu.co.nr
COMPUTER
C - CODE
COMPILER
c
HEX - CODE
MICRO CONTROLLER
www.raghu.co.nr
STK200 Cable
Configuring PORT PINS
Each PORT consists of three registers
 DDRX (Data Direction Register)
 PORTX
 PINX
Where X = A, B, C, D
www.raghu.co.nr
DDRX
 The DDXn bit in the DDRx Register selects the direction of pin n.
 If DDXn is written logic one, PXn is configured as an output pin.
 If DDXn is written logic zero, PXn is configured as an input pin.
Where n = 0,1,2 - - - ,7
For Example
If DDRA = 0x0F
( 0000 1111)
 The Lower bytes of PORTA are configured as output pins
 The Higher bytes of PORTA are configured as input pins
www.raghu.co.nr
PORTX
When PORTXn is configured as Input Pin
 Writing logic ONE to this pin, activates pull-up resistor.
 Writing logic ZERO to this pin, deactivates pull-up resistor
When PORTXn is configured as Output Pin
 Writing logic ONE to this pin, drives the port pin HIGH
 Writing logic ZERO to this pin, drives the port pin LOW
www.raghu.co.nr
PINX
 PINXn is used to read the value of particular port pin
 Independent of the setting of Data Direction bit DDRXn, the
port pin can be read through the PINXn Register bit
www.raghu.co.nr
ICCAVR
 ICCAVR, the ImageCraft’s C Development Environment is a
program for developing AVR microcontroller applications using
the ANSI standard C language
 Full featured 30-day demo program can be downloaded
from the ImageCraft web site
www.image-craft.com
www.raghu.co.nr
Getting Started with ICCAVR
1. Project>New
2. Project name and path
3. Project>Options
4. In the Compiler options, check “Accept C++ Comments” and “Intel HEX” as
the “output format”
5. In the Target options, select “ATmega32/Atmega16” under “Device
Configuration”
6. Write the source code
7. Add the source file to the project by selecting “Project>Add File(s)” and
select the file just written
8. Compile by selecting “Project>Make Project” or by clicking on the “build”
icon
9. Open AVR ISP and download the hex file generated by ICCAVR , It is stored
under the project name.
www.raghu.co.nr
Sample program to generate Square wave on PORTA of ATMEGA32
#include<iom32v.h>
#include<macros.h>
Void delay(unsigned int i)
{
unsigned int k;
While(i--)
For(k=0;k<=500;k++);
}
Void main()
{
DDRA = 0xFF;
// Configures PORTA Pins as Output pins
While(1)
{
PORTA=0xFF;
Delay(500);
PORTA=0x00;
Delay(500);
}}
www.raghu.co.nr
Interfacing with Microcontroller
 LED
 Switches
 DC Motor
 Sensors
 Stepper Motor
www.raghu.co.nr
LED – Light Emitting Diode
 Maximum potential drop across LED
will be approximately 2V.
 Maximum current tat can be allowed
through am LED is approximately 30ma.
 Resistor should be added in series
with LED to limit the current through it.
www.raghu.co.nr
Calculating LED resistor value
R = (Vs – VL )/I
Vs = supply voltage
VL = Voltage drop across LED
( around 2V)
I = 15 to 30 ma
www.raghu.co.nr
LED’s connected to
1. PORTA0
2.PORTB0
LED BLINK PROGRAM
www.raghu.co.nr
DC Motor
 DC
Motors are small, inexpensive and powerful motors used widely.
 These are widely used in robotics for their small size and high
energy out.
 A typical DC motor operates at speeds that are far too high speed
to be useful, and torque that are far too low.
 Gear reduction is the standard method by which a motor is made
useful .
 Gear’s reduce the speed of motor and increases the torque
www.raghu.co.nr
Choosing a DC Motor
 DC Motor with Gear head
 Operating voltage 12V
 Speed
Depends on our application
Some available speeds in market
 30 RPM
 60 RPM
 100 RPM
 150 RPM
 350 RPM
 1000 RPM
www.raghu.co.nr
Drive basics of DC Motor
Red wire
Black wire
Positive
Negative
Clock wise
Negative
Positive
Anti clock wise
Logic
Logic
1
0
Clock
0
1
Anti clock
Direction of rotation
Direction
www.raghu.co.nr
Bi-Direction control of DC Motor
H-Bridge Ckt using transistors for
bidirectional driving of DC motor
Direction
Pulse to
Clock wise
A and C
Anti Clock wise
B and D
www.raghu.co.nr
H-Bridges in IC’s to reduce the drive circuit complexity
 The most commonly used H-Bridges are L293D and
L298
 L293D has maximum current rating of 600ma
 L298 has maximum current rating of 2A
 Both has 2 H-Bridges in them
 These are designed to drive inductive loads such as
relays, solenoids
Can be used to drive 2 DC motors or 1 stepper motor
www.raghu.co.nr
DRIVING OF DC MOTOR
www.raghu.co.nr
Switches
Active Low
 When pressed shorts the corresponding pin to ground
Active high
When pressed shorts the corresponding pin to Vcc
www.raghu.co.nr
Active low
Active high
INTERFACING SWITCHES
www.raghu.co.nr
Sensors
Commonly used sensors in the field of robotics are
 IR Digital sensors
 IR analog sensors
www.raghu.co.nr
IR Digital sensors
Transmitter
 IR led connected to 38KHz oscillator
Receiver
 TSOP1738
IR Analog sensors
Transmitter
 IR LED
Receiver
 IR Photodiode
www.raghu.co.nr
IR Analog sensor
www.raghu.co.nr
STEPPER MOTOR
 STEPPER MOTOR is a brushless DC motor whose rotor rotates
in discrete angular increments when its stator windings are
energized in a programmed manner.
 Rotation occurs because of magnetic interaction between rotor
poles and poles of sequentially energized stator windings.
 The rotor has no electrical windings, but has salient and/or
magnetized poles.
www.raghu.co.nr
4 – Lead stepper
6 – Lead stepper
5 – Lead stepper
8 – Lead stepper
www.raghu.co.nr
Full Step driving of Stepper Motor
Full step wave drive
4
3
2
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
www.raghu.co.in
Full Step driving of Stepper Motor
Full step 2 phases active
4
3
2
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
www.raghu.co.in
Half Step driving of stepper motor
4
3
2
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
www.raghu.co.nr
Choosing a Stepper motor




12 V operating voltage
1.8 degree step
6 Lead
250 t0 500 ma of current
or
Coil resistance of 20 ohms to 40 ohms
 Size and shape depends on application
 In most of the robotics cube shaped motors are
preferred with frame size of 3.9 to 4 cm
www.raghu.co.nr
Commonly used IC’s for driving Stepper motor
 ULN2803
• It has 8 channels
• It channel has maximum current rating of 500ma
• can be used to drive 2 unipolar stepper motors
 L293d
 L297 & L298
www.raghu.co.nr
ULN2803
www.raghu.co.nr
Bi – Polar driving of Stepper Motor
A
B
C
D
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
www.raghu.co.nr
DRIVING STEPPER MOTOR
www.raghu.co.nr
Line Follower
L
2
9
3
D
sensor1
sensor2
sensor3
Left
motor
Right
Motor
Microcontroller
www.raghu.co.nr