Using a piezo both for capacitive readout, and auditive feedback

Dependencies:   TSI mbed

Committer:
vsluiter
Date:
Sat Jun 29 13:40:41 2013 +0000
Revision:
3:a5ea404d7df0
Parent:
2:41a66a63ceda
Publishing...

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 1:04e030810a44 5 TSISensor tsi;
vsluiter 1:04e030810a44 6 int beeper_on = 0, pressed = 0;
vsluiter 1:04e030810a44 7 uint16_t value_now, value_prev;
vsluiter 1:04e030810a44 8 PwmOut rled(LED_RED);
vsluiter 1:04e030810a44 9
vsluiter 0:24ec0148bed5 10 void beeper(void)
vsluiter 0:24ec0148bed5 11 {
vsluiter 0:24ec0148bed5 12 static uint8_t toggle = 0;
vsluiter 0:24ec0148bed5 13 if(toggle)
vsluiter 0:24ec0148bed5 14 toggle = 0;
vsluiter 0:24ec0148bed5 15 else
vsluiter 0:24ec0148bed5 16 toggle = 1;
vsluiter 0:24ec0148bed5 17 if(beeper_on)
vsluiter 0:24ec0148bed5 18 click = toggle;
vsluiter 0:24ec0148bed5 19 }
vsluiter 0:24ec0148bed5 20
vsluiter 1:04e030810a44 21 void read_sensor(void)
vsluiter 1:04e030810a44 22 {
vsluiter 1:04e030810a44 23 value_prev = value_now;
vsluiter 1:04e030810a44 24 if(!beeper_on)
vsluiter 1:04e030810a44 25 value_now = tsi.readValue(2);
vsluiter 1:04e030810a44 26 if((value_now-2)> value_prev)
vsluiter 1:04e030810a44 27 pressed = 1;
vsluiter 1:04e030810a44 28
vsluiter 1:04e030810a44 29 }
vsluiter 1:04e030810a44 30
vsluiter 1:04e030810a44 31 void led_off(void)
vsluiter 1:04e030810a44 32 {
vsluiter 1:04e030810a44 33 rled = 1;
vsluiter 1:04e030810a44 34 }
vsluiter 2:41a66a63ceda 35
vsluiter 2:41a66a63ceda 36 void do_beep(void)
vsluiter 2:41a66a63ceda 37 {
vsluiter 2:41a66a63ceda 38 click.output();
vsluiter 2:41a66a63ceda 39 beeper_on = 1;
vsluiter 2:41a66a63ceda 40 wait(0.1);
vsluiter 2:41a66a63ceda 41 beeper_on = 0;
vsluiter 2:41a66a63ceda 42 click.input();
vsluiter 2:41a66a63ceda 43 }
vsluiter 1:04e030810a44 44
vsluiter 1:04e030810a44 45 int main() {
vsluiter 0:24ec0148bed5 46 Ticker beep;
vsluiter 1:04e030810a44 47 Ticker read;
vsluiter 1:04e030810a44 48 beep.attach(beeper,0.00025);
vsluiter 1:04e030810a44 49 read.attach(read_sensor,0.1);
vsluiter 1:04e030810a44 50 Timeout timeout;
vsluiter 0:24ec0148bed5 51 rled = 1;
vsluiter 0:24ec0148bed5 52 while(1) {
vsluiter 1:04e030810a44 53 if(pressed)
vsluiter 0:24ec0148bed5 54 {
vsluiter 1:04e030810a44 55 pressed = 0;
vsluiter 1:04e030810a44 56 rled = 0.5;
vsluiter 1:04e030810a44 57 timeout.detach();
vsluiter 1:04e030810a44 58 timeout.attach(led_off,0.5);
vsluiter 2:41a66a63ceda 59 do_beep();
vsluiter 0:24ec0148bed5 60 }
vsluiter 0:24ec0148bed5 61 }
vsluiter 0:24ec0148bed5 62 }
vsluiter 0:24ec0148bed5 63 //PTB0 - > ELECTRODE3 -> TSI_CH0