#define OnboradLED 2
#define LED1 14
#define LED2 27
#define LED3 32
#define LED4 33
#define LED5 25
#define LED6 26
#define SW1 12
#define SW2 13
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
unsigned long last_time = 0;
unsigned long last_time1 = 0;
unsigned long last_time2 = 0;
int state_led = 0;
void setup(){
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);
Serial.begin(38400);
pinMode(OnboradLED, OUTPUT);
Serial.println("START Firmware,111,38400");
//
Serial.println("I2C Scanner อุปกรณ์ที่เชื่อมต่อ:");
scanI2CDevices();
}
//ข้อ3สเเกนหาอุปกรณ์
void scanI2CDevices() {
byte error, address;
int deviceCount = 0;
for (address = 1; address < 127; address++) {
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0) {
Serial.print("Address 0x");
if (address < 16) {
Serial.print("0");
}
Serial.print(address, HEX);
Serial.println(" (พบอุปกรณ์)");
deviceCount++;
}
else if (error == 4) {
Serial.print("Address 0x");
if (address < 16) {
Serial.print("0");
}
Serial.println(address, HEX);
Serial.println(" (ไม่พบอุปกรณ์)");
}
}
if (deviceCount == 0) {
Serial.println("ไม่พบอุปกรณ์ที่เชื่อมต่อผ่าน I2C.");
}
}
//ข้อเเรก
void loop() {
if ( millis() - last_time > 500) {
digitalWrite(OnboradLED, !digitalRead(2));
last_time = millis();
}//3อันหลังข้อ4-5
if (digitalRead(SW1) == 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();
}
}
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 > 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();
}
}
}