Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
FinalV1/ColourSensor_H.h@1:ef045321c068, 2019-03-21 (annotated)
- Committer:
- Nicolaemf
- Date:
- Thu Mar 21 23:47:39 2019 +0000
- Revision:
- 1:ef045321c068
- Parent:
- 0:270ea1abdd2d
correct the bluetooth module and add comments;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Nicolaemf | 0:270ea1abdd2d | 1 | // ColourSensor_H.h |
Nicolaemf | 0:270ea1abdd2d | 2 | |
Nicolaemf | 0:270ea1abdd2d | 3 | #ifndef ColourSensor_H |
Nicolaemf | 0:270ea1abdd2d | 4 | #define ColourSensor_H |
Nicolaemf | 0:270ea1abdd2d | 5 | |
Nicolaemf | 0:270ea1abdd2d | 6 | #include "mbed.h" |
Nicolaemf | 0:270ea1abdd2d | 7 | |
Nicolaemf | 0:270ea1abdd2d | 8 | // ColourSensor is used to detect the coloured disks and control the Solenoid |
Nicolaemf | 0:270ea1abdd2d | 9 | /* Attributes: |
Nicolaemf | 0:270ea1abdd2d | 10 | - Pinouts of sensor inputs and solenoid output |
Nicolaemf | 0:270ea1abdd2d | 11 | |
Nicolaemf | 0:270ea1abdd2d | 12 | Methods: |
Nicolaemf | 0:270ea1abdd2d | 13 | - solenoidSet |
Nicolaemf | 0:270ea1abdd2d | 14 | - readColSenIf |
Nicolaemf | 0:270ea1abdd2d | 15 | - readColSenWhich |
Nicolaemf | 0:270ea1abdd2d | 16 | - colourCheck |
Nicolaemf | 0:270ea1abdd2d | 17 | - makeColourActive |
Nicolaemf | 0:270ea1abdd2d | 18 | */ |
Nicolaemf | 0:270ea1abdd2d | 19 | |
Nicolaemf | 0:270ea1abdd2d | 20 | class ColourSensor { |
Nicolaemf | 0:270ea1abdd2d | 21 | public: |
Nicolaemf | 0:270ea1abdd2d | 22 | void solenoidSet(bool state); // Setting solenoid state |
Nicolaemf | 0:270ea1abdd2d | 23 | void solenoidOn(); // Interrupt to turn ON solenoid |
Nicolaemf | 0:270ea1abdd2d | 24 | void readSensor(); // Read sensors |
Nicolaemf | 0:270ea1abdd2d | 25 | void convert(); // converts sensor readings to sensible logic |
Nicolaemf | 0:270ea1abdd2d | 26 | void process(); // Colour processing |
Nicolaemf | 0:270ea1abdd2d | 27 | void initialConditions(); // Sets initial conditions |
Nicolaemf | 0:270ea1abdd2d | 28 | |
Nicolaemf | 0:270ea1abdd2d | 29 | DigitalIn inOne; |
Nicolaemf | 0:270ea1abdd2d | 30 | DigitalIn inTwo; |
Nicolaemf | 0:270ea1abdd2d | 31 | DigitalOut solenoid; |
Nicolaemf | 0:270ea1abdd2d | 32 | |
Nicolaemf | 0:270ea1abdd2d | 33 | int firstLoop; |
Nicolaemf | 0:270ea1abdd2d | 34 | bool toggleA; |
Nicolaemf | 0:270ea1abdd2d | 35 | bool toggleB; |
Nicolaemf | 0:270ea1abdd2d | 36 | bool toggleC; |
Nicolaemf | 0:270ea1abdd2d | 37 | bool toggleConst; // Can be used to toggle colour processing |
Nicolaemf | 0:270ea1abdd2d | 38 | |
Nicolaemf | 0:270ea1abdd2d | 39 | bool newDetection; // Colour newly detected? (i.e. is now but wasn't before?) Yes/No -> 1/0 |
Nicolaemf | 0:270ea1abdd2d | 40 | bool flagColour; |
Nicolaemf | 0:270ea1abdd2d | 41 | bool sensorOneCheck, sensorTwoCheck; |
Nicolaemf | 0:270ea1abdd2d | 42 | ColourSensor(PinName pin1, PinName pin2, PinName pin3); |
Nicolaemf | 0:270ea1abdd2d | 43 | |
Nicolaemf | 0:270ea1abdd2d | 44 | void makeColourActive(); |
Nicolaemf | 0:270ea1abdd2d | 45 | void ColourCheck(); |
Nicolaemf | 0:270ea1abdd2d | 46 | bool diskColour; // Colour of disk: Red/Blue -> 1/0 |
Nicolaemf | 0:270ea1abdd2d | 47 | bool diskHave; |
Nicolaemf | 0:270ea1abdd2d | 48 | bool sensorColour; |
Nicolaemf | 0:270ea1abdd2d | 49 | private: |
Nicolaemf | 0:270ea1abdd2d | 50 | bool sensorOne; |
Nicolaemf | 0:270ea1abdd2d | 51 | bool sensorOneOld; // Comparison bool |
Nicolaemf | 0:270ea1abdd2d | 52 | |
Nicolaemf | 0:270ea1abdd2d | 53 | bool sensorTwo; |
Nicolaemf | 0:270ea1abdd2d | 54 | // Have disk? Yes/No -> 1/0 |
Nicolaemf | 0:270ea1abdd2d | 55 | bool sensorTwoOld; |
Nicolaemf | 0:270ea1abdd2d | 56 | |
Nicolaemf | 0:270ea1abdd2d | 57 | bool sensorIf; // Yes/No -> 1/0 |
Nicolaemf | 0:270ea1abdd2d | 58 | bool sensorIfOld; |
Nicolaemf | 0:270ea1abdd2d | 59 | // Red/Blue -> 0/1 |
Nicolaemf | 0:270ea1abdd2d | 60 | |
Nicolaemf | 0:270ea1abdd2d | 61 | |
Nicolaemf | 0:270ea1abdd2d | 62 | bool solenoidState; // State of solenoid: On/Off -> 1/0 |
Nicolaemf | 0:270ea1abdd2d | 63 | |
Nicolaemf | 0:270ea1abdd2d | 64 | }; |
Nicolaemf | 0:270ea1abdd2d | 65 | |
Nicolaemf | 0:270ea1abdd2d | 66 | #endif |