Factory Monitor

Dependencies:   mbed

factory sense HQ

Committer:
melmon
Date:
Sat Aug 15 12:47:10 2015 +0000
Revision:
4:7a50e0818a47
Parent:
3:cff56a809a37
Child:
5:faa8843f3990
Code now compiles, with structured main loop; ; Still need to setup LastSensor State

Who changed what in which revision?

UserRevisionLine numberNew contents of line
melmon 0:a521da10b15a 1 #include "mbed.h"
melmon 0:a521da10b15a 2
melmon 4:7a50e0818a47 3 #define no_pins 2
melmon 4:7a50e0818a47 4 #define Inputs Values[0]
melmon 4:7a50e0818a47 5 #define Outputs Values[1]
melmon 4:7a50e0818a47 6 #define Rejects Values[2]
melmon 4:7a50e0818a47 7
melmon 4:7a50e0818a47 8
melmon 0:a521da10b15a 9 DigitalIn sensorPin1(p5);
Nick123 1:b52588ac9aae 10 DigitalIn sensorPin2(p6);
Nick123 1:b52588ac9aae 11 //variables
melmon 0:a521da10b15a 12
melmon 0:a521da10b15a 13 // initialize serial communication:
melmon 0:a521da10b15a 14 Serial pc(USBTX, USBRX);
melmon 0:a521da10b15a 15
Nick123 2:cff64a27ae9d 16 class PinCheck {
melmon 3:cff56a809a37 17
Nick123 2:cff64a27ae9d 18 public:
Nick123 2:cff64a27ae9d 19 PinCheck(PinName pin) : _pin(pin) {
melmon 3:cff56a809a37 20
Nick123 2:cff64a27ae9d 21 }
Nick123 2:cff64a27ae9d 22
Nick123 2:cff64a27ae9d 23
melmon 4:7a50e0818a47 24 int Go_and_check(int a) {
melmon 3:cff56a809a37 25 sensorState = _pin; // read the sensor input pin:
melmon 4:7a50e0818a47 26 int zero = 0;
melmon 4:7a50e0818a47 27 if (sensorState != lastSensorState[a]) // compare the sensorState to its previous state
melmon 0:a521da10b15a 28 {
melmon 0:a521da10b15a 29 // if the state has changed, check to see if it is a change from high to low or low to high
melmon 3:cff56a809a37 30 if (sensorState == 1){ // if the current state is HIGH then increment the counter
melmon 3:cff56a809a37 31 return sensorState;
melmon 0:a521da10b15a 32 }
melmon 0:a521da10b15a 33
Nick123 1:b52588ac9aae 34 else { // if the current state is LOW then ignore
melmon 4:7a50e0818a47 35 return zero;
melmon 0:a521da10b15a 36 }
melmon 0:a521da10b15a 37 }
melmon 4:7a50e0818a47 38 return zero;
Nick123 1:b52588ac9aae 39 }
melmon 3:cff56a809a37 40
Nick123 2:cff64a27ae9d 41 private:
Nick123 2:cff64a27ae9d 42 DigitalIn _pin;
melmon 4:7a50e0818a47 43 int sensorState;
melmon 4:7a50e0818a47 44 int lastSensorState[no_pins];
melmon 4:7a50e0818a47 45
melmon 3:cff56a809a37 46
Nick123 2:cff64a27ae9d 47 };
Nick123 2:cff64a27ae9d 48
melmon 4:7a50e0818a47 49 PinCheck inputs(p6);
melmon 4:7a50e0818a47 50 PinCheck outputs(p5);
Nick123 1:b52588ac9aae 51
Nick123 1:b52588ac9aae 52 int main() {
melmon 4:7a50e0818a47 53
melmon 4:7a50e0818a47 54 int Values[3]; // counter for the number of products passing through
Nick123 1:b52588ac9aae 55
Nick123 1:b52588ac9aae 56 while(1)
Nick123 1:b52588ac9aae 57 {
melmon 4:7a50e0818a47 58
melmon 4:7a50e0818a47 59 for(int i = 0; i < no_pins; i ++){
melmon 4:7a50e0818a47 60 if (i == Inputs){ Values[i] += inputs.Go_and_check(i); }
melmon 4:7a50e0818a47 61 if (i == Outputs){ Values[i] += outputs.Go_and_check(i); }
melmon 4:7a50e0818a47 62
melmon 4:7a50e0818a47 63 };
Nick123 1:b52588ac9aae 64
melmon 0:a521da10b15a 65 }
melmon 0:a521da10b15a 66 }