programma per infrarossi

Dependencies:   mbed

Committer:
Wonderjack996
Date:
Mon Mar 06 15:19:11 2017 +0000
Revision:
1:58319a43058b
Parent:
0:5c7deaf68cb5
programma per usare modulo infrarossi
;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wonderjack996 1:58319a43058b 1 /*il modulo infrarossi ha tre uscite:
Wonderjack996 1:58319a43058b 2 attaccate le uscite opportune a VCC e GND mentre la terza uscita al pin analogico che corrisponde
Wonderjack996 1:58319a43058b 3 a quello della costante ANALOG_PIN ( in questo caso A5 )*/
Wonderjack996 1:58319a43058b 4
Wonderjack996 0:5c7deaf68cb5 5 #include "mbed.h"
Wonderjack996 0:5c7deaf68cb5 6 #define ANALOG_PIN A5
Wonderjack996 0:5c7deaf68cb5 7
Wonderjack996 0:5c7deaf68cb5 8 int read_distance();
Wonderjack996 0:5c7deaf68cb5 9
Wonderjack996 0:5c7deaf68cb5 10 AnalogIn infrared(ANALOG_PIN);
Wonderjack996 0:5c7deaf68cb5 11 DigitalOut led(D11);
Wonderjack996 0:5c7deaf68cb5 12
Wonderjack996 0:5c7deaf68cb5 13 Serial pc(USBTX, USBRX);
Wonderjack996 0:5c7deaf68cb5 14
Wonderjack996 0:5c7deaf68cb5 15 int main() {
Wonderjack996 0:5c7deaf68cb5 16
Wonderjack996 0:5c7deaf68cb5 17 pc.baud(9600);
Wonderjack996 0:5c7deaf68cb5 18 int distance;
Wonderjack996 0:5c7deaf68cb5 19 while(1){
Wonderjack996 0:5c7deaf68cb5 20 distance = read_distance();
Wonderjack996 0:5c7deaf68cb5 21 printf("distance: %d/n/r", distance);
Wonderjack996 0:5c7deaf68cb5 22 if( distance <= 30 )
Wonderjack996 0:5c7deaf68cb5 23 led = 1;
Wonderjack996 0:5c7deaf68cb5 24 else
Wonderjack996 0:5c7deaf68cb5 25 led = 0;
Wonderjack996 0:5c7deaf68cb5 26 }
Wonderjack996 0:5c7deaf68cb5 27
Wonderjack996 0:5c7deaf68cb5 28 }
Wonderjack996 0:5c7deaf68cb5 29
Wonderjack996 0:5c7deaf68cb5 30 int read_distance()
Wonderjack996 0:5c7deaf68cb5 31 {
Wonderjack996 0:5c7deaf68cb5 32 float volts = infrared.read() * 0.0048828125; /* il valore indica il risultato dell' operazione 5/1024, moltiplico il valore letto
Wonderjack996 0:5c7deaf68cb5 33 per tale valore per porlo su una scala di massimo 5 volt */
Wonderjack996 0:5c7deaf68cb5 34
Wonderjack996 0:5c7deaf68cb5 35 return volts * pow(volts, -1); //la distaza ritornata e' in centimetri
Wonderjack996 0:5c7deaf68cb5 36 }