First Last
/
PiezoClick
Using a piezo both for capacitive readout, and auditive feedback
main.cpp@0:24ec0148bed5, 2013-06-28 (annotated)
- 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?
User | Revision | Line number | New 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 |