د TM1638 ۴-عدده نندارې څنګه وکاروو. ویډیو وګورئ
د TM1638 ماډل یو څو اړخیز جز دی چې کولای شي شمېرې او توري ښکاره کړي پداسې حال کې چې د تڼیو په واسطه کنټرولېږي. په دې ټیوټوریل کې، تاسو به زده کړئ چې څنګه دا ښکارندوی تنظیم او پروګرام کړئ ترڅو بېلابېل ارزښتونه وښیې، په شمول شمېرې او هیکس ارزښتونه. د دې لارښود په پای کې، تاسو به یو بشپړ فعال ښکارندوی ولرئ چې د تڼیو فشار ته ځواب وايي او د کاروونکي د ننوتلو پر بنسټ هغه څه بدلوي چې ښودل کېږي. تاسو کولای شئ په ویډیو کې یوه ننداره وګورئ (په ویډیو کې په 00:00).
هارډویر تشریح شوی
د 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 ماډل د تارونو د نښلولو لپاره، تاسو به دا خپل مایکروکنټرولر سره په لاندې ډول ونښلوئ:
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 - د کوډ تشریح او ننداره
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);
}
هغه شیان چې تاسو ورته اړتیا لرئ
-
امازونTM1638 on Amazonamzn.to
-
علی ایکسپریسTM1638 keypad module on AliExpresss.click.aliexpress.com
سرچینې او حوالې
-
بهرنیTM1638 Library (from GitHub)github.com