test de TSL230 circuit conversion lumière/frequence

Dependencies:   mbed

Committer:
bouaziz
Date:
Wed Oct 19 18:56:53 2011 +0000
Revision:
1:0ef745d284a1
Parent:
0:94a3a01d13c2
version test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bouaziz 0:94a3a01d13c2 1 /*
bouaziz 0:94a3a01d13c2 2 ****************************************************
bouaziz 0:94a3a01d13c2 3 Frequency is measured by interrupts.
bouaziz 0:94a3a01d13c2 4
bouaziz 0:94a3a01d13c2 5 Wiring: TSL230 mBed
bouaziz 0:94a3a01d13c2 6 p1(s0) H (p39)
bouaziz 0:94a3a01d13c2 7 p2(s1) L (p1)
bouaziz 0:94a3a01d13c2 8 p7(s2) H (p39)
bouaziz 0:94a3a01d13c2 9 p8(s3) H (p39)
bouaziz 0:94a3a01d13c2 10 p6(out) p11
bouaziz 0:94a3a01d13c2 11 les pattes du TSL230 qui reste :
bouaziz 0:94a3a01d13c2 12 p3(OE), p4(GND) tied to ground. p5(Vcc) tied to 3V3.
bouaziz 0:94a3a01d13c2 13
bouaziz 0:94a3a01d13c2 14 Author: Samir Bouaziz. october 2011.
bouaziz 0:94a3a01d13c2 15 *********************(******************************
bouaziz 0:94a3a01d13c2 16 */
bouaziz 0:94a3a01d13c2 17
bouaziz 0:94a3a01d13c2 18
bouaziz 0:94a3a01d13c2 19 #include "mbed.h"
bouaziz 1:0ef745d284a1 20 #include "math.h"
bouaziz 0:94a3a01d13c2 21
bouaziz 0:94a3a01d13c2 22
bouaziz 0:94a3a01d13c2 23 Serial pc(USBTX, USBRX);
bouaziz 0:94a3a01d13c2 24 InterruptIn in(p11);
bouaziz 0:94a3a01d13c2 25 Timer t,t2;
bouaziz 0:94a3a01d13c2 26
bouaziz 0:94a3a01d13c2 27 float period = 0; // This is the period between interrupts in microseconds
bouaziz 0:94a3a01d13c2 28 float freq = 0;
bouaziz 0:94a3a01d13c2 29 volatile int demiper,n=0,per;
bouaziz 0:94a3a01d13c2 30
bouaziz 0:94a3a01d13c2 31 void itup() {
bouaziz 0:94a3a01d13c2 32 switch(n){
bouaziz 0:94a3a01d13c2 33 case 0 :
bouaziz 0:94a3a01d13c2 34 t.start();
bouaziz 0:94a3a01d13c2 35 n++;
bouaziz 0:94a3a01d13c2 36 break;
bouaziz 1:0ef745d284a1 37 // case 1 :
bouaziz 0:94a3a01d13c2 38 case 10: t.stop();
bouaziz 0:94a3a01d13c2 39 per=t.read_us();
bouaziz 0:94a3a01d13c2 40 n=0;
bouaziz 0:94a3a01d13c2 41 t.reset();
bouaziz 0:94a3a01d13c2 42 break;
bouaziz 0:94a3a01d13c2 43 default : n++;
bouaziz 0:94a3a01d13c2 44 break;
bouaziz 0:94a3a01d13c2 45 }
bouaziz 0:94a3a01d13c2 46 }
bouaziz 0:94a3a01d13c2 47
bouaziz 0:94a3a01d13c2 48 void itdown() {
bouaziz 0:94a3a01d13c2 49 demiper=t.read_us();
bouaziz 0:94a3a01d13c2 50 t.stop();
bouaziz 0:94a3a01d13c2 51 }
bouaziz 0:94a3a01d13c2 52
bouaziz 0:94a3a01d13c2 53
bouaziz 0:94a3a01d13c2 54 int main() {
bouaziz 1:0ef745d284a1 55 float mes;
bouaziz 0:94a3a01d13c2 56 // in.mode(PullUp); // Set the pin to Pull Down mode.
bouaziz 0:94a3a01d13c2 57 in.rise(&itup); // Set up the interrupt for rising edge
bouaziz 0:94a3a01d13c2 58 // in.fall(&itdown); // Set up the interrupt for rising edge
bouaziz 0:94a3a01d13c2 59 while (1) {
bouaziz 0:94a3a01d13c2 60 wait(1);
bouaziz 0:94a3a01d13c2 61 //freq= 100000.0/((float)per);
bouaziz 1:0ef745d284a1 62 mes=(10000./((float)per))/0.0069;
bouaziz 1:0ef745d284a1 63 pc.printf("%f %f\r\n",mes,10000000./((float)per));
bouaziz 0:94a3a01d13c2 64
bouaziz 0:94a3a01d13c2 65 }
bouaziz 0:94a3a01d13c2 66 }
bouaziz 0:94a3a01d13c2 67
bouaziz 0:94a3a01d13c2 68
bouaziz 0:94a3a01d13c2 69