Мазмуну:

Arduino жана TM1638 LED дисплей модулдары: 11 кадам
Arduino жана TM1638 LED дисплей модулдары: 11 кадам

Video: Arduino жана TM1638 LED дисплей модулдары: 11 кадам

Video: Arduino жана TM1638 LED дисплей модулдары: 11 кадам
Video: Как Сделать Робота на Arduino UNO / How to Make a Robot on Arduino UNO 2024, Июль
Anonim
Arduino жана TM1638 LED дисплей модулдары
Arduino жана TM1638 LED дисплей модулдары

Эгер сизге долбоорго кээ бир колдонуучулардын киришин жана чыгышын кошуунун тез жана оңой жолу керек болсо, бул дисплей модулдары кызыктуу жана кызыктуу.

Алар сегиз 7 сегменттүү кызыл LED сандарын, сегиз кызыл/жашыл LEDди жана колдонуучу киргизүү үчүн сегиз баскычты камтыйт. Агрегаттар да ромашка менен чынжырланып, бир убакта бешке чейин уруксат берилиши мүмкүн жана сүрөттө көрсөтүлгөндөй, ар бир модулга кыска кабель, ошондой эле кээ бир кыска аралыктар жана болттор киргизилген.

1 кадам:

Сүрөт
Сүрөт

Аралыктар ПХБны беттин үстүнөн көтөрүү үчүн жетишерлик узун, бирок тактайларды пайдалуу жерге орнотуу үчүн сизге узунураактары керек болот. Эгерде сиз модулду панелдин бетине жакын орноткуңуз келсе, IDC розеткаларын алып салгыңыз келиши мүмкүн. Бул тешикче оюкчалар болгондуктан, аларды тазалоо оңой болмок.

2-кадам:

Сүрөт
Сүрөт

Такта TM1638 IC тарабынан көзөмөлдөнөт.

Бул LED жана интерфейстин драйвери IC "Titan Micro Electronics". Бул ICлерди PMD Wayден да сатып алсаңыз болот. Көбүрөөк маалымат алуу үчүн маалымат барагын жүктөп алсаңыз болот.

3 -кадам: Баштоо - Аппараттык

Баштоо - Аппараттык
Баштоо - Аппараттык

Аппараттык-Arduino шайкеш келген тактага (же башка MCUга) туташуу абдан жөнөкөй. Pinouts ПКБнын арт жагында көрсөтүлгөн жана лента кабелиндеги фитингге дал келет. Эгер кабелдин аягына ушундай карасаңыз.

Үстүнкү оң тешик бир пин болуп саналат, жогорку сол жагында экинчиси, астыңкы оң жагында тогузу жана астындагы сол жагында ону бар. Ошентип, pinouts болуп төмөнкүлөр саналат:

  1. Vcc (5V)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. туташкан эмес

Arduino колдонуу үчүн 1 ~ 4 төөнөгүчтөр бир модулду колдонуу үчүн эң зарыл. Ар бир кошумча модулга STB2, STB3 ж.б. менен байланышкан дагы бир санарип пин керек болот. Белгилей кетчү нерсе, ар бир модул толугу менен жарык болгондо, ар бир LED 127mA керектейт, андыктан бир нече модуль менен тышкы кубаттуулукту жана 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-кадам: Би-түстүү светодиоддор

Эки түстүү LED
Эки түстүү LED

Кызыл/жашыл диоддорду башкаруу оңой. Маалымат үчүн алар нөлдөн жетиге чейин сандан оңго чейин саналышат. Жалгыз LEDды күйгүзүү же өчүрүү үчүн, төмөнкүлөрдү колдонуңуз:

module.setLED (TM1638_COLOR_RED, x); // LED санын x коюу redmodule.setLED (TM1638_COLOR_GREEN, x); // LED санын x коюу жашыл module.setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // LED санын x коюу кызыл жана жашыл

Жогорудагы ыкманы колдонуу бир аз эффективдүү эмес болушу мүмкүн. Жакшы ыкма - бул бардык светодиоддорду бир билдирүүдө чечүү. Бул үчүн биз дисплейге он алтылык маалыматтын эки байтын жөнөтөбүз. MSB (эң маанилүү байт) сегиз биттен турат, алардын ар бири бир жашыл LEDди күйгүзүп турат (1) же өчүк (0). LSB (эң аз байт) кызыл диоддорду билдирет.

Жарык диоддорун башкаруу үчүн он алтылык маанини аныктоонун оңой жолу, сизде бир катар диоддор бар - биринчи сегиз жашыл, экинчиси кызыл. Ар бир санды күйгүзүү үчүн 1ге жана өчүрүү үчүн 0 деп коюңуз. Эки бинардык санды он алтылыкка которуу жана бул функцияны колдонуу:

module.setLEDs (0xgreenred);

Жашыл кайда жашыл светодиоддор үчүн он алтылык сан, ал эми кызыл - кызыл диоддор үчүн он алтылык сан. Мисалы, биринчи үч светодиодду кызыл, акыркы үчтү жашыл деп күйгүзүү үчүн экилик өкүлчүлүк болот:

00000111 11100000, ал он алтылыкта E007.

Ошентип, биз колдонмокпуз:

module.setLEDs (0xE007);

бул сүрөттү жогоруда көрсөтүлгөндөй өндүрөт.

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

Сандык дисплейди тазалоо үчүн (бирок төмөндөгү LED эмес), жөн гана колдонуңуз:

module.clearDisplay ();

же ар бир сегменти ЖАНА бардык LED ди күйгүзүү үчүн, төмөнкүлөрдү колдонуңуз

module.setupDisplay (чыныгы, 7); // мында 7 - интенсивдүүлүк (0 ~ 7ден)

Ондук сандарды көрсөтүү үчүн, функцияны колдонуңуз:

module.setDisplayToDecNumber (a, b, false);

мында а - бүтүн сан, b - ондук чекит үчүн позиция (эч ким үчүн 0, 8 цифрасы үчүн 1, 7 цифрасы үчүн 4, 6 цифрасы үчүн 4, цифра үчүн 8, ж. б.) жана акыркы параметр (чыныгы/ жалган) баштапкы нөлдөрдү күйгүзөт же өчүрөт. Төмөнкү эскиз бул функциянын колдонулушун көрсөтөт:

#include // маалымат пин 8, саат пин 9 жана строб пин 7 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 китепканасына киргизилген жонокой ээрчийт. Текстти char 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ду кайтарат. Төмөнкү эскизди карап көрүңүз, ал баскычтын ондук түрүндө басуу маанилерин кайтарат, анан көрсөтөт мааниси:

#include // маалымат пин 8, саат пин 9 жана строб пин 7 TM1638 модулу боюнча модулду аныктоо (8, 9, 7); байт баскычтары; void setup () {} void loop () {button = module.getButtons (); module.setDisplayToDecNumber (баскычтар, 0, жалган); }

жана видеодогу жыйынтыктар.

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

Сунушталууда: