(1)简介
随着数字化发展,二维码在生活中的使用率越来越高,本文就基于Arduino控制器生成二维码并在液晶屏幕上显示出来,扫描后会跳转到指定的网页,二维码的显示内容可任意修改。 本文使用0.96寸OLED液晶显示屏,如下图所示:
(2)接线
Arduino控制器使用的是UNO,0.96寸OLED液晶显示屏使用的是IIC接口,接线方式如下表所示:
| 0.96 OLED屏 | UNO |
|---|---|
| VCC | 5V |
| GND | GND |
| SCL | A5 |
| SDA | A4 |
(3)主程序(完整代码及函数头文件见文末链接)
qrcode_initText(&qrcode, qrcodeData, 3 , ECC_LOW, "https://www.baidu.com");
// start draw
u8g2.firstPage();
do {
// get the draw starting point,128 and 64 is screen size
uint8_t x0 = (128 - qrcode.size * 2) / 2;
uint8_t y0 = (64 - qrcode.size * 2) / 2;
// get QR code pixels in a loop
for (uint8_t y = 0; y < qrcode.size; y++) {
for (uint8_t x = 0; x < qrcode.size; x++) {
// Check this point is black or white
if (qrcode_getModule(&qrcode, x, y)) {
u8g2.setColorIndex(1);
} else {
u8g2.setColorIndex(0);
}
// Double the QR code pixels
u8g2.drawPixel(x0 + x * 2, y0 + y * 2);
u8g2.drawPixel(x0 + 1 + x * 2, y0 + y * 2);
u8g2.drawPixel(x0 + x * 2, y0 + 1 + y * 2);
u8g2.drawPixel(x0 + 1 + x * 2, y0 + 1 + y * 2);
}
}
} while ( u8g2.nextPage() );
(4)结果展示
[video(video-iooLXV1o-1621738957654)(type-bilibili)(url-player.bilibili.com/player.html… 二维码显示)]
完整代码链接: pan.baidu.com/s/1ZBKVnUjw… 提取码:ypae