Note the following details of the code protection feature on Microchip devices:
•Microchip products meet the specification contained in their particular Microchip Data Sheet.
•Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
intended manner and under normal conditions.
•There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data
Sheets. Most likely, the person doing so is engaged in theft of intellectual property.
•Microchip is willing to work with the customer who is concerned about the integrity of their code.
•Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable.”
Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip’s code protection feature may be a violation of the Digit al Millennium Copyright Act. If suc h a c t s
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.
Information contained in this publication regarding device
applications and t he lik e is provided only for your convenience
and may be su perseded by upda t es . It is y our responsibility to
ensure that your application meets with your specifications.
MICROCHIP MAKES NO REPRESENTATIONS OR
WARRANTIES OF ANY KIND WHETHER EXPRESS OR
IMPLIED, WRITTEN OR ORAL, STATUTORY OR
OTHERWISE, RELATED TO THE INFORMATION,
INCLUDING BUT NOT LIMITED TO ITS CONDITION,
QUALITY, PERFORMANCE, MERCHANTABILITY OR
FITNESS FOR PURPOSE. Microchip disclaims all liability
arising from this information and its use. Use of Microchip
devices in life supp ort and/or safety ap plications is entir ely at
the buyer’s risk, and the buyer agrees to defend, indemnify and
hold harmless M icrochip from any and all dama ges, claims,
suits, or expenses re sulting from such use. No licens es are
conveyed, implicitly or otherwise, under any Microchip
intellectual property rights.
Trademarks
The Microchip name and logo, the Microchip logo, Accuron,
dsPIC, K
EELOQ, microID, MPLAB, PIC, PICmicro, PICSTART,
PRO MATE, PowerSmart, rfPIC and SmartShunt are
registered trademarks of Microchip Technology Incorporated
in the U.S.A. and other countries.
AmpLab, FilterLab, Migratable Memory, MXDEV, MXLAB,
SEEVAL, SmartSensor and The Embedded Control Solutions
Company are registered trademarks of Microchip Technology
Incorporated in the U.S.A.
Analog-for-the-Digital Age, Application Maestro, CodeGuard,
dsPICDEM, dsPICDEM.net, dsPICworks, ECAN,
ECONOMONITOR, FanSense, FlexROM, fuzzyLAB,
In-Circuit Serial Programming, ICSP, ICEPIC, Linear Active
Thermistor, Mindi, MiWi, MPASM, MPLIB, MPLINK, PICkit,
PICDEM, PICDEM.net, PICLAB, PICtail, PowerCal,
PowerInfo, PowerMate, PowerTool, REAL ICE, rfLAB,
rfPICDEM, Select Mode, Smart Serial, SmartT el, Total
Endurance, UNI/O, WiperLock and ZENA are trademarks of
Microchip Technology I ncorporat ed in the U.S.A. and other
countries.
SQTP is a service mark of Microchip Technology Incorporated
in the U.S.A.
All other trademarks mentioned herein are property of their
respective companies.
Microchip received ISO/TS-16949:2002 certification for its worldwide
headquarters, design and wafer fabrication facilities in Chandler and
Tempe, Arizona, Gresham, Oregon and Mountain View, California. The
Company’s quality system processes and procedures are for its
PICmicro
EEPROMs, microperipherals, nonvolatile memory and analog
products. In addition, Microchip’s quality system for the design and
manufacture of development systems is ISO 9001:2000 certified.
All documentation becomes dated, and this manual is no exception. Microchip tools and
documentation are constantly evolving to meet customer needs, so some actual dialogs
and/or tool descriptions may differ from those in this document. Please refer to our web site
(www.microchip.com) to obtain the latest documentation available.
Documents are identified with a “DS” number. This number is located on the bottom of each
page, in front of the page number. The numbering convention for the DS number is
“DSXXXXXA”, where “XXXXX” is the document number and “A” is the revision level of the
document.
For the most up-to-date information on development tools, see the MPLAB
Select the Help menu, and then Topics to open a list of available on-line help files.
INTRODUCTION
®
IDE on-line help.
This chapter contains general information about this user’s guide and customer support
that will be useful prior to using the PICDEM™ Mechatronics development kit. Items
discussed in this chapter are:
• Document Layout
• Conventions Used in this Guide
• Warranty Registration
• Recommended Reading
• The Microchip Web Site
• Development Systems Customer Notification Service
This document describes how to use the PICDEM™ Mechatronics Demonstration
Board. The manual layout is as follows:
• Chapter 1: PICDEM Mechatronics – An overview of the PICDEM Mechatronics
Demo Board. PCB layout, parts and how to connect the provided jumper wires to
the board.
• Chapter 2:Example Projects – Projects that describe how to read the sensors
on the board, drive the LCD and control several motors. These motors include a
Brushed DC (BDC) motor and a bipolar stepper motor.
• Chapter 3:Troubleshooting – Provides resolutions for solving common
problems associated with using the PICDEM Mechatronics Demo Board.
Please complete the enclosed Warranty Registration Card and mail it promptly.
Sending in your Warranty Registration Card entitles you to receive new product
updates. Interim software releases are available at the Microchip web site.
RECOMMENDED READING
It is recommended that you become familiar with the documents listed below, prior to
using the PICDEM Mechatronics Demo Board.
Consult this document for instr ucti ons on how to use the PICkit2 Microcontroller
Programmer hardware and software.
MPLAB
Consult this document for information pertaining to Microchip’s In-Circuit Debugger,
MPLAB ICD 2. MPLAB ICD 2 utilizes the in-circuit debugging capability built into the
Flash devices.
PIC16F91X Data Sheet (DS41250)
Consult this document for information regarding the PIC16F91X 28/40/44-pin
Flash-based, 8-bit CMOS Microcontroller with LCD Driver device specifications.
PIC16F631/677/685/687/689/690 Data Sheet (DS41262)
Consult this document for information regarding the PIC16F631/677/685/687/689/690
20-pin Flash-based, 8-bit CMOS Microcontroller device specifications.
PIC12F508/509/16F505 Data Sheet (DS41236)
Consult this document for information regarding the PIC12F508/509 8/14-pin
Flash-based, 8-bit CMO S Micr oc ont ro ll er devi ce spec ifi ca tio ns .
MPLAB
Consult this document for more information pertaining to the installation and features
of the MPLAB Integrated Development Environment (IDE) Software.
Mechatronics Design Center
The Mechatronics Design Center (www.microchip.com\mechatronics) provides a
wealth of information on design applications involving Mechatronics. All documentation
is in Adobe
Microchip provides online support via our web site at www.microchip.com. This web
site is used as a means to make files and information easily available to customers.
Accessible by using your favorite Internet browser, the web site contains the following
information:
• Product Support – Data sheets and errata, application notes and sample
programs, design resources, user’s guides and hardware support documents,
latest software releases and archived software
• General Technical Support – Frequently Asked Questions (FAQs), technical
support requests, online discussion groups, Microchip consultant program
member listing
• Business of Microchip – Product selector and ordering guides, latest Microchip
press releases, listing of seminars and events, listings of Microchip sales offices,
distributors and factory representatives
DEVELOPMENT SYSTEMS CUSTOMER CHANGE NOTIFICATION SERVICE
Microchip’s customer notification service helps keep customers current on Microchip
products. Subscribers will receive e-mail notification whenever there are changes,
updates, revisions or errata related to a specified product family or development tool of
interest.
To register, access the Microchip web site at www.microchip.com, click on Customer Change Notification and follow the registration instructions.
The Development Systems product group categories are:
• Compilers – The latest information on Microchip C compilers and other language
tools. These include the MPLAB C18 and MPLAB C30 C compilers; MPASM™
and MPLAB ASM30 assemblers; MPLINK™ and MPLAB LINK30 object linkers;
and MPLIB™ and MPLAB LIB30 object librarians.
• Emulators – The latest information on Microchip in-circuit emulators. This
includes the MPLAB ICE 2000 and MPLAB ICE 4000.
• In-Circuit Debuggers – The latest information on the Microchip in-circuit
debugger, MPLAB ICD 2.
• MPLAB
Integrated Development Environment for development systems tools. This list is
focused on the MPLAB IDE, MPLAB SIM simulator, MPLAB IDE Project Manager
and general editing and debugging features.
• Programmers – The latest information on Microchip programmers. These include
the MPLAB PM3 and PRO MATE
Plus and PICkit
®
IDE – The latest information on Microchip MPLAB IDE, the Windows®
Users of Microchip products can receive assistance through several channels:
• Distributor or Representative
• Local Sales Office
• Field Application Engineer (FAE)
• Technical Support
• Development Systems Information Line
Customers should contact their distributor, representative or field application engineer
(FAE) for support. Local sales offices are also available to help customers. A listing of
sales offices and locations is included in the back of this document.
Technical support is available through the web site at: http://support.microchip.com
DOCUMENT REVISION HISTORY
Revision A (May 2005)
• Initial Release of this Document.
Revision B (June 2005)
• Changed PIC® Communicator to PIC® MCU Communicator.
The PICDEM™ Mechatronics is intended to be a learning tool for individuals interested
in Mechatronic design. Mechatronics refers to integrating electronic controls into
mechanical systems or replacing mechanical components with an electronic solution.
PICmicro
size, high efficiency, speed and abundance of peripheral configurations. Mechatronic
systems range in complexity from a simple electromechanical switch with output
multiplexing to the complex stabilizer control of a supersonic jet. The appliance and
automotive markets are notable markets in which mechatronic designs are becoming
more common place. The modern washing machine, for instance, once an entirely
mechanical design, incorporates microcontrollers to manage cycle times, read human
inputs and regulate the speed of the agitate and spin cycles.
This chapter introduces the PICDEM™ Mechatronics development board. It describes
the PCB layout, parts and electrical connection to the PICkit™ 2 Flash Programmer
and MPLAB ICD 2 In-Circuit Debugger.
PICDEMTM MECHATRONICS
DEMO BOARD USER’S GUIDE
®
microcontrollers are ideal for use in Mechatronic systems due to their small
1.2HIGHLIGHTS
This chapter discusses:
• Quick Start Guide
• The PICDEM™ Mechatronics Development Kit Contents
The PICDEM Mechatronics Demo Board is programmed at the factory with a
demonstration program. The board must be configured as described in this chapter in
order to use the demonstration program. Once the board is configured and powered
up, the speed of the Brushed DC (BDC) motor on the board may be varied using the
potentiometer (POT1). The 8-bit hexadecimal interpretation of the position of POT1 is
displayed on the LCD.
Board Setup
Using the provided wire jumpers, screwdriver and shunts (2-pin black hard plastic
jumpers), configure the board as shown in Figure 1-1.
1. Attach the leads of the Brushed DC motor to Drive 1 and Drive 2 using the
screwdriver.
2. Connect POT1 (on J4) to C1- (on J13) using a wire jumper.
3. Connect P1 (on J1) to RD7 (on J10) using a wire jumper.
4. Connect N2 (on J1) to RD2 (on J10) using a wire jumper.
5. Connect the right and center pins on JP8 using a shunt.
Board Power-Up
Supply power to the board in one of the following ways:
• Connect a 9-12 V
• Connect a 9-12 V
terminals.
• Connect a 9 V
• Connect a 5 V
Note:
The power supply part number is AC162039 (see buy.microchip.com). Packaged
with the MPLAB ICD 2, the part number is DV164007.
DC (0.75 amp minimum) supply using J9 (see note below)
DC (0.75 amp minimum) supply to the P21 and P20 screw
DC battery to the battery connector.
DC (1.2 amp minimum) supply to TP2 or TP3.
Demonstration Program
Press CLR FAULT (SW5), which is near the bottom right corner of the board. Turn
POT1 clockwise to increase the speed of the motor. Note that the number displayed on
the LCD increases as you turn the potentiometer clockwise.
Try experimenting with the other sensors on the board:
• Move the jumper wire on POT1 (J4) to Light (J4). Vary the intensity of light shining
on the light sensor located near the top left corner of the board. Notice what
happens to the motor.
• Move the jumper to TEMP (J4). Blow on the temperature sensor located on the
top left corner of the board. Note what happens to the number displayed on the
LCD.
• Move the jumper back to POT1. Move the jumper from N2 (J1) to D0 (J14). Watch
what happens to the intensity of LED D0 as you turn the potentiometer.
The PICDEM™ Mechatronics Development Kit contains the following items:
1. The PICDEM™ Mechatronics Printed Circuit Board (PCB) with motors
2. Pre-programmed PIC16F917 PICmicro
3. 10 wire jumpers
4. 8 2-pin shunts
5. CD-ROM including:
•PICDEM™ Mechatronics User’s Guide
•Workshop-in-a-Box presentation for training students on the board
(speaker notes included)
•Data sheets for the PIC16F91X, PIC16F631/677/685/687/689/690
and motors
•Application notes and other technical documentation
6. Sample kit including a PIC16F690 and PIC12F509 device
7. Microchip screwdriver
8. Registration Card
1.5PICDEM™ MECHATRONICS LAYOUT
®
device
The PICDEM™ Mechatronics is shown in Figure 1-2.
A PIC16F917 microcontroller is populated in the 40-pin socket, in which 22 out of the
36 available I/O pins are dedicated connections to several components on the board.
The remaining 14 pins are available for the user to connect to the other components on
the board, using the provided jumper wires. The dedicated connections connect to the
following components:
• In-Circuit Serial Programming™ Connector – ICSPDAT, ICSPCLK, MCLR
• RS-232 COM port – 2 pins: RX, TX
A 20-pin socket is provided and is compatible with 8/14/20-pin Flash-based
microcontrollers. A PIC16F690 microcontroller is provided to use in the 20-pin socket,
in which 5 out of the 18 available I/O pins are dedicated connections to several
components on the board. The remaining 13 pins are available for the user to connect
to the other components on the board using the provided jumper wires. The dedicated
connections connect to the following components:
• Switch 1 – 1 pin: MCLR
• In-Circuit Serial Programming (ICSP™) Connector – ICSPDAT, ICSPCLK, MCLR
• RS-232 COM port: RX, TX
Note:Only one microcontroller should be loaded into the board at any given time.
Dedicated pins are indicated by a white box enclosing the pin designation next to each
socket. Pay close attention to this designation, as the functionality of the dedicated pins
are affected by the circuitry these pins are connected to. It is recommended that you
use only the pins not designated as dedicated connections in your design.
The remaining components on the board must be connected to the microcontroller
using the provided wire jumpers. The jumpers connect between the headers on either
side of the microcontroller and the header pins next to the respective components on
the board. The components on the board are labeled in Figure 1-2.
The reasons for requiring you to use the provided jumpers to connect components to
the microcontroller are three-fold.
1. Y ou will gain knowledge and experience by physically connecting components to
the microcontroller.
2. There are more peripherals than pins on the microcontrollers so that you can do
more with the board.
3. Should you choose to use the board to experiment on your own, the board allows
you the flexibility to do so. You can try experimenting with peripherals not
covered in the projects in Chapter 2. “Example Projects”.
1.6REQUIRED TOOLS
One of the following programming tools is needed in order to complete the projects in
the next chapter:
Figures 1-3 and 1-4 illustrate how to connect each of these tools to the PICDEM
Mechatron ics Demo Board.
®
ICD 2 In-Circuit Debugger/Programmer (Part# DV164007 includes a
DC power supply and serial cable)
1.7PICDEM™ MECHATRONICS SETUP
Please take a moment to review the following steps, prior to using the board. These
steps ensure the board is configured correctly before beginning the projects.
1.7.1Jumper Settings
Remove all 2-pin shunts (jumpers), except for JP8. On JP8, the shunt should be
connected in the right most position (indicated by the “+5V” label), which ensures that
the drive stage is powered by +5 V
1.7.2Board Power-Up
Supply power to the board in one of the following ways:
• Connect a 9-12 V
is grounded externally and positive internally.
• Connect a 9-12 V
terminals.
• Connect a 9 V
• Connect a 5 VDC (1.2 amp minimum) supply to TP2 or TP3.
When power is initially connected, the “PWR ON” LED should light up. The “FAULT”
LED in the over-current sense circuit will also be on when the board is powered up.
Clear the Fault by pressing SW5 (CLR FAULT) switch. The board is now properly
configured for the projects.
DC (0.75 amp minimum) supply via J9. The connector’s polarity
DC (0.75 amp minimum) supply to the P21 and P20 screw
1.8GENERAL PICDEM™ MECHATRONICS DEMONSTRATION BOARD
INFORMATION
Power Supply Maximum Ratings
Supply voltage: 12 VDC
Output current (drive stage): 1.2A (total)
1.8.1Experimentation
The PICDEM Mechatronics Demo Board was designed for your experimentation. After
completing the projects in Chapter 2. “Example Projects”, please experiment freely
on your own. Voltage power supplies and motors, other than those provided in the kit,
may be used.
The driver portion of the board (the part that supplies power to the motors) has an
over-current sense circuit and will trip should the motor draw more than 1.2 amps. The
LM7805 regulator also protects the circuit by limiting the current consumed by the
board. Logic has also been put in place to ensure that the P and N-Channel MOSFET s
connected to each of the output drives can not be turned on simultaneously.
Note:Although reasonable measures have been taken to protect the board from
the occasional mistake, THE BOARD MA Y BE DAMAGED if proper design
techniques are not used and special attention to the schematic is not made.
1.8.2On-Board Status LEDs
There are eight status LEDs on the board specifically provided to assist the user in the
developing and debugging of your code. The user can output register values on one of
the Ports of the microcontroller and have a binary reading of the value of that register.
Connect the LEDs as shown in Figure 1-5. For instance, if it is suspected that the
STATUS register is not being set appropriately , move the STATUS value into PORTC.
If PORTC is attached as shown in Figure 1-5, the LEDs will show the value of STATUS.
FIGURE 1-5:CONNECTING PORTC PINS TO LEDS FOR DEBUGGING
1.8.3OVER-CURRENT PROTECTION CIRCUIT
The over-current protection circuit included on the board shuts down the drive portion
of the circuit if the board drives 1.2 amps continually for 100 ms or longer. Upon
powering up the board, the “FAULT” LED will be on. The drive circuit must be reset
manually by pressing the CLEAR FAULT button in the lower right hand portion of the
board every time the board is initially supplied with power. Otherwise, a Fault is present
when the “FAUL T” LED is illuminated and must be manually reset by pressing the same
button. If you use your own motor, keep current draw less than 1.2A, as the
over-current protection circuit will not allow driving a motor at or above this rating.
1.8.4MOTOR CONNECTION
The motors provided on the PICDEM Demo Board must be manually connected to the
Drive screw terminals. The kit includes a Microchip screwdriver to facilitate in making
these connections.
Note:The supplied Brushed DC motor and Bipolar Stepper motor are subject to
change as the motor manufacturers cannot guarantee the same model
numbers will be available indefinitely. Please refer to Microchip’s web page
(www.microchip.com) for the current data sheets for the motors supplied
with this kit, if the motor supplied on your board differs from the motor data
sheets found on the CD-ROM.
1.8.5SERIAL COMMUNICATION
The JP2 jumper is normally not populated with a shunt. With no shunt present, the
board is configured for serial communications via the PICmicro
Connecting a shunt between the bottom two pins (TX and RX) allows the user to
transmit and receive serial communication via one pin (jumper between the
microcontroller and the TX/RX pin on JP2).
The temperature sensor and light sensor can be snapped off to give greater flexibility
in using these sensors. For example, the temperature sensor may be snapped off and
moved into a more hostile environment, while keeping the board within sight. Once,
snapped off, solder wires of the same length between the adjoining holes (i.e., JP3 and
JP4 for the temperature sensor) on the PICDEM Mechatronics Demo Board and the
sensor board.
1.8.7BACK EMF SCALING RESISTORS
If choosing to drive your own Brushed DC motor with the PICDEM Mechatronics Demo
Board at a voltage higher than +5 V
of 0-5 V
locations may be populated with resistors to create a simple voltage divider circuit. TP1
is the output of this voltage divider. See the schematic in Appendix A. “Hardware Schematics” for further clarification.
DC. Resistor locations, R55 and R56, are provided for this purpose. These
1.8.8CURRENT SENSE
The output stage of the board incorporates a simple current sensing circuit, which is
assessable at J15 (CURRENT SENSE). At this pin, the voltage is equal to current
± 10%. For instance, if a motor is being driven and it is drawing 0.9 amps, the voltage
at the header is 0.9 volts (± 10%).
The following projects cover basic mechatronic principles such as reading a sensor,
interfacing to a LCD and driving a motor. These projects also provide examples of how
to use the various PICmicro
sequentially so that you will build knowledge as you progress from one project to the
next.
Those who are new to programming PIC
to the comments in the source code for each of the projects. Though these projects are
not intended to teach you the Microchip Assembly language, you will be able to get a
good grasp of Microchip’s Assembly language by reading the source code.
Microchip has published application notes and other documents covering the
applications in each of these projects. These documents can be found on the provided
CD-ROM. Any updates to the applicable documents are available on Microchip’s web
site. Please reference these documents while exploring each of the projects.
Note:See Section 1.7 “PICDEM™ Mechatronics Setup” for instructions on
PICDEMTM MECHATRONICS
DEMO BOARD USER’S GUIDE
Chapter 2. Example Projects
®
microcontroller per ipherals. The projects are presented
®
microcontrollers should pay special attention
how to setup the board to its “initial” condition prior to doing projects.
The firmware for the projects is arranged in corresponding project folders in the install
directory for the PICDEM Mechatronics CD. If you installed the CD in the default
directory, the firmware for Project 1 is located in:
C:\PICDEM Mechatronics\firmware\Project1
Opening a Project
1. Start MPLAB IDE.
2. In the menu bar choose File -> Open Workspace.
3. Find the project folder.
4. Open the *.mcw file.
The project window for Project 1 is shown in Figure 2-1.
FIGURE 2-1:PROJECT WINDOW
2.3EXAMPLE PROJECTS
PIC16F917 Projects:
• Project 1 : Hello World (Light a LED)
• Project 2: Dusk Indicator Using the Voltage Comparator
• Project 3: Thermometer Using the Analog-to-Digital Converter
• Project 4: Digital Clock Using Timer1
• Project 5: Brushed DC Speed Control with Optical Encoder Feedback
• Project 6: Brushed DC Speed Control with Back EMF Feedback
• Project 7: Stepper Motor Control; Single Stepping, Half Stepping and
Microstepping
• Project 8: PC Interface Using the USART
PIC16F690 Project:
• Project 9: Brushed DC Motor Control Using the ECCP
When learning to use a new computer language, the first practical lesson traditionally
instructs the user how to print “Hello World” on the screen. Staying with tradition, this
project will make your PICDEM Mechatronics Demo Board say “Hello World” in the
most practical way a microcontroller can – lighting a LED.
Objectives
1. Use the PIC16F917 to read a tactile switch input.
Switch debouncing is done to ensure that mechanical contact chatter in the switch is
not mistaken for more than one button push. Debouncing also ensures that for every
one press of the button, only one function is executed. In this project that function is
toggling a LED.
Note:See Section 2.2 “Loading Projects in MPLAB
the source files for this project and all subsequent projects.
2.3.2Project 2: Dusk Indicator Using the Voltage Comparator
If you have yard lights or a porch light at home that automatically turns on at dusk then
you are familiar with the application we will create in this project. The comparator on
the PIC16F917 will be used to compare the voltage level from the potentiometer to the
voltage level out from the light sensor. When the intensity of the light to the sensor is
reduced below the trip point set by the potentiometer, the LED will turn on.
Objectives
1. Use the internal analog comparator module.
2. Implement software hysteresis to stabilize the comparator output.
Provide a light source for the light sensor and set Potentiometer 1 to the desired trip
point. Block the light source and LED1 should turn on. Experiment with the set point
and the amount to which you block the light from the sensor. Move your hand slowly in
front of the sensor and note that the LED does not flicker. This demonstrates how
software hyster esis prev ents the ou tput of the comp arat or fr om ch atter ing n ear th e trip
point.
Discussion
Comparators are found in many PIC microcontrollers due to the versatility and low cost
they offer the user. As you can see, the comparator is one of the more easily used
peripherals. Refer to the Comparator Tips ‘n Tricks pamphlet included on the CD in this
kit for more information on comparators.
2.3.3Project 3: Thermometer Using the Analog-to-Digital Converter
This project shows how to read an analog temperature sensor and display the
temperature on a LCD. The Analog-to-Digital Converter module is used to read the
analog voltage output from the temperature sensor. Then, the resulting value is
converted into degrees Celsius and displayed.
Objectives
1. Use the Analog-to-Digital Converter module on the PIC16F917 to read the
analog voltage output of the TC1047A temperature sensor.
2. Gain knowledge about the LCD module and using the LCD module worksheet.
Applicable Technical Documents
Precision Temperature-to-Voltage Converter (TC1047/A) Data Sheet (DS21498)
The LCD displays a temperature reading in degrees Celsius. Breathe on the
temperature sensor or introduce another heat source. The displayed temperature
should rise. Move the jumper wire from the temperature sensor to the potentiometer
(POT1 on J4). Move the potentiometer to view the full range of temperature conversion.
Discussion
The project introduces you to use of the Analog-to-Digital Converter module. One of
the biggest advantages to using a PICmicro
require temperature sensing is that the microcontroller can be used to calibrate the
temperature sensor reading automatically (over varying supply voltages and process
variations in the parts themselves). This saves the manufacturer costly calibration time
at the factory that is typically required by traditional temperature sensing technologies.
LCD functions were introduced in this project for displaying data on the provided LCD.
Take a look at the LCD worksheet in Appendix B. “LCD Segment Mapping Worksheet”. This is the same worksheet located in the PIC16F91X Data Sheet
(DS41250), only it has been filled in using the information from the PICDEM
Mechatronics Schematic (see Appendix A. “Hardware Schematics” for the
schematic). In the LCD source code provided in this project, you can see that the
information in this worksheet has been converted into #define statements for each of
the segments.
Most appliances that have a LCD show a clock readout when the appliance is not in
use. In this project, Timer1 is used to create a real-time clock readout on the LCD.
Objectives
1. Configure the PIC16F917 to use the 32.768 kHz crystal to clock Timer1.
2. Convert Timer1 into seconds, minutes and hours.
Applicable Technical Documents
Clock Design Using Low Power/Cost Techniques Application Note, AN615 (DS00615)
Jumper Configuration
• T1OSI (J13) to OSI (J4) – See note.
• T1OSO (J13) to OSO (J4) – See note.
• RA3 (J13) to SW2 (J4)
• RA4 (J13) to SW3 (J4)
• RA5 (J13) to SW4 (J4)
FIGURE 2-8:PROJECT 4: JUMPER DIAGRAM
Note:Crystal circuits are very sensitive to noise and stray capacitances. In
general, the traces between a crystal and a microcontroller should be as
short as possible. The reason the PICDEM Mechatronics Demo Board
strayed from good design practice was to give you the option to use pins
RA7 and RA6 for other functions.
Use Switch 2 to set the hours and Switch 3 to set the minutes. Pressing and holding
either of these switches will make the hours or minutes increment at a fast rate. T oggle
between displaying the time (hours and minutes) and displaying the seconds by
pressing Switch 4.
Discussion
The 32.768 kHz crystal is used to take the guess work out of creating a clock display.
Y ou may recognize this frequency as being 2
clock pulses to seconds in the binary world of a microcontroller. Every time bit 15 in
Timer1 changes, one second has elapsed. A crystal is used because an RC oscillator
will have an unacceptable degree of error after several days.
2.3.5Project 5: Brushed DC Motor Speed Control with Optical
Encoder Feedback
Motor control is required in many mechatronic applications ranging from power
windows to washing machine cycle control. This project will demonstrate speed control
of a Brushed DC motor. Brushed DC motor control is simple as the commutation, or
sequencing of power to the various windings, is automatically performed by the motor’s
brushes. In this project, the Capture Compare PWM (CCP) module will be used in
PWM mode to generate a Brushed DC motor drive. Timer1 will measure speed
feedback from the optical interrupter on the board. The optical interrupter circuit
generates a high signal when light passes through the slots in the encoder disk. By
measuring the time between pulses, the speed of the motor can be determined. A
real-life application example includes precision speed control of a fan or hard disk
drive.
Objectives
1. Configure the CCP module to generate a PWM signal.
2. Use a PWM signal to vary the speed of a Brushed DC motor.
3. Configure Timer1 to use the optical interrupter as its clock source.
Applicable Technical Documents
Brushed DC Motor Fundamentals Application Note, AN905 (DS00905)
Low-Cost Bidirectional Brushed DC Motor Control Using the PIC16F684 Application
Note, AN893 (DS00893)
Jumper Configuration
• RD7 (J10) to P1 (J1)
• CCP2 (J10) to N2 (J1)
• AN0 (J13) to POT1 (J4)
• RC5 (J10) to Optical Interrupter (J7)
• Attach the motor leads to DRIVE1 (P9) and DRIVE2 (P10).
• J2 and J3 should be unpopulated (no shunts present).
• Connect the right and center pins of JP8 using a shunt.
Use POT1 to adjust the speed of the motor. Turn the potentiometer counter-clockwise
to reduce speed; turn it clockwise to increase motor speed. Multiply the LCD display by
1000 to obtain speed in RPM.
Discussion
With the CCP module operating with 8 bits of resolution, the module can output a PWM
signal at a frequency of 31.2 kHz. This is sufficiently high frequency that motor whine
is outside of the audible frequency for humans. This is especially important in applications where the motor may turn at slow speeds.
Using an optical sensor to gather feedback from a motor is an integral part of many
mechatronic systems. Some systems require a constant speed over varying loads. An
optical encoder is similar to the optical interrupter circuit used in this project. The
difference is that an optical encoder uses more than one optical sensor (as many as
four) to deduce speed and shaft position.
Note:The optical interrupter circuit is susceptible to interference from outside
infrared light sources (i.e., incandescent lights, sunlight, etc.). It may be
necessary to cover the optical sensor to obtain an accurate reading.
2.3.6Project 6: Brushed DC Speed Control with Back EMF Feedback
Project 5 uses an optical encoder to provide motor speed feedback. In this project,
another fo rm of spe ed meas urement will be explor ed, Back El ectrom otive Fo rce (Bac k
EMF). Y ou may be aware that a Brushed DC motor, when turned by hand, will produce
voltage at its leads, becoming a generator. When a Brushed DC motor is being driven,
and then the drive voltage is removed for a brief amount of time, the voltage generated
by the inertia of the motor will be proportional to its speed. This voltage is the Back EMF.
Objectives
1. Effectively read Back EMF using the on-board Analog-to-Digital Converter.
2. Interpret the Back EMF into a speed for the motor.
Applicable Technical Documents
Low-Cost Bidirectional Brushed DC Motor Control Using the PIC16F684 Application
Note, AN893 (DS00893)
Jumper Configuration
• RD7 (J10) to P1 (J1)
• CCP2 (J10) to N2 (J1)
• AN0 (J13) to POT1 (J4)
• AN1 (J13) to BACK EMF (J16)
• Attach the motor leads to DRIVE1 (P9) and DRIVE2 (P10).
• J2 and J3 should be unpopulated.
• Connect the right and center pins of JP8 using a shunt.
POT1 adjusts the speed of the motor. Set POT1 at 100% to run the motor at full speed.
The speed indicated on the LCD should be similar to the speed shown in Project 5.
Next, run the motor at half speed by setting POT1 to 50% and do the comparison again.
Note:Different motors have different speed characteristics. The motor used at the
time this manual was written may be different from the motor shipped with
your PICDEM Mechatronics Demo Board. Verify that the motor data sheet
included on the CD-ROM matches the motor on the board. If they are
different, go to Microchip’s web site for updates to this project.
Discussion
Back EMF is typically not as accurate as speed feedback from an optical encoder.
However, in many applications the accuracy does not have to be very precise and
measuring Back EMF is more cost effective than any other speed feedback
mechanism.
2.3.7Project 7: Stepper Motor Control : Single Stepping, Half
Stepping and Microstepping
This project demonstrates the various ways to drive a bipolar stepper motor. There are
several ways to step a stepper motor, the most basic of which is single stepping, or
moving the motor in one-step increments. If a motor is specified as a 7.5
degrees-per-step motor, then single stepping the motor will result in moving the shaft
of the motor 7.5 degrees per step. Half stepping the same motor would result in a 3.75
degrees step.
Torque and current are linearly related for a stepper motor. Therefore, if two sinusoidal
currents are applied to the windings, offset by a 90 degree phase shift relative to one
another, then the stepper motor will have constant torque as it turns. This results in a
very smooth rotation of the shaft. Applying current to the windings in this way is referred
to as sine-cosine microstepping.
Objectives
1. Single-step a stepping motor.
2. Half-step the motor.
3. Micro-step the motor.
Applicable Technical Documents
Stepping Motor Fundamentals Application Note, AN907 (DS00907)
Stepper Motor Control Using the PIC16F684 Application Note, AN906 (DS00906)
Jumper Configuration
• AN0 (J13) to POT1 (J4)
• RA4 (J13) to SW2 (J4)
• RD7 (J10) to P1 (J1)
• RD6 (J10) to P2 (J1)
• RD5 (J10) to P3 (J1)
• RD4 (J10) to P4 (J1)
• CCP1 (J10) to PWM1 (J1)
• CCP2 (J10) to PWM3 (J1)
• Place three shunts (two pin jumpers) vertically on J2 where it is labeled “Connect
for Full-Bridge”.
• Place three shunts (two pin jumpers) vertically on J3 where it is labeled “Connect
for Full-Bridge”.
• Connect the BROWN lead of the stepper motor to Drive 1 (P9).
• Connect the ORANGE lead of the stepper motor to Drive 2 (P10).
• Connect the RED lead of the stepper motor to Drive 3 (P12).
• Connect the YELLOW lead of the stepper motor to Drive 4 (P11).
• Connect the right and center pins of JP8 using a shunt.
Adjusting POT1 varies the speed of the motor. Toggle between single stepping, half
stepping, and microstepping modes by pressing SW2. At low speeds, the motor should
noticeably step in single stepping and half stepping modes. The movement will be quite
jerky in both modes, though to a lesser extent in the half stepping mode. In
microstepping mode, the jerky motion should be virtually eliminated.
Discussion
Stepper motors are used in many positioning applications. For example, ink jet printers
and smaller CNC machines employ stepper motors. Stepper motors are ideal for these
applications because, as long as they are not overloaded, the distance a stepper motor
moves is always known. Stepper motors are also brushless, which makes them more
reliable than brushed motors. Finally, stepper motors are very responsive to starting
and stopping and will produce the highest torque at low speeds.
Half stepping is used to give a stepping motor two times its rated step resolution.
However, there is a word of caution. A stepper motor is typically not rated to have more
than one winding energized at a time. As a result, the motor will heat up if both windings
are energized at the rated voltage of the motor. To offset this, when both windings are
energized simultaneously , the average current to each winding should be 0.707 times
the rated current.
Microstepping offers several advantages over single stepping and half stepping. First,
torque is fairly constant between steps. This results in smoother rotation and decreased
shaft oscillation. Secondly, a higher step resolution is achieved. This means a low-cost
motor can be used in an application that would normally require a more expensive,
higher resolution motor. Finally, the current in the motor windings is being controlled in
a way that prevents the motor from running outside its rated current, thereby eliminating
the excess heat associated with half stepping. The drawback to microstepping is that
the drive circuitry is more complex.
Communicating with the serial port on a PC is a very useful tool. Applications include
a piece of test equipment that needs to interface to a PC or a design that uses the serial
port during development to configure the device. In this project, the PIC16F917 will use
the USART to receive commands from a PC application. Another notable feature to this
project is that the firmware implements an auto-baud routine to sync up with the
application.
Objectives
1. Use the provided PIC® MCU Communicator GUI to manipulate the I/O on the
PIC16F917.
2. Understand what an auto-baud routine entails.
Applicable Technical Documents
Asynchronous Communications with the PICmicro® USART Application Note, AN774
(DS00774)
Jumper Configuration
• Make sure there are no jumpers or shunts on JP2.
Locate the PIC® MCU Communicator GUI in the PIC MCU Communicator folder in
Project 8 on the CD-ROM. Choose the Comm Port and baud rate. Then click “Open Comm.” Enter “TRISD” in the top Label text field. Enter “088” into the top Addr text field.
Check the top Hex box. Enter “7F” into the Data field. In the box labeled “Bit Control”
enter “PORTD” in the label text field. Enter “008” in the Addr field. Finally, toggle bit 7
using the “T” button under that bit. The LED on your board should toggle on and off.
See Figure 2-18.
The firmware for this project implements RS-232 communication between the PC and
PIC16F917. The USART is used to perform this communication. If a crystal oscillator
were used as the clock source for the PIC16F917, auto-baud would not be necessary.
However, because the PIC16F917 is using the internal RC oscillator, it is necessary to
perform auto-baud. Auto-baud refers to sending out a known character from the PC,
the MCU measures the time it takes to receive the character, interprets this time into bit
width, and then sets up the baud rate registers accordingly for the USART . This method
allows the RS-232 communication to be free from errors on different microcontrollers
and over temperature variations.
The PIC MCU Communicator GUI is included in this project as an example GUI.
However, it is also a great tool for debugging. Experiment with using the GUI to setup
other peripherals on the microcontroller.
2.3.9Project 9: Brushed DC Motor Control Using the ECCP
This project is very similar to Project 5, only in this project, we are using the Enhanced
Capture Compare PWM (ECCP) module in the PIC16F690 (see note). In PWM mode,
the ECCP module has four outputs for directly driving an H-bridge circuit. This makes
implementing bidirectional speed control of a Brushed DC motor a simple task.
Note:T o change microcontrollers, disconnect power from the board. Remove the
PIC16F917 microcontroller from U1 and install the PIC16F690 in U2.
Reconnect power to the board.
Objectives
1. Configure the ECCP module for Full-Bridge mode.
2. Change motor directions.
Applicable Technical Documents
Low-Cost Bidirectional Brushed DC Motor Control Using the PIC16F684 Application
Note, AN893 (DS00893)
Jumper Configuration
• P1A (J6) to P1 (J1)
• P1B (J6) to N1 (J1)
• P1C (J6) to P2 (J1)
• P1D (J5) to N2 (J1)
• AN2 (J5) to POT1 (J4)
• RA5 (J6) to SW2 (J4)
• Make sure there are no shunts (two pin jumpers) on J2.
• Attach the Brushed DC motor leads to DRIVE1 (P9) and DRIVE2 (P10).
• Connect the right and center pins of JP8 using a shunt.
Use POT1 to adjust the speed of the motor. SW2 toggles between the following four
modes of operation:
•Motor Off
•Forward
•Motor Off
• Reverse
Discussion
The ECCP module is ideal for driving a full-bridge circuit. Dead-band Delay Control and
Automatic Shutdown are some of the other features of the ECCP module when
configured in PWM mode. Dead-band Delay Control allows you to control when the
MOSFET s in the full-bridge circuit are turned on and off, in relation to one another. This
is done in order to automatically account for the MOSFET turn-on and turn-off times.
Automatic Shutdown allows you to define the shutdown state of the ECCP when a
shutdown event occurs.
This chapter describes common problems associated with using the PICDEM™
Mechatronics and steps on how to resolve them.
3.2COMMON PROBLEMS
3.2.1VDD Is Below 5V
The board must be powered by one of the following:
• A 9-12 V
• A 9-12 V
•A 9V
•A 5V
Supplying less than 9 V
to function properly causing V
DC source at the screw terminals (P20 and P21)
DC source at J9
DC battery
DC power source at TP2 and TP3
PICDEMTM MECHATRONICS
DEMO BOARD USER’S GUIDE
DC at J9 or the screw terminals will not allow the regulator (U3)
DD to be below 5 VDC.
3.2.2No Voltage On Drive Stage
There must be a two-pin shunt present on JP8 connecting the middle pin to +5 VDC or
9-12 V
DC. This is the supply reference for the drive stage. If the FAUL T LED (D8) is on,
the drive stage is disabled. Press the CLR FAULT button (SW5) to enable the drive
stage.
3.2.3FAULT LED Stays On Or Continues To Trip When SW5 Is
Pressed
Verify that the motor is not drawing over 1.2 amps. Check the voltage at CURRENT
SENSE (J15) before the FAULT LED turns on again. Voltage is equal to the current at
J15, therefore, if the voltage is 1.2V or greater, the drive is drawing too much current or
possibly shorted.
Verify the motor is being driven properly. The N-channel and P-channel MOSFETs on
any given Drive (DRIVE 1, DRIVE 2, etc.) should not be turned on simultaneously . (See
note).
J2 connects the MOSFET control lines for DRIVE 1 and DRIVE 2 and J3 connects the
control lines for DRIVE 3 and DRIVE 4. If shunts are present on J2 and J3, verify that
they are connected intentionally and not from a previous design.
Note:Hardware is in place to ensure the N-channel and P-channel MOSFETs on
a given Drive are not turned on at the same time. However, if you are
switching the N-channel MOSFET rapidly, it is possible for both MOSFETs
to be on at the same time.
3.2.4Microcontroller Does Not Run After Programming By The
MPLAB ICD 2
When using the MPLAB ICD 2 as a programmer, the microcontroller will not run unless
you disconnect the MPLAB ICD 2 or release the MPLAB ICD 2 from Reset. Figure 3-1
shows the “Release From Reset” button.
FIGURE 3-1:RELEASE FROM RESET BUTTON
3.2.5Back EMF At J16 Is Floating
Check that a Fault has not occurred by checking that the FAULT LED is off. Verify the
Brushed DC motor is connected between DRIVE 1 and DRIVE 2. In order to measure
Back EMF, DRIVE 1 must float and DRIVE 2 must be grounded (i.e., the N-channel
MOSFET for Drive 2 is the only MOSFET turned on).
3.2.6Board Is Non-Functional When Microcontrollers Are In st alled In
Both U1 And U2
Only one microcontroller should be installed on the board at any given time.
3.2.7Optical Interrupter Is Not Providing The Expected Feedback
The optical interrupter circuit is susceptible to interference from outside infrared light
sources (i.e., incandescent lights, sunlight, etc.). It may be necessary to block this
source or turn off the light source when using the optical interrupter.
3.2.8Serial Communication Does Not Appear To Be Working
If using the USART on the PIC16F690 or PIC16F917, note that the TX and RX pins are
already connected. Make sure there is no shunt present on JP2.
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 480-792-7200
Fax: 480-792-7277
Techn ical Su pport:
http://support.microchip.com
Web Address:
www.microchip.com
Atlanta
Alpharetta, GA
Tel: 770-640-0034
Fax: 770-640-0307
Boston
Westborough, MA
Tel: 774-760-0087
Fax: 774-760-0088
Chicago
Itasca, IL
Tel: 630-285-0071
Fax: 630-285-0075
Dallas
Addison, TX
Tel: 972-818-7423
Fax: 972-818-2924
Detroit
Farmington Hills, MI
Tel: 248-538-2250
Fax: 248-538-2260
Kokomo
Kokomo, IN
Tel: 765-864-8360
Fax: 765-864-8387
Los Angeles
Mission Viejo, CA
Tel: 949-462-9523
Fax: 949-462-9608
Santa Clara
Santa Clara, CA
Tel: 408-961-6444
Fax: 408-961-6445