First Draft, serial print change based on distance

Committer:
liam94
Date:
Thu Feb 03 17:43:32 2022 +0000
Revision:
11:5a895d966a3e
renamed sensor program folder to ultrasonic to make it clearer to read and also removed bitmap library as it wasn't used

Who changed what in which revision?

UserRevisionLine numberNew contents of line
liam94 11:5a895d966a3e 1 #include "ultrasonic.h"
liam94 11:5a895d966a3e 2
liam94 11:5a895d966a3e 3 ultrasonic::ultrasonic(PinName trigPin, PinName echoPin, float updateSpeed, float timeout):_trig(trigPin), _echo(echoPin)
liam94 11:5a895d966a3e 4 {
liam94 11:5a895d966a3e 5 _updateSpeed = updateSpeed;
liam94 11:5a895d966a3e 6 _timeout = timeout;
liam94 11:5a895d966a3e 7 }
liam94 11:5a895d966a3e 8
liam94 11:5a895d966a3e 9 ultrasonic::ultrasonic(PinName trigPin, PinName echoPin, float updateSpeed, float timeout, void onUpdate(int))
liam94 11:5a895d966a3e 10 :_trig(trigPin), _echo(echoPin)
liam94 11:5a895d966a3e 11 {
liam94 11:5a895d966a3e 12 _onUpdateMethod=onUpdate;
liam94 11:5a895d966a3e 13 _updateSpeed = updateSpeed;
liam94 11:5a895d966a3e 14 _timeout = timeout;
liam94 11:5a895d966a3e 15 _t.start ();
liam94 11:5a895d966a3e 16 }
liam94 11:5a895d966a3e 17 void ultrasonic::_startT()
liam94 11:5a895d966a3e 18 {
liam94 11:5a895d966a3e 19 if(_t.read()>600)
liam94 11:5a895d966a3e 20 {
liam94 11:5a895d966a3e 21 _t.reset ();
liam94 11:5a895d966a3e 22 }
liam94 11:5a895d966a3e 23 start = _t.read_us ();
liam94 11:5a895d966a3e 24 }
liam94 11:5a895d966a3e 25
liam94 11:5a895d966a3e 26 void ultrasonic::_updateDist()
liam94 11:5a895d966a3e 27 {
liam94 11:5a895d966a3e 28 end = _t.read_us ();
liam94 11:5a895d966a3e 29 done = 1;
liam94 11:5a895d966a3e 30 _distance = (end - start)/6;
liam94 11:5a895d966a3e 31 _tout.detach();
liam94 11:5a895d966a3e 32 _tout.attach(this,&ultrasonic::_startTrig, _updateSpeed);
liam94 11:5a895d966a3e 33 }
liam94 11:5a895d966a3e 34 void ultrasonic::_startTrig(void)
liam94 11:5a895d966a3e 35 {
liam94 11:5a895d966a3e 36 _tout.detach();
liam94 11:5a895d966a3e 37 _trig=1;
liam94 11:5a895d966a3e 38 wait_us(10);
liam94 11:5a895d966a3e 39 done = 0;
liam94 11:5a895d966a3e 40 _echo.rise(this,&ultrasonic::_startT);
liam94 11:5a895d966a3e 41 _echo.fall(this,&ultrasonic::_updateDist);
liam94 11:5a895d966a3e 42 _echo.enable_irq ();
liam94 11:5a895d966a3e 43 _tout.attach(this,&ultrasonic::_startTrig,_timeout);
liam94 11:5a895d966a3e 44 _trig=0;
liam94 11:5a895d966a3e 45 }
liam94 11:5a895d966a3e 46
liam94 11:5a895d966a3e 47 int ultrasonic::getCurrentDistance(void)
liam94 11:5a895d966a3e 48 {
liam94 11:5a895d966a3e 49 return _distance;
liam94 11:5a895d966a3e 50 }
liam94 11:5a895d966a3e 51 void ultrasonic::pauseUpdates(void)
liam94 11:5a895d966a3e 52 {
liam94 11:5a895d966a3e 53 _tout.detach();
liam94 11:5a895d966a3e 54 _echo.rise(NULL);
liam94 11:5a895d966a3e 55 _echo.fall(NULL);
liam94 11:5a895d966a3e 56 }
liam94 11:5a895d966a3e 57 void ultrasonic::startUpdates(void)
liam94 11:5a895d966a3e 58 {
liam94 11:5a895d966a3e 59 _startTrig();
liam94 11:5a895d966a3e 60 }
liam94 11:5a895d966a3e 61 void ultrasonic::attachOnUpdate(void method(int))
liam94 11:5a895d966a3e 62 {
liam94 11:5a895d966a3e 63 _onUpdateMethod = method;
liam94 11:5a895d966a3e 64 }
liam94 11:5a895d966a3e 65 void ultrasonic::changeUpdateSpeed(float updateSpeed)
liam94 11:5a895d966a3e 66 {
liam94 11:5a895d966a3e 67 _updateSpeed = updateSpeed;
liam94 11:5a895d966a3e 68 }
liam94 11:5a895d966a3e 69 float ultrasonic::getUpdateSpeed()
liam94 11:5a895d966a3e 70 {
liam94 11:5a895d966a3e 71 return _updateSpeed;
liam94 11:5a895d966a3e 72 }
liam94 11:5a895d966a3e 73 int ultrasonic::isUpdated(void)
liam94 11:5a895d966a3e 74 {
liam94 11:5a895d966a3e 75 //printf("%d", done);
liam94 11:5a895d966a3e 76 d=done;
liam94 11:5a895d966a3e 77 done = 0;
liam94 11:5a895d966a3e 78 return d;
liam94 11:5a895d966a3e 79 }
liam94 11:5a895d966a3e 80 void ultrasonic::checkDistance(void)
liam94 11:5a895d966a3e 81 {
liam94 11:5a895d966a3e 82 if(isUpdated())
liam94 11:5a895d966a3e 83 {
liam94 11:5a895d966a3e 84 (*_onUpdateMethod)(_distance);
liam94 11:5a895d966a3e 85 }
liam94 11:5a895d966a3e 86 }