Мазмұны:

Arduino және TM1638 жарықдиодты дисплей модульдері: 11 қадам
Arduino және TM1638 жарықдиодты дисплей модульдері: 11 қадам

Бейне: Arduino және TM1638 жарықдиодты дисплей модульдері: 11 қадам

Бейне: Arduino және TM1638 жарықдиодты дисплей модульдері: 11 қадам
Бейне: Introduction to M5Stack Core2 ESP32 2" Display Development Module -Robojax 2024, Қараша
Anonim
Arduino және TM1638 жарықдиодты дисплей модульдері
Arduino және TM1638 жарықдиодты дисплей модульдері

Егер сізге жобаға пайдаланушының кірісі мен шығысын қосудың жылдам және қарапайым әдісі қажет болса, бұл дисплей модульдері қызықты және қызықты.

Оларда сегіз 7 сегментті қызыл жарықдиодты цифрлар, сегіз қызыл/жасыл жарық диодтар, сондай-ақ пайдаланушы енгізуге арналған сегіз түйме бар. Сонымен қатар, қондырғылар тізбектелген болуы мүмкін, олар бірден беске дейін мүмкіндік береді және әр модульге қысқа кабель, сонымен қатар суретте көрсетілгендей кейбір қысқа аралықтар мен болттар қосылады.

1 -қадам:

Кескін
Кескін

Бөлгіштер ПХД бетінен жоғары көтеру үшін жеткілікті ұзын, бірақ тақталарды кез келген жерге ыңғайлы етіп орнату үшін сізге ұзағырақ тақталар қажет болады. Егер сіз модульді панель бетіне жақын орнатқыңыз келсе, IDC розеткаларын алып тастағыңыз келуі мүмкін. Бұл тесіктерден тұратын розеткалар болғандықтан, оларды тазалаудың қарапайым тапсырмасы болар еді.

2 -қадам:

Кескін
Кескін

Тақтаны TM1638 IC басқарады.

Бұл «Titan Micro Electronics» компаниясының жарықдиодты және интерфейс драйвері IC. Сіз бұл IC -ті PMD Way -ден сатып ала аласыз. Қосымша мәліметтер алу үшін мәліметтер парағын жүктеуге болады.

3 -қадам: Жұмысты бастау - Жабдық

Жұмысты бастау - Жабдық
Жұмысты бастау - Жабдық

Аппараттық құрал-Arduino үйлесімді тақтаға (немесе басқа MCU) қосылу өте қарапайым. Бекіткіштер ПХД артқы жағында көрсетілген және таспалы кабельдегі фитингке сәйкес келеді. Егер сіз кабельдің соңына қарасаңыз.

Жоғарғы оң жақ тесік бір түйреуіш, жоғарғы сол жақ штырь екінші, төменгі оң жақ түйіс тоғыз және төменгі сол жақ түйреуіш он. Сондықтан түйіндер келесідей:

  1. Vcc (5В)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. жалғанбаған.

Arduino қолдану үшін 1 ~ 4 түйреуіштер бір модульді пайдалану үшін қажетті минимум болып табылады. Әрбір қосымша модульге STB2, STB3 және т.б. қосылған басқа сандық түйреуіш қажет болады. Бұл туралы толығырақ кейінірек. Назар аударыңыз, әрбір жарықдиодты жарықтандырылған әрбір модуль 127мА тұтынады, сондықтан бірнеше модульмен сыртқы қуатты және Arduino тақталарымен басқа қосылыстарды қолданған дұрыс.

4 -қадам: Жұмысты бастау - Бағдарламалық қамтамасыз ету

Бағдарламалық қамтамасыз ету - T1638 кітапханасын осы жерден жүктеп алыңыз және орнатыңыз. Кітапхана үшін gmail dot com мекенжайындағы rjbatista -ға алғыс пен алғыс. Эскизде модульдерді бастау қарапайым. Кітапханаға мыналарды қосыңыз:

#қосу

содан кейін әр модуль үшін келесілердің бірін қолданыңыз:

TM1638 модулі (x, y, z);

x - модульдік кабель түйреуішіне 4 жалғанған Arduino сандық түйреуіші, y - модульдік кабельдік істікке 3 қосылған Arduino цифрлық түйрегіші, z - стробты түйреуіш. Егер сізде 8, 7 және 6 түйреуіштерге қосылған деректер, сағат және строб бар бір модуль болса, сіз қолданар едіңіз:

TM1638 модулі (8, 7, 6);

Егер сізде екі модуль болса, Arduino цифрлық 6 -ға қосылған бірінші модульдің стробымен және цифрлық 5 -ке қосылған екінші модульдің стробымен сіз келесі әрекеттерді қолданар едіңіз:

TM1638 модулі (8, 7, 6); TM1638 модулі (8, 7, 5);

тағы басқа модульдер үшін. Енді дисплейді басқару үшін…

5-қадам: Екі түсті жарықдиодты шамдар

Екі түсті жарықдиодты шамдар
Екі түсті жарықдиодты шамдар

Қызыл/жасыл жарықдиодты басқару оңай. Анықтама үшін олар нөлден жетіге дейін солдан оңға қарай нөмірленеді. Жалғыз жарық диодты қосу немесе өшіру үшін келесі әрекеттерді қолданыңыз:

module.setLED (TM1638_COLOR_RED, x); // жарықдиодты x нөмірін redmodule.setLED етіп орнатыңыз (TM1638_COLOR_GREEN, x); // LED нөмірін x жасыл модульге орнатыңыз.setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // жарықдиодты x санын қызыл және жасыл етіп орнатыңыз

Жоғарыда келтірілген әдісті қолдану қарапайым болуы мүмкін, бұл біршама тиімсіз. Ең жақсы әдіс - барлық светодиодтарды бір мәлімдемеде шешу. Ол үшін дисплейге он алтылықтағы екі байт дерек жібереміз. MSB (ең маңызды байт) сегіз биттен тұрады, олардың әрқайсысы бір жасыл жарық диодты көрсетеді (1) немесе өшірулі (0). LSB (ең аз байт) қызыл жарықдиодты білдіреді.

Жарық диодты басқару үшін он алтылық мәнді анықтаудың қарапайым әдісі қарапайым, сізде бір қатар жарық диоды бар - бірінші сегізі жасыл, екіншісі қызыл. Әр санды қосу үшін 1, өшіру үшін 0 етіп орнатыңыз. Екі екілік санды он алтылыққа түрлендіріңіз және осы функцияны қолданыңыз:

module.setLEDs (0xgreenred);

Жасыл - жасыл светодиодтардың он алтылық саны, ал қызыл - қызыл светодиодтардың он алтылық саны. Мысалы, алғашқы үш жарықдиодты қызыл, ал соңғы үшеуін жасыл етіп қосу үшін екілік кескін келесідей болады:

00000111 11100000, он алтылық жүйеде E007.

Сондықтан біз қолданар едік:

module.setLEDs (0xE007);

ол суретті жоғарыда көрсетілгендей шығарады.

6-қадам: 7 сегментті дисплей

Сандық дисплейді тазарту үшін (бірақ төмендегі жарық диодты емес), жай ғана пайдаланыңыз:

module.clearDisplay ();

немесе әрбір сегментті ЖӘНЕ барлық светодиодты қосу үшін келесіні пайдаланыңыз

module.setupDisplay (ақиқат, 7); // мұнда 7 - қарқындылық (0 ~ 7 дейін)

Ондық сандарды көрсету үшін мына функцияны қолданыңыз:

module.setDisplayToDecNumber (a, b, false);

мұндағы а - бүтін сан, b - ондық бөлшектің орны (0 үшін емес, 8 цифры үшін 1, 7 цифры үшін 4, 6 цифры үшін 4, цифры үшін 8 және т. б.) және соңғы параметр (ақиқат/ жалған) жетекші нөлдерді қосады немесе өшіреді. Келесі эскиз бұл функцияның қолданылуын көрсетеді:

#қосу // деректер түйреуіші 8, сағат түйреуіші 9 және строб түйреуіші TM1638 модулінің модулін анықтау (8, 9, 7); белгісіз ұзын a = 1; void setup () {} void loop () {for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); кешіктіру (1); } үшін (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); кешіктіру (1); }}

… Бейнеде көрсетілген нәтижелермен.

7 -қадам:

Image
Image

Ең қызықты ерекшеліктердің бірі - мәтінді бір немесе бірнеше дисплейде айналдыру мүмкіндігі. Мұны істеу үшін түсініктеменің қажеті жоқ, демонстрациялық эскиз:

tm_1638_scrolling_modules_example.pde

TM1638 кітапханасына қосылған, оңай орындалады. Мәтінді const char жолына енгізіңіз, эскиздің басында модульдер модуль анықтамасына сәйкес қосылғанын тексеріңіз. Қол жетімді таңбаларды көру үшін функция бетіне өтіңіз. Назар аударыңыз, дисплей жеті сегменттен тұрады, сондықтан кейбір кейіпкерлер мінсіз болып көрінбеуі мүмкін, бірақ контексте сізге жақсы идея береді-бейнені осы қадамнан қараңыз.

8 -қадам:

Ақырында, сіз әр цифрдың әрбір сегментіне жеке -жеке жүгіне аласыз. Бұл массивтің мазмұнын қарастырыңыз:

байт мәндері = {1, 2, 4, 8, 16, 32, 64, 128};

әрбір элемент 1-8 сандарын білдіреді. Әр элементтің мәні цифрдың қандай сегменті қосылатынын анықтайды. A ~ f, dp сегменттері үшін мәндер 1, 2, 4, 6, 16, 32, 64, 128 болады. Сонымен, жоғарыдағы массивті келесі функцияда қолдану нәтижелері:

module.setDisplay (мәндер);

сурет бойынша болады.

9 -қадам:

Кескін
Кескін

Әрине, әр таңбаның мәндерін біріктіріп, жеке таңбаларды, белгілерді және т. Мысалы, келесі мәндерді қолдана отырып:

байт мәндері = {99, 99, 99, 99, 99, 99, 99, 99};

біз бұл қадамдағы суретке сәйкес жасадық.

10 -қадам: түймелер

Батырмалардың мәндері функциядан байт мәні ретінде қайтарылады:

module.getButtons ();

Сегіз түйме болғандықтан, олардың әрқайсысы байт ретінде қайтарылатын екілік санның бір битін білдіреді. Сол жақтағы түйме ондық бөлшекті, ал оң жақта 128 -ді қайтарады. Ол сонымен қатар бір мезгілде басуды қайтара алады, сондықтан бір және сегіз түймешіктерді басу 129 -ды қайтарады. мәні:

#қосу // деректер түйреуіші 8, сағат түйреуіші 9 және строб түйреуіші TM1638 модулінің модулін анықтау (8, 9, 7); байт түймелері; void setup () {} void loop () {button = module.getButtons (); module.setDisplayToDecNumber (түймелер, 0, жалған); }

және видеодағы нәтижелер.

Бұл дисплей тақталары пайдалы және сіздің жобаларыңызда үй табады деп үміттенемін. Бұл хабарламаны pmdway.com сізге әкелді - өндірушілер мен электроника әуесқойлары үшін бәрін ұсынады, бүкіл әлем бойынша ақысыз жеткізілім.

Ұсынылған: