Помогите изменить программу.

Тема в разделе "Arduino & Shields", создана пользователем AnnKri, 14 янв 2018 в 14:06.

  1. AnnKri

    AnnKri Нуб

    Помогите изменить программу для секундомера из сайта http://wiki.amperka.ru/конспект-arduino:секундомер.
    Программа для семисегментного индекатора с общим катодом а мне надо с общим анодом.
    Код (C++):
    #define FIRST_SEGMENT_PIN   2
    #define SEGMENT_COUNT       7

    // префикс «0b» означает, что целое число за ним записано в
    // в двоичном коде. Единицами мы обозначим номера сегментов
    // индикатора, которые должны быть включены для отображения
    // арабской цифры. Всего цифр 10, поэтому в массиве 10 чисел.
    // Нам достаточно всего байта (англ. byte, 8 бит) для хранения
    // комбинации сегментов для каждой из цифр.
    byte numberSegments[10] = {
      0b00111111, 0b00001010, 0b01011101, 0b01011110, 0b01101010,
      0b01110110, 0b01110111, 0b00011010, 0b01111111, 0b01111110,
    };

    void setup()
    {
      for (int i = 0; i < SEGMENT_COUNT; ++i)
        pinMode(i + FIRST_SEGMENT_PIN, OUTPUT);
    }

    void loop()
    {
      // определяем число, которое собираемся отображать. Пусть им
      // будет номер текущей секунды, зацикленный на десятке
      int number = (millis() / 1000) % 10;
      // получаем код, в котором зашифрована арабская цифра
      int mask = numberSegments[number];
      // для каждого из 7 сегментов индикатора...
      for (int i = 0; i < SEGMENT_COUNT; ++i) {
        // ...определяем: должен ли он быть включён. Для этого
        // считываем бит (англ. read bit), соответствующий текущему
        // сегменту «i». Истина — он установлен (1), ложь — нет (0)
        boolean enableSegment = bitRead(mask, i);
        // включаем/выключаем сегмент на основе полученного значения
        digitalWrite(i + FIRST_SEGMENT_PIN, enableSegment);
      }
    }
     
  2. ostrov

    ostrov Гуру

    Попробуйте поменять нули на единицы. Ну и в схеме, понятное дело, изменения нужны.
     
  3. AnnKri

    AnnKri Нуб

    Ну схему изменила и нули с единицами местами поменяла но числа на индекаторе неполные.
     
  4. ostrov

    ostrov Гуру

    Что значит не полные? Выставьте все восьмерки и показите фотку.