#include <Wire.h>
#include "EEPROM.h"
#include <Adafruit_SSD1306.h>
#define led2 27
#define led3 14
#define led4 32
#define led5 33
#define led6 25
#define led7 26
#define sw1 5
#define sw2 18
#define EEPROM_SIZE 1000
int nDevices = 0;
unsigned long last_time = 0;
unsigned long last_time2 = 0;
unsigned long last_time5 = 0;
byte error, address;
//const int resolution = 12;
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(2, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(sw1, INPUT_PULLUP);
pinMode(sw2, INPUT_PULLUP);
Wire.begin();
while (!Serial);
Serial.println("\nI2C Scanner");
Serial.println("Scanning I2C devices");
Serial.println("START Firmware,901,19200");
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");
}
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
}
display.display();
delay(2000);
display.clearDisplay();
// Test Draw Char
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(F("START Firmware"));
display.display();
delay(2000);
}
void loop() {
// put your main code here, to run repeatedly:
if (millis() - last_time >= 500) {
digitalWrite(2, !digitalRead(2));
last_time = millis();
}
if(digitalRead(sw1)==LOW && digitalRead(sw2)==LOW){
if(millis()- last_time2 >1000){
digitalWrite(led2,!digitalRead(led2));
digitalWrite(led3,!digitalRead(led3));
digitalWrite(led4,!digitalRead(led4));
digitalWrite(led5,!digitalRead(led5));
digitalWrite(led6,!digitalRead(led6));
digitalWrite(led7,!digitalRead(led7));
EEPROM.writeUChar(0,digitalRead(led7));
EEPROM.commit();
last_time2 = millis();
Serial.println("DONUT");
}
}
//delay(10); // this speeds up the simulation
}