by Marta Lwin and Diane Thomas

Diane and I (Marta) built our board with the 18f452 pic and a flex sensor. We went through several stages, including testing sensor reading in hyperterm. We modified the peak detection code to send raw values to processing. We also added a pause, to reduce the delay due to processings rendering delay. The code:
-- Marta Lwin

  • initial test of 50 for threshold gave acceptable results
  • initial test of 5 gave acceptable noise reduction in resulting DataLogger graph

This code sent its serial output to Tom's Simple serial Datalogger. Resulting DataLogger graph returned results representational of sensor event in real-time.


' Define ADCIN parameters
DEFINE  ADC_BITS        10             ' Set number of bits in result
DEFINE  ADC_CLOCK       3          ' Set clock source (3=rc)
DEFINE  ADC_SAMPLEUS    20          ' Set sampling time in uS

PeakValue var word
SensorValue var word
LastSensorValue var word
Threshold var word
Noise var word

' serial pins and data reate:
tx var portc.6
rx var portc.7
n9600 con 16468

Threshold = 50       ' set your own value based on your sensors
PeakValue = 0        ' initialize peakValue
noise = 5           ' set a noise value based on your particular sensor

' Set PORTA to all input
TRISA = %11111111     
' Set up ADCON1
ADCON1 = %10000010    

Main:
    ' read sensor on pin RA0:
    ADCin 0, sensorValue
    serout2 tx, n9600, [sensorValue]
    'original line was useful when sending data to HyperTerminal.
    'original line: serout2 tx, n9600, ["peak reading", DEC peakValue, 13,10]
    pause 100
Goto main