Мазмуну:
- 1 кадам:
- 2-кадам:
- 3 -кадам: Баштоо - Аппараттык
- 4 -кадам: Баштоо - Программалык камсыздоо
- 5-кадам: Би-түстүү светодиоддор
- 6-кадам: 7 сегменттүү дисплей
- 7 -кадам:
- 8 -кадам:
- 9 -кадам:
- 10 -кадам: Баскычтар
Video: Arduino жана TM1638 LED дисплей модулдары: 11 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Эгер сизге долбоорго кээ бир колдонуучулардын киришин жана чыгышын кошуунун тез жана оңой жолу керек болсо, бул дисплей модулдары кызыктуу жана кызыктуу.
Алар сегиз 7 сегменттүү кызыл LED сандарын, сегиз кызыл/жашыл LEDди жана колдонуучу киргизүү үчүн сегиз баскычты камтыйт. Агрегаттар да ромашка менен чынжырланып, бир убакта бешке чейин уруксат берилиши мүмкүн жана сүрөттө көрсөтүлгөндөй, ар бир модулга кыска кабель, ошондой эле кээ бир кыска аралыктар жана болттор киргизилген.
1 кадам:
Аралыктар ПХБны беттин үстүнөн көтөрүү үчүн жетишерлик узун, бирок тактайларды пайдалуу жерге орнотуу үчүн сизге узунураактары керек болот. Эгерде сиз модулду панелдин бетине жакын орноткуңуз келсе, IDC розеткаларын алып салгыңыз келиши мүмкүн. Бул тешикче оюкчалар болгондуктан, аларды тазалоо оңой болмок.
2-кадам:
Такта TM1638 IC тарабынан көзөмөлдөнөт.
Бул LED жана интерфейстин драйвери IC "Titan Micro Electronics". Бул ICлерди PMD Wayден да сатып алсаңыз болот. Көбүрөөк маалымат алуу үчүн маалымат барагын жүктөп алсаңыз болот.
3 -кадам: Баштоо - Аппараттык
Аппараттык-Arduino шайкеш келген тактага (же башка MCUга) туташуу абдан жөнөкөй. Pinouts ПКБнын арт жагында көрсөтүлгөн жана лента кабелиндеги фитингге дал келет. Эгер кабелдин аягына ушундай карасаңыз.
Үстүнкү оң тешик бир пин болуп саналат, жогорку сол жагында экинчиси, астыңкы оң жагында тогузу жана астындагы сол жагында ону бар. Ошентип, pinouts болуп төмөнкүлөр саналат:
- Vcc (5V)
- GND
- CLK
- DIO
- STB1
- STB2
- STB3
- STB4
- STB5
- туташкан эмес
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ды күйгүзүү же өчүрүү үчүн, төмөнкүлөрдү колдонуңуз:
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 -кадам:
Эң кызыктуу өзгөчөлүктөрдүн бири - текстти бир же бир нече дисплейде жылдыруу. Бул үчүн чындап эле түшүндүрмөнүн кереги жок, анткени киргизилген эскиз:
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 тарабынан келген - бүткүл дүйнө жүзү боюнча бекер жеткирүү менен, жаратуучулар жана электроника ышкыбоздору үчүн бардыгын сунуштайт.
Сунушталууда:
Жалпы 433MHz RF модулдары менен DIY Walkie-Talkie: 4 кадам
Жалпы 433MHz RF модулдары менен DIY Walkie-Talkie: Бул долбоордо мен функционалдуу Walkie-Talkie түзүү үчүн Ebayден жалпы 433MHz RF модулдарын кантип колдонууну көрсөтөм. Бул биз ар кандай RF модулдарын салыштырып, d классынын күчөткүчү жөнүндө бир аз үйрөнөбүз жана акыры Walkie-Talkie курабыз дегенди билдирет
Fre Cool Lighting (LED модулдары): 9 кадам
Fre үчүн муздак жарык берүү (LED модулдары): бул көрсөтмөдө мен кичинекей светодиоддук чырактарды чыгардым, анткени ал кайра иштетилген батареяларды колдонгон, бирок бекер, бирок каалаган батареяны колдонсоңуз болот
RSSI RF модулдары менен аралыкка (Xbees): 4 кадам
RSSI RF Modules менен аралыкка (Xbees): Xbees - бул чакан радио жыштык модулдары, алар маалыматты артка жана артка жөнөтүү жана башка дагы конкреттүү колдонуу үчүн пайдалуу болушу мүмкүн. Бул долбоор үчүн, мен аларды кабыл алуу сигналынын күчү индикаторунун (RSSI) баалуулугун алуу үчүн колдонуп жатам
Live Reverse Engineering WiFi модулдары: 8 кадам (сүрөттөр менен)
Live Reverse Engineering WiFi модулдары: Мен мүмкүн болушунча көп жумушчу компоненттерди кайра колдонгум келет. Мен WiFi принтерлерин тескери инженерлик кылып жатсам да, бул ыкма башка көптөгөн түзмөктөрдө иштейт. Өтүнөмүн; жөн эле эскирген электрониканы ажыратпаңыз, андан кийин сакталган компоненттердин маалыматтык таблицасын табууну күтүңүз
HiFive1 Web Server ESP32 / ESP8266 WiFi модулдары менен үйрөткүч: 5 кадам
HiFive1 Web Server ESP32 / ESP8266 WiFi модулдары менен үйрөткүч: HiFive1 SiFiveден FE310 CPU менен курулган Arduino менен шайкеш келген биринчи RISC-V платасы. Такта Arduino UNOго караганда 20 эсе ылдамыраак, бирок UNO Board HiFive1ге зымсыз байланыш жок. Бактыга жараша, бир нече арзан баалар бар