LED1602学号以2Hz闪烁3秒后进入系统,oled显示姓名3秒后进入系统,上位机发送学号后两位到单片机,3秒后单片机进入正常系统

LED1602学号以2Hz闪烁3秒后进入系统,oled显示姓名3秒后进入系统,上位机发送学号后两位到单片机,3秒后单片机进入正常系统

这是一个简单的流程控制问题,可以使用Arduino编程语言来实现。

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED显示屏宽度
#define SCREEN_HEIGHT 64 // OLED显示屏高度

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

const int ledPin = 13; // LED灯引脚
const int oledDelay = 3000; // OLED显示延迟时间
const int ledBlinkDelay = 500; // LED闪烁延迟时间
const int systemDelay = 3000; // 进入系统延迟时间

void setup() {
  pinMode(ledPin, OUTPUT);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // 初始化OLED显示屏
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.setCursor(0, 0);
  display.println("姓名"); // 在OLED上显示姓名
  display.display();
  delay(oledDelay);
  display.clearDisplay();
  display.display();
}

void loop() {
  blinkLED(2); // LED闪烁
  displaySystemNumber(); // 显示学号后两位
  delay(systemDelay);
  // 进入正常系统
}

void blinkLED(int times) {
  for (int i = 0; i < times; i++) {
    digitalWrite(ledPin, HIGH);
    delay(ledBlinkDelay);
    digitalWrite(ledPin, LOW);
    delay(ledBlinkDelay);
  }
}

void displaySystemNumber() {
  display.clearDisplay();
  display.setCursor(0, 0);
  display.println("学号后两位"); // 在OLED上显示学号后两位
  display.display();
}

请根据实际情况修改代码中的LED引脚、OLED显示屏类型和I2C地址等参数。