极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: 迷你强

基于OCROBOT Easy的arduino桌面时钟小作品

[复制链接]
发表于 2014-6-30 16:55:05 | 显示全部楼层
参考了,看看挺周详的!
回复 支持 反对

使用道具 举报

发表于 2014-9-2 00:17:41 | 显示全部楼层
请问如何用电波钟模块校时,谢谢!!
回复 支持 反对

使用道具 举报

发表于 2014-9-2 15:51:04 | 显示全部楼层
本帖最后由 504835618 于 2014-9-2 16:11 编辑

才学ARDUINO参照LZ的程序也做了一个DS3231+bmp085大气压力的显示时钟,感觉还好
请问我想加入电波钟用来自动校准时间,应该怎么写程序?(电波钟程序已搞好)是不是把时间校准程序和电波钟程序,嵌套到主程序里呢?请给点提示,谢谢!!温度是用的bmp085上的。
还有原来这里用IF判断AM,PM我用24小时制。上午在时分,妙前补了0,一直就显示AM
if(PM==0) 不知道這句判断的PM值是哪里来的
我理解是PM测试=于0的话那么就应该显示AM,else否则就应该显示PM,但是不管上午下午一直显示的是AM。
if(PM==0) PM判断的值是哪里来的,谢谢!!

if(PM==0)    //判断变量PM返回值 0就显示AM  1就显示PM
  
  {
    u8g.setFont(u8g_font_6x12);
    u8g.print("AM");
  }
  else
  {
    u8g.setFont(u8g_font_6x12);
    u8g.print("PM");
  }

//-----------------

刚才把這句改为if(PM==1) 就显示PM了。看明天上午会变化不。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2015-4-11 14:51:50 | 显示全部楼层
幻生幻灭 发表于 2013-10-20 19:54
贩子好久没发教程了,呵呵。
布线感觉有些影响可爱的模块啦
  1. //=======调用U8GLIB液晶屏驱动库=====#include "U8glib.h"U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);//=======调用DS3231时钟驱动库======#include <DS3231.h>#include <Wire.h>  //========定义时钟需要的各种变量========DS3231 Clock;bool Century=false;bool h12;bool PM;byte ADay, AHour, AMinute, ASecond, ABits;bool ADy, A12h, Apm;int second,minute,hour,date,month,year,temperature;   void setup(void) {    Clock.setClockMode(true); } void loop(void) { //=======读取时钟的各种中值,存入对应变量========   second=Clock.getSecond();              //秒  minute=Clock.getMinute();              //分  hour=Clock.getHour(h12, PM);           //小时 (分上午和下午模式)     date=Clock.getDate();                   //日  month=Clock.getMonth(Century);          //月  year=Clock.getYear();                      //年(仅2位)  temperature=Clock.getTemperature();         //温度  (正负2-3摄氏度误差,温度仅供参考)  //======开始显示==========  u8g.firstPage();                               do {    draw();  } while( u8g.nextPage() );  }  //======定义的显示模式======void draw(void) {  u8g.setPrintPos(0, 45);      //定义显示位置 横向起始位置0 纵向45  if(PM==0)                     //判断变量PM返回值 0就显示AM  1就显示PM  {  u8g.print("AM");  }else{u8g.print("PM");}  u8g.setFont(u8g_font_freedoomr25n); //设定字体(具体请参看 U8GLIB google code页面,大量字体可选)  u8g.print(hour);                    //输出小时的值  u8g.print(":");                        //显示一个冒号  u8g.print(minute,);                //显示分钟的值  u8g.setFont(u8g_font_freedoomr10r);  //调整显示字体  u8g.print(":");                         //再显示冒号  u8g.print(second);                       //显示秒 }
复制代码
回复 支持 反对

使用道具 举报

发表于 2015-4-19 15:57:45 | 显示全部楼层
  第60行,在IDE 1.6 中,minute后面多了一个 ,号 。
u8g.print(minute,);                //显示分钟的值
回复 支持 反对

使用道具 举报

发表于 2015-7-17 21:40:26 | 显示全部楼层
请问为什么我把ds3231和DHT11一起使用时时钟就乱码了?我用的是I2C的OLED,哪位好心帮忙看一下,代码如下:
#include <dht11.h>
#include <U8glib.h>
#include <DS3231.h>
#include <Wire.h>
dht11 DHT11;
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
#define DHT11PIN 4

DS3231 Clock;
bool Century=false;
bool h12;
bool PM;
byte ADay, AHour, AMinute, ASecond, ABits, DoW;
bool ADy, A12h, Apm;

byte second,minute,hour,date,month,year,temperature;

void draw(void)
{
   u8g.drawLine(0,15 , 128, 15);
   u8g.drawLine(0,51 , 128, 51);
   
   u8g.setFont(u8g_font_gdr10);//字体设置
   
   u8g.setPrintPos(2, 64);
   int chk = DHT11.read(DHT11PIN);
   u8g.print((float)DHT11.temperature, 1);
   u8g.setPrintPos(30, 64);
   u8g.print("c");
   
   u8g.setPrintPos(88, 64);
   u8g.print((float)DHT11.humidity, 1);
   u8g.setPrintPos(116, 64);
   u8g.print("%");
   
   u8g.setPrintPos(0, 10);
  u8g.print("20");
  u8g.print(year);
  u8g.print("/");
  u8g.print("month");
  u8g.print("/");
  u8g.print(date);
  u8g.print("dow");
   
   u8g.setPrintPos(0, 45);      //定义显示位置 横向起始位置0 纵向45
  if(PM==0)                     //判断变量PM返回值 0就显示AM  1就显示PM
  {
  u8g.print("AM");
  }else
{u8g.print("PM");}
  u8g.setFont(u8g_font_freedoomr25n); //设定字体(具体请参看 U8GLIB google code页面,大量字体可选)
  u8g.print(hour);                    //输出小时的值
  u8g.print(":");                        //显示一个冒号
  u8g.print("minute");                //显示分钟的值
  u8g.setFont(u8g_font_freedoomr10r);  //调整显示字体
  u8g.print(":");                         //再显示冒号
  u8g.print(second);
}
void setup(void)
{
   Clock.setClockMode(true);
}  

void loop(void) {
  int second,minute,hour,date,month,year,temperature;
  second=Clock.getSecond();              //秒
  minute=Clock.getMinute();              //分
  hour=Clock.getHour(h12, PM);           //小时 (分上午和下午模式)   
  date=Clock.getDate();                   //日
  month=Clock.getMonth(Century);          //月
  year=Clock.getYear();      
  
  u8g.firstPage();  
   do {
     draw();
     long x = random(0,127);
     long y = random(51,63);
     
  }
  while( u8g.nextPage() );
}


回复 支持 反对

使用道具 举报

发表于 2015-7-18 11:21:11 | 显示全部楼层
那个底板是标准的乐高板吗?那些彩色的有洞的方块是什么,在哪里买的?
回复 支持 反对

使用道具 举报

发表于 2015-7-18 11:46:46 | 显示全部楼层
怎么显示星期?
回复 支持 反对

使用道具 举报

发表于 2015-10-15 21:54:55 | 显示全部楼层
期待楼主更新加入温湿度,气压,电子罗盘功能,用按键切换显示
回复 支持 反对

使用道具 举报

发表于 2018-10-24 22:40:26 | 显示全部楼层
怎么设置显示24小时制呢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 21:38 , Processed in 0.049034 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表