programma per infrarossi
Dependencies: mbed
main.cpp@1:58319a43058b, 2017-03-06 (annotated)
- 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?
User | Revision | Line number | New 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 | } |