programma per infrarossi
Dependencies: mbed
main.cpp@0:5c7deaf68cb5, 2017-03-06 (annotated)
- Committer:
- Wonderjack996
- Date:
- Mon Mar 06 15:16:27 2017 +0000
- Revision:
- 0:5c7deaf68cb5
- Child:
- 1:58319a43058b
programma per usare infrarossi
;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Wonderjack996 | 0:5c7deaf68cb5 | 1 | #include "mbed.h" |
Wonderjack996 | 0:5c7deaf68cb5 | 2 | #define ANALOG_PIN A5 |
Wonderjack996 | 0:5c7deaf68cb5 | 3 | |
Wonderjack996 | 0:5c7deaf68cb5 | 4 | int read_distance(); |
Wonderjack996 | 0:5c7deaf68cb5 | 5 | |
Wonderjack996 | 0:5c7deaf68cb5 | 6 | AnalogIn infrared(ANALOG_PIN); |
Wonderjack996 | 0:5c7deaf68cb5 | 7 | DigitalOut led(D11); |
Wonderjack996 | 0:5c7deaf68cb5 | 8 | |
Wonderjack996 | 0:5c7deaf68cb5 | 9 | Serial pc(USBTX, USBRX); |
Wonderjack996 | 0:5c7deaf68cb5 | 10 | |
Wonderjack996 | 0:5c7deaf68cb5 | 11 | int main() { |
Wonderjack996 | 0:5c7deaf68cb5 | 12 | |
Wonderjack996 | 0:5c7deaf68cb5 | 13 | pc.baud(9600); |
Wonderjack996 | 0:5c7deaf68cb5 | 14 | int distance; |
Wonderjack996 | 0:5c7deaf68cb5 | 15 | while(1){ |
Wonderjack996 | 0:5c7deaf68cb5 | 16 | distance = read_distance(); |
Wonderjack996 | 0:5c7deaf68cb5 | 17 | printf("distance: %d/n/r", distance); |
Wonderjack996 | 0:5c7deaf68cb5 | 18 | if( distance <= 30 ) |
Wonderjack996 | 0:5c7deaf68cb5 | 19 | led = 1; |
Wonderjack996 | 0:5c7deaf68cb5 | 20 | else |
Wonderjack996 | 0:5c7deaf68cb5 | 21 | led = 0; |
Wonderjack996 | 0:5c7deaf68cb5 | 22 | } |
Wonderjack996 | 0:5c7deaf68cb5 | 23 | |
Wonderjack996 | 0:5c7deaf68cb5 | 24 | } |
Wonderjack996 | 0:5c7deaf68cb5 | 25 | |
Wonderjack996 | 0:5c7deaf68cb5 | 26 | int read_distance() |
Wonderjack996 | 0:5c7deaf68cb5 | 27 | { |
Wonderjack996 | 0:5c7deaf68cb5 | 28 | float volts = infrared.read() * 0.0048828125; /* il valore indica il risultato dell' operazione 5/1024, moltiplico il valore letto |
Wonderjack996 | 0:5c7deaf68cb5 | 29 | per tale valore per porlo su una scala di massimo 5 volt */ |
Wonderjack996 | 0:5c7deaf68cb5 | 30 | |
Wonderjack996 | 0:5c7deaf68cb5 | 31 | return volts * pow(volts, -1); //la distaza ritornata e' in centimetri |
Wonderjack996 | 0:5c7deaf68cb5 | 32 | } |