-
Notifications
You must be signed in to change notification settings - Fork 0
/
mixel_arduino.ino
126 lines (115 loc) · 2.81 KB
/
mixel_arduino.ino
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
#include <Arduino.h>
#include <Wire.h>
#include <SPI.h>
//#include "Adafruit_VL6180X.h"
//Adafruit_VL6180X vl = Adafruit_VL6180X(); //initalize time of flight sensor
int incomingByte = 0;
char incomingChar = 'n';
int initialized = 0;
int NORTH = 5;
int SOUTH = 3;
int HEX_N = 78;
int HEX_S = 83;
int DIR = 7;
// Timers
int ON_TIME = 600;
void setup()
{
pinMode(A0, INPUT);
pinMode(DIR, INPUT);
Serial.begin(115200);
while (!Serial)// | ! vl.begin() )
{
delay(1);
}
pinMode(NORTH, OUTPUT);
pinMode(SOUTH, OUTPUT);
// Make sure gates start off
digitalWrite(NORTH, LOW);
digitalWrite(SOUTH, LOW);
}
void loop()
{
/**uint8_t range = vl.readRange();
uint8_t status = vl.readRangeStatus();**/
if (initialized == 0) {
if(Serial.available() > 0) {
incomingChar = Serial.read();
if (incomingChar == 's') {
initialized = 1;
}
else if (incomingChar == 'p') {
initialized = 2;
}
else{
initialized = 3;
}
}
}
else if(initialized == 1){
if(Serial.available() > 0) {
incomingChar = Serial.read();
delay(3000);
if(incomingChar == 'x'){
Serial.println("exit");
initialized = 0;
}
else{
Serial.println(analogRead(A0));
}
}
}
else if(initialized == 2){
if (Serial.available() > 0){
incomingChar = Serial.read();
if(incomingChar == 'x'){
Serial.println("exit");
//Serial.println("exit");
initialized = 0;
delay(100);
}
else if (incomingChar == 'N'){ // If "N" is read from Serial
digitalWrite(NORTH, HIGH); // Turn on the NORTH gate
delay(ON_TIME); // wait 700 millisecond
digitalWrite(NORTH, LOW); // Turn off the gate
Serial.println("North!"); // Send messsage
delay(100);
}
else if (incomingChar == 'S'){ // If "S" is read from Serial
digitalWrite(SOUTH, HIGH); // Same idea as in the if block...
delay(ON_TIME);
digitalWrite(SOUTH, LOW);
Serial.println("South!");
delay(100);
}
}
}
else if (initialized == 3){
// TODO: incorporate flightsensor module
//while(Serial.available()==0){
//}
Serial.print(digitalRead(DIR));
Serial.print(" , ");
Serial.println(analogRead(A0));
//Serial.print("R");
//Serial.println(1);
if(Serial.available() >0){
incomingChar = Serial.read();
}
if(incomingChar == 'x'){
initialized = 0;
}
/**
if (status == VL6180X_ERROR_NONE)
{
Serial.print("R");
Serial.println(range);
}
else
{
Serial.print("E");
Serial.println(status);
}**/
}
delay(50);
}