Parallel Port

Parallel port.
Copyright 2007: Juan Carlos Galarza Roca
This information is part of the book: “The Parallel port as an Input/output Interface”
PCI Parallel ports

Analogical data acquisition with NE555 Timer  (NE 555)

Home

www.globu.net

 

 

Analogical data acquisition with NE555 Timer

In order to read analogical signals, it is necessary to make the respective conversion to Digital Signal.  then  NE555 Timer generates variable pulses (it has like answer a frequency)  from two resistances and a capacitor.  This approach of data acquisition implies the following steps:

 

1. To adapt the physical variable in study so that one behaves like electrical resistance
2. To calculate the values of the remaining resistance and the capacitor
3. To connect the output of the timer to one of the bits of the status record
4. To elaborate a program that calculates the frequency from the entrance pulses
5. To make the measurements with  known values of reference
6. To construct a model of transformation of frequency to the variable in study (regression, interpolation)

Description of NE555 Timer

Schematics NE555 timer chip
Fig. Timer NE555

 

Electrical source

Vcc 5 volts         
Ground

The source of 5 volts to feed this circuit can be obtained directly from the PC Power Supply, or the port of games (to see power supply).

                                        
 Generic circuit

Generic circuit with NE555 timer
Fig. Generic circuit

 

Operation

NE555 Timer generates a pulse according to the values of two resistance and a capacitor.

The following formula is used to calculate the period of this pulse.

3

Where: 


Ra

:

Value of the resistance connected to pins 7 and 8

Rb

:

Value of the resistance connected to pins 2 and 7

CAP

:

Value of the polarized capacitor connected to ground and pins 2 and 6

Like example, see the following values:
    
     Ra:           540 ohm
     Rb:           620 ohm
     CAP:           1 microfarad = 4 Farads

Being
    
     5

T= 0,00123354 seconds

What a pulse with a frequency generates of
    
     6
     7

The calculated frequency can differ from the frequency that is showed cause the NE555  Timer  has elasticity effects in the resistance as in the capacitor of this circuit.

In a case of practical application, the Ra resistance will be due to maintain fixed and also the  Capacitor, so that the variable that will be analyzed  is the Rb resistance.  As this resistance varies, the timer will generate different frequencies.  The generated frequency is based on the variations of the resistance in study.

Programming

The following algorithm allows to read and to calculate the frequency generated by timer NE555.
/* Beginning *
ctd_pulso_alto =0
ctd_pulso_bajo =0
leer_tiempo_de _sistema

/* main *
while the passed time has not surpassed 1 second to do
beginning
if bit_leido it is in high then
beginning
                        ctd_pulso_alto = ctd_pulso_alto+1
while bit_leido it is in stop doing
beginning
aim
aim
if bit_leido it is in low then
beginning
ctd_pulso_bajo = ctd_pulso_bajo+1
while bit_leido he is in low doing
beginning
aim
aim
aim {of while}

/* Calculations *
frequency: = (ctd_ pulso_alto+ ctd_pulso_bajo) /2

/* Aim *
aim

Example for a temperature bulb (digital thermometer)

In this example the variables of the generic circuit are defined to make the reading of temperature with the use of a thermo-resistance.

The thermo resistance that is used was obtained from the bulb of temperature of the control system of refrigeration of an automobile.

Next the circuit with the specific parameters of this practice is described.

Practical circuit

Circuit with NE555 timer and temperature Bulb for Parallel Port interfacing
Fig. Circuit I practice

 

The thermo resistance (bulb) varies its resistance according to the temperature.  When varying this resistance, the circuit also generates a variable frequency. 

In this specific case, it turns out simpler to make a series of measurements with the aid of a thermometer, so that the respective frequency for each measurement is registered. 

The following data were obtained previously with a circuit like the described one, and with the aid of a mercury thermometer

Experimental data:

Temperature
(degrees Celsius)

Frequency
(Hertz)

120.0

1500

89.0

870

82.0

820

70.0

725

60.0

640

40.0

460

35.8

420

33.8

405

30.0

366

27.0

339

24.7

318

22.5

297

20.2

280

10.0

204

0.0

135

From these data the following algorithm of interpolation can be used:

/* the data types are defined *

type puntos=es a record with types "x", and "y" of real type

and data are a variable of that type
 
data are an adjustment from 1 to 50 of type points

/* Beginning *
To load the vector data [i] .x and data [i] .y with the values of the table of
Experimental data.

Tama_vector has the number of rows of the table of experimental data

/* to construct the function *
interpolar function (with num_buscado parameter of real type) gives back a data of real type
variables i of Integer type
                               x1, x2, y1, y2 of Real type
                               output of Real type
                               sale is  Boolean type
beginning
i=1
sale=false;
while (i<tama_vector) and (sale=false) to do
beginning
if (num_buscado>=datos [i+1] .y) and
(num_buscado<=datos [i] .y) then
beginning
x1=datos [i] .x
y1=datos [i] .y
x2=datos [i+1] .x
y2=datos [i+1] .y
sale=true
aim
                               i=i+1
aim
salida=0
if sale is true then
beginning
salida= (x2-x1)/(y2-y1) * (num_buscado-y1) +x1
aim
interpolar=salida
aim
/* Utilizar *
To call to the function with the frequency read previously
To unfold, to make graphs, etc.
/* Aim *

 

Questions?  pparalelo@hotmail.com

 

[file:///C:/Documents and Settings/Juan Carlos.JCGR/Escritorio/globunetlocal/PP3/blog_htm_en.htm]

 

 

Google
 

 

Home