4Digit 7 Segment Multiplex Display Module

ماژول نمایش 7 قطعه ای چهار رقمی

NSE-7SA4 (2)

7Segment چهار رقمی

ورودی

دیتا جهت نمایش رقم (A-B-C-D-E-F-G-dot)

ورودی

انتخاب سگمنت جهت نمایش رقم (D1-D2-D3-D4)

لیست لمان های NSE-7SC4

QuantityCodeSymbol
14Digit 7 Segment
Common Cathode
7Seg
4PNP BC558Q
8220R
41KR
13pin1x13 SIL Right-Angle MalePin Header
6cm x 4cmSingle Side with Solder Mask and HelperPCB

سون سگمنت ها نمایشگر هایی کوچک هستند که به جهت آنکه میتوانند به خوبی دیده شوند و درخشان تر هستند و به دلیل زاویه دید خوبی که دارند ، برای مواردی که احتیاج به دیده شدن از دور هم وجود داشته باشد ، انتخاب بسیار مناسبی است.

ماژول سون سگمنت یک نمایشگر دیجیتال بوده که مجهز به 7 عدد ال ای دی برای نمایش اعداد است. این ماژول الکترونیک دارای 7 ال ای دی بوده که هر یک، 1 سگمنت به شمار می آیند و در هنگام روشن شدن، به رنگ قرمز روشن می گردند. این نمایشگر دیجیتال در ابعادی برابر با 60×40 میلیمتر تولید شده و قابلیت نمایش 4 عدد را دارد. ولتاژ کاری این ماژول برابر با 5 ولت DC بوده است.

				
					/**
   Arduino Digital Alarm Clock

   bY: Farhad Nikkhah
   https://www.NikiSite.com
   https://www.nikisite.com/product/nse-7sa4/
   https://www.nikisite.com/product/nse-rmds/
   https://www.nikisite.com/product/nse-keyx/
*/

//==========================================================================================
#include <SevSeg.h>
#include "Button.h"
#include "AlarmTone.h"
#include "Clock.h"
#include "config.h"

const int COLON_PIN = 13;
const int SPEAKER_PIN = A3;

Button hourButton(A0);
Button minuteButton(A1);
Button alarmButton(A2);

AlarmTone alarmTone;
Clock clock;
SevSeg sevseg;

enum DisplayState {
  DisplayClock,
  DisplayAlarmStatus,
  DisplayAlarmTime,
  DisplayAlarmActive,
  DisplaySnooze,
};

DisplayState displayState = DisplayClock;
long lastStateChange = 0;

void changeDisplayState(DisplayState newValue) {
  displayState = newValue;
  lastStateChange = millis();
}

long millisSinceStateChange() {
  return millis() - lastStateChange;
}

void setColon(bool value) {
  digitalWrite(COLON_PIN, value ? LOW : HIGH);
}
//==========================================================================================
void displayTime() {
  DateTime now = clock.now();
  bool blinkState = now.second() % 2 == 0;
  sevseg.setNumber(now.hour() * 100 + now.minute());
  setColon(blinkState);
}
//==========================================================================================
void clockState() {
  displayTime();

  if (alarmButton.read() == Button::RELEASED && clock.alarmActive()) {
    // Read alarmButton has_changed() to clear its state
    alarmButton.has_changed();
    changeDisplayState(DisplayAlarmActive);
    return;
  }

  if (hourButton.pressed()) {
    clock.incrementHour();
  }
  if (minuteButton.pressed()) {
    clock.incrementMinute();
  }
  if (alarmButton.pressed()) {
    clock.toggleAlarm();
    changeDisplayState(DisplayAlarmStatus);
  }
}
//==========================================================================================
void alarmStatusState() {
  setColon(false);
  sevseg.setChars(clock.alarmEnabled() ? " on" : " off");
  if (millisSinceStateChange() > ALARM_STATUS_DISPLAY_TIME) {
    changeDisplayState(clock.alarmEnabled() ? DisplayAlarmTime : DisplayClock);
    return;
  }
}
//==========================================================================================
void alarmTimeState() {
  DateTime alarm = clock.alarmTime();
  sevseg.setNumber(alarm.hour() * 100 + alarm.minute(), -1);

  if (millisSinceStateChange() > ALARM_HOUR_DISPLAY_TIME || alarmButton.pressed()) {
    changeDisplayState(DisplayClock);
    return;
  }

  if (hourButton.pressed()) {
    clock.incrementAlarmHour();
    lastStateChange = millis();
  }
  if (minuteButton.pressed()) {
    clock.incrementAlarmMinute();
    lastStateChange = millis();
  }
  if (alarmButton.pressed()) {
    changeDisplayState(DisplayClock);
  }
}
//==========================================================================================
void alarmState() {
  displayTime();

  if (alarmButton.read() == Button::RELEASED) {
    alarmTone.play();
  }
  if (alarmButton.pressed()) {
    alarmTone.stop();
  }
  if (alarmButton.released()) {
    alarmTone.stop();
    bool longPress = alarmButton.repeat_count() > 0;
    if (longPress) {
      clock.stopAlarm();
      changeDisplayState(DisplayClock);
    } else {
      clock.snooze();
      changeDisplayState(DisplaySnooze);
    }
  }
}
//==========================================================================================
void snoozeState() {
  sevseg.setChars("****");
  if (millisSinceStateChange() > SNOOZE_DISPLAY_TIME) {
    changeDisplayState(DisplayClock);
    return;
  }
}
//==========================================================================================
void setup() {
  Serial.begin(115200);

  clock.begin();

  hourButton.begin();
  hourButton.set_repeat(500, 200);

  minuteButton.begin();
  minuteButton.set_repeat(500, 200);

  alarmButton.begin();
  alarmButton.set_repeat(1000, -1);

  alarmTone.begin(SPEAKER_PIN);

  pinMode(COLON_PIN, OUTPUT);

  byte digits = 4;
  byte digitPins[] = { 2, 3, 4, 5 };
  byte segmentPins[] = { 6, 7, 8, 9, 10, 11, 12 };
  bool resistorsOnSegments = false;
  bool updateWithDelays = false;
  bool leadingZeros = true;
  bool disableDecPoint = true;
  sevseg.begin(DISPLAY_TYPE, digits, digitPins, segmentPins, resistorsOnSegments,
               updateWithDelays, leadingZeros, disableDecPoint);
  sevseg.setBrightness(90);
}
//==========================================================================================
void loop() {
  sevseg.refreshDisplay();

  switch (displayState) {
    case DisplayClock:
      clockState();
      break;

    case DisplayAlarmStatus:
      alarmStatusState();
      break;

    case DisplayAlarmTime:
      alarmTimeState();
      break;

    case DisplayAlarmActive:
      alarmState();
      break;

    case DisplaySnooze:
      snoozeState();
      break;
  }
}
				
			
ایرانی - طراحی ایرانی – تولید ایرانی – حمایت ایرانی

ارسال رایگان

با کف خرید تعیین شده

خرید مطمئن

با اطمینان خرید کنید.

پشتیبانی 24/7

همیشه هستیم.

پرداخت سریع

پرداخت شتابی.

محصول اورجینال

لذت خریدی مطمئن.

سبد خرید
سبد خرید
NSE-7SA4 (1)

نقشه ماژول نمایش 7 قطعه ای چهار رقمی

۵۰,۰۰۰ تومانفایل
فروشگاه
خانه
منو