#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
long lasttime1sec = 0;
long lasttime500ms = 0;
int sectime = 0;
int mintime = 0;
#define LED1 14
#define LED2 27
#define LED3 32
#define LED4 33
#define LED5 25
#define LED6 26
#define SW1 12
#define SW2 13
#define LDR 39
#define OnboradLED 2
unsigned long last_time = 0;
unsigned long last_time1 = 0;
unsigned long last_time2 = 0;
int n = 0;
int ldrValue = 2000;
bool toggle = true;
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);
void setup() {
Serial.begin(38400);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
}
pinMode(OnboradLED, OUTPUT);
pinMode(SW1, INPUT_PULLUP);
pinMode(SW2, INPUT_PULLUP);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
display.display();
delay(2000);
display.clearDisplay();
// Test Draw Char
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(F("HELLO"));
display.setCursor(0, 15);
display.println(F("ESP32"));
display.display();
delay(2000);
Wire.begin();
while (!Serial);
Serial.println("\nI2C Scanner");
Serial.println("Scanning I2C devices");
Serial.println("START Firmware,064,38400");
}
void loop() {
ldrValue = analogRead(LDR);
Serial.println(ldrValue * 1024 / 4095);
if ( millis() - last_time > 500) {
digitalWrite(OnboradLED, !digitalRead(OnboradLED));
last_time = millis();
}
if (digitalRead(SW1) == LOW ) {
if ( millis() - last_time1 > 1000) {
digitalWrite(LED1, !digitalRead(LED1));
digitalWrite(LED2, !digitalRead(LED2));
digitalWrite(LED3, !digitalRead(LED3));
digitalWrite(LED4, !digitalRead(LED4));
digitalWrite(LED5, !digitalRead(LED5));
digitalWrite(LED6, !digitalRead(LED6));
last_time1 = millis();
}
}
if (digitalRead(SW2) == LOW ) {
if ( millis() - last_time2 > 2000) {
digitalWrite(LED1, !digitalRead(LED1));
digitalWrite(LED2, !digitalRead(LED2));
digitalWrite(LED3, !digitalRead(LED3));
digitalWrite(LED4, !digitalRead(LED4));
digitalWrite(LED5, !digitalRead(LED5));
digitalWrite(LED6, !digitalRead(LED6));
last_time2 = millis();
}
}
if (digitalRead(SW1) == LOW && digitalRead(SW2) == LOW ) {
if ( millis() - last_time1 > 500) {
digitalWrite(LED1, !digitalRead(LED1));
digitalWrite(LED2, !digitalRead(LED2));
digitalWrite(LED3, !digitalRead(LED3));
digitalWrite(LED4, !digitalRead(LED4));
digitalWrite(LED5, !digitalRead(LED5));
digitalWrite(LED6, !digitalRead(LED6));
last_time1 = millis();
}
}
// byte error, address;
// int nDevices;
// Serial.println("Scanning...");
// nDevices = 0;
// for (address = 1; address < 127; address++ )
// {
// Wire.beginTransmission(address);
// error = Wire.endTransmission();
// if (error == 0) {
// Serial.print("I2C device found at address 0x");
// if (address < 16)
// Serial.print("0");
// Serial.print(address, HEX);
// Serial.println(" !");
// nDevices++;
// }
// else if (error == 4) {
// Serial.print("Unknown error at address 0x");
// if (address < 16)
// Serial.print("0");
// Serial.println(address, HEX);
// }
// }
// if (nDevices == 0)
// Serial.println("No I2C devices found\n");
// else
// Serial.println("done\n");
// delay(5000);
}