SlideShare una empresa de Scribd logo
1 de 20
Professor Julian Schmoke - ECT295L


“The Road Toward Completion…”
ECT295L - Applied Project - Final Report




          Thomas de Jesus - D03177173
          6/1/2011
Table of Contents
Abstract ......................................................................................................................................................... 3
Introduction .................................................................................................................................................. 4
Preparing to Stride… ..................................................................................................................................... 5
   Week 1 ...................................................................................................................................................... 5
   Week 2 ...................................................................................................................................................... 6
A Few Feet Down the Road… ........................................................................................................................ 7
   Week 3 ...................................................................................................................................................... 7
Pausing to Read the Map… ........................................................................................................................... 9
   Week 4 ...................................................................................................................................................... 9
Modifications Along the Way… ................................................................................................................... 12
   Week 5 .................................................................................................................................................... 12
   Week 6 .................................................................................................................................................... 14
Final Steps… ................................................................................................................................................ 18
   Week 7 .................................................................................................................................................... 18
A Well Deserved Rest… ............................................................................................................................... 19
   Conclusion ............................................................................................................................................... 19
References .................................................................................................................................................. 20
Abstract


This report is a written documentation and explanation of operation of the work completed during the
construction, inspection, and modification of the Digital Navigation Board that I, Thomas de Jesus, was
assigned to complete during my attendance of ECT295L under the guidance of Professor Julian Schmoke.
The digital navigation board is more commonly described as a “digital compass” and will be referred to,
as such, for the remainder of this document.
Introduction


         It certainly has been an interesting journey. That is, the trip through college on the road towards
my education. It seems like only yesterday I was “down and out” and desperate for a change. I retired to
bed that evening, with an appointment scheduled with Elvis Aparicio, my admissions advisor. I woke up
the next day with a plan. I wasn’t standing still anymore. I was finally moving forward.




         During my “career” as a DeVry University student, I had imagined along the way about these
final moments and speculating as to what the final project might consist of. I’ve had many assumptions
regarding so, including everything from being assigned to build a transistor radio to being assigned to
building my own device using whatever parts I had accumulated over the years and based on my own
design. Now, I find myself at the end of the road. Seven weeks ago, I was introduced to my final project.
How fitting that would be a digital compass. Nice! This is just what I need to find my way to my success.




         So, I began the final steps toward the end of my journey documenting every step along the way.
What you are about to read is that documentation of my journey. I hope you enjoy reading my report as
much as I have enjoyed participating in my final class.




Enjoy.
Preparing to Stride…


        Week 1


        It was during week one when all had begun to really soak into reality. I was excited when I had
received my little brown box from the school’s online bookstore a week or two before classes had
begun. Opening the box, I found a small green board inside, along with a bag full of components,
including resistors, small capacitors, a microcontroller, a digital display, a 9-volt DC battery connector,
and, a weird cylindrical device with pins coming out of it. I had already guessed that it might be a
compass, but, I have learned, over the last few years, not to begin jumping into assumptions about what
classes might require or consist of, too quickly.




        At the beginning of week 1 my restrained assumptions were confirmed. We were to construct a
digital compass device. With my task in hand, I laid all of my parts out on my desk and began to
inventory my parts.

My ECT295L Compass Kit box contained…:

       A 9V Battery and Battery Connector
       A Printed Circuit Board
       A Cylinder of Solder
       2 Bags of components containing:

            o   2 - ceramic capacitors (10pf)
            o   2 - monolithic capacitors (1µf)
            o   2 - ceramic resistors (220Ω, 1/4 W)
            o   1 - ceramic resistor (10kΩ, 1/4 W)
            o   1 - SIP resistor network (100kΩ, (8,7))
            o   1 - electrolytic capacitor (10µf)
            o   1 - dual alphanumeric display (FYD-5421-AS)
            o   1 - PIC Microcontroller (PIC16F72)
            o   1- 28 pin IC socket
            o   1 - compass sensor module (1490)
            o   1 - jumper (1X2)
            o   1 - shorting jumper
            o   1 - voltage regulator (5 V)
            o   1 - Set of rubber feet (3)
o    1 - female data header (10X2)
            o    1 - Nylon Spacer
            o    1 - Screw (M 3-10)

     A Printed Parts List
     All accounted for!



Satisfied with my parts inventory, I anxiously awaited my chance to put my compass together.




        Week 2


        It was finally in week two that we began the real technicals of the project. The weekly
assignment was stated to begin assembly and inspection of the compass by first soldering the compass
module onto the Printed Circuit Board (PCB). Protruding from the bottom of the compass module are 12
leads separated in sets of three and they work similar to a transistor, or, even a switch.




        Encased in the center housing of the compass there is a magnetic sensor that detects the slight
magnetic field that is emanated from the earth’s northern hemisphere, or more specifically, the North
Pole. Once the “needle” of the internal compass-mechanics transitions over, or, stops over, a
transistor/directional set within the compass, the analog output of electrical current travels into the
microcontroller input(s). Analog to digital conversion is done by the PIC16F72 (Microchip Technology
Inc., 2005) microcontroller and a binary output results from the outputs of the microcontroller. This
operation will be defined in this later in this document.




        The leads for the 1490 Digital Compass Module are very tiny. After allowing my soldering iron to
heat up, and after properly tinning the tip of it, I was ready to test my recently-found skill of soldering. I
previously soldered components to a PCB during an earlier course while constructing a small power-
supply unit, but, the leads of the compass module are exceptionally small and it seemed fitting that this
would be the first component installed. After first trimming the leads un-evenly to simplify the insertion
of the 1490 module into the PCB, I quickly
soldered each pin and trimmed off all of
the excess lead. A visible bridge was
present at first, however, it was easily
corrected and the short was opened.




        After feeling satisfied with my
work, I began to measure the reverse side
of the PCB where the compass sensor was
installed to test for shorted or, bridged connections. Most of the measurements taken were as expected
(Infinite Ω indicating an OPEN result), however, while confirming and testing the connections on the PCB
with my test leads reversed, the measurements were extremely incorrect (Approximately 0.4Ω) and
should have measured around 290kΩ (Approx). After some time of trying to decide what had gone
wrong, I discovered that I was in fact testing my compass PCB with the ground incorrectly assumed.
Correcting this by measuring from the correct ground location and re-performing all of the
measurements, I was presented with the expected results (Approximately 295kΩ). Repeating these tests
to determine the connectivity between the remaining compass leads and respective grounds, I
measured satisfactory results each time, indicating a good installation of my compass module.



A Few Feet Down the Road…


        Week 3


        Feeling highly confident by my previous week’s success, I was eager to complete the rest of my
navigation board. The rest of the components were comparably easier to solder to the PCB, rather than
the 1490 compass sensor itself, and I soon had a nearly completed digital compass before me. After
finishing my solder work by affixing my 9-Vdc battery supply cable/connector, I carefully inserted the
PIC16F72 microcontroller into the matching microcontroller socket I had previously soldered to the PCB.
Being very careful to align pin one with the printed diagram on the PCB itself, (Notch alignment), I stared
briefly at my accomplishment.




        Soldered to the back of my PCB is the data header that connects allows for a user to program
                                                      the PIC16F72 microcontroller using a programming
                                                      device, such as, a Multi-Programmer board. The
                                                      compass attaches to the data bus header of the
                                                      multi-programmer board which provides
                                                      communication amongst the compass
                                                      microcontroller. The unfortunate flaw is that since
                                                      the data header is only placed on the back-side of
                                                      the PCB, the compass lays at a severe angle. This
                                                      eliminates the compasses functionality while it is
                                                      laying on a surface. Included with my kit was a
single screw and nylon spacer which I would assume is intended for leveling the compass. Confusingly,
the single screw and plastic spacer are useless and still cause the compass to be uneven when placed on
a level surface. The included rubber feet also offered to assistance as each pad is very thin and provide
no elevation.




        Setting the screw, spacer, and rubber feet aside, I connected my 9Vdc battery and placed the
                                                   small black power-jumper over the On/Off jumper
                                                   pins and checked for any out-of-the-box functionality.
                                                   To my satisfaction, the LED driven display ignited with
                                                   life and the letter N was displayed indicating the
                                                   orientation of the compass as being north. During my
                                                   extensive testing of the compass, I was able to
                                                   determine at that time that the module would “stick”
                                                   on a particular direction if the compass is not
                                                   perfectly level when trying to get a directional
reading.




        After testing and showing my wife my compass and how it worked, I returned to my desk and
connected my Compass to my multi-programmer board and downloaded the standard version of the
compass program that was pre-written in a program called FlowCode. After briefly examining the
FlowCode program for curiosity’s sake, I compiled the program into a HEX file, which is a file readable
and uploadable to the microcontroller connected to the compass PCB.




        After quickly loading the HEX file into a
separate program called PPPv3, I connected my
multi-programmer board to my USB cable and
sent the file to the compass microcontroller.
After a brief blink on the display and a success
message generated by PPPv3, the compass really
displayed no change in functionality which
indicated the program had been uploaded and
was working correctly.




Pausing to Read the Map…



        Week 4


        At this point in my journey, I had completely assembled and programmed the digital compass
and was very pleased with its operation. A few walks around the backyard, the house, and following my
wife while she cleaned, would correctly display the orientation of the compass, in my hand, in all eight
navigational directions (Each direction displayed as N, S, E, W, NW, NE, SE, SW).
With the fun of my “playing” with my device had begun to sour, I then turned my attention to
the FlowCode program that was instructing my device to function. Upon opening the FlowCode program
I had already noticed that the entire program was encased in a “loop while” condition, causing the
program to effectively loop in operation once the program has been initialized. In the case of my digital
compass, the simple act of applying power and placing the on/off jumper in the ON position, sets the
program to run immediately, beginning with the definition of variables, in the calculation instruction and
pertinent to the program, and then into the infinite loop.




                                                             That would definitely explain why there is no
                                                    need to press a button to get a directional reading. In
                                                    the next input condition a variable is defined as
                                                    NEW_DIR which will be utilized by the microcontroller
                                                    as a binary input. This binary input determines the
                                                    direction the top of the PCB is facing. In other words,
                                                    the NEW_DIR variable is set by the compass sensor’s
                                                    output which is associated with its orientation.




        The next conditional argument in the FlowCode program is a program macro that actually is
intended to prevent the display from flickering, and also, to prevent the display from skipping a
direction while it is being rotated. This is essentially a repeated test to see if there has been any change
in direction to prevent such flickering.




        The next instruction in line is the first of eight decision (Yes/No) instructions to help determine
the measured input from the compass sensor into the microcontroller. As mentioned before, each
direction causes a binary representation on the inputs of the microcontroller. If the input is read by the
microcontroller as the binary number 0011 the internal program correctly interprets this as the decimal
number 3, which in turn would prompt a YES answer to the decision instruction for North East. If the NO
branch is followed through the program, the instruction is skipped and the program follows through
until the binary representation of the input reflects a YES response.




        Once a decision has been determined as YES, the real transfer from input to output begins. The
YES branch of the decision instruction continue to a calculation condition that sets the decimal value of
the required binary representation to illuminate the tiny LED segments within the alphanumeric display.
Further investigation of the datasheet (Datasheet Archive, 2010) for the FYD-5421AS display, I
discovered that each LED is assigned a letter code that specifies which pin-to-segment similarities cause
for each direction to be defined as an N for north, etcetera.




        Additionally, each digit is segmented similarly over two different ports, port B and Port C. By
utilizing the variables FIRST_D_1, to manipulate port B (IC outputs B0-7), and/or, FIRST_D_2, to
manipulate port C (IC outputs C0-7), the LED’s segments for the first alphanumeric digit will light up
according to the decimal/binary output. Similarly, using the variables Second_D_1, for port B and
Second _D_2 for port C, the segments for the second digit will display according to the binary outcome.




        I was pleased that it was all making sense to me in some slight way. Although I had some
understanding of the overall program operation as it was written, I would not discover the editable
variables that would change the displayed output of the compass until a later week. Finally, I had
followed the compass program to the final (functional) instruction that would happen to be the DISPLAY
macro. This macro is the work behind the resulting calculations performed when a decision branch has
taken a YES path through the directional calculation variables.
Within the DISPLAY macro, there is a decision instruction that is conditional upon the value of
the variable FLAG. If the FLAG variable is determined to be true or false, the YES or NO branch is
followed and a calculation instruction on each branch, along with two sandwiched output instructions,
allows for the program to light the segments on either the first alphanumeric digit, or the second digit.
Earlier there was mention of the definition of variables that were set before the program loop was
initialized. Among these variables is the FLAG variable and is initially set to 16 which actually will cause
the second digit to be read first as decided by the decision instruction. During each branch and centered
between the port outputs, the variable FLAG is alternated between 16 and 32 causing each branch to be
examined by the program as necessary to display both display digits.




        The Flowcode program left so much to be explained! Nevertheless, it was understood by me at
that point in time and I was tremendously excited to see which direction my project would continue
take me.




Modifications Along the Way…


        Week 5


        With everything moving smoothly and my assembled and programmed compass kit still
performing to my delight, I turned my attention to the next phase in learning, which would happen to
be, the alteration of the FlowCode program and additional wiring to the compass PCB. It was made clear
this week and confirmed through further investigation of the compass schematic, that three of the
outputs of the microcontroller were, in fact, not connected to any of the LED segment pins on the LED
component.

        Before tackling the unconnected pin issue, I needed to fix the battery cable a second time. While
demonstrating my compass for family and friends, I found that the wires are really week and when
handled too frequently, will break loose from the PCB. And so, digging through my box of spare and old
video cards, I found a card that had a two pin
                                                           power connector that was used for the fan.
                                                           After removing the solder from the card
                                                           holding the plastic power connector and
                                                           clipping the connector from the fan wires, I
                                                           removed the solder from the V supply
                                                           terminals of my board and did my best to
                                                           open the existing holes that were once there.
                                                           With a little sweat and after some slight
                                                           bending, the board-side of the fan connector
was soldered in satisfactorily, and stable. Then, I soldered the wires from the clip of the connector to the
wires of the battery cable for my compass. This in fact left the wires for the battery too long, in my
opinion, and so, using the smallest standard screwdriver in my arsenal, I was able to work the pins out of
the connector that joined to the old fan wires, remove the old wire and solder the internal connectors
directly to the battery wire, and then, firmly inserted the connector back into the plastic connector
housing. After all was completed, I checked the power levels to ensure that there were solid connections
through the connector and my measurements were exact. The 9.23 Vdc measured directly from the
battery was also measured at the power jumper, and the back-side of the V connectors on the PCB.
Finally, I was ready to “connect-the-bits”.

        This posed as somewhat of a challenge for me at first. Looking at the schematic and through
datasheets for the PIC16F72 and the FYD-5421AS display component, I was able to determine which pins
were in fact not connected, and where they should be connected to complete a connection to the
remaining LED segments. Working essentially from top-to-bottom in relation to the microcontroller
symbol of the compass schematic, versus, the display symbol of the datasheet for the display
component, I had predetermined and visualized which pins to connect on the back of my compass PCB.

        Fortunately, I was able to correctly
connect each of the unconnected pins
accordingly. Unfortunately, after placing the
wire jumpers where I would end up doing
so, I caused two of the wires to cross over
each other. The concern is very little that
there might be a short between the two wires because each wire is still covered by the protective outer
insulation. Ultimately, I had connected microcontroller pin 14, to FYD-5421AS pin 4 (yellow wire),
microcontroller pin 13 to FYD-5421AS pin 15 (white wire), and finally, microcontroller pin 11 to FYD-
5421AS pin 4 (red wire). Still satisfied with my progress, and my compass still functional with the original
compass program, I moved forward and began to alter the FlowCode program.




        Week 6


        This would be the last week I had spent completing my compass modifications. I began this
week with some confusion regarding the standard compass FlowCode, and the modifications that would
change the N, S, etc, representations of navigational direction to instead display arrows that would
consistently represent north. It was over the course of the last couple weeks that I had discovered that
the display segments were a binary representation, converted to a decimal value, and that this could be
completed by changing the decimal values in the decision instructions for the variables FIRST_D_1,
FIRST_D_2, SECOND_D_1, and SECOND_D_2 variables. The tables below outline the changes I had
implemented to each decimal value, including a graphic of each arrow the values would display. Only
one alphanumeric digit is displayed in my examples due to the fact that both alphanumeric digits, per
each direction, show identical representations of arrows.




FYD_5421AS SEGMENT           F    H    E       N      G1    A    L     G2    Decimal
                                                                              Value
IC PORT B                    B7 B6 B5          B4     B3    B2 B1 B0
BINARY OUTPUT FROM IC        0  0  0           1      0     0  1  0             18

FYD_5421AS SEGMENT           D    C    CC1     CC2    M     J    B     K     Decimal
                                                                              Value
IC PORT C                    C7   C6   C5      C4     C3    C2   C1    C0
BINARY OUTPUT FROM IC        0    0    0       0      1     1    0     0        12


                                              NORTH
FYD_5421AS SEGMENT      F    H    E     N     G1   A    L    G2   Decimal
                                                                   Value
IC PORT B               B7 B6 B5        B4    B3   B2 B1 B0
BINARY OUTPUT FROM IC   0  1  0         0     0    0  1  1          67

FYD_5421AS SEGMENT      D    C    CC1   CC2   M    J    B    K    Decimal
                                                                   Value
IC PORT C               C7   C6   C5    C4    C3   C2   C1   C0
BINARY OUTPUT FROM IC   0    0    0     0     1    0    0    0      8


                                      NORTHEAST


FYD_5421AS SEGMENT      F    H    E     N     G1   A    L    G2   Decimal
                                                                   Value
IC PORT B               B7 B6 B5        B4    B3   B2 B1 B0
BINARY OUTPUT FROM IC   0  0  0         0     1    0  1  1          11

FYD_5421AS SEGMENT      D    C    CC1   CC2   M    J    B    K    Decimal
                                                                   Value
IC PORT C               C7   C6   C5    C4    C3   C2   C1   C0
BINARY OUTPUT FROM IC   0    0    0     0     0    0    0    1      1


                                            EAST


FYD_5421AS SEGMENT      F    H    E     N     G1   A    L    G2   Decimal
                                                                   Value
IC PORT B               B7 B6 B5        B4    B3   B2 B1 B0
BINARY OUTPUT FROM IC   0  0  0         1     0    0  0  1          17

FYD_5421AS SEGMENT      D    C    CC1   CC2   M    J    B    K    Decimal
                                                                   Value
IC PORT C               C7   C6   C5    C4    C3   C2   C1   C0
BINARY OUTPUT FROM IC   0    0    0     0     0    1    0    1      5


                                      SOUTHEAST
FYD_5421AS SEGMENT      F    H    E     N     G1   A    L    G2   Decimal
                                                                   Value
IC PORT B               B7 B6 B5        B4    B3   B2 B1 B0
BINARY OUTPUT FROM IC   0  1  0         0     0    0  0  0          64

FYD_5421AS SEGMENT      D    C    CC1   CC2   M    J    B    K    Decimal
                                                                   Value
IC PORT C               C7   C6   C5    C4    C3   C2   C1   C0
BINARY OUTPUT FROM IC   0    0    0     0     1    1    0    1      13


                                        SOUTH


FYD_5421AS SEGMENT      F    H    E     N     G1   A    L    G2   Decimal
                                                                   Value
IC PORT B               B7 B6 B5        B4    B3   B2 B1 B0
BINARY OUTPUT FROM IC   0  1  0         0     1    0  1  0          74

FYD_5421AS SEGMENT      D    C    CC1   CC2   M    J    B    K    Decimal
                                                                   Value
IC PORT C               C7   C6   C5    C4    C3   C2   C1   C0
BINARY OUTPUT FROM IC   0    0    0     0     0    1    0    0      4


                                  SOUTHWEST


FYD_5421AS SEGMENT      F    H    E     N     G1   A    L    G2   Decimal
                                                                   Value
IC PORT B               B7 B6 B5        B4    B3   B2 B1 B0
BINARY OUTPUT FROM IC   0  1  0         1     1    0  0  1          89

FYD_5421AS SEGMENT      D    C    CC1   CC2   M    J    B    K    Decimal
                                                                   Value
IC PORT C               C7   C6   C5    C4    C3   C2   C1   C0
BINARY OUTPUT FROM IC   0    0    0     0     0    0    0    0      0


                                        WEST
FYD_5421AS SEGMENT          F     H     E     N      G1    A    L     G2    Decimal
                                                                             Value
IC PORT B                   B7 B6 B5          B4     B3    B2 B1 B0
BINARY OUTPUT FROM IC       0  0  0           1      1     0  0  0             24

FYD_5421AS SEGMENT          D     C     CC1   CC2    M     J    B     K     Decimal
                                                                             Value
IC PORT C                   C7    C6    C5    C4     C3    C2   C1    C0
BINARY OUTPUT FROM IC       0     0     0     0      1     0    0     1         9


                                          NORTHWEST


        Having this information firmly in hand, I began to change the variables using the values for PORT
B as the decimal value for the variable FIRST_D_1 and PORT C as the decimal for the variable FIRST_D_2.
This indeed changed the left alphanumeric display to display an arrow. Again, just as before, I altered
the variable for the SECOND_D_1 using the decimal value for PORT B and SECOND_D_2 was
programmed with the decimal value for PORT C.




        Once all of the values in each of the calculation boxes had been changed, I was able to directly
program the microcontroller on my
compass using the same method as I had
used when programming it with the
standard compass FlowCode program.
Once the upload was completed, I
removed my compass from the
programmer board and connected the
9Vdc battery to my compass. Success!
Each direction was correctly displaying
the arrow I had indicated by my work.
Final Steps…


        Week 7


        My final week of academics was a week of reflection regarding the weeks that had passed, and
the events that had occurred. Once all had been completed, the functionality became very clear. Once
power has been applied, the voltage
is carried through the power supply
circuit and output through the Vdd
supply which activates the
microcontroller and compass sensor.
The internally saved program begins
to run by first setting variables
important to the program’s
functionality. The needle within the
compass sensor module passes over
any combination of three terminals
and a switch-like result occurs that activates a signal int the inputs of the microcontroller (A0…A3). As
determined by the decimal values saved into the FlowCode program, the binary/decimal output is sent
through the output pins of the microcontroller which are then transmitted to the LED display. Each
output of the PIC16F72 microcontroller is connected to each LED segment of the FYD-5421-AS display
module. This signal then illuminates the indicated led segment, forming the desired output, which is any
combination of alphanumeric characters, including some symbols. A resistor network is used to regulate
the current into the microcontroller and the compass module.
A Well Deserved Rest…


        Conclusion


        Constructing this circuit was a great deal of fun. Gaining a strong passion for computers and
electronics at a young age, I had always been extremely fascinated with the science of electricity. From
the simple powering-on of my home computer, to the detailed 3D graphics displayed, the circuitry that
provides the means is the most incredible discovery of all time, in my opinion. I am proud of the
accomplishments I have achieved, with the help of DeVry, and I know that the road before me towards
my future has widened and expanded with many new possibilities.




        Though this class is over, and I have reached the end of this academic road, I realize that this is
really only a short rest. In the very near future I will continue to learn more about the science of
electricity and further examine the compass I had constructed, along with a power-supply I had built
before, and just see how far I can explore my favorite scientific realm. Future improvements might
include a larger microcontroller, along with a larger display that would display larger words to associate
with each direction. I also plan to eventually encase my compass in a solid housing that would serve to
both protect the circuits inside, and provide ease of use when holding in the palm of my hand.




     Please allow me to take this time to thank you, the reader, for reading my final project-report.
References

             Datasheet Archive (2010). "FYD-5421Ax Datasheet, Circuit, PDF, & Application Note

     Results" Retrieved June 18, 2011, from http://www.datasheetarchive.com/FYD-5421Ax-

     datasheet.html




             Microchip Technology Inc. (2005). “PIC16F72 Data Sheet: 28-Pin, 8-Bit CMOS FLASH

     Microcontroller with A/D/ Converter” Retrieved June 18, 2011, from

     http://ww1.microchip.com/downloads/en/DeviceDoc/39597C.pdf

Más contenido relacionado

Similar a The Road Toward Completion

DC VOLTAGE MEASUREMENT USİNG THE WITH PIC MICROCONTROLLER
DC VOLTAGE MEASUREMENT USİNG THE WITH PIC MICROCONTROLLERDC VOLTAGE MEASUREMENT USİNG THE WITH PIC MICROCONTROLLER
DC VOLTAGE MEASUREMENT USİNG THE WITH PIC MICROCONTROLLERDursun Kalpak
 
The can sat_book_2016-2017_versienov2016
The can sat_book_2016-2017_versienov2016The can sat_book_2016-2017_versienov2016
The can sat_book_2016-2017_versienov2016Ana Carneirinho
 
TheFresnelLensFinalProjectReport
TheFresnelLensFinalProjectReportTheFresnelLensFinalProjectReport
TheFresnelLensFinalProjectReportDongliang Lu
 
How the integrated circuit works
How the integrated circuit worksHow the integrated circuit works
How the integrated circuit worksChawla Electronic
 
Final project presentation ea
Final project presentation eaFinal project presentation ea
Final project presentation eaEric Ayala
 
Solar powered refrigerator
Solar powered refrigeratorSolar powered refrigerator
Solar powered refrigeratorslmnsvn
 
Linear Mass Accelerator
Linear Mass AcceleratorLinear Mass Accelerator
Linear Mass AcceleratorAndy Chu
 
IP II proposal (updated)
IP II proposal (updated)IP II proposal (updated)
IP II proposal (updated)Sohan Motwani
 
101 200 transistorcircuits
101 200 transistorcircuits101 200 transistorcircuits
101 200 transistorcircuitsAlejandro Perez
 
189626882 ep227-digital-electronics
189626882 ep227-digital-electronics189626882 ep227-digital-electronics
189626882 ep227-digital-electronicsDimple Bansal
 
RRG Exhibits 10-2016 -
RRG Exhibits 10-2016 -RRG Exhibits 10-2016 -
RRG Exhibits 10-2016 -Richard Gagnon
 
Electrostatic kick report
Electrostatic kick reportElectrostatic kick report
Electrostatic kick reportRoberto Notte
 
103 Simple Transistor Projects, Thomas S. Kneitel, HAYDEN BOOK COMPANY, INC.,...
103 Simple Transistor Projects, Thomas S. Kneitel, HAYDEN BOOK COMPANY, INC.,...103 Simple Transistor Projects, Thomas S. Kneitel, HAYDEN BOOK COMPANY, INC.,...
103 Simple Transistor Projects, Thomas S. Kneitel, HAYDEN BOOK COMPANY, INC.,...ivan ion
 
Problemas de aplicación ley de ohm y ley de watt
Problemas de aplicación  ley de ohm y ley de wattProblemas de aplicación  ley de ohm y ley de watt
Problemas de aplicación ley de ohm y ley de wattKatheryncaicedo1
 
Electronz_Introduction.pptx
Electronz_Introduction.pptxElectronz_Introduction.pptx
Electronz_Introduction.pptxMokete5
 

Similar a The Road Toward Completion (20)

DC VOLTAGE MEASUREMENT USİNG THE WITH PIC MICROCONTROLLER
DC VOLTAGE MEASUREMENT USİNG THE WITH PIC MICROCONTROLLERDC VOLTAGE MEASUREMENT USİNG THE WITH PIC MICROCONTROLLER
DC VOLTAGE MEASUREMENT USİNG THE WITH PIC MICROCONTROLLER
 
The can sat_book_2016-2017_versienov2016
The can sat_book_2016-2017_versienov2016The can sat_book_2016-2017_versienov2016
The can sat_book_2016-2017_versienov2016
 
TheFresnelLensFinalProjectReport
TheFresnelLensFinalProjectReportTheFresnelLensFinalProjectReport
TheFresnelLensFinalProjectReport
 
How the integrated circuit works
How the integrated circuit worksHow the integrated circuit works
How the integrated circuit works
 
Final project presentation ea
Final project presentation eaFinal project presentation ea
Final project presentation ea
 
Solar powered refrigerator
Solar powered refrigeratorSolar powered refrigerator
Solar powered refrigerator
 
Clap switch
Clap switchClap switch
Clap switch
 
Linear Mass Accelerator
Linear Mass AcceleratorLinear Mass Accelerator
Linear Mass Accelerator
 
IP II proposal (updated)
IP II proposal (updated)IP II proposal (updated)
IP II proposal (updated)
 
101 200 transistorcircuits
101 200 transistorcircuits101 200 transistorcircuits
101 200 transistorcircuits
 
Finaluniversitywork
FinaluniversityworkFinaluniversitywork
Finaluniversitywork
 
189626882 ep227-digital-electronics
189626882 ep227-digital-electronics189626882 ep227-digital-electronics
189626882 ep227-digital-electronics
 
RRG Exhibits 10-2016 -
RRG Exhibits 10-2016 -RRG Exhibits 10-2016 -
RRG Exhibits 10-2016 -
 
Electrostatic kick report
Electrostatic kick reportElectrostatic kick report
Electrostatic kick report
 
Data
DataData
Data
 
103 Simple Transistor Projects, Thomas S. Kneitel, HAYDEN BOOK COMPANY, INC.,...
103 Simple Transistor Projects, Thomas S. Kneitel, HAYDEN BOOK COMPANY, INC.,...103 Simple Transistor Projects, Thomas S. Kneitel, HAYDEN BOOK COMPANY, INC.,...
103 Simple Transistor Projects, Thomas S. Kneitel, HAYDEN BOOK COMPANY, INC.,...
 
Problemas de aplicación ley de ohm y ley de watt
Problemas de aplicación  ley de ohm y ley de wattProblemas de aplicación  ley de ohm y ley de watt
Problemas de aplicación ley de ohm y ley de watt
 
Electronz_Introduction.pptx
Electronz_Introduction.pptxElectronz_Introduction.pptx
Electronz_Introduction.pptx
 
Spintronics report
Spintronics reportSpintronics report
Spintronics report
 
Making a peaking filter by Julio Marqués
Making a peaking filter by Julio MarquésMaking a peaking filter by Julio Marqués
Making a peaking filter by Julio Marqués
 

The Road Toward Completion

  • 1. Professor Julian Schmoke - ECT295L “The Road Toward Completion…” ECT295L - Applied Project - Final Report Thomas de Jesus - D03177173 6/1/2011
  • 2. Table of Contents Abstract ......................................................................................................................................................... 3 Introduction .................................................................................................................................................. 4 Preparing to Stride… ..................................................................................................................................... 5 Week 1 ...................................................................................................................................................... 5 Week 2 ...................................................................................................................................................... 6 A Few Feet Down the Road… ........................................................................................................................ 7 Week 3 ...................................................................................................................................................... 7 Pausing to Read the Map… ........................................................................................................................... 9 Week 4 ...................................................................................................................................................... 9 Modifications Along the Way… ................................................................................................................... 12 Week 5 .................................................................................................................................................... 12 Week 6 .................................................................................................................................................... 14 Final Steps… ................................................................................................................................................ 18 Week 7 .................................................................................................................................................... 18 A Well Deserved Rest… ............................................................................................................................... 19 Conclusion ............................................................................................................................................... 19 References .................................................................................................................................................. 20
  • 3. Abstract This report is a written documentation and explanation of operation of the work completed during the construction, inspection, and modification of the Digital Navigation Board that I, Thomas de Jesus, was assigned to complete during my attendance of ECT295L under the guidance of Professor Julian Schmoke. The digital navigation board is more commonly described as a “digital compass” and will be referred to, as such, for the remainder of this document.
  • 4. Introduction It certainly has been an interesting journey. That is, the trip through college on the road towards my education. It seems like only yesterday I was “down and out” and desperate for a change. I retired to bed that evening, with an appointment scheduled with Elvis Aparicio, my admissions advisor. I woke up the next day with a plan. I wasn’t standing still anymore. I was finally moving forward. During my “career” as a DeVry University student, I had imagined along the way about these final moments and speculating as to what the final project might consist of. I’ve had many assumptions regarding so, including everything from being assigned to build a transistor radio to being assigned to building my own device using whatever parts I had accumulated over the years and based on my own design. Now, I find myself at the end of the road. Seven weeks ago, I was introduced to my final project. How fitting that would be a digital compass. Nice! This is just what I need to find my way to my success. So, I began the final steps toward the end of my journey documenting every step along the way. What you are about to read is that documentation of my journey. I hope you enjoy reading my report as much as I have enjoyed participating in my final class. Enjoy.
  • 5. Preparing to Stride… Week 1 It was during week one when all had begun to really soak into reality. I was excited when I had received my little brown box from the school’s online bookstore a week or two before classes had begun. Opening the box, I found a small green board inside, along with a bag full of components, including resistors, small capacitors, a microcontroller, a digital display, a 9-volt DC battery connector, and, a weird cylindrical device with pins coming out of it. I had already guessed that it might be a compass, but, I have learned, over the last few years, not to begin jumping into assumptions about what classes might require or consist of, too quickly. At the beginning of week 1 my restrained assumptions were confirmed. We were to construct a digital compass device. With my task in hand, I laid all of my parts out on my desk and began to inventory my parts. My ECT295L Compass Kit box contained…:  A 9V Battery and Battery Connector  A Printed Circuit Board  A Cylinder of Solder  2 Bags of components containing: o 2 - ceramic capacitors (10pf) o 2 - monolithic capacitors (1µf) o 2 - ceramic resistors (220Ω, 1/4 W) o 1 - ceramic resistor (10kΩ, 1/4 W) o 1 - SIP resistor network (100kΩ, (8,7)) o 1 - electrolytic capacitor (10µf) o 1 - dual alphanumeric display (FYD-5421-AS) o 1 - PIC Microcontroller (PIC16F72) o 1- 28 pin IC socket o 1 - compass sensor module (1490) o 1 - jumper (1X2) o 1 - shorting jumper o 1 - voltage regulator (5 V) o 1 - Set of rubber feet (3)
  • 6. o 1 - female data header (10X2) o 1 - Nylon Spacer o 1 - Screw (M 3-10)  A Printed Parts List  All accounted for! Satisfied with my parts inventory, I anxiously awaited my chance to put my compass together. Week 2 It was finally in week two that we began the real technicals of the project. The weekly assignment was stated to begin assembly and inspection of the compass by first soldering the compass module onto the Printed Circuit Board (PCB). Protruding from the bottom of the compass module are 12 leads separated in sets of three and they work similar to a transistor, or, even a switch. Encased in the center housing of the compass there is a magnetic sensor that detects the slight magnetic field that is emanated from the earth’s northern hemisphere, or more specifically, the North Pole. Once the “needle” of the internal compass-mechanics transitions over, or, stops over, a transistor/directional set within the compass, the analog output of electrical current travels into the microcontroller input(s). Analog to digital conversion is done by the PIC16F72 (Microchip Technology Inc., 2005) microcontroller and a binary output results from the outputs of the microcontroller. This operation will be defined in this later in this document. The leads for the 1490 Digital Compass Module are very tiny. After allowing my soldering iron to heat up, and after properly tinning the tip of it, I was ready to test my recently-found skill of soldering. I previously soldered components to a PCB during an earlier course while constructing a small power- supply unit, but, the leads of the compass module are exceptionally small and it seemed fitting that this would be the first component installed. After first trimming the leads un-evenly to simplify the insertion
  • 7. of the 1490 module into the PCB, I quickly soldered each pin and trimmed off all of the excess lead. A visible bridge was present at first, however, it was easily corrected and the short was opened. After feeling satisfied with my work, I began to measure the reverse side of the PCB where the compass sensor was installed to test for shorted or, bridged connections. Most of the measurements taken were as expected (Infinite Ω indicating an OPEN result), however, while confirming and testing the connections on the PCB with my test leads reversed, the measurements were extremely incorrect (Approximately 0.4Ω) and should have measured around 290kΩ (Approx). After some time of trying to decide what had gone wrong, I discovered that I was in fact testing my compass PCB with the ground incorrectly assumed. Correcting this by measuring from the correct ground location and re-performing all of the measurements, I was presented with the expected results (Approximately 295kΩ). Repeating these tests to determine the connectivity between the remaining compass leads and respective grounds, I measured satisfactory results each time, indicating a good installation of my compass module. A Few Feet Down the Road… Week 3 Feeling highly confident by my previous week’s success, I was eager to complete the rest of my navigation board. The rest of the components were comparably easier to solder to the PCB, rather than the 1490 compass sensor itself, and I soon had a nearly completed digital compass before me. After finishing my solder work by affixing my 9-Vdc battery supply cable/connector, I carefully inserted the PIC16F72 microcontroller into the matching microcontroller socket I had previously soldered to the PCB.
  • 8. Being very careful to align pin one with the printed diagram on the PCB itself, (Notch alignment), I stared briefly at my accomplishment. Soldered to the back of my PCB is the data header that connects allows for a user to program the PIC16F72 microcontroller using a programming device, such as, a Multi-Programmer board. The compass attaches to the data bus header of the multi-programmer board which provides communication amongst the compass microcontroller. The unfortunate flaw is that since the data header is only placed on the back-side of the PCB, the compass lays at a severe angle. This eliminates the compasses functionality while it is laying on a surface. Included with my kit was a single screw and nylon spacer which I would assume is intended for leveling the compass. Confusingly, the single screw and plastic spacer are useless and still cause the compass to be uneven when placed on a level surface. The included rubber feet also offered to assistance as each pad is very thin and provide no elevation. Setting the screw, spacer, and rubber feet aside, I connected my 9Vdc battery and placed the small black power-jumper over the On/Off jumper pins and checked for any out-of-the-box functionality. To my satisfaction, the LED driven display ignited with life and the letter N was displayed indicating the orientation of the compass as being north. During my extensive testing of the compass, I was able to determine at that time that the module would “stick” on a particular direction if the compass is not perfectly level when trying to get a directional
  • 9. reading. After testing and showing my wife my compass and how it worked, I returned to my desk and connected my Compass to my multi-programmer board and downloaded the standard version of the compass program that was pre-written in a program called FlowCode. After briefly examining the FlowCode program for curiosity’s sake, I compiled the program into a HEX file, which is a file readable and uploadable to the microcontroller connected to the compass PCB. After quickly loading the HEX file into a separate program called PPPv3, I connected my multi-programmer board to my USB cable and sent the file to the compass microcontroller. After a brief blink on the display and a success message generated by PPPv3, the compass really displayed no change in functionality which indicated the program had been uploaded and was working correctly. Pausing to Read the Map… Week 4 At this point in my journey, I had completely assembled and programmed the digital compass and was very pleased with its operation. A few walks around the backyard, the house, and following my wife while she cleaned, would correctly display the orientation of the compass, in my hand, in all eight navigational directions (Each direction displayed as N, S, E, W, NW, NE, SE, SW).
  • 10. With the fun of my “playing” with my device had begun to sour, I then turned my attention to the FlowCode program that was instructing my device to function. Upon opening the FlowCode program I had already noticed that the entire program was encased in a “loop while” condition, causing the program to effectively loop in operation once the program has been initialized. In the case of my digital compass, the simple act of applying power and placing the on/off jumper in the ON position, sets the program to run immediately, beginning with the definition of variables, in the calculation instruction and pertinent to the program, and then into the infinite loop. That would definitely explain why there is no need to press a button to get a directional reading. In the next input condition a variable is defined as NEW_DIR which will be utilized by the microcontroller as a binary input. This binary input determines the direction the top of the PCB is facing. In other words, the NEW_DIR variable is set by the compass sensor’s output which is associated with its orientation. The next conditional argument in the FlowCode program is a program macro that actually is intended to prevent the display from flickering, and also, to prevent the display from skipping a direction while it is being rotated. This is essentially a repeated test to see if there has been any change in direction to prevent such flickering. The next instruction in line is the first of eight decision (Yes/No) instructions to help determine the measured input from the compass sensor into the microcontroller. As mentioned before, each direction causes a binary representation on the inputs of the microcontroller. If the input is read by the microcontroller as the binary number 0011 the internal program correctly interprets this as the decimal number 3, which in turn would prompt a YES answer to the decision instruction for North East. If the NO
  • 11. branch is followed through the program, the instruction is skipped and the program follows through until the binary representation of the input reflects a YES response. Once a decision has been determined as YES, the real transfer from input to output begins. The YES branch of the decision instruction continue to a calculation condition that sets the decimal value of the required binary representation to illuminate the tiny LED segments within the alphanumeric display. Further investigation of the datasheet (Datasheet Archive, 2010) for the FYD-5421AS display, I discovered that each LED is assigned a letter code that specifies which pin-to-segment similarities cause for each direction to be defined as an N for north, etcetera. Additionally, each digit is segmented similarly over two different ports, port B and Port C. By utilizing the variables FIRST_D_1, to manipulate port B (IC outputs B0-7), and/or, FIRST_D_2, to manipulate port C (IC outputs C0-7), the LED’s segments for the first alphanumeric digit will light up according to the decimal/binary output. Similarly, using the variables Second_D_1, for port B and Second _D_2 for port C, the segments for the second digit will display according to the binary outcome. I was pleased that it was all making sense to me in some slight way. Although I had some understanding of the overall program operation as it was written, I would not discover the editable variables that would change the displayed output of the compass until a later week. Finally, I had followed the compass program to the final (functional) instruction that would happen to be the DISPLAY macro. This macro is the work behind the resulting calculations performed when a decision branch has taken a YES path through the directional calculation variables.
  • 12. Within the DISPLAY macro, there is a decision instruction that is conditional upon the value of the variable FLAG. If the FLAG variable is determined to be true or false, the YES or NO branch is followed and a calculation instruction on each branch, along with two sandwiched output instructions, allows for the program to light the segments on either the first alphanumeric digit, or the second digit. Earlier there was mention of the definition of variables that were set before the program loop was initialized. Among these variables is the FLAG variable and is initially set to 16 which actually will cause the second digit to be read first as decided by the decision instruction. During each branch and centered between the port outputs, the variable FLAG is alternated between 16 and 32 causing each branch to be examined by the program as necessary to display both display digits. The Flowcode program left so much to be explained! Nevertheless, it was understood by me at that point in time and I was tremendously excited to see which direction my project would continue take me. Modifications Along the Way… Week 5 With everything moving smoothly and my assembled and programmed compass kit still performing to my delight, I turned my attention to the next phase in learning, which would happen to be, the alteration of the FlowCode program and additional wiring to the compass PCB. It was made clear this week and confirmed through further investigation of the compass schematic, that three of the outputs of the microcontroller were, in fact, not connected to any of the LED segment pins on the LED component. Before tackling the unconnected pin issue, I needed to fix the battery cable a second time. While demonstrating my compass for family and friends, I found that the wires are really week and when handled too frequently, will break loose from the PCB. And so, digging through my box of spare and old
  • 13. video cards, I found a card that had a two pin power connector that was used for the fan. After removing the solder from the card holding the plastic power connector and clipping the connector from the fan wires, I removed the solder from the V supply terminals of my board and did my best to open the existing holes that were once there. With a little sweat and after some slight bending, the board-side of the fan connector was soldered in satisfactorily, and stable. Then, I soldered the wires from the clip of the connector to the wires of the battery cable for my compass. This in fact left the wires for the battery too long, in my opinion, and so, using the smallest standard screwdriver in my arsenal, I was able to work the pins out of the connector that joined to the old fan wires, remove the old wire and solder the internal connectors directly to the battery wire, and then, firmly inserted the connector back into the plastic connector housing. After all was completed, I checked the power levels to ensure that there were solid connections through the connector and my measurements were exact. The 9.23 Vdc measured directly from the battery was also measured at the power jumper, and the back-side of the V connectors on the PCB. Finally, I was ready to “connect-the-bits”. This posed as somewhat of a challenge for me at first. Looking at the schematic and through datasheets for the PIC16F72 and the FYD-5421AS display component, I was able to determine which pins were in fact not connected, and where they should be connected to complete a connection to the remaining LED segments. Working essentially from top-to-bottom in relation to the microcontroller symbol of the compass schematic, versus, the display symbol of the datasheet for the display component, I had predetermined and visualized which pins to connect on the back of my compass PCB. Fortunately, I was able to correctly connect each of the unconnected pins accordingly. Unfortunately, after placing the wire jumpers where I would end up doing so, I caused two of the wires to cross over each other. The concern is very little that
  • 14. there might be a short between the two wires because each wire is still covered by the protective outer insulation. Ultimately, I had connected microcontroller pin 14, to FYD-5421AS pin 4 (yellow wire), microcontroller pin 13 to FYD-5421AS pin 15 (white wire), and finally, microcontroller pin 11 to FYD- 5421AS pin 4 (red wire). Still satisfied with my progress, and my compass still functional with the original compass program, I moved forward and began to alter the FlowCode program. Week 6 This would be the last week I had spent completing my compass modifications. I began this week with some confusion regarding the standard compass FlowCode, and the modifications that would change the N, S, etc, representations of navigational direction to instead display arrows that would consistently represent north. It was over the course of the last couple weeks that I had discovered that the display segments were a binary representation, converted to a decimal value, and that this could be completed by changing the decimal values in the decision instructions for the variables FIRST_D_1, FIRST_D_2, SECOND_D_1, and SECOND_D_2 variables. The tables below outline the changes I had implemented to each decimal value, including a graphic of each arrow the values would display. Only one alphanumeric digit is displayed in my examples due to the fact that both alphanumeric digits, per each direction, show identical representations of arrows. FYD_5421AS SEGMENT F H E N G1 A L G2 Decimal Value IC PORT B B7 B6 B5 B4 B3 B2 B1 B0 BINARY OUTPUT FROM IC 0 0 0 1 0 0 1 0 18 FYD_5421AS SEGMENT D C CC1 CC2 M J B K Decimal Value IC PORT C C7 C6 C5 C4 C3 C2 C1 C0 BINARY OUTPUT FROM IC 0 0 0 0 1 1 0 0 12 NORTH
  • 15. FYD_5421AS SEGMENT F H E N G1 A L G2 Decimal Value IC PORT B B7 B6 B5 B4 B3 B2 B1 B0 BINARY OUTPUT FROM IC 0 1 0 0 0 0 1 1 67 FYD_5421AS SEGMENT D C CC1 CC2 M J B K Decimal Value IC PORT C C7 C6 C5 C4 C3 C2 C1 C0 BINARY OUTPUT FROM IC 0 0 0 0 1 0 0 0 8 NORTHEAST FYD_5421AS SEGMENT F H E N G1 A L G2 Decimal Value IC PORT B B7 B6 B5 B4 B3 B2 B1 B0 BINARY OUTPUT FROM IC 0 0 0 0 1 0 1 1 11 FYD_5421AS SEGMENT D C CC1 CC2 M J B K Decimal Value IC PORT C C7 C6 C5 C4 C3 C2 C1 C0 BINARY OUTPUT FROM IC 0 0 0 0 0 0 0 1 1 EAST FYD_5421AS SEGMENT F H E N G1 A L G2 Decimal Value IC PORT B B7 B6 B5 B4 B3 B2 B1 B0 BINARY OUTPUT FROM IC 0 0 0 1 0 0 0 1 17 FYD_5421AS SEGMENT D C CC1 CC2 M J B K Decimal Value IC PORT C C7 C6 C5 C4 C3 C2 C1 C0 BINARY OUTPUT FROM IC 0 0 0 0 0 1 0 1 5 SOUTHEAST
  • 16. FYD_5421AS SEGMENT F H E N G1 A L G2 Decimal Value IC PORT B B7 B6 B5 B4 B3 B2 B1 B0 BINARY OUTPUT FROM IC 0 1 0 0 0 0 0 0 64 FYD_5421AS SEGMENT D C CC1 CC2 M J B K Decimal Value IC PORT C C7 C6 C5 C4 C3 C2 C1 C0 BINARY OUTPUT FROM IC 0 0 0 0 1 1 0 1 13 SOUTH FYD_5421AS SEGMENT F H E N G1 A L G2 Decimal Value IC PORT B B7 B6 B5 B4 B3 B2 B1 B0 BINARY OUTPUT FROM IC 0 1 0 0 1 0 1 0 74 FYD_5421AS SEGMENT D C CC1 CC2 M J B K Decimal Value IC PORT C C7 C6 C5 C4 C3 C2 C1 C0 BINARY OUTPUT FROM IC 0 0 0 0 0 1 0 0 4 SOUTHWEST FYD_5421AS SEGMENT F H E N G1 A L G2 Decimal Value IC PORT B B7 B6 B5 B4 B3 B2 B1 B0 BINARY OUTPUT FROM IC 0 1 0 1 1 0 0 1 89 FYD_5421AS SEGMENT D C CC1 CC2 M J B K Decimal Value IC PORT C C7 C6 C5 C4 C3 C2 C1 C0 BINARY OUTPUT FROM IC 0 0 0 0 0 0 0 0 0 WEST
  • 17. FYD_5421AS SEGMENT F H E N G1 A L G2 Decimal Value IC PORT B B7 B6 B5 B4 B3 B2 B1 B0 BINARY OUTPUT FROM IC 0 0 0 1 1 0 0 0 24 FYD_5421AS SEGMENT D C CC1 CC2 M J B K Decimal Value IC PORT C C7 C6 C5 C4 C3 C2 C1 C0 BINARY OUTPUT FROM IC 0 0 0 0 1 0 0 1 9 NORTHWEST Having this information firmly in hand, I began to change the variables using the values for PORT B as the decimal value for the variable FIRST_D_1 and PORT C as the decimal for the variable FIRST_D_2. This indeed changed the left alphanumeric display to display an arrow. Again, just as before, I altered the variable for the SECOND_D_1 using the decimal value for PORT B and SECOND_D_2 was programmed with the decimal value for PORT C. Once all of the values in each of the calculation boxes had been changed, I was able to directly program the microcontroller on my compass using the same method as I had used when programming it with the standard compass FlowCode program. Once the upload was completed, I removed my compass from the programmer board and connected the 9Vdc battery to my compass. Success! Each direction was correctly displaying the arrow I had indicated by my work.
  • 18. Final Steps… Week 7 My final week of academics was a week of reflection regarding the weeks that had passed, and the events that had occurred. Once all had been completed, the functionality became very clear. Once power has been applied, the voltage is carried through the power supply circuit and output through the Vdd supply which activates the microcontroller and compass sensor. The internally saved program begins to run by first setting variables important to the program’s functionality. The needle within the compass sensor module passes over any combination of three terminals and a switch-like result occurs that activates a signal int the inputs of the microcontroller (A0…A3). As determined by the decimal values saved into the FlowCode program, the binary/decimal output is sent through the output pins of the microcontroller which are then transmitted to the LED display. Each output of the PIC16F72 microcontroller is connected to each LED segment of the FYD-5421-AS display module. This signal then illuminates the indicated led segment, forming the desired output, which is any combination of alphanumeric characters, including some symbols. A resistor network is used to regulate the current into the microcontroller and the compass module.
  • 19. A Well Deserved Rest… Conclusion Constructing this circuit was a great deal of fun. Gaining a strong passion for computers and electronics at a young age, I had always been extremely fascinated with the science of electricity. From the simple powering-on of my home computer, to the detailed 3D graphics displayed, the circuitry that provides the means is the most incredible discovery of all time, in my opinion. I am proud of the accomplishments I have achieved, with the help of DeVry, and I know that the road before me towards my future has widened and expanded with many new possibilities. Though this class is over, and I have reached the end of this academic road, I realize that this is really only a short rest. In the very near future I will continue to learn more about the science of electricity and further examine the compass I had constructed, along with a power-supply I had built before, and just see how far I can explore my favorite scientific realm. Future improvements might include a larger microcontroller, along with a larger display that would display larger words to associate with each direction. I also plan to eventually encase my compass in a solid housing that would serve to both protect the circuits inside, and provide ease of use when holding in the palm of my hand. Please allow me to take this time to thank you, the reader, for reading my final project-report.
  • 20. References Datasheet Archive (2010). "FYD-5421Ax Datasheet, Circuit, PDF, & Application Note Results" Retrieved June 18, 2011, from http://www.datasheetarchive.com/FYD-5421Ax- datasheet.html Microchip Technology Inc. (2005). “PIC16F72 Data Sheet: 28-Pin, 8-Bit CMOS FLASH Microcontroller with A/D/ Converter” Retrieved June 18, 2011, from http://ww1.microchip.com/downloads/en/DeviceDoc/39597C.pdf