Back

Comments 34

  • O'Clock 2 days ago

    Hi,
    Do you actually changed this line?
    screen.cpp:297
    CopySymbol(sprite_buffer, font_digit_6x8, BIG_COLON, POS_COLON, 0, 6, 8, 2);

  • O'Clock 6 days ago

    Hi
    Do you see this error: "BME280 sensor not found" in serial terminal?

    From device initialization code:

    if(!bme.begin(MY_BME280_ADDRESS))
    Serial.println(F("BME280 sensor not found"));

    If yes, try to change address of module.
    // BME 280 module (optional)
    // BME280 Address fixed in library Adafruit_BME280.h
    // original Address is 0x77, China module Address is 0x76.
    // Don't forgot to set next define with correct Address !!!
    #define MY_BME280_ADDRESS (0x76)

    clock.cpp:81
    try to change 0x76 with 0x77

  • O'Clock 6 days ago

    Hi
    There are two different DS3231 type of module. First one for arduino with lithium cell cradle and 5V power. This module saves clock if lithium cell is installed.

    Second one is for Raspberry Pi with soldered power cell and 3.3V power.
    This module not works correctly with arduino. Problem is that cell is not battery but special kind of capacitor that can be powered only with 3.3V.

    1. https://components101.com/modules/ds3231-rtc-module-pinout-circuit-datasheet
    2. https://www.pishop.us/product/ds3231-real-time-clock-module-for-raspberry-pi

    Which type of module has you?

    See discus on
    https://forum.arduino.cc/t/zs-042-ds3231-rtc-module/268862

  • O'Clock 14 days ago

    Hi aliasghartec.
    I'm in full stumped. You win! I can't guess what does it means.
    Is it a scrolling of digits while time changes?
    Or it's a switching from time to date or temperature?
    Or is it just a colon between hours and minutes?
    May be more easy if you make some photo and show on it what do you mean.
    Regards.

  • O'Clock 22 days ago

    Hi
    Sorry but It's not clear for me what do you mean?

  • O'Clock about 2 months ago

    Hi
    screen.cpp:297
    CopySymbol(sprite_buffer, font_digit_6x8, BIG_COLON + (secs & 1), POS_COLON, 0, 6, 8, 2);
    It's need just change this line with:
    CopySymbol(sprite_buffer, font_digit_6x8, BIG_COLON, POS_COLON, 0, 6, 8, 2);

    If you want to have symmetric dots then you need to edit existing symbol or add new one:

    screen.cpp:170 change this:
    " 0x46, 0x46, 0x00, 0x00, 0x00, 0x00 //':' 0xb
    };"
    with this:
    " 0x46, 0x46, 0x00, 0x00, 0x00, 0x00, //':' 0xb
    0x66, 0x66, 0x00, 0x00, 0x00, 0x00 //':' 0xc
    };
    #define BIG_COLON2 0xc"

    And change symbol code BIG_COLON with BIG_COLON2 in above function call.

  • O'Clock about 2 months ago

    Hi
    Sorry I don't understand what is mean: "flashing seconds" ?

  • O'Clock 3 months ago

    Hi! Super. Congratulation!

  • O'Clock 4 months ago

    Hi. I don't have any special power module. Just USB power supply. When AC power is off display is off too. And only RTC module works on installed lithium cell. If you want to use some battery for powering clock you must remember about current used by matrix indicator. Of course you can use some module like power-bank. For example: https://www.aliexpress.com/item/4001282850260.html
    But you must chose good battery with discharge protection for this.
    If you don't have enough experience I don't propose to use it.

  • O'Clock 6 months ago

    Hi
    2- I think maybe you need more complicated power filter. For example RC. But it's not my competence.
    1- It's possible to display any strings. But main question how to control them. Generate input string with control buttons is very complicated task. The only way is to hard code this strings. Second question is in what the moment of time to display it. For example once an hour during whole day. Or any other period.

  • O'Clock 8 months ago

    Hi
    Of course photoresistor can be deleted. But what is the reason. Photoresistor is very cheap. If you don't want automatic regulation you can change them with variable resistor. If you want to have fixed light level most easy way is to hard code this value and change them with reprogramming Arduino. But changing light level with buttons is most complicated way. Yes if you want try to do this yourself. But for me this modification isn't interesting. Sorry.
    Best regards.

  • O'Clock 8 months ago
  • O'Clock 8 months ago

    Hi,
    Try to use this:

    const char* dayNames[7] {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
    sprintf(buff, "%d %s. %s",
    CurTime.day(),
    Months[CurTime.month() - 1],
    dayNames[CurTime.dayOfTheWeek()]);

  • O'Clock 10 months ago

    Hi Dan.

    Get the last sources.
    main.cpp:44
    #define SWITCH_MODE_PERIOD 2 //n minutes - showing period of Pressure/Temp/Date

    '2' - switch mode period in minutes.
    Change this value as your need.

    Best regards
    Vikonix

  • O'Clock 10 months ago

    Hi Dan.
    It's possible to change date period. I'll do it on next week.
    Regards,
    Vikonix

  • O'Clock 10 months ago

    Congratulation!
    Change line 302:
    sprite_buffer[LEDMATRIX_WIDTH - 1] = 0b10000000;
    with
    sprite_buffer[0] = 0b00000001;

  • O'Clock 10 months ago

    Hi !
    Just try to uncomment line screen.cpp:294

  • O'Clock 11 months ago

    I made update with new external libraries and add some customization parameters.

  • O'Clock 12 months ago

    Hi Bernard.
    If it's interesting for you now I can answer to you question.
    First of all you must to understand that arduino can read analog input in range 0-1023. It's is linear scale. Indicator has 0-15 bright levels. And humans eye has logarithmic sensitivity. So in code I make conversion form 0-1023 to 0-15 with logarithmic scale.
    If you want to play with it change digits in this array:
    "byte level[] = {0,0,0,0,0,0,1,2,4,8}; // 0 = low, 15 = high"
    For example, with linear conversion:
    "byte level[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};"
    Best regards.

  • O'Clock about 1 year ago

    Hi Bernard.
    I can look at this only on the next week.

  • O'Clock about 1 year ago

    Hi Dancopy
    Dot is appears in days when alarm is armed.

  • O'Clock about 1 year ago

    Looks like you use not correct RTC library.
    Check one more for RTClib by Adafruit Version 1.3.3
    Check ArduinoIDE download path:
    "C:\Users\?YOUR USER NAME?\AppData\Local\Arduino15\staging\libraries" with file RTClib-1.3.3.zip

    #include <DS3232RTC.h> I don't use this library !!!

  • O'Clock about 1 year ago

    Hi.
    Step by step instruction.

    1. Open .../o-clock/src/src.ino in Arduino IDE (no any modification needs).
    2. Open Library Manager by Menu:"Sketch->Include Library->Manage Libraries..."
    3. Install all project dependent libraries:
    4. LEDMatrixDriver 0.2.2
    5. RTClib 1.3.3
    6. NonBlockingRTTTL 1.2.2
    7. Bounce2 2.52
    8. Adafruit Unified Sensor 1.1.2
    9. Adafruit BME280 Library 2.0.1 Type every library name in search line and select correct one from founded list.
    10. Check compilation result by pressing "Verify". You must see good result without any errors.
  • O'Clock over 1 year ago

    Hi Daniel.
    1. Not ready to answer now
    2. Buzzer plays some music so I don't know what you can see with LED
    3. It's not a problem to disable photoresistor
    4. It's possible, but I don't have them and cann't check

  • O'Clock over 1 year ago

    I make some fixes in code and some tips in docs.

    The main tip is:
    If you have digital noise in buzzer especially on high bright level you need to add electrolytic capacitor about 470 mkF and ceramic 0,1 mkF at the power line.

  • O'Clock almost 2 years ago

    Hi Alex,
    lets me to congratulate you.

  • O'Clock almost 2 years ago

    Hi Alex. It's fine that you have solved some hards.
    But I don't understand what kind of problem you have with buzzer. Please describe it with more details, step by step.

  • O'Clock almost 2 years ago

    Ok I see you have not last source version.
    It must be
    39://O'Clock version 04.06.2019
    40:#define VERSION "1.0"

    So please download sources from GitHub one more and replace your code. Dont forget to put correct BME280 address.

  • O'Clock almost 2 years ago

    Hi. As I understand you can see now temperature by pressing key "Mode".
    Lets check you sources. Please print here lines 39 and 40 from clock.h file.

  • O'Clock almost 2 years ago

    Hi Alex,
    Lets try to solve problem with temperature first.
    The possible problem is incorrect address of BME280.
    In my project I use China module.

    // BME 280 module (optional)
    // BME280 Address fixed in library Adafruit_BME280.h
    // original Address is 0x77, China module Address is 0x76.
    // Don't forgot to set next define with correct Address !!!
    #define MY_BME280_ADDRESS (0x76)

    If you use original module try to change address with 0x77!!!

    #define MY_BME280_ADDRESS (0x77)

    If you activate terminal you can see is you modile found or not.

    if(!bme.begin(MY_BME280_ADDRESS))
    Serial.println(F("BME280 sensor not found"));
    else
    Serial.println(F("BME280 sensor Ok"));

  • Function Serial: Print in Only One Line almost 2 years ago

    If you compare program size with 3 line (classic output) and 1 line (with String class converting) you will be wonder. Your code add about 900 bytes.

  • O'Clock almost 2 years ago

    Hi. What kind of buzzer do you have?
    It needs passive piezo buzzer as for PC.
    Do you listen short beep when key pressed.
    Can you make photo with alarm setups.
    Did you download last sources?

  • O'Clock almost 2 years ago

    Fix cursor blink time calculating.

  • O'Clock almost 2 years ago

    I fix small bug with alarm day calculator.
    Add automatic temperature and date showing.

Add projectSign up / Login