118ELEC | مجله خبری الکترونیک و رباتیک
  • خانه
  • اخبار
    • اخبار الکترونیک
    • اخبار رباتیک
  • آموزش ها
    • الکترونیک
      • الکترونیک مقدماتی
        • معرفی قطعات الکترونیک
        • تجهیزات اندازه‌گیری
      • الکترونیک پیشرفته
      • الکترونیک دیجیتال
      • الکترونیک صنعتی
    • میکروکنترلرها
      • میکروکنترلر چیست و انواع آن
    • آردوینو
      • آردوینو چیست
      • پروژه آردوینو
    • اینترنت اشیاء
      • اینترنت اشیاء مقدماتی
      • اینترنت اشیاء پیشرفته
    • شبکه‌های کامپیوتری و ارتباط داده
      • can
    • طراحی و ساخت PCB
      • روش های ساخت پی سی بی
    • باتری‌ها
      • باتری چیست؟
      • باتری لیتیوم یون
    • موتور و درایور
      • درایور موتور
      • موتور DC
    • رباتیک
      • مباحث پایه رباتیک
      • ربات مسیر یاب
      • ربات جنگجو
      • سایر ربات ها
  • پروژه
    • پروژه آردوینو
    • پروژه Esp
  • سرگرمی الکترونیک
  • درباره ما
    • درباره ما
    • تماس با ما
  • نویسنده شو!
    • راهنمای ثبت نام و درج مقاله
    • نشر مقاله
    • ثبت نام
    • ورود
    • بازیابی رمز عبور
بدون نتیجه
مشاهده همه نتیجه
  • خانه
  • اخبار
    • اخبار الکترونیک
    • اخبار رباتیک
  • آموزش ها
    • الکترونیک
      • الکترونیک مقدماتی
        • معرفی قطعات الکترونیک
        • تجهیزات اندازه‌گیری
      • الکترونیک پیشرفته
      • الکترونیک دیجیتال
      • الکترونیک صنعتی
    • میکروکنترلرها
      • میکروکنترلر چیست و انواع آن
    • آردوینو
      • آردوینو چیست
      • پروژه آردوینو
    • اینترنت اشیاء
      • اینترنت اشیاء مقدماتی
      • اینترنت اشیاء پیشرفته
    • شبکه‌های کامپیوتری و ارتباط داده
      • can
    • طراحی و ساخت PCB
      • روش های ساخت پی سی بی
    • باتری‌ها
      • باتری چیست؟
      • باتری لیتیوم یون
    • موتور و درایور
      • درایور موتور
      • موتور DC
    • رباتیک
      • مباحث پایه رباتیک
      • ربات مسیر یاب
      • ربات جنگجو
      • سایر ربات ها
  • پروژه
    • پروژه آردوینو
    • پروژه Esp
  • سرگرمی الکترونیک
  • درباره ما
    • درباره ما
    • تماس با ما
  • نویسنده شو!
    • راهنمای ثبت نام و درج مقاله
    • نشر مقاله
    • ثبت نام
    • ورود
    • بازیابی رمز عبور
بدون نتیجه
مشاهده همه نتیجه
118ELEC | مجله خبری الکترونیک و رباتیک
بدون نتیجه
مشاهده همه نتیجه

راه اندازی ماژول سون سگمنت 4 رقمی TM1637 با آردوینو

P Y توسط نویسنده
12 بهمن 1400
در پروژه آردوینو, معرفی و راه اندازی ماژول
0

در این مقاله، راه اندازی ماژول سون سگمنت 4 رقمی TM1637 با آردوینو را آموزش خواهیم داد. این نمایشگر برای نمایش داده‌ی سنسور، دما، زمان و … فوق‌العاده است.

در این مقاله سه مثال آورده شده است. در مثال اول، نگاهی به توابع اصلی کتابخانه‌ی نمایشگر TM1637 خواهیم انداخت. در مثال دوم، به شما نشان خواهیم داد که چطور می‌توانید زمان را بر روی یک نمایشگر 4 رقمی نمایش دهید. از مثال سوم هم می‌توانید برای یک نمایش دمای ساده همراه با سنسور DHT11 استفاده کنید.

نحوه‌ی سیم‌کشی را نیز در این مقاله قرار داده‌ایم. پس از مثال‌ها هم، نحوه‌ی عملکرد کدها را توضیح داده‌‌ایم. بنابراین، شما بدون هیچ مشکلی می‌توانید براساس نیاز خود آن‌ها را تغییر دهید.

قطعات سخت‌افزاری

  • ماژول سون سگمنت 4 رقمی TM1637
  • ماژول آردوینو UNO Rev3
  • بردبورد
  • سیم‌های جامپر (10 عدد)
  • ماژول ساعت DS3231
  • Adafruit DS3231 Precision RTC Breakout
  • سنسور دما و رطوبت DHT11  (3 پایه)
  • کابل USB نوع A/B

نرم افزار

Arduino IDE

اطلاعاتی درباره نمایشگر سون سگمنت

نمایشگرهای سون سگمنت 4 رقمی ساده، معمولاً 12 پایه دارند. این تعداد پایه بسیار زیاد است و فضای زیادی برای سایر ماژول‌ها و سنسورها باقی نمی‌گذارد. به لطف تراشه‌ TM1637 که در پشت ماژول نمایشگر قرارگرفته‌، این تعداد به 4 پایه کاهش پیدا کرده است. از دو پایه برای تغذیه و از دو پایه دیگر برای کنترل سگمنت‌ها استفاده می‌شود.

نمایشگرهای سون سگمنت شامل 7 (یا 8) عدد LED هستند که به‌طور مجزا آدرس‌دهی می‌شوند. سگمنت‌ها با حروف A تا G نام‌گذاری شده‌اند. برخی نمایشگرها نیز دارای یک دات هستند (هشتمین LED). در ادامه هنگام تنظیم سگمنت‌ها در کد، از تصویر زیر به عنوان مرجع استفاده می‌کنیم.

7 LED نام گذاری شده از حروف A تا G و یک دات نمایشگر سون سگمنت

شما می‌توانید ماژول‌های نمایشگر متفاوتی را که از تراشه‌ی TM1637 استفاده می‌کنند، خریداری نمائید. رنگ، سایز، دات‌ها و نقاط اتصال آن‌ها می‌تواند متفاوت باشد. تا زمانی‌که این نمایشگرها از تراشه TM1637 استفاده می‌کنند، کدهای نمونه‌ای که در ادامه بیان کرده‌ایم، قابل استفاده هستند.

در جدول زیر می‌توانید مشخصات اصلی ماژول نمایشگری که در این مقاله استفاده شده یعنی ماژول سون سگمنت TM1637 را مشاهده ‌کنید.

مشخصات ماژول سون سگمنت 4 رقمی TM1637

جدول مشخصات ماژول سون سگمنت 4 رقمی TM1637

سیم کشی – راه اندازی نمایشگر سون سگمنت 4 رقمی TM1637 به آردوینو UNO

اتصال نمایشگر به یک آردوینو یا سایر میکروکنترلرها بسیار ساده است. تنها لازم است 4 سیم را متصل کنید : 2 سیم برای تغذیه و 2 سیم برای انتقال دیتا.

نمودار سیم‌کشی زیر به شما نشان می‌دهد که چگونه نمایشگر را به آردوینو متصل کنید.

نحوه اتصال سون سگمنت 4 رقمی TM1637 به آردوینو تنها با استفاده از 4 سیم
سیم‌کشی ماژول سون سگمنت 4 رقمی به آردوینو

اتصالات نیز در جدول زیر آورده شده است:

اتصالات نمایشگر سون سگمنت TM1637 به آردوینو

جدول اتصالات نمایشگر سون سگمنت TM1637 به آردوینو

توجه داشته باشید که ترتیب و موقعیت پایه‌های ماژول می‌تواند براساس شرکت سازنده آن متفاوت باشد!

در این مقاله، CLK و DIO به ترتیب به پایه‌های 2 و 3 متصل شده‌اند، اما می‌توانید آن را به هر یک از پایه‌های دیجیتالی که می‌خواهید متصل کنید. تنها باید تنظیمات پایه‌ در کد را طبق آن تغییر دهید.

کد آردوینو برای ماژول سون سگمنت 4 رقمی TM1637

Avishay Orpaz کتابخانه‌ای فوق‌العاده برای نمایشگرهای TM1637 نوشته ‌است. توابع موجود در این کتابخانه، کنترل نمایشگر را آسان می‌کند. این کتابخانه را می‌توانید از طریق لینک زیر دانلود کنید.

توابع اصلی عبارتنداز:

  • ()setSegments – مقدار خام سگمنت‌های هر رقم را تنظیم می‌کند.
  • ()showNumberDec – یک عدد دسیمال را نمایش می‌دهد.
  • ()showNumberDecEx – یک عدد دسیمال با ممیز یا دو نقطه را نمایش می‌دهد.
  • ()setBrightness – روشنایی نمایشگر را تنظیم می‌کند.
  • ()clear – نمایشگر را پاک می‌کند.

 کدی که در ادامه قرار دارد، تمام این توابع را نشان می‌دهد. در ادامه، نحوه‌ی استفاده از هر تابع را با جزئیات بیشتری توضیح خواهیم داد.

شما می‌توانید کد نمونه را با استفاده از نرم‌افزار Arduino IDE بر روی آردوینو خود بارگذاری کنید.

برای اینکه بتوانید با تراشه‌ی TM1637 ارتباط برقرار کنید، به یک کتابخانه نیاز دارید. کتابخانه TM1637 را می توانید از لینک زیر دانلود کنید.

کتابخانه TM1637

سپس، مسیر زیر را در نرم‌افزار آردوینو دنبال کنید:

Sketch > Include Library > Add .ZIP Library …

روش دیگر این است که مسیر Tools > Manage Libraries …  را دنبال کنید یا اینکه Ctrl + Shift +I  را روی ویندوز تایپ کنید. با این کار، Library Manager باز می‌شود و لیست کتابخانه‌های نصب شده به روزرسانی خواهد شد.

سپس، در قسمت جستجو عبارت tm1637 را تایپ و کتابخانه‌ای را که ساخت Avishay Orpaz است، پیدا کنید. در نهایت آخرین نسخه‌ی کتابخانه را انتخاب نموده و بر روی گزینه‌ی نصب کلیک کنید تا کتابخانه نصب شود.

کد نمونه

با کلیک بر روی گزینه‌ای که در گوشه‌ی سمت راست محیط کد قرار دارد، می‌توانید کد را کپی نمائید.

/* Example code for TM1637 4 digit 7 segment display with Arduino. More info: www.www.makerguides.com */

// Include the library:
#include <TM1637Display.h>

// Define the connections pins:
#define CLK 2
#define DIO 3

// Create display object of type TM1637Display:
TM1637Display display = TM1637Display(CLK, DIO);

// Create array that turns all segments on:
const uint8_t data[] = {0xff, 0xff, 0xff, 0xff};

// Create array that turns all segments off:
const uint8_t blank[] = {0x00, 0x00, 0x00, 0x00};

// You can set the individual segments per digit to spell words or create other symbols:
const uint8_t done[] = {
  SEG_B | SEG_C | SEG_D | SEG_E | SEG_G,           // d
  SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,   // O
  SEG_C | SEG_E | SEG_G,                           // n
  SEG_A | SEG_D | SEG_E | SEG_F | SEG_G            // E
};

// Create degree Celsius symbol:
const uint8_t celsius[] = {
  SEG_A | SEG_B | SEG_F | SEG_G,  // Circle
  SEG_A | SEG_D | SEG_E | SEG_F   // C
};

void setup() {
  // Clear the display:
  display.clear();
  delay(1000);
}

void loop() {
  // Set the brightness:
  display.setBrightness(7);
  // All segments on:
  display.setSegments(data);

  delay(1000);
  display.clear();
  delay(1000);

  // Show counter:
  int i;
  for (i = 0; i < 101; i++) {
    display.showNumberDec(i);
    delay(50);
  }

  delay(1000);
  display.clear();
  delay(1000);

  // Print number in different locations, loops 2 times:
  int j;
  for (j = 0; j < 2; j++) {
    for (i = 0; i < 4; i++) {
      display.showNumberDec(i, false, 1, i);
      delay(500);
      display.clear();
    }
  }
  
  delay(1000);
  display.clear();
  delay(1000);

  // Set brightness (0-7):
  int k;
  for (k = 0; k < 8; k++) {
    display.setBrightness(k);
    display.setSegments(data);
    delay(500);
  }

  delay(1000);
  display.clear();
  delay(1000);

  // Print 1234 with the center colon:
  display.showNumberDecEx(1234, 0b11100000, false, 4, 0);

  delay(1000);
  display.clear();
  delay(1000);

  int temperature = 24;
  display.showNumberDec(temperature, false, 2, 0);
  display.setSegments(celsius, 2, 2);

  delay(1000);
  display.clear();
  delay(1000);

  display.setSegments(done);
  while(1);
}

توضیح کد

کدی که در بالا بر روی نرم‌افزار آردوینو آپلود کردید، با معرفی کتابخانه آغاز می‌شود. از نصب شدن کتابخانه‌ی صحیح مطمئن شوید، در غیر این صورت هنگام کامپایل کد پیام خطا دریافت خواهید کرد.

// Include the library:
#include <TM1637Display.h>

مرحله‌ی بعد تعیین پایه‌های ارتباطی است. برای اختصاص دادن یک نام به یک مقدار ثابت از عبارت define# استفاده می‌شود. هنگامی‌که کد کامپایل می‌شود، کامپایلر هر ارجاعی به مقدار ثابت را با مقدار تعریف شده جایگزین خواهد کرد. بنابراین، هرجا که CLK ذکر شده باشد، هنگامی که کد کامپایل شود، کامپایلر CLK را با مقدار 2 جایگزین می‌کند.

// Define the connections pins:
#define CLK 2
#define DIO 3

در قدم بعد، یک شیء نمایشگر از نوع TM1637Display با پایه‌های CLK و DIO تعریف ‌شده، ایجاد می‌کنیم. توجه داشته باشید که در اینجا ما نمایشگر را display نامیدیم، اما شما می‌توانید از نام‌های دیگر مانند نمایشگر دما (temperature_display) استفاده کنید.

نامی که برای نمایشگر انتخاب می‌کنید، بعداً برای نوشتن دیتا بر روی آن نمایشگر خاص استفاده خواهد شد. شما می‌توانید چندین شیء نمایشگر با نام‌ها و پایه‌های ارتباطی متفاوت ایجاد و آن‌ها را کنترل کنید. در حال حاضر محدودیتی در کتابخانه وجود ندارد.

// Create display object of type TM1637Display:
TM1637Display display = TM1637Display(CLK, DIO);

// You can create more than one display object. Give them different names and connection pins:
TM1637Display display_1  = TM1637Display(2, 3);
TM1637Display display_2  = TM1637Display(4, 5);
TM1637Display display_3  = TM1637Display(6, 7);

چندین روش برای کنترل هر یک از سگمنت‌های نمایشگر وجود دارد. پیش از بخش setup دستورات، چندین آرایه تعریف می‌شود که هر یک از سگمنت‌های نمایشگر را تنظیم می‌کند. در ادامه برای نوشتن سگمنت‌ها بر روی نمایشگر از تابع ()setSegments استفاده خواهیم کرد.

اولین روش، نوشتن اعداد در مبنای 16 بر روی هر یک از سگمنت‌های نمایشگر است. عدد 0xFF در مبنای 16 معادل عدد 11111111 در مبنای 2 است که باعث روشن شدن همه‌ی سگمنت‌ها می‌شود (اگر نمایشگر شما دات داشته باشد، آن هم روشن خواهد شد). به عنوان مثال، 0xEF که معادل 11101111 است، همه‌ی سگمنت‌ها را به جز سگمنت E روشن می‌کند. توجه داشته باشید که شمارش از راست به چپ انجام می‌شود، بنابراین، 11111111 به ترتیب با سگمنت‌های (dot)GFEDCBA منطبق است. جدول تبدیل اعداد در مبنای 16 به مبنای 2 را نیز می‌توانید بررسی کنید.

// Create array that turns all segments on:
const uint8_t data[] = {0xff, 0xff, 0xff, 0xff};

// Create array that turns all segments off:
const uint8_t blank[] = {0x00, 0x00, 0x00, 0x00};

این کتابخانه تابعی دارد که تنظیم هر یک از سگمنت‌ها را آسان‌تر می‌سازد. همان‌طور که در کد زیر مشاهده می‌کنید، شما می‌توانید آرایه‌هایی برای هجی کردن کلمات ایجاد کنید. هر سگمنت با یک |  جدا می‌شود و ارقام نمایشگر با یک کاما جدا می‌شوند.   

// You can set the individual segments per digit to spell words or create other symbols:
const uint8_t done[] = {
  SEG_B | SEG_C | SEG_D | SEG_E | SEG_G,           // d
  SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,   // O
  SEG_C | SEG_E | SEG_G,                           // n
  SEG_A | SEG_D | SEG_E | SEG_F | SEG_G            // E
};

شما می‌توانید بخش setup کد را خالی قرار دهید. ما برای اطمینان از پاک شدن نمایشگر، از تابع ()Clear استفاده می‌کنیم.

void setup() {
  // Clear the display:
  display.clear();
  delay(1000);
}

در بخش loop کد، چندین مثال از توابع مختلف کتابخانه را نشان می‌دهیم:

setSegments(segments[], length, position)

این تابع برای تنظیم هر یک از سگمنت‌های نمایشگر به‌طور مجزا استفاده می‌شود. اولین پارامتر (segments[]) آرایه‌ای است که شامل اطلاعات سگمنت می‌شود. دومین پارامتر (length) تعداد ارقام (4-0) را که باید تغییر کنند، مشخص می‌کند. اگر بخواهید کلمه‌ی dOnE را هجی کنید، پارامتر دوم برابر با 4 و برای نمایش علامت ˚C، مقدار این پارامتر برابر 2 خواهد بود. سومین پارامتر (position) محلی را که باید از آنجا مقدار نمایشگر چاپ شود، تنظیم می‌کند (0- چپ‌ترین و 3- راست‌ترین). بنابراین، اگر می‌خواهید علامت را روی سومین و چهارمین رقم چاپ کنید، باید از کد زیر استفاده نمائید:

// Create degree Celsius symbol:
const uint8_t celsius[] = {
  SEG_A | SEG_B | SEG_F | SEG_G,  // Circle
  SEG_A | SEG_D | SEG_E | SEG_F   // C
};

display.setSegments(celsius, 2, 2);

دومین و سومین پارامتر تابع را نیز می‌توانید خالی بگذارید.

showNumberDec(number, leading_zeros, length, position)

این تابع بیشترین کاربرد را برای شما دارد. اولین پارامتر (number) عددی است که می‌خواهید روی نمایشگر نمایش دهید. سایر پارامتر‌ها اختیاری هستند.

دومین پارامتر (leading_zeros) برای روشن کردن یا خاموش کردن صفرهای قبل از عدد به کاربرده می‌شود. عدد 10 بدون صفرهای قبل از عدد به صورت 10— و با صفرهای قبل از عدد به صورت 0010 چاپ خواهد شد. برای نمایش صفرهای قبل از عدد می‌توانید این پارامتر را بر روی true و برای عدم نمایش صفرهای قبل از عدد پارامتر را بر روی false تنظیم کنید. توجه داشته باشید که صفرهای قبل از عدد به ازای اعداد منفی پشتیبانی نمی‌شود.

سومین و چهارمین پارامتر مانند تابع قبلی عمل می‌کنند.

// Print the number 12 without leading zeros on the second and third digit:
display.showNumberDec(12, false, 2, 1);

showNumberDecEx(number, dots, leading_zeros, length, position)

این تابع به شما این امکان را می‌دهد تا نحوه‌ی قرارگیری ممیز یا نقطه بر روی نمایشگر را کنترل کنید. تنها دومین پارامتر این تابع است که نسبت به تابع showNumberDec متفاوت می‌باشد. دومین پارامتر (dots) تنظیم ممیز یا نقطه بین هر یک از ارقام را برای شما فراهم می‌کند.

در ادامه مقادیری برای شما فراهم شده است که می‌توانید برای کنترل نقطه یا ممیز از آن‌ها استفاده کنید.

برای نمایش نقطه یا ممیز بین هر یک از ارقام از مقادیر زیر استفاده کنید:

  • 0b10000000 – 0.000
  • 0b01000000 – 00.00
  • 0b00100000 – 000.0
  • 0b11100000 – 0.0.0.0

برای نمایش دو نقطه به‌صورت زیر عمل کنید:

  • 0b01000000 – 00:00

برای نمایش نقطه و دو نقطه بین ارقام از مقادیر زیر استفاده کنید:

  • 0b11100000 – 0.0:0.0

برای نمایش ساعت که دو نقطه در مرکز آن قرار دارد، می‌توانید از دستوری مانند زیر استفاده کنید:

// Print 1234 with the center colon:
display.showNumberDecEx(1234, 0b11100000, false, 4, 0);

setBrightness(brightness, true/false)

این تابع همان‌گونه که از نام آن پیدا است، روشنایی نمایشگر را تنظیم می‌کند. شما می‌توانید سطح روشنایی را از 0 (کمترین حد روشنایی) تا 7 (بیشترین حد روشنایی) مشخص کنید.

از دومین پارامتر (true/false) می‌توان برای روشن یا خاموش کردن نمایشگر استفاده کرد. False به معنای خاموش شدن نمایشگر است.

// Set the display brightness (0-7):
display.setBrightness(7);

کد نمونه : ساخت ساعت با ماژول سون سگمنت 4 رقمی TM1637 و ماژول DS3231  

یکی از کاربردهای رایج نمایشگر سون سگمنت 4 رقمی، نمایش زمان است. با استفاده از نمایشگر سون سگمنت TM1637 و ماژول RTC، به آسانی می‌توان یک ساعت 24 ساعته ساخت.

در این مثال از ماژول ساعت DS3231 استفاده شده است. این ماژول از طریق I2C با آردوینو ارتباط برقرار می‌کند، بنابراین، برای خواندن زمان تنها به دو اتصال نیاز دارید.

تصویر زیر نحوه‌ی اتصال ماژول ساعتDS3231 به آردوینو را نشان می‌دهد. توجه داشته باشید که اتصالات نمایشگر سون سگمنت TM1637 همانند قبل انجام شود.

شیوه اتصال ماژول ساعت DS3231 به آردوینو
سیم‌کشی ماژول DS3231 به آردوینو

همچنین اتصالات در جدول زیر بیان شده‌اند:

اتصالات ماژول DS3231 RTC

جدول اتصالات ماژول ساعت DS3231 به آردوینو

از کد زیر می‌توان برای نمایش زمان با فرمت 24 ساعته استفاده کرد. اگر نمایشگر شما یک دونقطه‌ی مرکزی دارد، این کد باعث چشمک زدن آن خواهد شد. همچنین با حذف خطوط پایانی کد می‌توانید آن را غیرفعال کنید.

اولین باری که کد را بارگذاری می‌کنید، ماژول ساعت DS3231 بر روی زمانی‌که کد کامپایل شده است، تنظیم خواهد شد. شما می‌توانید یک باتری سکه‌ای در پشت ماژول قرار دهید تا درصورت قطع برق، زمان ذخیره شود.

کد زیر از کتابخانه‌ی Adafruit RTC استفاده می‌کند که می‌توانید آن را از لینک زیر دانلود کنید. همچنین می‌توانید آن را از طریق Library Manager در نرم‌افزار آردوینو و با جستجوی RTClib نصب کنید.

کتابخانه‌ی Adafruit RTC

کد نمونه

/* Arduino example code to display a 24 hour time format clock on a TM1637 4 digit 7 segment display with a DS32321 RTC. More info: www.www.makerguides.com */

// Include the libraries:
#include "RTClib.h"
#include <TM1637Display.h>

// Define the connections pins:
#define CLK 2
#define DIO 3

// Create rtc and display object:
RTC_DS3231 rtc;
TM1637Display display = TM1637Display(CLK, DIO);

void setup() {
  // Begin serial communication at a baud rate of 9600:
  Serial.begin(9600);
  // Wait for console opening:
  delay(3000);

  // Check if RTC is connected correctly:
  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }
  // Check if the RTC lost power and if so, set the time:
  if (rtc.lostPower()) {
    Serial.println("RTC lost power, lets set the time!");
    // The following line sets the RTC to the date & time this sketch was compiled:
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    //rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }

  // Set the display brightness (0-7):
  display.setBrightness(5);
  // Clear the display:
  display.clear();
}

void loop() {
  // Get current date and time:
  DateTime now = rtc.now();

  // Create time format to display:
  int displaytime = (now.hour() * 100) + now.minute();

  // Print displaytime to the Serial Monitor:
  Serial.println(displaytime);

  // Display the current time in 24 hour format with leading zeros enabled and a center colon:
  display.showNumberDecEx(displaytime, 0b11100000, true);

  // Remove the following lines of code if you want a static instead of a blinking center colon:
  delay(1000);

  display.showNumberDec(displaytime, true); // Prints displaytime without center colon.

  delay(1000);
}

کد نمونه: ساخت دماسنج با نمایشگر سون سگمنت 4 رقمی TM1637 و سنسور دما و رطوبت DHT11

نمایشگرهای سون سگمنت 4 رقمی برای نمایش داده‌های به دست آمده از سنسورها مانند دما، رطوبت، ولتاژ و سرعت بسیار مناسب هستند. در ادامه نحوه‌ی نمایش داده‌های دما بر روی نمایشگر سون سگمنت 4 رقمی TM1637 را به شما نشان خواهیم داد.

ما از سنسور رطوبت و دمای معروف DHT11 استفاده خواهیم کرد.

تصویر زیر به شما نشان می‌دهد که چگونه می‌توانید سنسور DHT11 را به ماژول سون سگمنت 4 رقمی TM1637 و آردوینو متصل کنید. توجه داشته باشید که اتصالات نمایشگر TM1637 همانند قبل انجام شود.

شیوه اتصال سنسور DHT11 به نمایشگر TM1637 و آردوینو
سیم کشی سنسور DHT11 به آردوینو

همچنین اتصالات در جدول زیر بیان شده‌ است:

اتصالات DHT11

جدول اتصالات DHT11 به آردوینو

توجه داشته باشید که ترتیب پایه‌های ماژول براساس شرکت سازنده آن می‌تواند متفاوت باشد.

اگر می‌خواهید از یک سنسور 4 پایه استفاده کنید، مقاله‌ی راه اندازی سنسور دما و رطوبت DHT11 با آردوینو را مطالعه کنید.

از کد زیر می‌توان برای نمایش داده‌های دما بر روی نمایشگر استفاده کرد. این کد دما را با فاصله‌ی زمانی 2 ثانیه، برحسب سلسیوس و فارنهایت نمایش می‌دهد.

تابع ()setSegments برای نمایش علامت سلسیوس و فارنهایت استفاده می‌شود.

در کد زیر از کتابخانه‌ی Adafruit DHT sensor استفاده شده است. این کتابخانه تنها در صورتی که کتابخانه Adafruit Unified Sensor را نصب کرده باشید، قابل استفاده است. این دو کتابخانه را می توانید از طریق دو لینک زیر دانلود کنید.

کتابخانه‌ی Adafruit DHT sensor
کتابخانه Adafruit Unified Sensor

نمونه کد

/* Arduino example sketch to display DHT11 temperature readings on a TM1637 4-digit 7-segment display. More info: www.www.makerguides.com */

// Include the libraries:
#include <TM1637Display.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>

// Define the connections pins:
#define CLK 2
#define DIO 3
#define DHTPIN 4

// Create variable:
int temperature_celsius;
int temperature_fahrenheit;

// Create degree Celsius symbol:
const uint8_t celsius[] = {
  SEG_A | SEG_B | SEG_F | SEG_G,  // Circle
  SEG_A | SEG_D | SEG_E | SEG_F   // C
};

// Create degree Fahrenheit symbol:
const uint8_t fahrenheit[] = {
  SEG_A | SEG_B | SEG_F | SEG_G,  // Circle
  SEG_A | SEG_E | SEG_F | SEG_G   // F
};

// Set DHT type, uncomment whatever type you're using!
#define DHTTYPE DHT11   // DHT 11 
//#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

// Create display object of type TM1637Display:
TM1637Display display = TM1637Display(CLK, DIO);
// Create dht object of type DHT:
DHT dht = DHT(DHTPIN, DHTTYPE);

void setup() {
  // Set the display brightness (0-7):
  display.setBrightness(0);
  // Clear the display:
  display.clear();
  // Setup sensor:
  dht.begin();
  // Begin serial communication at a baud rate of 9600:
  Serial.begin(9600);
  // Wait for console opening:
  delay(2000);
}

void loop() {
  // Read the temperature as Celsius and Fahrenheit:
  temperature_celsius = dht.readTemperature();
  temperature_fahrenheit = dht.readTemperature(true);
  // Print the temperature to the Serial Monitor:
  Serial.println(temperature_celsius);
  Serial.println(temperature_fahrenheit);

  // Show the temperature on the TM1637 display:
  display.showNumberDec(temperature_celsius, false, 2, 0);
  display.setSegments(celsius, 2, 2);

  delay(2000);

  display.showNumberDec(temperature_fahrenheit, false, 2, 0);
  display.setSegments(fahrenheit, 2, 2);

  delay(2000);
}

نتیجه‌گیری

در این مقاله، نحوه‌ی راه اندازی ماژول سون سگمنت 4 رقمی TM1637 با آردوینو را به شما نشان دادیم. همچنین کدهای ساعت و دماسنج را بررسی کردیم. امیدواریم برای شما مفید و آموزنده بوده باشد. چنانچه برایتان مفید بوده، لطفاً آن را با دوستانی که به الکترونیک علاقه دارند، به اشتراک بگذارید.

استفاده از این نمایشگرها برای نمایش داده‌های سنسور یا چیزهایی مانند سرعت یک موتور بسیار جذاب است. با کتابخانه‌ی نمایشگر TM1637، برنامه‌نویسی نمایشگرها بسیار آسان می‌شود، بنابراین دلیلی ندارد که در پروژه‌ی بعدی خود از آن استفاده نکنید.

اما ما مشتاقیم که بدانیم، شما قصد ساخت چه پروژه‌هایی را با این نمایشگر دارید؟ هرگونه سوال یا پیشنهادی داشتید، لطفاً در قسمت دیدگاه برایمان بنویسید.

پست قبلی

آموزش کار با مولتی متر دیجیتال ویژه مبتدیان

پست بعدی

آموزش ساخت ماژول رله

P Y

نویسنده

پست بعدی
آموزش ساخت ماژول رله

آموزش ساخت ماژول رله

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

راه اندازی سنسور تشخیص رنگ TCS230/TCS3200 با آردوینو

توسط 118elec .com
20 اسفند 1401
0
راه اندازی سنسور تشخیص رنگ TCS230/TCS3200 با آردوینو

در این مقاله به آموزش تشخیص رنگ با استفاده از سنسور رنگ TCS230 یا TCS3200 و آردوینو پرداخته شده است....

بیشتر بخوانید

نحوه ارتقاء مبدل XL4015

توسط 118elec .com
15 اسفند 1401
0
تغییر مبدل XL4015 با استفاده ازمحدود‌کننده‌های قابل تنظیم جریان

در این آموزش روشی ساده برای ارتقای ماژول XL4015، که یک مبدل DC به DC باک می‌باشد، با استفاده از...

بیشتر بخوانید

پیشرفت نوسان سازها در راستای پاسخ به نیازهای روز تکنولوژی

توسط نویسنده 2
14 شهریور 1401
0
پیشرفت نوسان سازها در راستای پاسخ به نیازهای روز تکنولوژی

Part components inside joystick of a console game نوسان سازهای ساعت، سیگنال مرجع دقیق زمان‌بندی‌شده‌ای برای کنترل مدار الکترونیکی ارائه...

بیشتر بخوانید

درباره ما

وبسایت خبری 118ELEC یک وبسایت تخصصی در زمینه الکترونیک و رباتیک می باشد که تمام تمرکز خود را در این زمینه گذاشته و سعی دارد تا مکانی از هر جهت بی نقص را برای کاربران این حوزه فراهم آورد. اخبار الکترونیک و رباتیک، پروژه الکترونیک و رباتیک، معرفی و آشنایی با قطعات الکترونیک، از برنامه های مهم این مجموعه می باشد.

ارتباط با ما از طریق:

118elec@gmail.com

  • اصول مقاله نویسی
  • درباره ما
  • تماس با ما

Copyright © تمام حقوق این سایت متعلق به 118elec می‌باشد.

بدون نتیجه
مشاهده همه نتیجه
  • خانه
  • اخبار
    • اخبار الکترونیک
    • اخبار رباتیک
  • آموزش ها
    • الکترونیک
      • الکترونیک مقدماتی
      • الکترونیک پیشرفته
      • الکترونیک دیجیتال
      • الکترونیک صنعتی
    • میکروکنترلرها
      • میکروکنترلر چیست و انواع آن
    • آردوینو
      • آردوینو چیست
      • پروژه آردوینو
    • اینترنت اشیاء
      • اینترنت اشیاء مقدماتی
      • اینترنت اشیاء پیشرفته
    • شبکه‌های کامپیوتری و ارتباط داده
      • can
    • طراحی و ساخت PCB
      • روش های ساخت پی سی بی
    • باتری‌ها
      • باتری چیست؟
      • باتری لیتیوم یون
    • موتور و درایور
      • درایور موتور
      • موتور DC
    • رباتیک
      • مباحث پایه رباتیک
      • ربات مسیر یاب
      • ربات جنگجو
      • سایر ربات ها
  • پروژه
    • پروژه آردوینو
    • پروژه Esp
  • سرگرمی الکترونیک
  • درباره ما
    • درباره ما
    • تماس با ما
  • نویسنده شو!
    • راهنمای ثبت نام و درج مقاله
    • نشر مقاله
    • ثبت نام
    • ورود
    • بازیابی رمز عبور

Copyright © تمام حقوق این سایت متعلق به 118elec می‌باشد.

خوش آمدید!

ورود به حساب کاربری خود در زیر

رمز عبور را فراموش کرده اید؟ ثبت نام

ایجاد حساب جدید!

پر کردن فرم های زیر برای ثبت نام

تمام زمینه ها مورد نیاز است. ورود

رمز عبور خود را بازیابی کنید

لطفا نام کاربری یا آدرس ایمیل خود را برای تنظیم مجدد رمز عبور خود وارد کنید.

ورود