标题:
u8g驱动0.96OLED屏显示虚拟圆盘钟
[打印本页]
作者:
QIUYUQINGH
时间:
2018-1-5 12:21
标题:
u8g驱动0.96OLED屏显示虚拟圆盘钟
本帖最后由 QIUYUQINGH 于 2018-1-6 13:00 编辑
原代码来自www点geek-workshop点com/thread-14419-1-1.htm
自己整合了一下。可以用
我的屏幕是6针的0.96OLED
IMG_20180105_114435_副本.jpg
(81.51 KB, 下载次数: 63)
下载附件
2018-1-5 12:19 上传
arduino源码如下:
#include "U8glib.h"
U8GLIB_SH1106_128X64 u8g(10, 9, 12, 11,13); //针脚接线
int center_w=u8g.getWidth()/2-1,
center_h=u8g.getHeight()/2-1; //定下手表的中心点
void watch_ui()
{
u8g.drawDisc(center_w,center_h,2);//画一个实心圆
u8g.drawCircle(center_w,center_h,center_h);//一个以屏幕高度为直径的整圆
u8g.setFont(u8g_font_ncenB08);//调用库中一种宽度为8的字体
u8g.setFontPosTop();
u8g.drawStr(73,5,"1");
u8g.drawStr(82,13,"2");
u8g.drawStr(88,26,"3");
u8g.drawStr(82,40,"4");
u8g.drawStr(73,48,"5");
u8g.drawStr(61,53,"6");
u8g.drawStr(48,48,"7");
u8g.drawStr(38,38,"8");
u8g.drawStr(33,27,"9");
u8g.drawStr(36,15,"10");
u8g.drawStr(46,6,"11");
u8g.drawStr(58,0,"12");
}
void clock(int hour,int minute,int sencond)
{
int hour_x,hour_y,minute_x,minute_y,sencond_x,sencond_y;
hour_x=cos(hour*3.1412/30-3.1412/2)*8 + center_w;
hour_y=sin(hour*3.1412/30-3.1412/2)*8 + center_h; //时针长度5
minute_x=cos(minute*3.1412/30-3.1412/2)*12+center_w ;
minute_y=sin(minute*3.1412/30-3.1412/2)*12+center_h; //分针长度10
sencond_x=cos(sencond*3.1412/30-3.1412/2)*17+center_w;
sencond_y=sin(sencond*3.1412/30-3.1412/2)*17+center_h; //秒针长度17
u8g.drawLine(center_w,center_h,hour_x,hour_y);// 时针
u8g.drawLine(center_w,center_h,minute_x,minute_y);// 分针
u8g.drawLine(center_w,center_h,sencond_x,sencond_y);//秒针
}
void watch(int h,int m,int s)
{
u8g.firstPage();
do {
watch_ui();
clock(h,m,s);
//u8g.setColorIndex(1);
} while( u8g.nextPage() );
}
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
for(int h=0;h<12;h++)
for(int m=0;m<60;m++)
for(int s=0;s<60;s++)
{
Serial.println(h);
Serial.println(m);
Serial.println(s);
watch(h,m,s);
delay(1000);
}
}
复制代码
作者:
WANG1995
时间:
2018-3-10 22:21
网址失效
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1