550 likes | 956 Views
Interfacing hardware with microcontroller. P.Raghavendra Prasad Final Yr EEE. www.raghu.co.nr. What is a Microcontroller ?.
E N D
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 self-sufficiency 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 • 1024 Bytes EEPROM • 2K Byte Internal SRAM • 16K Bytes of Flash memory • 512 Bytes EEPROM • 1K Byte Internal SRAM www.raghu.co.nr
ATMEGA32/16 ATMEGA32L/16L Operating Voltage 4.5 - 5.5 V Speed Grades 0 – 16 MHz Operating Voltage 2.7 - 5.5 V Speed Grades 0 – 8 MHz www.raghu.co.nr
Pin Diagram www.raghu.co.nr
c COMPUTER C - CODE COMPILER HEX - CODE MICRO CONTROLLER www.raghu.co.nr
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 inti) { 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 www.raghu.co.nr
Bi-Direction control of DC Motor H-Bridge Ckt using transistors for bidirectional driving of DC motor 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
5 – Lead stepper 4 – Lead stepper 6 – Lead stepper 8 – Lead stepper www.raghu.co.nr
Full Step driving of Stepper Motor Full step wave drive www.raghu.co.in
Full Step driving of Stepper Motor Full step 2 phases active www.raghu.co.in
Half Step driving of stepper motor 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