diff options
Diffstat (limited to 'CODE/debug/IR/IR_sens1/IR_sens1.ino')
| -rw-r--r-- | CODE/debug/IR/IR_sens1/IR_sens1.ino | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/CODE/debug/IR/IR_sens1/IR_sens1.ino b/CODE/debug/IR/IR_sens1/IR_sens1.ino new file mode 100644 index 0000000..df4a5fc --- /dev/null +++ b/CODE/debug/IR/IR_sens1/IR_sens1.ino @@ -0,0 +1,149 @@ +int ir1 = 0; +int ir2 = 1; +int ir3 = 9; +int ir4 = 2; +int ir5 = 3; +int ir6 = 4; +int ir7 = 5; +int ir8 = 8; + +int dir1 = 1; // data IR1 +int dir2 = 1; // data IR2 +int dir3 = 1; // etc +int dir4 = 1; +int dir5 = 1; +int dir6 = 1; +int dir7 = 1; +int dir8 = 1; + +volatile long IRcount1 = 0; +volatile long IRcount2 = 0; +volatile long IRcount3 = 0; +volatile long IRcount4 = 0; +volatile long IRcount5 = 0; +volatile long IRcount6 = 0; +volatile long IRcount7 = 0; +volatile long IRcount8 = 0; + +void setup() { + pinMode(ir1, INPUT); + pinMode(ir2, INPUT); + pinMode(ir3, INPUT); + pinMode(ir4, INPUT); + pinMode(ir5, INPUT); + pinMode(ir6, INPUT); + pinMode(ir7, INPUT); + pinMode(ir8, INPUT); + + Serial.begin(9600); + Serial1.begin(9600); + Serial.println("start"); + Serial1.println("start"); + + attachInterrupt(digitalPinToInterrupt(ir1), IRtrigger1, CHANGE); + attachInterrupt(digitalPinToInterrupt(ir2), IRtrigger2, CHANGE); + attachInterrupt(digitalPinToInterrupt(ir3), IRtrigger3, CHANGE); + attachInterrupt(digitalPinToInterrupt(ir4), IRtrigger4, CHANGE); + attachInterrupt(digitalPinToInterrupt(ir5), IRtrigger5, CHANGE); + attachInterrupt(digitalPinToInterrupt(ir6), IRtrigger6, CHANGE); + attachInterrupt(digitalPinToInterrupt(ir7), IRtrigger7, CHANGE); + attachInterrupt(digitalPinToInterrupt(ir8), IRtrigger8, CHANGE); + + Serial.println("Starting loop"); + Serial1.println("Starting loop"); +} + +void IRtrigger1() { + IRcount1++; +} +void IRtrigger2() { + IRcount2++; +} +void IRtrigger3() { + IRcount3++; +} +void IRtrigger4() { + IRcount4++; +} +void IRtrigger5() { + IRcount5++; +} +void IRtrigger6() { + IRcount6++; +} +void IRtrigger7() { + IRcount7++; +} +void IRtrigger8() { + IRcount8++; +} + +void loop() { + Serial.print("ir 1 changes: "); + Serial.print(IRcount1); + Serial.print(", ir 2 changes: "); + Serial.print(IRcount2); + Serial.print(", ir 3 changes: "); + Serial.print(IRcount3); + Serial.print(", ir 4 changes: "); + Serial.print(IRcount4); + Serial.print(", ir 5 changes: "); + Serial.print(IRcount5); + Serial.print(", ir 6 changes: "); + Serial.print(IRcount6); + Serial.print(", ir 7 changes: "); + Serial.print(IRcount7); + Serial.print(", ir 8 changes: "); + Serial.print(IRcount8); + + Serial1.print("ir 1 changes: "); + Serial1.print(IRcount1); + Serial1.print(", ir 2 changes: "); + Serial1.print(IRcount2); + Serial1.print(", ir 3 changes: "); + Serial1.print(IRcount3); + Serial1.print(", ir 4 changes: "); + Serial1.print(IRcount4); + Serial1.print(", ir 5 changes: "); + Serial1.print(IRcount5); + Serial1.print(", ir 6 changes: "); + Serial1.print(IRcount6); + Serial1.print(", ir 7 changes: "); + Serial1.print(IRcount7); + Serial1.print(", ir 8 changes: "); + Serial1.print(IRcount8); + + volatile long IRcounts[] = {IRcount1, IRcount2, IRcount3, IRcount4, IRcount5, IRcount6, IRcount7, IRcount8}; + long maxCount = IRcounts[0]; + int highessensor = 1; + for (int i = 0; i < 7; ++i) { + if (IRcounts[i] > maxCount) { + maxCount = IRcounts[i]; + highessensor = i + 1; + } + } + Serial.print("Ball is at sensor: "); + Serial.print(highessensor); + Serial.print(", with value of "); + Serial.println(maxCount); + + Serial1.print("s"); + Serial1.print(highessensor); + Serial1.print(", "); + Serial1.println(maxCount); + Serial1.print("e"); + + IRcount1 = 0; + IRcount2 = 0; + IRcount3 = 0; + IRcount4 = 0; + IRcount5 = 0; + IRcount6 = 0; + IRcount7 = 0; + IRcount8 = 0; + + + + delay(250); + +} |
