Библиотека для LED Дисплея

Проекты и идеи
Библиотека для LED Дисплея

Библиотека управляет совместимым экраном из 17 сегментов на Arduino на цифровых пинах со второго по семнадцатый (14-17 являющийся аналогом в 0-3). Информация должна быть передана дисплею так, чтобы 2-17 соответствовали сегментам [м. k h u s t г f e d r p c n b]



На схеме видим, как происходит заземление и подключение резистора.

КОД:

Sts.h

#ifndef Sts_h
#define Sts_h

#include "WProgram.h"

class Sts
{
  public:
    int _charNum;
    void displayChar(int _charNum);
    void displayNumb(int _charNum);
    byte charactersCap[26][16];
    byte numbers[10][16];
  private:
    void setPins();
};

#endif


Sts.cpp:

/*
  Created by Ben Duncan - 7 April, 2009
 Shared under Creative Commons
 Give easy control of Alphanumeric LED displays
 (Kingbright type)
 */

#include "WProgram.h"
#include "Sts.h"

byte characters[26][16] = {
  {1,0,0,1,1,0,0,1,0,0,1,0,1,1,0,1},  // A
  {1,0,0,1,0,0,0,1,1,1,0,1,0,0,1,1},  // B
  {1,0,0,1,0,0,0,1,1,1,0,0,0,0,0,1},  // C
  {1,0,0,1,0,0,0,1,1,1,0,1,0,1,0,1},  // D
  {1,0,0,1,0,0,0,1,1,1,0,0,0,1,0,1},  // E
  {1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1},  // F
  {1,0,0,1,0,0,0,1,1,1,1,0,1,0,0,1},  // G
  {0,0,0,1,1,0,0,1,0,0,1,0,1,1,0,0},  // H
  {1,1,0,0,0,1,0,0,1,1,0,0,0,0,0,1},  // I
  {1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1},  // J
  {0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0},  // K
  {0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0},  // L
  {1,1,0,1,0,0,0,1,0,0,1,0,0,1,0,1},  // M
  {0,0,1,1,0,0,0,1,0,0,1,1,0,1,0,0},  // N
  {1,0,0,1,0,0,0,1,1,1,1,0,0,1,0,1},  // O
  {1,0,0,1,1,0,0,1,0,0,0,0,1,1,0,1},  // P
  {1,0,0,1,0,0,0,1,1,1,1,1,0,1,0,1},  // Q
  {1,0,0,1,1,0,0,1,0,0,0,1,1,1,0,1},  // R
  {1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,1},  // S
  {1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1},  // T
  {0,0,0,1,0,0,0,1,1,1,1,0,0,1,0,0},  // U
  {0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0},  // V
  {0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,0},  // W
  {0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0},  // X
  {0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0},  // Y
  {1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,1}};  // Z

byte numbers[10][16] = {
  {1,0,0,1,0,0,0,1,1,1,0,1,0,1,0,1},  // 0
  {1,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0},  // 1
  {1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1},  // 2
  {1,0,0,0,1,0,0,0,1,1,1,0,1,1,0,1},  // 3
  {0,0,0,1,1,0,0,0,0,0,1,0,1,1,0,0},  // 4
  {1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,1},  // 5
  {1,0,0,1,1,0,0,1,1,1,1,0,1,0,0,1},  // 6
  {1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1},  // 7
  {1,0,0,1,1,0,0,1,1,1,1,0,1,1,0,1},  // 8
  {1,0,0,1,1,0,0,0,1,1,1,0,1,1,0,1}};  // 9

void Sts::setPins(){
  for(int i=2; i<17;>
    pinMode(i, OUTPUT);
  }
}

void Sts::displayChar(int _charNum)
{
  for(int i=0; i<15;>
    digitalWrite((i+2), characters[_charNum][i]);
  }
}

void Sts::displayNumb(int _charNum)
{
  for(int i=0; i<15;>
    digitalWrite((i+2), numbers[_charNum][i]);
  }
}


А в IDE Arduino пишется:

BasicUseLoop.pde:

#include  // Include the Seventeen Segment library

Sts Sts;  // Create the Sts object
void setup(){
}

void loop() {
  for(int i=0; i<26; i++){
    Sts.displayChar(i);  // Display the capital character
    delay(500);  // Wait 1/2 second
  }
  for(int i=0; i<10;>
    Sts.displayNumb(i);  // Display the number
    delay(500);  // Wait 1/2 second
  }
}


На дисплее должны пробежаться все символы.
technik 13.03.2010 в 21.24 комментарии 0 0

комментарии(0)

Комментировать

Для добавления комментария авторизируйтесь.
Последние комментарии:
© 2012 pobot.ru