Часы на Arduino NANO + MAX7219 + FM приемник

Тема в разделе "Глядите, что я сделал", создана пользователем IvanUA, 31 авг 2017.

  1. IvanUA

    IvanUA Гуру

    Ну точно такого эффекта вы не добьетесь. Просто у нас экраны разные. А сделать что то похожее можно. Но тут вам придется для отрисовки каждой цифры сделать отдельную функцию. Будет наверное красиво, но увесисто. И да, если захотите поменять шрифт, то придется менять и функции. Но, если вам это интересно и есть достаточно свободного времени, то почему бы и нет)))
     
  2. Serzh2000

    Serzh2000 Нуб

    это понятно, там семисегментник у нас матрица - эффект должен получиться лучше
    вот написал цифру ноль
    Код (C++):
    const uint8_t dig3x7q[] PROGMEM = { 36,      // Узкий цифровой
    0x00,0x02,0x00,0x00,0x02,0x04,0x00,0x02,0x0C,0x00,0x02,0x1C,0x00,0x02,0x3C,0x00,0x02,0x7C,0x00,0x82,0x7C,0x40,0x82,0x7C,0x60,0x82,0x7C,0x70,0x82,0x7C,0x78,0x82,0x7C,0x1C,0x82,0x7C,}
    вот тут "затык" ,я не программист ,а любитель-самоучка
    Код (C++):
    void showDigiteffekt(char ch, int col, const uint8_t *data) {            
      if(dy<-8||dy>8) return;
        for(int q=0; q<12; q++) {
        col+=dx;                                                            
      for(int i=0; i<3; i++) {                                            
        if(col+i>=0&&col+i<NUM_MAX*8) {                                
          byte v=pgm_read_byte(data+1+ch*3+1+i);                          
           scr[col+i].byte_data=v;                                      
        }
       }
    }                                                                    
    }
     
    что я здесь написал как ,как мне кажется, читаем три цифры 12 раз - отрисовывается ноль
    Код (C++):
    void showClock(){                                            
      showDigit(h1, 0, dig4x8);                
      showDigit(h0, 5, dig4x8);                                          
      showDigit(m1, 12, dig4x8);                                          
      showDigit(m0, 17, dig4x8);                                          
      showDigiteffekt(0, 24, dig3x7q);                                      
      showDigit(s0, 28, dig3x7s);                                        
      if (dots) setCol(10, 0x24);                                        
    }                                                                    
     
    а насамом деле какая то фигня в виде точки ...
     

    Вложения:

    Последнее редактирование: 14 фев 2020 в 17:48
  3. Serzh2000

    Serzh2000 Нуб

    обалденно цифры рисуются [​IMG]
    теперь это надо облагородить [​IMG] и вставить в часы
    у кого есть мысли выкладывай?
     

    Вложения:

    Последнее редактирование: 15 фев 2020 в 16:59