Using a piezo both for capacitive readout, and auditive feedback

Dependencies:   TSI mbed

Committer:
vsluiter
Date:
Fri Jun 28 14:00:18 2013 +0000
Revision:
0:24ec0148bed5
Child:
1:04e030810a44
Working, beeping and showing red led when 'clicked';

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vsluiter 0:24ec0148bed5 1 #include "mbed.h"
vsluiter 0:24ec0148bed5 2 #include "TSISensor.h"
vsluiter 0:24ec0148bed5 3
vsluiter 0:24ec0148bed5 4 DigitalInOut click(PTE20);
vsluiter 0:24ec0148bed5 5 int beeper_on = 0;
vsluiter 0:24ec0148bed5 6 void beeper(void)
vsluiter 0:24ec0148bed5 7 {
vsluiter 0:24ec0148bed5 8 static uint8_t toggle = 0;
vsluiter 0:24ec0148bed5 9 if(toggle)
vsluiter 0:24ec0148bed5 10 toggle = 0;
vsluiter 0:24ec0148bed5 11 else
vsluiter 0:24ec0148bed5 12 toggle = 1;
vsluiter 0:24ec0148bed5 13 if(beeper_on)
vsluiter 0:24ec0148bed5 14 click = toggle;
vsluiter 0:24ec0148bed5 15 }
vsluiter 0:24ec0148bed5 16
vsluiter 0:24ec0148bed5 17 int main() {
vsluiter 0:24ec0148bed5 18 PwmOut rled(LED_RED);
vsluiter 0:24ec0148bed5 19 uint16_t value_now, value_prev;
vsluiter 0:24ec0148bed5 20 Ticker beep;
vsluiter 0:24ec0148bed5 21 TSISensor tsi;
vsluiter 0:24ec0148bed5 22 beep.attach(beeper,0.005);
vsluiter 0:24ec0148bed5 23 int may_click = 1;
vsluiter 0:24ec0148bed5 24 rled = 1;
vsluiter 0:24ec0148bed5 25 while(1) {
vsluiter 0:24ec0148bed5 26 value_now = tsi.readValue(2);
vsluiter 0:24ec0148bed5 27
vsluiter 0:24ec0148bed5 28 if((value_now-5)> value_prev)
vsluiter 0:24ec0148bed5 29 rled = 0;
vsluiter 0:24ec0148bed5 30 else
vsluiter 0:24ec0148bed5 31 {
vsluiter 0:24ec0148bed5 32 rled = 1;
vsluiter 0:24ec0148bed5 33 may_click = 1;
vsluiter 0:24ec0148bed5 34 }
vsluiter 0:24ec0148bed5 35 value_prev = value_now;
vsluiter 0:24ec0148bed5 36 //gled = 1-(tsi.readValue(1)/4096.0);
vsluiter 0:24ec0148bed5 37 if(rled < 0.8 && may_click)
vsluiter 0:24ec0148bed5 38 {
vsluiter 0:24ec0148bed5 39 click.output();
vsluiter 0:24ec0148bed5 40 beeper_on = 1;
vsluiter 0:24ec0148bed5 41 may_click = 0;
vsluiter 0:24ec0148bed5 42 //tsi.TSISensor_reset();
vsluiter 0:24ec0148bed5 43 //wait(0.1);
vsluiter 0:24ec0148bed5 44 }
vsluiter 0:24ec0148bed5 45 wait(0.05);
vsluiter 0:24ec0148bed5 46 beeper_on = 0;
vsluiter 0:24ec0148bed5 47 click.input();
vsluiter 0:24ec0148bed5 48 }
vsluiter 0:24ec0148bed5 49 }
vsluiter 0:24ec0148bed5 50 //PTB0 - > ELECTRODE3 -> TSI_CH0