Core-ESP32 C3驱动SSD1306为什么总是点不亮?

我用的是Core-ESP32 C3板子,驱动SSD1306总是点不亮!
在这里插入图片描述

在这里插入图片描述

网上各种代码跑遍还是不行。
更改了各种引脚还是不行
在这里插入图片描述
最后引脚还是这两个
只不过需要一句I2C引脚初始化代码!!!

Wire.begin(A4, A5);

以下是RoboEyes_SSD1306_ESP32_Motor.ino修改后可以显示的完整代码,请按需截取

#include <Adafruit_SSD1306.h>
#include <FluxGarage_RoboEyes.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET  -1

#define LF  0
#define LB  1
#define RB  2
#define RF  3

#define Stop       0
#define BackWard   1
#define ForWard    2
#define FullLeft   3
#define FullRight  4
#define BackLeft   5
#define BackRight  6
#define ForLeft    7
#define ForRight   8

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
RoboEyes<Adafruit_SSD1306> roboEyes(display); 

byte mood = 0;

void setup() {
  // 初始化I²C总线(SDA:21, SCL:22)
  Wire.begin(A4, A5);

  pinMode(LF, OUTPUT);
  pinMode(LB, OUTPUT);
  pinMode(RF, OUTPUT);
  pinMode(RB, OUTPUT);
  delay(3000);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  roboEyes.begin(SCREEN_WIDTH, SCREEN_HEIGHT, 100);   // screen-width, screen-height, max framerate
  roboEyes.setAutoblinker(ON, 3, 2);                  // Start auto blinker animation cycle -> bool active, int interval, int variation -> turn on/off, set interval between each blink in full seconds, set range for random interval variation in full seconds
  roboEyes.setIdleMode(ON, 2, 2);                     // Start idle animation cycle (eyes looking in random directions) -> turn on/off, set interval between each eye repositioning in full seconds, set range for random time interval variation in full seconds
  roboEyes.setMood(DEFAULT);

}


void loop() {
  roboEyes.update();
  long i = random(100000);
  if (i==1){
    MOTOR(random(9),random(5,50),random(10,100),random(20));
  }
}

void MOTOR(byte c,int t1,int t2,int Time){
  for (int i=0;i<Time;i++){
    switch (c) {
      case 0:
        digitalWrite(LF, LOW);
        digitalWrite(LB, LOW);
        digitalWrite(RF, LOW);
        digitalWrite(RB, LOW);
      break;
      case 1:
        digitalWrite(LF, LOW);
        digitalWrite(LB, HIGH);
        digitalWrite(RF, LOW);
        digitalWrite(RB, HIGH);
      break;
      case 2:
        digitalWrite(LF, HIGH);
        digitalWrite(LB, LOW);
        digitalWrite(RF, HIGH);
        digitalWrite(RB, LOW);
      break;
      case 3:
        digitalWrite(LF, LOW);
        digitalWrite(LB, HIGH);
        digitalWrite(RF, HIGH);
        digitalWrite(RB, LOW);
      break;
      case 4:
        digitalWrite(LF, HIGH);
        digitalWrite(LB, LOW);
        digitalWrite(RF, LOW);
        digitalWrite(RB, HIGH);
      break;
      case 5:
        digitalWrite(LF, LOW);
        digitalWrite(LB, HIGH);
        digitalWrite(RF, LOW);
        digitalWrite(RB, LOW);
      break; 
      case 6:
        digitalWrite(LF, LOW);
        digitalWrite(LB, LOW);
        digitalWrite(RF, LOW);
        digitalWrite(RB, HIGH);
      break; 
      case 7:
        digitalWrite(LF, HIGH);
        digitalWrite(LB, LOW);
        digitalWrite(RF, LOW);
        digitalWrite(RB, LOW);
      break; 
      case 8:
        digitalWrite(LF, LOW);
        digitalWrite(LB, LOW);
        digitalWrite(RF, HIGH);
        digitalWrite(RB, LOW);
      break;     
    }
    delay(t1);
    digitalWrite(LF, LOW);
    digitalWrite(LB, LOW);
    digitalWrite(RF, LOW);
    digitalWrite(RB, LOW);
    delay(t2);
  }
}

示例代码需要安装 Adafruit SSD1306库
另外,烧录的时候一定要选择"DIO"
在这里插入图片描述
开发板选择“ESP32C3 Dev Mode”就可以
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪汪星河

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值