llyyww126 发表于 2014-6-30 16:55:05

参考了,看看挺周详的!:D

504835618 发表于 2014-9-2 00:17:41

请问如何用电波钟模块校时,谢谢!!

504835618 发表于 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就显示AM1就显示PM

{
    u8g.setFont(u8g_font_6x12);
    u8g.print("AM");
}
else
{
    u8g.setFont(u8g_font_6x12);
    u8g.print("PM");
}

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

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

CODEEDIT 发表于 2015-4-11 14:51:50

幻生幻灭 发表于 2013-10-20 19:54 static/image/common/back.gif
贩子好久没发教程了,呵呵。
布线感觉有些影响可爱的模块啦

//=======调用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 纵向45if(PM==0)                     //判断变量PM返回值 0就显示AM1就显示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就显示AM1就显示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() );
}


seagatecm 发表于 2015-7-18 11:21:11

那个底板是标准的乐高板吗?那些彩色的有洞的方块是什么,在哪里买的?

雨轩 发表于 2015-7-18 11:46:46

怎么显示星期?

雨轩 发表于 2015-10-15 21:54:55

期待楼主更新加入温湿度,气压,电子罗盘功能,用按键切换显示

362442340 发表于 2018-10-24 22:40:26

怎么设置显示24小时制呢
页: 1 [2]
查看完整版本: 基于OCROBOT Easy的arduino桌面时钟小作品