七针引脚的1106OLED和4*4矩阵按键如何与ardiuno连接
时间: 2024-04-17 16:28:07 浏览: 61
对于七针引脚的1106 OLED显示屏和4x4矩阵按键的连接,你可以按照以下步骤进行:
1. 连接1106 OLED显示屏:
- 将OLED屏幕的GND引脚连接到Arduino的GND引脚。
- 将OLED屏幕的VCC引脚连接到Arduino的5V引脚。
- 将OLED屏幕的SCL引脚连接到Arduino的A5引脚(或SCL引脚)。
- 将OLED屏幕的SDA引脚连接到Arduino的A4引脚(或SDA引脚)。
2. 连接4x4矩阵按键:
- 将矩阵按键的行引脚(4个)连接到Arduino的任意数字引脚(例如9、8、7和6)。
- 将矩阵按键的列引脚(4个)连接到Arduino的任意数字引脚(例如5、4、3和2)。
确保在连接之前,你已经下载并安装了相应的库,如Adafruit SSD1306和Adafruit GFX库。然后,你可以使用之前提供的代码示例来控制这些设备。
请注意,上述连接方式是一种常见的连接方式,但具体的引脚连接可能会因不同的硬件而有所不同。因此,在实际连接之前,请参考OLED屏幕和矩阵按键的数据手册或引脚图以确保正确的连接。
相关问题
arduino 控制4*4矩阵按键在七针引脚的1106OLED上显示数字
如果你使用的是七针引脚的1106 OLED屏幕,你可以使用I2C通协议来连接它。以下是一个示例代码,演示如何Arduino控制4x矩阵按键,并在110 OLED屏幕上显示数字:
```cpp
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_ADDR 0x3C // OLED屏幕的I2C地址
Adafruit_SSD1306 display(128, 32, &Wire, -1);
const int ROW_NUM = 4; // 定义行数
const int COLUMN_NUM = 4; // 定义列数
char keys[ROW_NUM][COLUMN_NUM] = { // 按键的字符数组
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // 连接到行引脚的Arduino引脚
byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // 连接到列引脚的Arduino引脚
void setup() {
Wire.begin();
display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
}
void loop() {
char key = getKeypadKey(); // 获取按下的按键
if (key) {
display.clearDisplay();
display.setCursor(0, 0);
display.print("Pressed Key: ");
display.println(key);
display.display();
}
}
char getKeypadKey() {
for (int i = 0; i < COLUMN_NUM; i++) {
pinMode(pin_column[i], OUTPUT);
digitalWrite(pin_column[i], LOW);
for (int j = 0; j < ROW_NUM; j++) {
pinMode(pin_rows[j], INPUT_PULLUP);
if (digitalRead(pin_rows[j]) == LOW) {
delay(50);
while (digitalRead(pin_rows[j]) == LOW);
return keys[j][i];
}
}
pinMode(pin_rows[i], INPUT_PULLUP);
digitalWrite(pin_rows[i], HIGH);
}
return '\0';
}
```
这个代码与之前的代码相似,使用了Adafruit的SSD1306库来控制OLED屏幕。你需要将4x4矩阵按键连接到相应的行和列引脚,并使用I2C接口将OLED屏幕连接到Arduino上。
希望这对你有帮助!如果还有其他问题,请随时提问。
arduino 控制4*4矩阵按键在1106OLED上显示数字
你可以使用Arduino来控制4x4矩阵按键,并在1106 OLED上显示数字。以下是一个简单的示例代码,可以帮助你实现这个功能:
```cpp
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1106.h>
#define OLED_RESET 4
Adafruit_SSD1106 display(OLED_RESET);
const int ROW_NUM = 4; // 定义行数
const int COLUMN_NUM = 4; // 定义列数
char keys[ROW_NUM][COLUMN_NUM] = { // 按键的字符数组
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // 连接到行引脚的Arduino引脚
byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // 连接到列引脚的Arduino引脚
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // 初始化OLED显示屏
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
for (int i = 0; i < COLUMN_NUM; i++) { // 初始化列引脚
pinMode(pin_column[i], OUTPUT);
digitalWrite(pin_column[i], HIGH);
}
}
void loop() {
char key = getKeypadKey(); // 获取按下的按键
if (key) {
display.clearDisplay();
display.setCursor(0, 0);
display.print("Pressed Key: ");
display.println(key);
display.display();
}
}
char getKeypadKey() {
for (int i = 0; i < COLUMN_NUM; i++) {
pinMode(pin_column[i], OUTPUT);
digitalWrite(pin_column[i], LOW);
for (int j = 0; j < ROW_NUM; j++) {
pinMode(pin_rows[j], INPUT_PULLUP);
if (digitalRead(pin_rows[j]) == LOW) {
delay(50);
while (digitalRead(pin_rows[j]) == LOW);
return keys[j][i];
}
}
pinMode(pin_rows[i], INPUT_PULLUP);
digitalWrite(pin_rows[i], HIGH);
}
return '\0';
}
```
这个代码使用了Adafruit的SSD1106库来控制1106 OLED显示屏,通过按键输入获取按键值,并在OLED上显示出来。你需要将4x4矩阵按键连接到相应的行和列引脚,并修改代码中的引脚定义以匹配你的连接方式。
希望这能帮到你!如果还有其他问题,请随时问。
阅读全文