Wood Stove Heat Distribution

 

By: Will Plachno

Mrs. Seigrist’s Class

Grade 6

 

List of Figures

Figure #

Description

Page #

1

Diagram of the family room

3

2

Heat exchanger diagram

4

3

Test Apparatus diagram

5

4

Stamp commands in BASIC

7

5

Stamp operators and functions

8

6

Schematic

9

7

Switch position table

10

8

Stamp pin connections table

10

9

Printed circuit board picture

11

10

Thermometer board picture

12

11

Stamp board connected to center board picture

12

12

Stamp board picture

13

13

List of materials

13

14

Thermometer selection

15

15

LCD display locations

15

16

Code for reading the thermometers

16

17

Code for uploading the data

17

18

Code for initializing the plot software

18

19

Temperature conversion table

18

20

Horizontal position picture

23

21

First vertical position picture

23

22

First experiment activity table

24

23

Horizontal experiment graph

24

24

Plot color legend

25

25

Horizontal experiment data table

25

26

Second experiment activity table

37

27

First vertical experiment graph

37

28

First vertical experiment data table

38

29

Third experiment activity table

49

30

Second vertical experiment graph

49

31

Second vertical experiment data table

50

32

Floor to ceiling temperature difference table

61

33

Temperature change rate table for the horizontal run

62

 

 
 

 

 

 

 


 

 


Purpose

The purpose of this experiment is to find out how to distribute the heat from a wood stove (fireplace) through out the room evenly.

Background Research

 

 
 

 

 


Figure 1.

Explanatory Figure Showing

the Layout of the Family Room

Where the Measurements

Were Taken.

 

 

 

 

 

 

 

 

Figure 1 shows the layout of the family room, which is where the measurements were taken. It is very important to know where drafts may enter the room. The fireplace is a Waterford Trinity MKII Woodstove[1] that has a heat exchanger fan built into it. It can have a maximum of 55000 BTU’s (British Thermal Units; the amount of energy needed to raise the heat of one pound of water one degree Fahrenheit[2]) per hour. The ceiling fan is a Hunter Model #: 23710 [3].  The shape of the room looking at it from the kitchen is a pentagon where the top is a lopsided “V”. The very top is 16’. The ceiling fan hangs slightly lower then 12’ off of the ground.

 

I didn’t find any other web pages that had actual temperature measurements for the ceiling fan and the heat exchanger combination. We all know warm air rises. Air that is heated becomes less dense. The air that is not heated has more pressure then the heated air, causing the cold air to become heavier[4]. This causes the cold air to sink and the warm air to rise. Usually, references do not measure the before and after temperatures of the effect of the ceiling fan. Sometimes they state that the thermostat can be lowered by 5-10 degrees[5]. Other references talk about using ceiling fans with a temperature difference between the ceiling and the floor being greater then 5 degrees Fahrenheit[6].

 

 

 Figure 2.   Heat Exchanger

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Figure 2 shows how the heat exchanger works. The fan blows clean air over the top of the woodstove. The top of the woodstove is the hottest and heats the air. This greatly increases the amount of heat transferred into the room.[7]

 

Hypothesis

If a lot of the heat generated from the wood stove is lost by the heat rising, then the ceiling fan shall push it back down and help more then the other fan to distribute the heat.


Materials

For my experiment I built a test apparatus to automatically measure the temperature from 8 evenly spaced thermometers. As shown in figure 3 the thermometers are spaced 1.5 feet from each other attached to a twelve-foot stick. The thermometers are integrated circuits, each on their own printed circuit board. The top 4 thermometers (0-3) and the bottom 4 thermometers (4-7) are each individually wired to the center circuit board. The whole mission is carried out by a microprocessor called a Stamp. The Stamp reads the temperatures and stores the values in a memory. When done the Stamp can be disconnected from the apparatus and hooked up to a PC so that the data can be transferred and plotted.

 

Figure 3.

Test Apparatus.

 
 

 

 

 

 

 

 

 

 

 


THE STAMP

 

A Stamp is a microprocessor that may be used to control minor tasks by being programmed. I first learned how to program these microcomputers late last summer. I found it not only easy to use, but intriguing. Stamps are made by a company called Parallax [8]

 

Stamps are programmed in a language called BASIC. In order to program it, you need a PC. For the stamp, you write the program on the PC and press run and it will start executing immediately. Once you have pressed run, it will save the program in the stamp so that to run it again you only have to press the reset button. This reset button is located on the stamp board. On the stamp board there are 16 pins that are used to communicate to the other chips or other hardware. It was through these pins that I connected the thermometers, the switches, and the memory chip.

 

Figure 4 is a list of BASIC commands for the BS2P stamp which I used. Figure 5 is a list of all the operators and functions.[9] This is pretty much a complete list of all the stamp commands that can be used in a program.

The BS2P stamp has more commands then some of the earlier stamps. It has advanced commands to read and write to the thermometers, memory, and LCD display that I used in my project. SHIFTIN and SHIFTOUT are the commands that I used for the thermometers. The I2CIN and I2COUT are used to read and write to memory. LCDCMD and LCDOUT are used to write to the LCD.

 

There are sample stamp programs that you can find on the net and in books for all of the parts that I used. One really nice website is Stamps In Class.[10] They have books for teaching kids how to use the stamp. For using the thermometers, there is a student workbook called Earth Measurements that I found helpful. Chapter 1 explains how the DS1620 digital thermometers work and provides sample programs and schematics.

 

 

DS1620

 

The DS1620 (the thermometer) has 8 pins and is made by Dallas Semiconductor. It has a resolution of 0.5 Deg C. The value that is read is 2 * Deg C. Data is read or written through a 3 wire serial port. The same data wire and clock wire may be connected together to all the thermometers. The third pin is used to select which thermometer is being used.

 

 

The thermometer chip has some intelligence built in. Once the stamp tells the thermometer to read the temperature, it will do so once every second. The thermometer reads the temperature every second and writes to its own memory this value, but it is only sent to the stamp when the stamp tells it to. The stamp is the master and the thermometer is the slave.


 

Figure 4.   BS2P Stamp BASIC Commands

Branching

IF…THEN             Compare and conditionally branch.

BRANCH               Branch to address specified by offset.

GOTO                     Branch to address.

GOSUB                  Branch to subroutine address

RETURN                Return from subroutine.

RUN                       Switch execution to another program page

POLLRUN             Polled interrupt call

Looping

FOR…NEXT         Establish a FOR-NEXT execution loop.

EEPROM Access

DATA                    Data storage in EEPROM.

READ                     Read EEPROM byte into variable

WRITE                   Write byte to EEPROM

STORE                   Switch program slot for access

RAM Access

GET                        Read Scratch Pad RAM byte into variable

PUT                        Write byte to Scratch Pad RAM

Numeric

LOOKUP               Lookup data in a table

LOOKDOWN       Table match to variable

RANDOM             Generate a pseudo-random number.

Digital I/O

INPUT                    Make an I/O pin an input.

OUTPUT               Make an I/O pin an output.

REVERSE               Reverse the direction of a pin.

LOW                      Force an I/O pin low.

HIGH                      Force an I/O pin high.

TOGGLE                Toggle an I/O pin output value.

PULSIN                  Measure an input I/O pin pulse.

PULSOUT             Output a pulse on an I/O pin.

BUTTON               Debounce button and branch on value.

COUNT                  Count the cycles on a pin.

XOUT                    Output a X-10 home automation command.

AUXIO                  Activate auxiliary I/O pin group.

 

 

 

 

 

 

Digital I/O (cont.)

MAINIO                Activate main I/O pin group.

IOTERM                Activate specified I/O pin group.

POLLOUT             Specify pin for polled interrupt.

POLLMODE          Specifies the polled interrupt mode.

Asynchronous Serial I/O

SERIN                    Input asynchronous serial data.

SEROUT                Output asynchronous serial data.

OWIN                    Input data from a one wire device.

OWOUT                Output data to a one wire device.

Synchronous Serial I/O

SHIFTIN                Input synchronous serial data.

SHIFTOUT            Output synchronous serial data.

I2CIN                      Input data from a I2C device.

I2COUT                 Output data to a I2C device.

Parallel I/O

LCDCMD              Writes a command to an LCD.

LCDIN                    Reads data from an LCD.

LCDOUT               Writes data to a LCD.

Analog I/O

PWM                     Output pulse width modulation.

RCTIME                Measure RC charge/discharge time.

Time

PAUSE                   Pause execution for specified milliseconds

POLLWAIT          Pause until a polled interrupt occurs.

Sound

FREQOUT             Generate 1 or 2 sine wave frequency outputs.

DTMFOUT           Generate DTMF telephone tones.

Power Control

NAP                       Nap for a period to conserve power.

SLEEP                    Sleep for the specified seconds to conserve power.

END                        Sleep until the power cycles or the PC connects.

Program Debugging

DEBUG                  Print values back to the PC for debugging.

 

 

 

 

 

 


Figure 5.  Stamp BASIC Operators and Functions

                                                                                                                                    

Expression Operators

 

+              Addition

-               Subtraction

*              Multiplication

**           Multiplication (returns upper 16 bits)

*/            Multiply by 8-bit integer, 8 bit fraction

/               Division

//             Modulus (remainder of division)

MIN        Limits a value to a specified low

MAX      Limits a value to a specified high

DIG         Returns a specified digit of a number

<<           Shift bits left by specified amount

>>           Shift bits right by specified amount

REV        Reverse specified number of bits

&             Bitwise AND

|               Bitwise OR

^              Bitwise XOR

 

Variable Modifiers

 

LOWBYTE            low byte of a word

HIGHBYTE            high byte of a word

BYTE0                    byte 0 (low byte) of a word

BYTE1                    byte 1 (high byte) of a word

LOWNIB               low nibble of a word or a byte

HIGHNIB               high nibble of a word or byte

NIB0                       nibble 0 of a word or byte

NIB1                       nibble 1 of a word or byte

NIB2                       nibble 2 of a word

NIB3                       nibble 3 of a word

LOWBIT                low bit of a word, byte, or nibble

BIT0...BIT3            bit 0 through bit 3 of a word, byte, or nibble

BIT4...BIT7            bit 4 through bit 7 of a word or byte

BIT8…BIT15         bit 8 through bit 15 of a word

 

 

 

 

 

RAM Organization

 

word                byte                  nibbles

 

INS                         INL                         INA, INB

                                INH                         INC, IND

OUTS                     OUTL                     OUTA, OUTB

                                OUTH                    OUTC, OUTD

DIRS                       DIRL                       DIRA, DIRB

                                DIRH                      DIRC, DIRD

W0                          B0

                                B1

…<same for W1, W2, W3, etc through W12>

W12                        B24

                                B25

 

Unary Operators

 

ABS        Returns absolute value

COS        Returns cosine in two’s compliment

binary radians

DCD       2n-power decoder

~   Inverse

-               Negative

NCD       Priority encoder of a 16-bit value

SIN         Returns sine in two’s compliment

                binary radians

SQR        Returns square root of value

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


                                                                                                                                                                                          

 

 

 

 

 

 


 

 

24LC32A

This is the memory chip that was used. This memory is called an EEPROM, which really means that it will remember the data even after the power is off. It is made be MicroChip Inc. This is a 4K x 8-memory chip. 4K does not mean 4,000. K really means 210 or 1024 so 4K really means 4,096. Every temperature reading is 8 bits or a byte, so I can store up to 4,096 temperature readings. Actually I only store 4000 temperature readings since I measure 8 different thermometers at 500 different points in time.

This communicates to the stamp through a two-wire interface also called an I2C interface[11]. There is still a data and still a clock wire but there is no selector wire. This chip has three address pins: a2 a1 a0, which I set to 001. There is another I2C part (the selector) but its address is 000.

PCF8574

This is the selector chip. This chip is an I2C part just like the memory, so they share the same data and clock pins. All this chip does is it gives you 8 additional programmable pins. I used these pins to select which thermometer is being read. These outputs are the third wire of the DS1620 third wire interface.

 

Figure 6.  Schematic

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Hardware Design

 

Shown in figure 6 is the schematic. Thermometers 0-3 are on a different three-wire bus then 4-7. If all eight thermometers were on the same bus (data/clock wires) it would weigh too much (too much capacitance) and it might severely slow it down.

 

Figure 7.   Switch Positions

(P15) switch 1

(P14) switch  2

Description.

On

On/Off

you upload to the PC

Off

On

Taking the temperature (and putting it into memory)

Off

Off

Reading but not storing the value

 

 
 

 

 

 

 

 

 

 

 

 

 

 


Figure 7 says that there are 2 switches and what they do in each position.

 

The connection to the LCD display is not shown in the schematic. The stamp board has a built in connecter for the LCD so I didn’t have to wire anything to that.

 

 

 

 

Figure 8.   Stamp pin connections

 

Stamp pin

Connection

Stamp pin

Connection

15

Upload switch

7

D3 LCD

14

Temp Read switch

6

D2 LCD

13

Clock 4-7

5

D1 LCD

12

Data 4-7

4

D0 LCD

11

Clock 0-3

3

Reg Select LCD

10

Data 0-3

2

R/W LCD

9

Clock I2C

1

Enable LCD

8

Data I2C

0

Unused

 

 
 

 

 

 

 

 

 

 

 


Figure 8 shows all the connections to the stamp pins.

 

 

 

 

The Printed Circuit Board

 

I had to make a center board and 8 thermometer boards. Using ExpressPCB[12] I put them all on one board and cut them out.  The red lines are the metal connections on the top of the board and the green wires are the connections on the bottom of the board.


Figure 9.   Printed Circuit Board

 

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Each board has a hole for a #6 woodscrew to attach it to the apparatus. There are other holes in the board for soldering the wires. These holes are labeled D, C, G, or V. D is for the data wire, C is the clock wire, G is the ground wire, and V stands for voltage supply. All of them are passed on to the center board by wiring each letter to its counterpart.

 

I added capacitors across the power supply. Capacitors don’t want the voltage across them to change. Thus, these capacitors keep the V and G wires quiet.

 

There are 8 holes in the center board to connect wires to the stamp. There are also 8 blue wires that connect from the selector to each thermometer board.

 

 

 
 


Figure 10.

One of the Thermometer Boards.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 


Figure 11.

The Stamp Board Hooked up to

the Center Board

 

 

 

 

 

 

 

 

 

 


The Stamp Board

 

The stamp board I used is the BS2p demo board. It contains a little bread board that can be used to hook the stamp up to a component. The bread board for this experiment only has 2 things on it: the switches and the memory. To upload data, you have to have the switches (so that you can tell it to upload) and the memory (to get the data from).

 

 

 

 
 

 


Figure 12.

The Stamp Board with

the Switches Set to 01

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Material List

 

Figure 13.   List of Materials

 

Quantity

Name

1

BS2p Basic Stamp

8

DS1620

1

24LC32A

1

PCF8574

1

4 switch DIP switch

1

Parallel LCD display

1

BS2p demo board

2

10K resistors

8

1K resistors

10

0.1uF disc capacitors

1

12’ pole

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 


The Software Program

 

 

The program is done on Windows (on a PC) with a program called Stampw[13]. You have to connect the stamp with a serial port to the PC. It is programmed in BASIC. The software has three main parts, the header, the main program, and the subroutines.

 

The header is not made up of step by step instructions like you usually see. It consists of details the rest of the program needs. It contains three sections, the constants, pin direction settings, and variable declarations. The constants are basically only putting a name on the addresses used for the memory chip or the selector chip. The next section tells which of the stamp’s 16 pins are inputs or outputs. The variable definitions are next. This defines whether a variable is a byte or a word. The max number a byte can use is 255. To have a variable of 500, you need to use a word, which is 16 bits.

 

There are 9 different subroutines, select, deselect, writeto, redf, getth, gettl, lcdtime, lcddata, and innit. Using the subroutines makes the main program more readable because it handles all the difficulties of reading and writing the chips.

 

Getth and Gettl

 

They both are used to get the temperature. The only reason they are not the same is because of the way the apparatus is built, with 4 on the top and 4 on the bottom. The thermometer reads the temperature every second, but the stamp tells it when to send what the temperature is. The shiftout instruction is a command to the DS1620 to tell it to send the temperature value. The shiftin instruction reads the data. This was taken from an example from Earth Measurements[14].

 

Select and Deselect

 

These two subroutines write to the selector chip, PCF8574. The select command selects one of the eight thermometers. Deselect makes sure none of the thermometers are selected. Figure 14 shows how the thermometers are selected. The variable nthm tells you which blue wire should be set to 1. The instruction line “j = 1 << nthm” generates the values for this table. It shifts the value 1, nthm number of times (example= if nthm = 3, j = 00001000).

 

The instructions for writing the PCF8574 were taken from a sample program on the Internet.[15]

 


Figure 14.   Thermometer Selection

Nthm

Therm 7

Therm 6

Therm 5

Therm 4

Therm 3

Therm 2

Therm 1

Therm 0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

0

0

1

0

2

0

0

0

0

0

1

0

0

3

0

0

0

0

1

0

0

0

4

0

0

0

1

0

0

0

0

5

0

0

1

0

0

0

0

0

6

0

1

0

0

0

0

0

0

7

1

0

0

0

0

0

0

0

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 


Writeto and Redf

 

These read and store values in the memory. An address is where in a memory you want to store it. The 24LC32A can store up to 4,096 bytes. This was also taken from an example on the Internet.[16] After the temperature is taken, it needs a pause to store it in memory. There is an option not to take the temperature if the switches are set to 00.

 

LCDtime and LCDdata

 

These output the temperature and the time point to the LCD. For each thermometer, the command LCDdata has to calculate where to put the temperature. The LCD I’m using has 16 characters on two lines. Figure 15 shows the addresses for the characters with the locations of the time point and thermometer values shaded.

Figure 15.    LCD Display Locations

 

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

 

 
 

 

 

 

 

 


The time point is located at 128 as a decimal value 3 characters wide. For the thermometer values, if its on the first line you start on address 128 or if it is on the second line you start on 192. Then you skip over 5 values to get to the first thermometer. Then the following are spaced 3 from the one in front of it. Each temperature value is output as a decimal value 2 characters wide.

 

Sample program instructions for the LCD display was taken from Basic Stamp Manual Version 2.0.[17]

Innit

 

This subroutine initializes all the chips. The initialization for the LCD I got from examples off the Internet.[18] They said not to change anything, so I didn’t.

 

The 8 thermometers also require initialization. They must be told to start taking the temperature.[19]

 

The plot software will also be initialized, but well talk about that later. This subroutine also sets 2 variables to their initial values. The memory address must be set to 0. Also the default is not to write to memory.

 

The Main Program

 

There are three sections, the switches, reading the thermometers, and uploading the data.

 

Switches and Reading Them

 

If the first switch is on, upload the data to the PC. If the first is off and the second is on then it will read the temperature. For the switch pins, you have a resistor connecting to ground, and the switch connecting to 5v. If the switch is off, then the resistor pulls it to ground, a logical 0. If the switch is on, the pin is forced to 5v, a logical 1, completely over-powering the resistor. In the program, “in15” is pin 15, and “in14” is pin 14. “if in15 = 1 then datat”, this says that if the top switch equals 1, then it will transfer the data to the PC.

 

Reading the Thermometers

 

Figure 16.   Code for Reading the Thermometers

 

thermr:

' This reads the data from the therms. Read 8 therms every 15 seconds.

' 500 total time points. 8 x 500 = 4000 data points.

 

for x = 0 to 499            ' loop through 500 time points

    gosub lcdtime           ' display time point x on LCD

    for nthm = 0 to 3       ' do bottom 4 therms

        gosub gettl         ' read temp

        gosub writeto       ' writes to memory

        gosub lcddata       ' display temp on LCD

    next

    for nthm = 4 to 7       ' do top 4 therms

        gosub getth         ' read temp

        gosub writeto       ' writes to memory

        gosub lcddata       ' display temp on LCD

    next

    pause 14200             ' pause 15 seconds

next

stop

 
 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 


Thermr reads the thermometers and writes the values to memory. The for-next statements create loops. Loops repeat the commands that are located between the for and the next a specified number of times. You need to create two loops, one for the top 4 and one for the bottom 4 thermometers because each have there own subroutines. Since I take the temperature every 15 seconds, I have to tell it to wait 15 seconds before the next time point. The pause instruction will wait the specified number in milliseconds. It only says 14200 milliseconds because of the wait to write the values to memory, which is 100 milliseconds. You might have noticed that 14200 + 100 is only 14300, but you have to do this (100 x 8) + 14200 = 15000, or 15 seconds.

 

Uploading the Data

 

 I used a program called StampPlot Pro[20] to transfer the data to the PC and plot it out. After you’re done taking measurements, move it to the PC and hook it up. Then start up the StampPlot Pro program and click the handshake icon.

 

Instead of having StampPlot Pro calculate the x-axis, I had to use an optional feature called “historical data”. This needs all 8 thermometers to be transferred on one line with the data separated by commas.

 

Figure 17.    Code for Uploading the Data.

 

datat:

' Transfers data to PC

' Stamp is connected to the PC through the serial port

' Stamp outputs to serial port using the debug command

' Stampplot Pro is the program on the PC

' It requires the 8 temps on 1 line separated by commas

 

for x = 0 to 499              ' loop through 500 time points

    debug "!HISD 15"          ' Historical data 15 seconds apart

    for nthm = 0 to 7         ' do all therms on one line

        gosub redf            ' reads from memory

        degC = t / 2          ' converts reading into degree C

        debug ", ", dec degC  ' output decimal value

        i= t & %00000001      ' looks only at last digit (in binary)

        if i = 0 then tdone   ' if last digit is 0 then done

           debug ".5"         ' if last digit is 1 then output .5

        tdone:

    next

    debug cr                  ' output end of line

next

stop

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


The BASIC stamp command “debug” is used to write to the PC. I used multiple debug commands to write one line and then finish the line with a “CR” or carriage return. One problem I had was that the temperature value is 2 x DegC. I had to translate this whole value into a floating-point number in degree Celsius. First you divide by 2 then if bit 0 of the byte is 1 then print “.5”.

 


In my BASIC stamp program you can send commands to the plot software. These commands are in the innit subroutine.

 

 

Figure 18.    Code for Initialization of the Plot Software

 

Innitialize plot software

debug "!RSET",cr          ' reset the plot

debug "!Plot on",cr

debug "!TITL 8 Thermometer Plot",cr

debug "!YLBL Temp = degree C", cr

debug "!XLBL Minutes", cr

debug "!AMAX 40",cr       ' maximum y value

debug "!AMIN 10",cr       ' minimum y value

debug "!TDIV 60",cr       ' time in minutes

debug "!TMAX 125",cr      ' maximum x value

debug "!COLR G9",cr       ' change grid color

debug "!PNTS 5000",cr     ' 5000 data points max

debug "!HISS",cr          ' historical data format

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


I set the minimum of the y axis to 10 and the maximum to 40 degree Celsius. For those people who like Fahrenheit more then Celsius, I have provided a conversion table.

 

 

 

Figure 19.  Temperature Conversions[21]

 

Deg Celsius

Deg Fahrenheit

40

104

35

95

30

86

25

77

20

68

15

59

10

50

 

 
 

 

 

 

 

 

 

 

 

 



Complete BASIC Stamp Program Listing

 

'{$STAMP BS2p}

 

' Written by Will Plachno

' Subroutines written on 11/4/01

' Will goes to Loma Preita, C.T. English,

' Science teacher is Juli Seigrist

 

 

 

'''''''''''''''''''''''''''''''''''''''''

' I/O pin definitions and other constants

'''''''''''''''''''''''''''''''''''''''''

 

I2Cpin    con    8     ' SDA = 8, SCL = 9

Wr8574    con    $40   ' 8574 address at 000

Rd8574    con    $41

dir8574   con    $00   ' all I/O pins are outputs

Wr2432    con    $A2   ' 2432 address at 001

Rd2432    con    $A3

 

 

 

''''''''''''''''''''''''''''

' I/O pin direction settings

''''''''''''''''''''''''''''

 

input  15 'switch for transfering data

input  14 'switch for reading therms

output 13 'DS1620 clock therms 4-7

output 12 'DS1620 data  therms 4-7

output 11 'DS1620 clock therms 0-3

output 10 'DS1620 data  therms 0-3

output  9 'I2C clock

output  8 'I2C data

 

 

'''''''''''''''''''''''

' Variable declarations

'''''''''''''''''''''''

 

t        var byte           ' temp

degC     var byte           ' temperature in Celsius

x        var word           ' time points 0-499

nthm     var byte           ' therm number 0-7

i        var byte           ' gen purpose variable

j        var byte           ' gen purpose variable

k        var byte           ' gen purpose variable

addr     var word           ' 2432 EEPROM address 0-3999

addrHi   var addr.HighByte  ' high byte of mem address

addrLo   var addr.LowByte   ' low byte of mem address

no_write var byte           ' flag for not writing memory

 

 

 

'''''''''''''''''''''''

' Main Program

'''''''''''''''''''''''

 

gosub innit                 ' do initialization

if in15=1 then datat        ' if switches = 1x transfer data

if in14=0 then thermr       ' if switches = 00 read therms, no write

no_write = 0                ' if switches = 01 read therms, write

 

 

 

 

thermr:

' This reads the data from the therms. Read 8 therms every 15 seconds.

' 500 total time points. 8 x 500 = 4000 data points.

 

for x = 0 to 499            ' loop through 500 time points

    gosub lcdtime           ' display time point x on LCD

    for nthm = 0 to 3       ' do bottom 4 therms

        gosub gettl         ' read temp

        gosub writeto       ' writes to memory

        gosub lcddata       ' display temp on LCD

    next

    for nthm = 4 to 7       ' do top 4 therms

        gosub getth         ' read temp

        gosub writeto       ' writes to memory

        gosub lcddata       ' display temp on LCD

    next

    pause 14200             ' pause 15 seconds

next

stop

 

 

 

 

datat:

' Transfers data to PC

' Stamp is connected to the PC through the serial port

' Stamp outputs to serial port using the debug command

' Stampplot Pro is the program on the PC

' It requires the 8 temps on 1 line separated by commas

 

for x = 0 to 499              ' loop through 500 time points

    debug "!HISD 15"          ' Historical data 15 seconds apart

    for nthm = 0 to 7         ' do all therms on one line

        gosub redf            ' reads from memory

        degC = t / 2          ' converts reading into degree C

        debug ", ", dec degC  ' output decimal value

        i= t & %00000001      ' looks only at last digit (in binary)

        if i = 0 then tdone   ' if last digit is 0 then done

           debug ".5"         ' if last digit is 1 then output .5

        tdone:

    next

    debug cr                  ' output end of line

next

stop

 

 

 

' Subroutine select

' This selects 1 of the 8 thermometers

' This requires the variable nthm

' nthm is the thermometer number 0-7

' Temporary variable j is also used

 

select:

j= 1 << nthm

i2cout  I2Cpin, Wr8574, dir8574, [j]

return

 

 

 

 

' Subroutine deselect

' This deselects all 8 thermometers

' This does not require any input variables

 

deselect:

i2cout  I2Cpin, Wr8574, dir8574, [0]

return

 

 

 

 

' Subroutine writeto

' This stores a value in memory

' This requires variable t

' t is the temperature value stored in memory

' You also need the address addr

 

writeto:

if no_write = 1 then xwrite

i2cout  I2Cpin, Wr2432, addrHi\addrLo, [t]

addr = addr + 1

pause 100

xwrite:

return

 

 

 

 

' Subroutine redf

' This reads a value from memory

' This requires variable t

' t is the temperature value read from memory

' You also need the address addr

 

redf:

i2cin  I2Cpin, Rd2432, addrHi\addrLo, [t]

addr = addr + 1

return

 

 

 

 

' Subroutine getth

' This reads a value from a thermometer (4-7)

' This requires variable t and the nthm

' t is the temperature value read

' nthm is the number of the thermometer

' DS1620 Data pin is 12

' DS1620 Clock pin is 13

 

getth:

gosub select

shiftout  12, 13, lsbfirst, [170]  'ask for data

shiftin   12, 13, lsbpre, [t]      'read data

gosub deselect

return

 

 

 

 

' Subroutine gettl

' This reads a value from a thermometer (0-3)

' This requires variable t and the nthm

' t is the temperature value read

' nthm is the number of the thermometer

' DS1620 Data pin is 10

' DS1620 Clock pin is 11

 

gettl:

gosub select

shiftout  10, 11, lsbfirst, [170]  'ask for data

shiftin   10, 11, lsbpre, [t]      'read data

gosub deselect

return

 

 

 

 

' Subroutine lcdtime

' This outputs the time point to the LCD

' This requires variable x

' x is the time point your measurement is on (0-500)

 

lcdtime:

lcdout 0, 128, [dec3 x]

return

 

 

 

 

' Subroutine lcddata

' This outputs the temperature to the LCD

' This requires variable t and the nthm

' t is the temperature value written

' nthm is the number of the thermometer

' Temporary variable j is also used

' Temporary variable k is also used

 

lcddata:

k= nthm

j= 128      ' starting position of the first line

if nthm<4 then thrmspc

   j= 192   ' starting position of the second line

   k= nthm -4  'the k'th data online

thrmspc:

k=k*3    '3 digits per thermometer

j=j+5+k  '+5 from beginning of the line

lcdout 0, j, [dec2 t]

return

 

 

 

 

' Subroutine innit

' This initializes all the chips

 

innit:

' This is the LCD display initialization

pause 1000

lcdcmd 0, %00110000    ' 1st wake up

pause 10

lcdcmd 0, %00110000    ' 2nd wake up

pause 1

lcdcmd 0, %00110000    ' 3rd wake up

pause 1

lcdcmd 0, %00100000    ' 4 bit data bus

pause 1

lcdcmd 0, %00001100    ' display on, no cursor or blink

pause 1

lcdcmd 0, %00101100    ' 2 display lines, 5x10 font

pause 1

lcdcmd 0, %00000001    ' clear display, move cursor home

 

' This is the thermometer innitialization

for nthm=0 to 3

   gosub select

   shiftout  10, 11, lsbfirst, [238]  'start taking temperature

next

for nthm=4 to 7

   gosub select

   shiftout  12, 13, lsbfirst, [238]  'start taking temperature

next

gosub deselect

pause 2000                ' wait for first temp reading

 

' Innitialize plot software

debug "!RSET",cr          ' reset the plot

debug "!Plot on",cr

debug "!TITL 8 Thermometer Plot",cr

debug "!YLBL Temp = degree C", cr

debug "!XLBL Minutes", cr

debug "!AMAX 40",cr       ' maximum y value

debug "!AMIN 10",cr       ' minimum y value

debug "!TDIV 60",cr       ' time in minutes

debug "!TMAX 125",cr      ' maximum x value

debug "!COLR G9",cr       ' change grid color

debug "!PNTS 5000",cr     ' 5000 data points max

debug "!HISS",cr          ' historical data format

 

no_write = 1              ' default is no write to mem

addr = 0                  ' start at mem address 0

 

return

end

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Procedure

 

1.     Position the thermometer apparatus, set switches to 00

2.     start fire in the fireplace

3.     set switches to 10, hit reset (starts taking measurements)

4.     on measurement 175, turn on heat exchanger

5.     on measurement 350, turn on ceiling fan

6.     set switches on 00 disconnect power

7.     take memory to PC, connect cable

8.     set switches to 01, press connect on Stamplot Pro
(this transfers the measurements to the PC)

9.     save data to a file, copy plot to report

 

 

Repeat above procedure for both the horizontal and vertical positions.

 

 

 
 

 

 


Figure 20.

 

Horizontal position

 

 

 

 
 

 

 

 

 


Figure 21.

 

First Vertical position

 

 

 


 

 

Results

 

For the first experiment, the apparatus was positioned horizontally with thermometer 0 closest to the furnace.

 

 

Time Point

Minutes

Activity

0

0

Started measurements and the fire

137

34.5

Put another log in the fire

175

44

Turned on the Heat Exchanger fan

223

56

Put another log in the fire

343

86

Put in another log in the fire

352

88.25

Turned on the Ceiling Fan

420

105.25

Put another log in the fire

472

118.25

Pushed all the wood together

 

 
 

 


Figure 22.

First

Experiment

Activity

 

 

 

 

 

 

 

 

 

Figure 23.  The Graph of the Horizontal Position Measurements

 
 

 



 

 

 

Thermometer

Color

Thermometer

Color

0

Black

4

Dark Red

1

Dark Blue

5

Purple

2

Dark Green

6

Gold

3

Turquoise

7

Grey

 

 
Figure 24.

 

Plot Color Legend

 

 

 

 

 

Figure 25.

Horizontal run results. Time is in minutes. Temperature is in Celsius.

 

  x   time       thermometers 0,1,2,3,4,5,6,7

 

000   0.25       15.5,    15,    15,  15.5,    16,  15.5,  15.5,   16.5

001   0.50         16,  15.5,    15,  15.5,    16,    16,  15.5,   16.5

002   0.75         16,  15.5,    15,  15.5,    16,    16,  15.5,   16.5

003   1.00         16,  15.5,  15.5,  15.5,  16.5,    16,  15.5,   16.5

004   1.25         16,  15.5,  15.5,  15.5,  16.5,    16,    16,   16.5

005   1.50         16,  15.5,  15.5,  15.5,  16.5,    16,    16,   16.5

006   1.75       16.5,  15.5,  15.5,  15.5,  16.5,    16,    16,   16.5

007   2.00       16.5,    16,  15.5,    16,  16.5,    16,    16,     17

008   2.25       16.5,    16,  15.5,    16,  16.5,    16,    16,     17

009   2.50       16.5,    16,    16,    16,  16.5,  16.5,    16,     17

010   2.75         17,    16,    16,    16,  16.5,  16.5,    16,     17

011   3.00         17,  16.5,    16,    16,    17,  16.5,    16,     17

012   3.25         17,  16.5,    16,    16,    17,  16.5,  16.5,     17

013   3.50       17.5,  16.5,  16.5,    16,    17,  16.5,  16.5,     17

014   3.75       17.5,  16.5,  16.5,  16.5,    17,  16.5,  16.5,   17.5

015   4.00       17.5,    17,  16.5,  16.5,    17,  16.5,  16.5,   17.5

016   4.25         18,    17,  16.5,  16.5,    17,    17,  16.5,   17.5

017   4.50         18,    17,  16.5,  16.5,    17,    17,  16.5,   17.5

018   4.75         18,    17,    17,  16.5,    17,    17,    17,   17.5

019   5.00       18.5,    17,    17,  16.5,  17.5,    17,  16.5,   17.5

020   5.25       18.5,  17.5,    17,    17,  17.5,    17,    17,   17.5

021   5.50       18.5,  17.5,    17,    17,  17.5,    17,    17,   17.5

022   5.75       18.5,  17.5,  17.5,    17,  17.5,    17,    17,     18

023   6.00       18.5,  17.5,  17.5,    17,  17.5,    17,    17,     18

024   6.25         19,  17.5,  17.5,    17,  17.5,  17.5,    17,     18

025   6.50         19,  17.5,  17.5,    17,  17.5,  17.5,    17,     18

026   6.75         19,  17.5,  17.5,    17,  17.5,  17.5,    17,     18

027   7.00         19,    18,  17.5,    17,    18,  17.5,    17,     18

028   7.25         19,    18,  17.5,    17,    18,  17.5,    17,     18

029   7.50         19,    18,  17.5,  17.5,    18,  17.5,  17.5,     18

030   7.75         19,    18,    18,  17.5,    18,  17.5,  17.5,     18

031   8.00         19,    18,    18,  17.5,    18,  17.5,  17.5,     18

032   8.25         19,    18,    18,  17.5,    18,  17.5,  17.5,     18

033   8.50         19,    18,    18,  17.5,    18,  17.5,  17.5,     18

034   8.75         19,    18,    18,  17.5,    18,  17.5,  17.5,     18

035   9.00         19,    18,    18,  17.5,    18,    18,  17.5,     18

036   9.25         19,    18,    18,  17.5,    18,    18,  17.5,     18

037   9.50         19,    18,    18,  17.5,    18,    18,  17.5,     18

038   9.75       19.5,    18,    18,  17.5,    18,    18,  17.5,     18

039   10.00      19.5,    18,    18,  17.5,    18,    18,  17.5,     18

040   10.25      19.5,    18,    18,  17.5,    18,    18,  17.5,     18

041   10.50      19.5,  18.5,    18,  17.5,    18,    18,  17.5,     18

042   10.75      19.5,  18.5,    18,  17.5,  18.5,    18,  17.5,     18

043   11.00      19.5,  18.5,  18.5,  17.5,  18.5,    18,  17.5,     18

044   11.25      19.5,  18.5,  18.5,    18,  18.5,    18,  17.5,     18

045   11.50      19.5,  18.5,  18.5,    18,  18.5,    18,    18,   18.5

046   11.75      19.5,  18.5,  18.5,    18,  18.5,    18,    18,   18.5

047   12.00      19.5,  18.5,  18.5,    18,  18.5,    18,    18,   18.5

048   12.25      19.5,  18.5,  18.5,    18,  18.5,    18,    18,   18.5

049   12.50      19.5,  18.5,  18.5,    18,  18.5,    18,    18,   18.5

050   12.75      19.5,  18.5,  18.5,    18,  18.5,    18,    18,   18.5

051   13.00      19.5,  18.5,  18.5,    18,  18.5,    18,    18,   18.5

052   13.25      19.5,  18.5,  18.5,    18,  18.5,    18,    18,   18.5

053   13.50      19.5,  18.5,  18.5,    18,  18.5,    18,    18,   18.5

054   13.75      19.5,  18.5,  18.5,    18,  18.5,  18.5,    18,   18.5

055   14.00      19.5,  18.5,  18.5,    18,  18.5,  18.5,    18,   18.5

056   14.25      19.5,  18.5,  18.5,    18,  18.5,  18.5,    18,   18.5

057   14.50      19.5,  18.5,  18.5,    18,  18.5,  18.5,    18,   18.5

058   14.75      19.5,  18.5,  18.5,    18,  18.5,  18.5,    18,   18.5

059   15.00      19.5,  18.5,  18.5,    18,  18.5,  18.5,    18,   18.5

060   15.25      19.5,  18.5,  18.5,    18,  18.5,  18.5,    18,   18.5

061   15.50      19.5,  18.5,  18.5,    18,  18.5,  18.5,    18,   18.5

062   15.75      19.5,  18.5,  18.5,    18,  18.5,  18.5,    18,   18.5

063   16.00      19.5,  18.5,  18.5,    18,    19,  18.5,    18,   18.5

064   16.25      19.5,  18.5,  18.5,    18,    19,  18.5,    18,   18.5

065   16.50        20,    19,  18.5,    18,    19,  18.5,    18,   18.5

066   16.75        20,    19,  18.5,  18.5,    19,  18.5,    18,   18.5

067   17.00        20,    19,  18.5,  18.5,    19,  18.5,    18,   18.5

068   17.25        20,    19,    19,  18.5,    19,  18.5,  18.5,   18.5

069   17.50        20,    19,    19,  18.5,    19,  18.5,  18.5,   18.5

070   17.75        20,    19,    19,  18.5,    19,  18.5,  18.5,   18.5

071   18.00        20,    19,    19,  18.5,    19,  18.5,  18.5,   18.5

072   18.25        20,    19,    19,  18.5,    19,  18.5,  18.5,     19

073   18.50        20,    19,    19,  18.5,    19,  18.5,  18.5,     19

074   18.75        20,    19,    19,  18.5,    19,  18.5,  18.5,     19

075   19.00        20,    19,    19,  18.5,    19,  18.5,  18.5,     19

076   19.25        20,    19,    19,  18.5,    19,  18.5,  18.5,     19

077   19.50        20,    19,    19,  18.5,    19,  18.5,  18.5,     19

078   19.75        20,    19,    19,  18.5,    19,    19,  18.5,     19

079   20.00        20,    19,    19,  18.5,    19,    19,  18.5,     19

080   20.25        20,    19,    19,  18.5,    19,    19,  18.5,     19

081   20.50        20,    19,    19,  18.5,    19,    19,  18.5,     19

082   20.75        20,    19,    19,  18.5,    19,    19,  18.5,     19

083   21.00      20.5,    19,  19.5,  18.5,    19,    19,  18.5,     19

084   21.25      20.5,  19.5,  19.5,  18.5,    19,    19,  18.5,     19

085   21.50      20.5,  19.5,  19.5,  18.5,    19,    19,  18.5,     19

086   21.75      20.5,  19.5,  19.5,  18.5,  19.5,    19,  18.5,     19

087   22.00      20.5,  19.5,  19.5,  18.5,  19.5,    19,  18.5,     19

088   22.25      20.5,  19.5,  19.5,    19,  19.5,    19,  18.5,     19

089   22.50      20.5,  19.5,  19.5,    19,  19.5,    19,  18.5,     19

090   22.75      20.5,  19.5,  19.5,    19,  19.5,    19,  18.5,     19

091   23.00      20.5,  19.5,  19.5,    19,  19.5,    19,  18.5,     19

092   23.25      20.5,  19.5,  19.5,    19,  19.5,    19,  18.5,     19

093   23.50      20.5,  19.5,  19.5,    19,  19.5,    19,  18.5,     19

094   23.75      20.5,  19.5,  19.5,    19,  19.5,    19,    19,     19

095   24.00      20.5,  19.5,    20,    19,  19.5,    19,    19,     19

096   24.25      20.5,  19.5,    20,    19,  19.5,    19,    19,     19

097   24.50      20.5,  19.5,    20,    19,  19.5,    19,    19,     19

098   24.75      20.5,  19.5,    20,    19,  19.5,    19,    19,     19

099   25.00      20.5,  19.5,    20,    19,  19.5,    19,    19,     19

100   25.25        21,  19.5,    20,    19,  19.5,    19,    19,     19

101   25.50        21,  19.5,    20,    19,  19.5,    19,    19,     19

102   25.75        21,  19.5,    20,    19,  19.5,    19,    19,     19

103   26.00        21,  19.5,    20,    19,  19.5,    19,    19,     19

104   26.25        21,  19.5,    20,    19,  19.5,    19,    19,     19

105   26.50        21,  19.5,    20,    19,  19.5,    19,    19,     19

106   26.75        21,  19.5,  20.5,    19,  19.5,    19,    19,     19

107   27.00        21,    20,  20.5,    19,  19.5,    19,    19,     19

108   27.25        21,    20,  20.5,    19,  19.5,  19.5,    19,     19

109   27.50        21,    20,  20.5,    19,  19.5,  19.5,    19,   19.5

110   27.75        21,    20,  20.5,    19,  19.5,  19.5,    19,   19.5

111   28.00        21,    20,  20.5,    19,  19.5,  19.5,    19,   19.5

112   28.25        21,    20,  20.5,    19,  19.5,  19.5,    19,   19.5

113   28.50        21,    20,  20.5,    19,  19.5,  19.5,    19,   19.5

114   28.75      21.5,    20,  20.5,    19,    20,  19.5,    19,   19.5

115   29.00      21.5,    20,  20.5,    19,    20,  19.5,    19,   19.5

116   29.25      21.5,    20,  20.5,  19.5,    20,  19.5,    19,   19.5

117   29.50      21.5,    20,  20.5,  19.5,    20,  19.5,    19,   19.5

118   29.75      21.5,    20,  20.5,  19.5,    20,  19.5,    19,   19.5

119   30.00      21.5,    20,  20.5,  19.5,    20,  19.5,    19,   19.5

120   30.25      21.5,    20,  20.5,  19.5,    20,  19.5,    19,   19.5

121   30.50      21.5,    20,  20.5,  19.5,    20,  19.5,    19,   19.5

122   30.75      21.5,    20,  20.5,  19.5,    20,  19.5,    19,   19.5

123   31.00      21.5,    20,  20.5,  19.5,    20,  19.5,    19,   19.5

124   31.25      21.5,    20,  20.5,  19.5,    20,  19.5,    19,   19.5

125   31.50      21.5,  20.5,  20.5,  19.5,    20,  19.5,    19,   19.5

126   31.75        22,  20.5,  20.5,  19.5,    20,  19.5,  19.5,   19.5

127   32.00        22,  20.5,  20.5,  19.5,    20,  19.5,  19.5,   19.5

128   32.25        22,  20.5,    21,  19.5,    20,  19.5,  19.5,   19.5

129   32.50        22,  20.5,    21,  19.5,    20,  19.5,  19.5,   19.5

130   32.75        22,  20.5,    21,  19.5,    20,  19.5,  19.5,   19.5

131   33.00        22,  20.5,    21,  19.5,    20,  19.5,  19.5,   19.5

132   33.25        22,  20.5,    21,  19.5,    20,  19.5,  19.5,   19.5

133   33.50        22,  20.5,    21,  19.5,    20,  19.5,  19.5,   19.5

134   33.75        22,  20.5,    21,  19.5,    20,  19.5,  19.5,   19.5

135   34.00        22,  20.5,    21,  19.5,    20,    20,  19.5,   19.5

136   34.25        22,  20.5,    21,  19.5,    20,    20,  19.5,   19.5

137   34.50        22,  20.5,    21,  19.5,    20,    20,  19.5,   19.5

138   34.75        22,  20.5,    21,  19.5,    20,    20,  19.5,   19.5

139   35.00        22,  20.5,    21,    20,  20.5,    20,  19.5,   19.5

140   35.25        22,  20.5,    21,    20,  20.5,    20,  19.5,   19.5

141   35.50        22,  20.5,    21,    20,  20.5,    20,  19.5,   19.5

142   35.75        22,  20.5,  21.5,    20,  20.5,    20,  19.5,   19.5

143   36.00        22,    21,  21.5,    20,  20.5,    20,  19.5,   19.5

144   36.25      22.5,    21,  21.5,    20,  20.5,    20,  19.5,   19.5

145   36.50      22.5,    21,  21.5,    20,  20.5,    20,  19.5,   19.5

146   36.75      22.5,    21,  21.5,    20,  20.5,    20,  19.5,   19.5

147   37.00      22.5,    21,  21.5,    20,  20.5,    20,  19.5,     20

148   37.25      22.5,    21,  21.5,    20,  20.5,    20,  19.5,     20

149   37.50      22.5,    21,  21.5,    20,  20.5,    20,  19.5,     20

150   37.75        23,    21,  21.5,    20,  20.5,    20,  19.5,     20

151   38.00        23,    21,    22,    20,  20.5,    20,    20,     20

152   38.25        23,    21,    22,    20,  20.5,    20,    20,     20

153   38.50        23,    21,    22,    20,  20.5,  20.5,    20,     20

154   38.75        23,  21.5,    22,  20.5,  20.5,  20.5,    20,     20

155   39.00        23,  21.5,    22,  20.5,  20.5,  20.5,    20,     20

156   39.25        23,  21.5,    22,  20.5,  20.5,  20.5,    20,     20

157   39.50        23,  21.5,  22.5,  20.5,    21,  20.5,    20,     20

158   39.75        23,  21.5,  22.5,  20.5,    21,  20.5,    20,     20

159   40.00        23,  21.5,  22.5,  20.5,    21,  20.5,    20,     20

160   40.25      23.5,  21.5,  22.5,  20.5,    21,  20.5,    20,     20

161   40.50      23.5,  21.5,  22.5,  20.5,    21,  20.5,    20,     20

162   40.75      23.5,  21.5,  22.5,  20.5,    21,  20.5,    20,     20

163   41.00      23.5,  21.5,  22.5,  20.5,    21,  20.5,    20,     20

164   41.25      23.5,  21.5,  22.5,  20.5,    21,  20.5,    20,     20

165   41.50      23.5,  21.5,  22.5,  20.5,    21,  20.5,    20,     20

166   41.75      23.5,  21.5,  22.5,  20.5,    21,  20.5,    20,     20

167   42.00      23.5,    22,  22.5,  20.5,    21,  20.5,    20,     20

168   42.25      23.5,    22,    23,  20.5,    21,  20.5,    20,     20

169   42.50      23.5,    22,    23,  20.5,    21,  20.5,    20,     20

170   42.75      23.5,    22,    23,    21,    21,    21,    20,     20

171   43.00        24,    22,    23,    21,    21,    21,  20.5,   20.5

172   43.25      23.5,    22,    23,    21,    21,    21,  20.5,   20.5

173   43.50      23.5,    22,    23,    21,    21,    21,  20.5,   20.5

174   43.75        24,    22,    23,    21,    21,    21,  20.5,   20.5

175   44.00        24,    22,    23,    21,  21.5,    21,  20.5,   20.5

176   44.25        24,    22,    23,    21,  21.5,    21,  20.5,   20.5

177   44.50        24,    22,    23,    21,  21.5,    21,  20.5,   20.5

178   44.75        24,    22,    23,    21,  21.5,    21,  20.5,   20.5

179   45.00        24,    22,  23.5,    21,  21.5,    21,  20.5,   20.5

180   45.25        24,  22.5,  23.5,    21,  21.5,    21,  20.5,   20.5

181   45.50        24,  22.5,  23.5,    21,  21.5,    21,  20.5,   20.5

182   45.75        24,  22.5,  23.5,    21,  21.5,    21,  20.5,   20.5

183   46.00        24,  22.5,  23.5,    21,  21.5,    21,  20.5,   20.5

184   46.25        24,  22.5,  23.5,    21,  21.5,    21,  20.5,   20.5

185   46.50        24,  22.5,  23.5,    21,  21.5,    21,  20.5,   20.5

186   46.75        24,  22.5,  23.5,    21,  21.5,  21.5,  20.5,   20.5

187   47.00        24,  22.5,  23.5,    21,  21.5,  21.5,  20.5,   20.5

188   47.25        24,  22.5,  23.5,    21,  21.5,  21.5,  20.5,   20.5

189   47.50        24,  22.5,  23.5,    21,  21.5,  21.5,  20.5,   20.5

190   47.75        24,  22.5,  23.5,  21.5,  21.5,  21.5,  20.5,   20.5

191   48.00      24.5,  22.5,  23.5,  21.5,  21.5,  21.5,  20.5,   20.5

192   48.25      24.5,  22.5,    24,  21.5,    22,  21.5,    21,   20.5

193   48.50      24.5,  22.5,    24,  21.5,    22,  21.5,    21,   20.5

194   48.75      24.5,  22.5,    24,  21.5,    22,  21.5,    21,     21

195   49.00      24.5,    23,    24,  21.5,    22,  21.5,    21,     21

196   49.25      24.5,    23,    24,  21.5,    22,  21.5,    21,     21

197   49.50      24.5,    23,    24,  21.5,    22,  21.5,    21,     21

198   49.75      24.5,    23,    24,  21.5,    22,  21.5,    21,     21

199   50.00      24.5,    23,    24,  21.5,    22,  21.5,    21,     21

200   50.25      24.5,    23,    24,  21.5,    22,  21.5,    21,     21

201   50.50      24.5,    23,    24,  21.5,    22,    22,    21,     21

202   50.75      24.5,    23,    24,  21.5,    22,    22,    21,     21

203   51.00      24.5,    23,  24.5,  21.5,    22,    22,    21,     21

204   51.25      24.5,    23,  24.5,    22,    22,    22,    21,     21

205   51.50      24.5,    23,  24.5,    22,    22,    22,    21,     21

206   51.75      24.5,    23,  24.5,    22,    22,    22,  21.5,     21

207   52.00      24.5,    23,  24.5,    22,    22,    22,  21.5,     21

208   52.25      24.5,    23,  24.5,    22,  22.5,    22,  21.5,     21

209   52.50      24.5,    23,  24.5,    22,  22.5,    22,  21.5,   21.5

210   52.75      24.5,    23,  24.5,    22,  22.5,    22,  21.5,   21.5

211   53.00        25,  23.5,  24.5,    22,  22.5,    22,  21.5,   21.5

212   53.25        25,  23.5,  24.5,    22,  22.5,    22,  21.5,   21.5

213   53.50        25,  23.5,  24.5,    22,  22.5,    22,  21.5,   21.5

214   53.75        25,  23.5,    25,    22,  22.5,    22,  21.5,   21.5

215   54.00        25,  23.5,    25,    22,  22.5,    22,  21.5,   21.5

216   54.25        25,  23.5,    25,    22,  22.5,    22,  21.5,   21.5

217   54.50        25,  23.5,    25,    22,  22.5,    22,  21.5,   21.5

218   54.75        25,  23.5,    25,    22,  22.5,    22,  21.5,   21.5

219   55.00        25,  23.5,    25,    22,  22.5,    22,  21.5,   21.5

220   55.25        25,  23.5,    25,    22,  22.5,    22,  21.5,   21.5

221   55.50        25,  23.5,    25,    22,  22.5,    22,  21.5,   21.5

222   55.75        25,  23.5,    25,  22.5,  22.5,    22,    22,   21.5

223   56.00        25,  23.5,    25,  22.5,  22.5,  22.5,    22,   21.5

224   56.25        25,  23.5,    25,  22.5,  22.5,  22.5,    22,   21.5

225   56.50      25.5,    24,    25,  22.5,  22.5,  22.5,    22,   21.5

226   56.75      25.5,    24,    25,  22.5,  22.5,  22.5,    22,   21.5

227   57.00      25.5,    24,    25,  22.5,    23,  22.5,    22,   21.5

228   57.25      25.5,    24,    25,  22.5,    23,  22.5,    22,     22

229   57.50      25.5,    24,  25.5,  22.5,    23,  22.5,    22,     22

230   57.75      25.5,    24,  25.5,  22.5,    23,  22.5,    22,     22

231   58.00      25.5,    24,  25.5,  22.5,    23,  22.5,    22,     22

232   58.25      25.5,    24,  25.5,  22.5,    23,  22.5,    22,     22

233   58.50      25.5,    24,  25.5,  22.5,    23,  22.5,    22,     22

234   58.75      25.5,    24,  25.5,  22.5,    23,  22.5,    22,     22

235   59.00      25.5,    24,  25.5,  22.5,    23,  22.5,    22,     22

236   59.25      25.5,    24,  25.5,  22.5,    23,  22.5,    22,     22

237   59.50        26,    24,  25.5,  22.5,    23,  22.5,    22,     22

238   59.75        26,    24,    26,  22.5,    23,  22.5,    22,     22

239   60.00        26,    24,    26,  22.5,    23,  22.5,    22,     22

240   60.25        26,    24,    26,    23,    23,    23,    22,     22

241   60.50      25.5,    24,    26,    23,    23,    23,    22,     22

242   60.75        26,    24,    26,    23,    23,    23,    22,     22

243   61.00        26,  24.5,    26,    23,    23,    23,    22,     22

244   61.25        26,  24.5,    26,    23,    23,    23,    22,     22

245   61.50        26,  24.5,    26,    23,  23.5,    23,    22,     22

246   61.75        26,  24.5,    26,    23,  23.5,    23,    22,     22

247   62.00        26,  24.5,    26,    23,  23.5,    23,  22.5,     22

248   62.25      26.5,  24.5,    26,    23,  23.5,    23,  22.5,     22

249   62.50      26.5,  24.5,    26,    23,  23.5,    23,  22.5,     22

250   62.75      26.5,  24.5,    26,    23,  23.5,    23,  22.5,     22

251   63.00      26.5,  24.5,    26,    23,  23.5,    23,  22.5,     22

252   63.25      26.5,  24.5,    26,    23,  23.5,    23,  22.5,     22

253   63.50      26.5,  24.5,    26,    23,  23.5,    23,  22.5,     22

254   63.75      26.5,  24.5,  26.5,    23,  23.5,    23,  22.5,   22.5

255   64.00      26.5,  24.5,  26.5,    23,  23.5,    23,  22.5,   22.5

256   64.25        26,  24.5,  26.5,    23,  23.5,  23.5,  22.5,   22.5

257   64.50        26,  24.5,  26.5,    23,  23.5,  23.5,  22.5,   22.5

258   64.75        26,  24.5,  26.5,  23.5,  23.5,  23.5,  22.5,   22.5

259   65.00        26,  24.5,  26.5,  23.5,  23.5,  23.5,  22.5,   22.5

260   65.25        26,  24.5,  26.5,  23.5,  23.5,  23.5,  22.5,   22.5

261   65.50      26.5,  24.5,  26.5,  23.5,  23.5,  23.5,  22.5,   22.5

262   65.75      26.5,  24.5,  26.5,  23.5,  23.5,  23.5,  22.5,   22.5

263   66.00      26.5,  24.5,  26.5,  23.5,  23.5,  23.5,  22.5,   22.5

264   66.25        26,    25,  26.5,  23.5,  23.5,  23.5,  22.5,   22.5

265   66.50        26,    25,  26.5,  23.5,  23.5,  23.5,    23,   22.5

266   66.75      26.5,    25,  26.5,  23.5,  23.5,  23.5,    23,   22.5

267   67.00      26.5,    25,  26.5,  23.5,    24,  23.5,    23,   22.5

268   67.25      26.5,    25,  26.5,  23.5,    24,  23.5,    23,     23

269   67.50      26.5,    25,  26.5,  23.5,    24,  23.5,    23,     23

270   67.75      26.5,    25,  26.5,  23.5,    24,  23.5,    23,     23

271   68.00        27,    25,  26.5,  23.5,    24,  23.5,    23,     23

272   68.25        27,    25,  26.5,  23.5,    24,  23.5,    23,     23

273   68.50        27,    25,  26.5,  23.5,    24,  23.5,    23,     23

274   68.75        27,    25,  26.5,  23.5,    24,  23.5,  23.5,     23

275   69.00        27,    25,  26.5,  23.5,    24,  23.5,  23.5,     23

276   69.25        27,    25,  26.5,  23.5,    24,  23.5,  23.5,     23

277   69.50        27,    25,  26.5,  23.5,    24,  23.5,  23.5,     23

278   69.75        27,    25,  26.5,  23.5,    24,    24,  23.5,     23

279   70.00        27,    25,  26.5,    24,    24,    24,  23.5,     23

280   70.25        27,    25,  26.5,    24,    24,    24,  23.5,     23

281   70.50      26.5,    25,  26.5,    24,    24,    24,  23.5,     23

282   70.75      26.5,  25.5,  26.5,    24,    24,    24,  23.5,     23

283   71.00      26.5,  25.5,  26.5,    24,  24.5,    24,  23.5,   23.5

284   71.25      26.5,  25.5,  26.5,    24,  24.5,    24,  23.5,   23.5

285   71.50      26.5,  25.5,  26.5,    24,  24.5,    24,  23.5,   23.5

286   71.75      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

287   72.00      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

288   72.25      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

289   72.50      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

290   72.75      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

291   73.00      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

292   73.25      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

293   73.50      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

294   73.75      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

295   74.00      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

296   74.25      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

297   74.50        27,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

298   74.75        27,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

299   75.00        27,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

300   75.25        27,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

301   75.50        27,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

302   75.75      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

303   76.00      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

304   76.25      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

305   76.50      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

306   76.75      26.5,  25.5,    27,    24,  24.5,    24,  23.5,   23.5

307   77.00      26.5,  25.5,    27,    24,  24.5,    24,  23.5,     23

308   77.25      26.5,  25.5,    27,    24,  24.5,    24,  23.5,     23

309   77.50      26.5,  25.5,    27,    24,  24.5,    24,  23.5,     23

310   77.75      26.5,  25.5,    27,    24,  24.5,    24,  23.5,     23

311   78.00      26.5,  25.5,    27,    24,  24.5,    24,  23.5,     23

312   78.25        27,  25.5,  26.5,    24,  24.5,    24,  23.5,     23

313   78.50        27,  25.5,  26.5,    24,  24.5,    24,  23.5,     23

314   78.75        27,    25,  26.5,    24,  24.5,    24,  23.5,     23

315   79.00        27,  25.5,  26.5,    24,  24.5,    24,  23.5,     23

316   79.25        27,    25,  26.5,    24,  24.5,    24,  23.5,     23

317   79.50        27,  25.5,    27,    24,  24.5,    24,  23.5,     23

318   79.75      26.5,    25,    27,    24,  24.5,    24,  23.5,     23

319   80.00        27,    25,    27,  24.5,  24.5,    24,  23.5,     23

320   80.25        27,    25,    27,  24.5,  24.5,    24,  23.5,     23

321   80.50        27,    25,    27,  24.5,  24.5,    24,  23.5,     23

322   80.75        27,    25,    27,  24.5,  24.5,    24,  23.5,     23

323   81.00        27,    25,    27,  24.5,  24.5,    24,  23.5,     23

324   81.25        27,  25.5,    27,  24.5,  24.5,    24,  23.5,     23

325   81.50        27,  25.5,    27,  24.5,  24.5,    24,  23.5,     23

326   81.75        27,  25.5,    27,  24.5,  24.5,    24,  23.5,     23

327   82.00        27,  25.5,    27,  24.5,  24.5,    24,    24,   23.5

328   82.25        27,  25.5,    27,  24.5,  24.5,    24,  23.5,   23.5

329   82.50        27,  25.5,    27,  24.5,  24.5,    24,  23.5,     23

330   82.75      26.5,  25.5,  26.5,    24,  24.5,    24,  23.5,   23.5

331   83.00      26.5,  25.5,  26.5,    24,  24.5,    24,  23.5,   23.5

332   83.25      26.5,    25,    27,  24.5,  24.5,    24,  23.5,   23.5

333   83.50      26.5,  25.5,    27,  24.5,  24.5,    24,  23.5,   23.5

334   83.75      26.5,  25.5,    27,  24.5,  24.5,  24.5,    24,   23.5

335   84.00      26.5,  25.5,    27,  24.5,  24.5,  24.5,    24,   23.5

336   84.25      26.5,  25.5,    27,  24.5,  24.5,  24.5,    24,   23.5

337   84.50        27,  25.5,    27,  24.5,    25,  24.5,    24,   23.5

338   84.75        27,  25.5,    27,  24.5,    25,  24.5,    24,   23.5

339   85.00        27,  25.5,    27,  24.5,    25,  24.5,    24,   23.5

340   85.25        27,  25.5,    27,  24.5,    25,  24.5,    24,   23.5

341   85.50        27,  25.5,    27,  24.5,    25,  24.5,    24,   23.5

342   85.75        27,  25.5,    27,  24.5,    25,  24.5,    24,   23.5

343   86.00        27,  25.5,    27,  24.5,    25,  24.5,    24,   23.5

344   86.25      27.5,    26,  27.5,  24.5,    25,  24.5,    24,   23.5

345   86.50      27.5,    26,  27.5,  24.5,