summaryrefslogtreecommitdiff
path: root/OLD_CODE_REMOVE_LATER/debug/IR/IR_sens/IR_sens.ino
blob: 85089d4be4273787dc0eb0bfdf40324ce4d99ef3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
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.println(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);

}