標(biāo)題:
arduino+U8glib控制0.96 OLED屏源程序
[打印本頁(yè)]
作者:
苦心人
時(shí)間:
2019-3-18 20:18
標(biāo)題:
arduino+U8glib控制0.96 OLED屏源程序
0.png
(86.57 KB, 下載次數(shù): 51)
下載附件
2019-3-18 22:34 上傳
Arduino源程序如下:
#include "U8glib.h"
#define RIGHT 0
#define UP 1
#define LEFT 2
#define DOWN 3
/*
* OLED
arduino OLED
D9 > MOSI
D10 > SCK
D11 > DC
D12 > CS
D13 > RES
SW SPI COM:
SCK = 10, MOSI = 9 , CS = 12, A0 = 11, RES = 13
*/
U8GLIB_SSD1306_128X64 u8g(10, 9, 12, 11, 13);
int score = 0;
int level = 1;
int gamespeed = 100;
int i;
//組成單位,4X4像素點(diǎn)的方塊。
const uint8_t ele[] PROGMEM = {
0xf0, //B1111000
0xb0, //B1011000
0xd0, //B1101000
0xf0, //B1111000
};
//蛇
void element(int x, int y) {
u8g.drawBitmapP(x,y, 1,4, ele);
}
struct FOOD {
int x;
int y;
int yes;
};
FOOD food = {25, 30, 1};
struct SNAKE {
int x[200];
int y[200];
int node;
int dir;
int lefe;
};
SNAKE snake = {{9,5}, {30,30}, 2, RIGHT, 0};
//游戲基本界面
void UI() {
u8g.drawFrame(0,1, 102,62); //內(nèi)邊界
u8g.drawFrame(0,0, 102,64); //外邊界
u8g.setFont(u8g_font_5x7); //設(shè)置字體
u8g.drawStr(104,12, "LEVEL"); //等級(jí)提示
u8g.drawStr(104,40, "SCORE"); //分?jǐn)?shù)提示
}
void printScore(int x, int y, int s) {
u8g.setFont(u8g_font_6x10);
u8g.setPrintPos(x, y);
u8g.print(s);
}
void key() {
if(LOW == digitalRead(2)) {
snake.dir = DOWN;
}
if(LOW == digitalRead(3)) {
snake.dir = RIGHT;
}
if(LOW == digitalRead(4)) {
snake.dir = LEFT;
}
if(LOW == digitalRead(5)) {
snake.dir = UP;
}
}
void snakeGame() {
switch(snake.dir) {
case RIGHT:
snake.x[0] += 4;
if(snake.x[0]>=101) {
snake.x[0] = 1;
} break;
case UP:
snake.y[0] -= 4;
if(snake.y[0]<=1) {
snake.y[0] = 58;
} break;
case LEFT:
snake.x[0] -= 4;
if(snake.x[0]<=0) {
snake.x[0] = 97;
} break;
case DOWN:
snake.y[0] += 4;
if(snake.y[0]>=62) {
snake.y[0] = 2;
} break;
}
if((snake.x[0] == food.x) && (snake.y[0] == food.y)) {
snake.x[0] = food.x;
snake.y[0] = food.y;
snake.node++;
food.yes = 1;
score += 2;
level = score/10+1;
}
for(i=snake.node-1;i>0;i--) {
snake.x[i] = snake.x[i-1];
snake.y[i] = snake.y[i-1];
}
}
void setup() {
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
}
void loop() {
u8g.firstPage();
do {
UI();
……………………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
7Pin0.96 SPIsnake_arduino.rar
(453.49 KB, 下載次數(shù): 32)
2019-3-18 20:17 上傳
點(diǎn)擊文件名下載附件
arduino控制
下載積分: 黑幣 -5
作者:
mjgzdnw
時(shí)間:
2019-5-1 17:25
不錯(cuò)哦,學(xué)習(xí)一下
作者:
tigerzq
時(shí)間:
2019-5-1 22:10
我手上的是iic通訊的oled 0.96
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1