کنترل سون سگمنت با seg

  • پایه ها مالتری پلکس هستند
  • تعریف از seg.begin(com_segment1, com_segment2, a, b, c, d, e, f, g, dp)
  • این کد فقط برای آند مشترک هست
  • این کد فقط برای آند مشترک هست
  • سازنده کد کاداد میباشد و لایسنس این کد لایسنس ها:
  • MIT و CC BY-SA 4.0
  • هستند.
struct seg {

  int seg2_10i;
  int seg1_1i;

  int a;
  int b;
  int c;
  int d;
  int e;
  int f;
  int g;
  int dp;

  void begin(int a1, int a2, int b1, int b2, int b3, int b4, int b5, int b6, int b7, int b8) {

    seg2_10i = a1;
    seg1_1i = a2;

    a = b1;
    b = b2;
    c = b3;
    d = b4;
    e = b5;
    f = b6;
    g = b7;
    dp = b8;
    
    pinMode(seg2_10i, OUTPUT);
    pinMode(seg1_1i, OUTPUT);
    pinMode(a, OUTPUT);
    pinMode(b, OUTPUT);
    pinMode(c, OUTPUT);
    pinMode(d, OUTPUT);
    pinMode(e, OUTPUT);
    pinMode(f, OUTPUT);
    pinMode(g, OUTPUT);
    pinMode(dp, OUTPUT);
  }
  void alloff() {
    digitalWrite(a, 1);
    digitalWrite(b, 1);
    digitalWrite(c, 1);
    digitalWrite(d, 1);
    digitalWrite(e, 1);
    digitalWrite(f, 1);
    digitalWrite(g, 1);
  }

  void database(int n) {
    alloff();

    switch (n) {
      case 0:
        digitalWrite(a, LOW);
        digitalWrite(b, LOW);
        digitalWrite(c, LOW);
        digitalWrite(d, LOW);
        digitalWrite(e, LOW);
        digitalWrite(f, LOW);
        break;

      case 1:
        digitalWrite(b, LOW);
        digitalWrite(c, LOW);
        break;

      case 2:
        digitalWrite(a, LOW);
        digitalWrite(b, LOW);
        digitalWrite(d, LOW);
        digitalWrite(e, LOW);
        digitalWrite(g, LOW);
        break;

      case 3:
        digitalWrite(a, LOW);
        digitalWrite(b, LOW);
        digitalWrite(c, LOW);
        digitalWrite(d, LOW);
        digitalWrite(g, LOW);
        break;

      case 4:
        digitalWrite(b, LOW);
        digitalWrite(c, LOW);
        digitalWrite(f, LOW);
        digitalWrite(g, LOW);
        break;

      case 5:
        digitalWrite(a, LOW);
        digitalWrite(c, LOW);
        digitalWrite(d, LOW);
        digitalWrite(f, LOW);
        digitalWrite(g, LOW);
        break;

      case 6:
        digitalWrite(a, LOW);
        digitalWrite(c, LOW);
        digitalWrite(d, LOW);
        digitalWrite(e, LOW);
        digitalWrite(f, LOW);
        digitalWrite(g, LOW);
        break;

      case 7:
        digitalWrite(a, LOW);
        digitalWrite(b, LOW);
        digitalWrite(c, LOW);
        break;

      case 8:
        digitalWrite(a, LOW);
        digitalWrite(b, LOW);
        digitalWrite(c, LOW);
        digitalWrite(d, LOW);
        digitalWrite(e, LOW);
        digitalWrite(f, LOW);
        digitalWrite(g, LOW);
        break;

      case 9:
        digitalWrite(a, LOW);
        digitalWrite(b, LOW);
        digitalWrite(c, LOW);
        digitalWrite(d, LOW);
        digitalWrite(f, LOW);
        digitalWrite(g, LOW);
        break;

      default:
        // خاموش کردن نمایشگر
        break;
    }
  }

  void data(int my1, int my2) {
    digitalWrite(seg1_1i, LOW);
    digitalWrite(seg2_10i, HIGH);
    database(my1);
    delay(2);

    digitalWrite(seg2_10i, LOW);
    digitalWrite(seg1_1i, HIGH);
    database(my2);
    delay(2);
  }

  void show(int n) {
    data(n / 10, n % 10);
  }

  void show(float n) {
    int s1 = (int)n;
    int s2 = (int)(n * 10) % 10;

    digitalWrite(dp, LOW);
    data(s1, s2);
  }

  void clear() {
    alloff();
  }

  void test(){
    show(8.8);
  }


};
seg seg;

// پایه ها مالتری پلکس هستند
// تعریف از seg.begin(com_segment1, com_segment2, a, b, c, d, e, f, g, dp)
// این کد فقط برای آند مشترک هست
// سازنده کد کاداد میباشد و لایسنس این کد لایسنس ها:
// MIT و CC BY-SA 4.0
// هستند.