کوډ ولټوئ

د TM1638 ۴-عدده نندارې څنګه وکاروو. ویډیو وګورئ

د TM1638 ۴-عدده نندارې څنګه وکاروو. ویډیو وګورئ

د TM1638 ماډل یو څو اړخیز جز دی چې کولای شي شمېرې او توري ښکاره کړي پداسې حال کې چې د تڼیو په واسطه کنټرولېږي. په دې ټیوټوریل کې، تاسو به زده کړئ چې څنګه دا ښکارندوی تنظیم او پروګرام کړئ ترڅو بېلابېل ارزښتونه وښیې، په شمول شمېرې او هیکس ارزښتونه. د دې لارښود په پای کې، تاسو به یو بشپړ فعال ښکارندوی ولرئ چې د تڼیو فشار ته ځواب وايي او د کاروونکي د ننوتلو پر بنسټ هغه څه بدلوي چې ښودل کېږي. تاسو کولای شئ په ویډیو کې یوه ننداره وګورئ (په ویډیو کې په 00:00).
TM1637 keypad display module-1

هارډویر تشریح شوی

د TM1638 ماډل د معلوماتو ښودلو او د تڼیو څخه د ننوتلو ترلاسه کولو لپاره ډیزاین شوی. دا د 8-عددي LED ښکارندوی او د 16 تڼیو یوه میټریکس لري. هر تڼۍ کولای شي پروګرام شي چې بېلابېلې دندې پیل کړي، چې د کاروونکي دوستانه انٹرفیس چمتو کوي. ماډل د دریو پنونو له لارې مایکروکنټرولر سره نښلول کېږي: د معلوماتو ننوتلو/بهر وتلو پن، د ساعت پن، او د سټروب پن. دا تنظیم د مایکروکنټرولر او TM1638 ترمنځ اغېزمنه اړیکه فعالوي. د TM1638 IC ښکارندوی او د تڼیو ننوتل اداره کوي. دا د سیریل اړیکو پروتوکول کاروي چې دا توان ورکوي چې ښکارندوی کنټرول کړي او د تڼیو حالتونه د لږترلږه تارونو سره ولولي. د هرې تڼۍ فشار مایکروکنټرولر ته یو سیګنال لیږي، کوم چې بیا د هغې تڼۍ پر بنسټ ځانګړي کړنې ترسره کولای شي چې فشار شوې وه.

ډیټاشیټ تفصیلات

جوړونکیQYF
د پرزې شمېرهTM1638
منطق/IO ولټاژ5 V
د برېښنا ولټاژ5 V
د بهر وتو جریان (په هر برخه کې)20 mA
لوړ جریان (ټول)120 mA
د ننوتلو منطق حدونه0.2 V (ټیټ) / 0.8 V (لوړ)
بستهDIP-28
  • ډاډ ترلاسه کړئ چې د برېښنا ولټاژ د غوره فعالیت لپاره په 5 V کې مستحکم وي.
  • د ښکارندوی د زیان څخه مخنیوي لپاره د بهر وتو جریان محدود کړئ.
  • د LEDs له لارې د ډېر جریان څخه مخنیوي لپاره ریزسټرونه وکاروئ.
  • د څو ځله پیل کېدو څخه مخنیوي لپاره په سافټویر کې د تڼیو ننوتل ډیبونس کړئ.
  • د اړیکو په برخه کې د شور کمولو لپاره تارونه لنډ وساتئ.

د تارونو د نښلولو لارښوونې

د TM1638 ماډل د تارونو د نښلولو لپاره، تاسو به دا خپل مایکروکنټرولر سره په لاندې ډول ونښلوئ:
Arduino wiring for TM1637 keypad display module
Arduino wiring for TM1637 keypad display module
- په TM1638 کې د VCC په نوم پن د خپل مایکروکنټرولر د 5V برېښنا رسولو سره ونښلوئ. - په TM1638 کې د GND پن د خپل مایکروکنټرولر ځمکې سره ونښلوئ. - د STB پن (چې ډېری وخت د STROBE په نوم یادېږي) د خپل مایکروکنټرولر ډیجیټل پن 5 سره ونښلوئ. - د CLK پن (ساعت) د خپل مایکروکنټرولر ډیجیټل پن 2 سره ونښلوئ. - د DIO پن (د معلوماتو ننوتل/بهر وتل) د خپل مایکروکنټرولر ډیجیټل پن 3 سره ونښلوئ. ډاډ ترلاسه کړئ چې د سیسټم د برېښنا کولو دمخه خپلې اړیکې وګورئ. که تاسو په ویډیو کې تعقیب کړی وي (په ویډیو کې په 02:30)، تاسو باید د تارونو په نښلولو کې کومه ستونزه ونه لرئ.

د کوډ مثالونه او تفصیلي کتنه

لاندې کوډ ټوټه د TM1638 ماډل پیل کوي او ښکارندوی تنظیموي. پیژندونکی module د TM1638 بېلګه ښیي چې د ښکارندوی سره د تعامل لپاره جوړه شوې ده.
TM1638QYF module(DIO, CLK, STB);
void setup() 
{
  module.setupDisplay(true, 7);
}
په دې ټوټه کې، ښکارندوی تنظیم شوی چې اعظمي روښانتیا (7) وښیې. د کوډ بله برخه د تڼیو فشارونه اداره کوي او د فشار شوې تڼۍ پر بنسټ ښکارندوی بدلوي.
void update(TM1638QYF* module, word* mode) {
  word buttons = module->getButtons();
  if (buttons != 0) {
    *mode = buttons >> 1;
  }
  switch (*mode) {
    case 0: module->setDisplayToString("press 1"); break;
    // نور قضیې تعقیبېږي
  }
}
دا فنکشن چیک کوي چې کومه تڼۍ فشار شوې ده د getButtons() په کارولو سره او ښکارندوی په مطابق تازه کوي. متغیر mode ټاکي چې د فشار شوې تڼۍ پر بنسټ کوم متن ښودل کېږي. په پای کې، اصلي لوپ په دوامداره توګه ښکارندوی تازه کوي.
void loop() 
{
  update(&module, &mode);
}
دا لوپ د update فنکشن غږوي، ډاډ ترلاسه کوي چې ښکارندوی د کاروونکي د تعامل پر بنسټ تازه کېږي. د بشپړ پوهاوي لپاره، د مقالې لاندې بار شوي بشپړ کوډ ته مراجعه وکړئ.

ننداره / څه تمه وکړو

یوځل چې تاسو هرڅه تارونه ونښلوئ او کوډ پورته کړئ، د تڼیو فشارول باید د ښکارندوی متن په مطابق بدل کړي. د مثال په توګه، د تڼۍ 1 فشارول به "press 1" ښکاره کړي، پداسې حال کې چې د تڼۍ 2 فشارول به یې "press 2" ته بدل کړي. که کومه ستونزه وي، خپل تارونه دوه ځله وګورئ او ډاډ ترلاسه کړئ چې سم پنونه کارول شوي دي لکه څنګه چې یادونه وشوه. په ویډیو کې لیدل (په ویډیو کې په 05:00) به هم مرسته وکړي چې ډاډ ترلاسه شي چې هرڅه لکه څنګه چې تمه کېږي کار کوي.

د ویډیو وخت نښې

  • 00:00 - پېژندنه
  • 02:30 - د تارونو د نښلولو لارښوونې
  • 05:00 - د کوډ تشریح او ننداره

انځورونه

TM1637 keypad display module-1
TM1637 keypad display module-1
TM1637 keypad display module-2
TM1637 keypad display module-2
TM1637 keypad display module-3
TM1637 keypad display module-3
TM1637 keypad display module
TM1637 keypad display module
Arduino wiring for TM1637 keypad display module
Arduino wiring for TM1637 keypad display module
28-This is the Arduino code for a TM1638 8-digit display with a 4x4 matrix button.
ژبه: C++
/*
 * This is the Arduino code for TM1638 8-digit display.
 * with 16 matrix buttons.
 *  * 
 * Written by Ahmad Nejrabi for Robojax Video
 * Date: Dec 10, 2017, in Ajax, Ontario, Canada
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purposes only.
 * 
 */

/*
// http://arduinolearning.com/code/qyf-tm1638-and-arduino-module.php#codesyntax_2
 * Modified for Robojax video on Dec 10, 2017

 */


#include <TM1638.h>
#include <TM1638QYF.h>

#define STB 5
#define DIO 3
#define CLK 2
 
TM1638QYF module(DIO, CLK, STB);
word mode;
 
 
void setup() 
{
  module.setupDisplay(true, 7);
  mode = 0;//initial button zero 
}
 
void update(TM1638QYF* module, word* mode) {
  word buttons = module->getButtons();
 
  // button pressed - change mode
  if (buttons != 0) {
    *mode = buttons >> 1;
 
    if (*mode < 0) {
      module->clearDisplay();
      delay(100);
    }
  }
 
  switch (*mode) {
    case 0://S1
      module->setDisplayToString("press 1");
      break;
    case 1://S2
      module->setDisplayToString("press 2");
      break;  
    case 2://S3
      module->setDisplayToString("press 3");
      break;
    case 4://S4
      module->setDisplayToString("press 4");
      break;
    case 8://S5
      module->setDisplayToString("press 5");
      break;
    case 16://S6
      module->setDisplayToString("press 6");
      break;
    case 32://S7
      module->setDisplayToString("press 7");
      break;
    case 64://S8
      module->setDisplayToString("press 8");
      break;
    case 128://S9
      module->setDisplayToString("press 9");
      break;
    case 256://S10
      module->setDisplayToString("press 10");
      break;
    case 512://S11
      module->setDisplayToString("press 11");
      break;
    case 1024://S12
      module->setDisplayToString("press 12");
      break;
    case 2048://S13
      module->setDisplayToString("press 13");
      break;
    case 4096://S14
      module->setDisplayToString("press 14");
      break;
    case 8192://S15
      module->setDisplayToString("press 15");
      break;
    case 16384://S16
      module->setDisplayToString("robojax");
      break;
    default:// unknown button
      module->setDisplayToString("?????");
      break;
  }
}
 
void loop() 
{
  update(&module, &mode);
}

هغه شیان چې تاسو ورته اړتیا لرئ

سرچینې او حوالې

فایلونه📁

Arduino کتابتونونه (zip)

د کارونکي لارښود