by Hsiao-Ho Hsu

This PicBasic Pro sample reads a Merlin Systems Stretch Sensor in a .Wheatstone Bridge circuit. See also the Op Amp Bridge code sample.

Back to Stretch Sensor report.

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

SensorValue var word

'tx var portc.6
'rx var portc.7
n9600 con 16468

output portb.7
output portb.3

'for keyboard

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

Main:

HIGH portb.3
'adding pull-down resistors tightens the range.
ADCin 0, sensorValue

if SensorValue < 500 then ' 500 is when you strecth a bit but not much.....
                          ' since our user may just be able to move a bit
high portb.7

else

low portb.7

endif

'serout2 tx, n9600, [Dec sensorValue, 13,10 ]  'the only diff btwn this and
pause 50                                      'the other code is DEC(ascii cmnd)

Goto main

arduino code (modified from the Physical Computing Analog Lab)

const int ledPin = 9;       // pin that the LED is attached to

const int ledPin2 = 10;       // pin that the 2nd LED is attached to

int analogValue = 0;        // value read from the pot

int brightness = 0;         // PWM pin that the LED is on.

void setup() {

    // initialize serial communications at 9600 bps:

    Serial.begin(9600);

    // declare the led pin as an output:

    pinMode(ledPin, OUTPUT);

    pinMode(ledPin2, OUTPUT);

}

void loop() {

    analogValue = analogRead(A0);      // read the pot value

    brightness = analogValue /4;       //divide by 4 to fit in a byte

    analogWrite(ledPin, brightness);   // PWM the LED with the brightness value

    Serial.println(brightness);        // print the brightness value back to the serial monitor

if (analogValue < 500)

digitalWrite (ledPin2, HIGH);

} else {

digitalWrite (ledPin2, LOW);

}