#include <Wire.h>
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET -1
Adafruit_SSD1306 display(OLED_RESET);
#include <Adafruit_NeoPixel.h>
#define NUMSLEDs 2
#define PINSLEDs 10
Adafruit_NeoPixel SLEDs = Adafruit_NeoPixel(NUMSLEDs,PINSLEDs, NEO_RGB + NEO_KHZ800);
int index1 = 0;
int index2 = 0;
int index3 = 0;
int index4 = 0;
int sel = 0;
unsigned long changeTime;
void DisplayOLED(String Line1,String Line2,String Line3)
{
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(0,0);display.print(Line1);
display.setCursor(0,8);display.print(Line2);
display.setCursor(0,16);display.print(Line3);
display.display();
}
int AnalogRead()
{
int tempRead;
int anaRead = analogRead(A0);
delay(100);
if(anaRead <= 300) tempRead = 0;
if(anaRead > 300 && anaRead < 600) tempRead = 1;
if(anaRead > 600) tempRead = 2;
Serial.println(anaRead);
return tempRead;
}
void clrOut()
{
DisplayOLED("OUT"," OUT"," OUT");
delay(1000);
sel = 0;
digitalWrite(D0,LOW);
digitalWrite(D4,LOW);
digitalWrite(D5,LOW);
}
void setup()
{
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3c);
pinMode(D1,INPUT);
pinMode(D0,OUTPUT);
pinMode(D4,OUTPUT);
pinMode(D5,OUTPUT);
SLEDs.begin();
SLEDs.show();
}
void loop()
{
index1 = AnalogRead();
if(digitalRead(D1) ==0)
{
while(digitalRead(D1) ==0)
{
delay(10);
}
sel = 1;
if(index1 == 0)
{
while(index1 == 0 && sel == 1)
{
index2 = AnalogRead();
if(index2 == 0)
{
DisplayOLED("->RED"," GREEN"," BLUE");
SLEDs.setPixelColor(0, SLEDs.Color(255, 0, 0)); // แดง
//SLEDs.setPixelColor(0, SLEDs.Color(0, 255, 64)); // เขียว
//SLEDs.setPixelColor(0, SLEDs.Color(255, 255, 0)); // เหลือง
SLEDs.show();
}
else if(index2 == 1)
{
DisplayOLED(" RED","->GREEN"," BLUE");
SLEDs.setPixelColor(0, SLEDs.Color(0, 255, 64));
SLEDs.show();
}
else if(index2 == 2)
{
DisplayOLED(" RED"," GREEN","->BLUE");
SLEDs.setPixelColor(0, SLEDs.Color(0, 0, 255)); // น้ำเงิน
SLEDs.show();
}
}
}
else if (index1 == 1)
{
while(index1 == 1 && sel == 1)
{
index3 = AnalogRead();
if(index3 == 0)
{
DisplayOLED("->RED"," GREEN"," BLUE");
SLEDs.setPixelColor(1, SLEDs.Color(255, 0, 0)); // แดง
SLEDs.show();
}
else if(index3 == 1)
{
DisplayOLED(" RED","->GREEN"," BLUE");
SLEDs.setPixelColor(1, SLEDs.Color(0, 255, 64));
SLEDs.show();
}
else if(index3 == 2)
{
DisplayOLED(" RED"," GREEN","->BLUE");
SLEDs.setPixelColor(1, SLEDs.Color(0, 0, 255)); // น้ำเงิน
SLEDs.show();
}
}
}
else if (index1 == 2)
{
while(index1 == 2 && sel == 1)
{
index4 = AnalogRead();
if(index4 == 0)
{
DisplayOLED("->LED1"," LED2"," LED3");
digitalWrite(D0,HIGH); digitalWrite(D5,LOW); digitalWrite(D4,LOW);
}
else if(index4 == 1)
{
DisplayOLED(" LED1","->LED2"," LED3");
digitalWrite(D0,LOW); digitalWrite(D5,HIGH); digitalWrite(D4,LOW);
}
else if(index4 == 2)
{
DisplayOLED(" LED1"," LED2","->LED3");
digitalWrite(D0,LOW); digitalWrite(D5,LOW); digitalWrite(D4,HIGH);
}
}
}
}
else
{
if(index1 == 0)DisplayOLED("->SLED1"," SLED2"," LED");
if(index1 == 1)DisplayOLED(" SLED1","->SLED2"," LED");
if(index1 == 2)DisplayOLED(" SLED1"," SLED2","->LED");
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น