-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathRGB_NEW_HOTNESS.ino
134 lines (115 loc) · 3.14 KB
/
RGB_NEW_HOTNESS.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
127
128
129
130
131
132
133
134
// Dan Bevilacqua, Michael Garlak, Nate Hahn
// Tie Selector
// Uses two TCS3200 Color Sensors, 360* Servo and Arduino Uno R3 v
// Kent FashionTech Hackathon
// 1/27/2017
#include <Servo.h>
Servo rackServo;
// ---------------------- SERVO PIN ---------------------------------
const int sPin = 22;
// ---------------------- SHIRT SENSOR PORTS ------------------------
const int ss0 = 2;
const int ss1 = 3;
const int ss2 = 5;
const int ss3 = 6;
const int sout = 4;
// --------------------- TIE SENSOR PORTS ------------------------
const int ts0 = 8;
const int ts1 = 9;
const int ts2 = 10;
const int ts3 = 11;
const int tout = 12;
// -----------------------TIE SELECTION VARIABLES--------------------
int cycleCount = 0;
bool foundTie = false;
// -------------------- COLOR VARIABLES -----------------------------
int dataR, dataG, dataB;
enum color {red, orange, yellow, green, blue, purple, black};
void setup() {
// SHIRT SENSOR
pinMode(ss0, OUTPUT);
pinMode(ss1, OUTPUT);
pinMode(ss2, OUTPUT);
pinMode(ss3, OUTPUT);
pinMode(sout, INPUT);
digitalWrite(ss0, HIGH);
digitalWrite(ss1, HIGH);
// TIE SENSOR
pinMode(ts0, OUTPUT);
pinMode(ts1, OUTPUT);
pinMode(ts2, OUTPUT);
pinMode(ts3, OUTPUT);
pinMode(tout, INPUT);
digitalWrite(ts0, HIGH);
digitalWrite(ts1, HIGH);
// SERVO
rackServo.attach(sPin);
// SERIAL
Serial.begin(9600);
}
void loop() {
int shirtColor;
while (true) {
// SENSE SHIRT COLOR
senseColor(ss2, ss3, sout);
Serial.print(dataR);
Serial.print(", ");
Serial.print(dataG);
Serial.print(", ");
Serial.print(dataB);
Serial.print("\n");
if (sen2Red()) {
shirtColor = red;
break;
}
if (sen2Orange()) {
shirtColor = orange;
break;
}
if (sen2Yellow()) {
shirtColor = yellow;
break;
}
if (sen2Green()) {
shirtColor = green; // CHANGE BACK TO SEN1COLORS
break;
}
if (sen2Blue()) {
shirtColor = blue;
break;
}
if (sen2Purple()) {
shirtColor = purple;
break;
}
if (sen2Black()) {
shirtColor = black;
break;
}
}
Serial.print(shirtColor);
Serial.print("\n");
// find color to match
foundTie = tieSelect(shirtColor);
// if tie is found, do something
if (foundTie) Serial.print("Looking Dapper Laddy!\n");
// else SOL
else Serial.print("SORRY :(\n");
while (true) {};
// spin servo until tie of color is found
}
/*---------------------------SENSE THE COLOR------------------------------*/
void senseColor(int s2Port, int s3Port, int oPort) {
//****************SENSE RED COLOR********************************
digitalWrite(s2Port, LOW);
digitalWrite(s3Port, LOW);
dataR = pulseIn(oPort, LOW);
//**************** SENSE GREEN COLOR*******************************
digitalWrite(s2Port, LOW);
digitalWrite(s3Port, HIGH);
dataG = pulseIn(oPort, LOW);
//**************** SENSE BLUE COLOR*******************************
digitalWrite(s2Port, HIGH);
digitalWrite(s3Port, HIGH);
dataB = pulseIn(oPort, LOW);
}