Finn Quicke / Mbed 2 deprecated TDP3_OOP_ColourSensor

Dependencies:   mbed

Committer:
quickeman
Date:
Mon Mar 18 11:21:43 2019 +0000
Revision:
0:23508e7103a4
Version 2 of OOP Colour Sensor program.; ; Altered so solenoid is ON by default and only turns OFF when dropping disk.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
quickeman 0:23508e7103a4 1 #include "mbed.h"
quickeman 0:23508e7103a4 2 #include "ColourSensor_H.h"
quickeman 0:23508e7103a4 3
quickeman 0:23508e7103a4 4 Ticker detectColour;
quickeman 0:23508e7103a4 5 Timeout readColour;
quickeman 0:23508e7103a4 6 Timeout reactivateColour;
quickeman 0:23508e7103a4 7 Timeout solenoidBackOn;
quickeman 0:23508e7103a4 8
quickeman 0:23508e7103a4 9 int main() {
quickeman 0:23508e7103a4 10 //printf("Program has started\n\r");
quickeman 0:23508e7103a4 11
quickeman 0:23508e7103a4 12 ColourSensor ColourSensor(PTC16, PTC13, PTE20);
quickeman 0:23508e7103a4 13
quickeman 0:23508e7103a4 14 // Set call rate of colour detection function
quickeman 0:23508e7103a4 15 detectColour.attach(callback(&ColourSensor, &ColourSensor::readIf), 0.5);
quickeman 0:23508e7103a4 16
quickeman 0:23508e7103a4 17 // int firstLoop = 1;
quickeman 0:23508e7103a4 18
quickeman 0:23508e7103a4 19 while (1) {
quickeman 0:23508e7103a4 20 // main program loop
quickeman 0:23508e7103a4 21 /*
quickeman 0:23508e7103a4 22 if (firstLoop) {
quickeman 0:23508e7103a4 23 printf("Main loop has started\n\r");
quickeman 0:23508e7103a4 24 firstLoop--;
quickeman 0:23508e7103a4 25 }
quickeman 0:23508e7103a4 26 */
quickeman 0:23508e7103a4 27
quickeman 0:23508e7103a4 28 if (ColourSensor.toggleConst && ColourSensor.toggleA) {
quickeman 0:23508e7103a4 29 // Call readColSenWhich after x seconds
quickeman 0:23508e7103a4 30 //printf("Toggle A\n\r");
quickeman 0:23508e7103a4 31
quickeman 0:23508e7103a4 32 readColour.attach(callback(&ColourSensor, &ColourSensor::readWhich), 0.2);
quickeman 0:23508e7103a4 33
quickeman 0:23508e7103a4 34 ColourSensor.toggleA = 0;
quickeman 0:23508e7103a4 35 }
quickeman 0:23508e7103a4 36
quickeman 0:23508e7103a4 37 if (ColourSensor.toggleConst && ColourSensor.toggleB) {
quickeman 0:23508e7103a4 38 // Process colour sensor data
quickeman 0:23508e7103a4 39 //printf("Toggle B\n\r");
quickeman 0:23508e7103a4 40
quickeman 0:23508e7103a4 41 ColourSensor.process();
quickeman 0:23508e7103a4 42
quickeman 0:23508e7103a4 43 if(ColourSensor.flagColour) {
quickeman 0:23508e7103a4 44 // If dropped disk
quickeman 0:23508e7103a4 45 solenoidBackOn.attach(callback(&ColourSensor, &ColourSensor::solenoidOn), 2.0);
quickeman 0:23508e7103a4 46 }
quickeman 0:23508e7103a4 47
quickeman 0:23508e7103a4 48 reactivateColour.attach(callback(&ColourSensor, &ColourSensor::makeColourActive), 2.0);
quickeman 0:23508e7103a4 49
quickeman 0:23508e7103a4 50 ColourSensor.toggleB = 0;
quickeman 0:23508e7103a4 51 }
quickeman 0:23508e7103a4 52 }
quickeman 0:23508e7103a4 53 }