全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > LED照明 >

通过摇杆控制OLED移动显示

时间:2023-06-14 17:34

人气:

作者:admin

标签: 通过  摇杆  移动  控制  OLED 

导读:通过摇杆控制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,拷贝如下代码替换自动生成的代码并进行保存。

1/*
 2   OLED_JoyStick
 3   摇杆控制OLED移动显示
 4*/
 5#include < Wire.h >
 6#include < Adafruit_GFX.h >
 7#include < Adafruit_SSD1306.h >
 8
 9#define OLED_RESET     4
10Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);
11#define pinX  A0
12#define pinY  A1
13
14//定义圆心和半径变量
15int xCircle = 0;
16int ycircle = 0;
17int radius = 4;
18
19void setup()
20{
21  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
22  display.setTextColor(WHITE);//开像素点发光
23  display.clearDisplay();//清屏
24}
25
26void loop()
27{
28  xCircle = map(analogRead(pinX), 1023, 0, radius, 128 - radius); //将X轴获取的AD值映射到oled的X显示方向
29  ycircle = map(analogRead(pinY), 1023, 0, radius, 64 - radius); //将Y轴获取的AD值映射到oled的Y显示方向
30
31  display.drawRect(0, 0, 128, 64, 1);//画矩形
32  display.drawCircle(xCircle, ycircle , radius, 1); //画圆
33  display.display();//开显示
34  display.clearDisplay();//清屏
35}

3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

图片

程序下载

3. 实验现象

扭动摇杆,OLED显示屏上画出的圆跟随移动。

4. 程序分析

程序中使用 drawCircle() 函数通过给定的圆心坐标和圆半径在屏幕上画圆,通过 map() 函数分别将摇杆X、Y轴采集到的模拟量映射到OLED对应的显示坐标中。程序中不断读取摇杆模拟量来画出对应位置的圆。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信