#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
int m1a = 0;
int p1a = 0;
int p2a = 0;
int p3a = 0;
int p4a = 0;
int red = 0;
int ylw = 0;
int grn = 0;
int blu = 0;
int pur = 0;
int wht = 0;
int led[5] = {6, 5, 4, 3, 2};
unsigned long skr = 0;
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Initial conditions ");
lcd.setCursor(0, 1);
lcd.print("Red: | Ylw: ");
lcd.setCursor(0, 2);
lcd.print("Grn: | Blu: ");
lcd.setCursor(0, 3);
lcd.print("Pur: | Wht: ");
pinMode(12, INPUT_PULLUP);
pinMode(A0, INPUT_PULLUP);
pinMode(A1, INPUT_PULLUP);
pinMode(A2, INPUT_PULLUP);
pinMode(A3, INPUT_PULLUP);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void loop() {
int m1 = !digitalRead(12);
int p1 = !digitalRead(A0);
int p2 = !digitalRead(A1);
int p3 = !digitalRead(A2);
int p4 = !digitalRead(A3);
if (m1 != m1a) {
if (m1) Serial.println("a");
else Serial.println("b");
}
m1a = m1;
if (p1 != p1a && p1) Serial.println("c");
p1a = p1;
if (p2 != p2a && p2) Serial.println("d");
p2a = p2;
if (p3 != p3a && p3) Serial.println("e");
p3a = p3;
if (p4 != p4a && p4) Serial.println("f");
p4a = p4;
if (millis() - skr > 100) {
skr = millis();
lcd.setCursor(5, 1);
if (red < 10) lcd.print(" ");
if (red < 100) lcd.print(" ");
lcd.print(red);
lcd.setCursor(16, 1);
if (ylw < 10) lcd.print(" ");
if (ylw < 100) lcd.print(" ");
lcd.print(ylw);
lcd.setCursor(5, 2);
if (grn < 10) lcd.print(" ");
if (grn < 100) lcd.print(" ");
lcd.print(grn);
lcd.setCursor(16, 2);
if (blu < 10) lcd.print(" ");
if (blu < 100) lcd.print(" ");
lcd.print(blu);
lcd.setCursor(5, 3);
if (pur < 10) lcd.print(" ");
if (pur < 100) lcd.print(" ");
lcd.print(pur);
lcd.setCursor(16, 3);
if (wht < 10) lcd.print(" ");
if (wht < 100) lcd.print(" ");
lcd.print(wht);
}
}
void serialEvent() {
while (Serial.available()) {
int a = Serial.parseInt();//conditions
int b = Serial.parseInt();//color
if (Serial.read() == char(13)) {
lcd.setCursor(0, 0);
switch (a) {
case 0:
lcd.print("Initial conditions ");
break;
case 1:
lcd.print("Item appears ");
break;
case 2:
lcd.print("Brought to the sensr");
break;
case 3:
lcd.print("Put into the cntainr");
switch (b) {
case 0:
analogWrite(9, 255);
analogWrite(11, 0);
analogWrite(10, 0);
red++;
break;
case 1:
analogWrite(9, 255);
analogWrite(11, 255);
analogWrite(10, 0);
ylw++;
break;
case 2:
analogWrite(9, 0);
analogWrite(11, 128);
analogWrite(10, 0);
grn++;
break;
case 3:
analogWrite(9, 0);
analogWrite(11, 0);
analogWrite(10, 255);
blu++;
break;
case 4:
analogWrite(9, 128);
analogWrite(11, 0);
analogWrite(10, 128);
pur++;
break;
case 5:
analogWrite(9, 255);
analogWrite(11, 255);
analogWrite(10, 255);
wht++;
break;
}
for (int i = 0; i < 5; i++) {
if (b == i) digitalWrite(led[i], HIGH);
else digitalWrite(led[i], LOW);
}
break;
case 4:
lcd.print("Reset ");
break;
}
}
}
}
A1
P2
P3
P4
P1
A2
A3
A4
A5
Color
Man/Aut