本文主要是介绍Arduino提高篇13—摇杆控制OLED移动显示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
很多经典的小游戏,例如贪吃蛇、俄罗斯方块等都是通过按键控制显示于屏幕,当摇杆遇上显示屏,我们可以尝试很多有意思的实验。本篇通过摇杆控制OLED上圆的移动。
1. 实验材料
- Uno R3开发板
- 配套USB数据线
- 面包板及配套连接线
- 双轴按键摇杆模块
- OLED显示屏
2. 实验步骤
1. 根据原理图搭建电路图。
OLED屏的VCC、GND分别连接开发板的3.3V、GND,OLED屏的SDA和SCL分别连接开发板的A4和A5。双轴按键摇杆模块的VCC、GND分别连接开发板的5V、GND,模块的X轴输出、Y轴输出分别连接开发板的模拟引脚A0、A1。
实验原理图如下图所示:
实物连接图如下图所示:
2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。
/*OLED_JoyStick摇杆控制OLED移动显示
*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>#define OLED_RESET 4
Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);
#define pinX A0
#define pinY A1//定义圆心和半径变量
int xCircle = 0;
int ycircle = 0;
int radius = 4;void setup()
{display.begin(SSD1306_SWITCHCAPVCC, 0x3C);display.setTextColor(WHITE);//开像素点发光display.clearDisplay();//清屏
}void loop()
{xCircle = map(analogRead(pinX), 1023, 0, radius, 128 - radius); //将X轴获取的AD值映射到oled的X显示方向ycircle = map(analogRead(pinY), 1023, 0, radius, 64 - radius); //将Y轴获取的AD值映射到oled的Y显示方向display.drawRect(0, 0, 128, 64, 1);//画矩形display.drawCircle(xCircle, ycircle , radius, 1); //画圆display.display();//开显示display.clearDisplay();//清屏
}
3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。
3. 实验现象
扭动摇杆,OLED显示屏上画出的圆跟随移动。
4. 程序分析
程序中使用**drawCircle()函数通过给定的圆心坐标和圆半径在屏幕上画圆,通过map()**函数分别将摇杆X、Y轴采集到的模拟量映射到OLED对应的显示坐标中。程序中不断读取摇杆模拟量来画出对应位置的圆。
关注微信公众号:TonyCode
Arduino学习交流群:868283450
更多内容,欢迎关注我的公众号。 微信扫一扫下方二维码即可关注:
这篇关于Arduino提高篇13—摇杆控制OLED移动显示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!