Orodha ya maudhui:

Modi za Kuonyesha LED za Arduino na TM1638: Hatua 11
Modi za Kuonyesha LED za Arduino na TM1638: Hatua 11

Video: Modi za Kuonyesha LED za Arduino na TM1638: Hatua 11

Video: Modi za Kuonyesha LED za Arduino na TM1638: Hatua 11
Video: How to use TM1637 4 digits seven segment display with Arduino 2024, Julai
Anonim
Modi za Kuonyesha za Arduino na TM1638
Modi za Kuonyesha za Arduino na TM1638

Ikiwa unahitaji njia ya haraka na rahisi ya kuongeza uingizaji na pato la mtumiaji kwenye mradi, moduli hizi za kuonyesha zinavutia na zinafurahisha.

Zina nambari nane za sehemu nyekundu 7 za LED, LEDs nane nyekundu / kijani na vifungo nane vya uingizaji wa mtumiaji. Vitengo vinaweza pia kufungwa minyororo, kuruhusu hadi tano mara moja, na kebo fupi imejumuishwa na kila moduli, na vile vile spacers fupi na bolts, kama inavyoonyeshwa kwenye picha.

Hatua ya 1:

Picha
Picha

Spacers ni ndefu tu ya kutosha kuinua PCB juu ya uso, hata hivyo kuweka bodi kila mahali muhimu utahitaji ndefu. Unaweza pia kutaka kuondoa matako ya IDC ikiwa unataka kuweka moduli karibu na uso wa jopo. Hii itakuwa kazi rahisi ya kupungua kwani ni soketi za shimo.

Hatua ya 2:

Picha
Picha

Bodi hiyo inadhibitiwa na TM1638 IC.

Hii ni IC na dereva wa interface IC kutoka "Titan Micro Electronics". Unaweza pia kununua hizi IC kutoka PMD Way. Unaweza pia kupakua data kwa maelezo zaidi.

Hatua ya 3: Kuanza - Vifaa

Kuanza - Vifaa
Kuanza - Vifaa

Vifaa - Uunganisho kwa bodi inayoendana na Arduino (au MCU nyingine) ni rahisi sana. Vipuli vinaonyeshwa nyuma ya PCB, na vinaendana na kufaa kwenye kebo ya Ribbon. Ukiangalia mwisho wa kebo vile.

Shimo la juu kulia ni pini moja, na kushoto kushoto kuwa pini mbili, pini chini-kulia tisa na chini kushoto kushoto kumi. Kwa hivyo pinouts ni:

  1. Vcc (5V)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. haijaunganishwa.

Kwa matumizi ya Arduino, pini 1 ~ 4 ndio kiwango cha chini muhimu kutumia moduli moja. Kila moduli ya ziada itahitaji pini nyingine ya dijiti iliyounganishwa na STB2, STB3, nk Zaidi juu ya hii baadaye. Tafadhali kumbuka kuwa kila moduli imewekwa kwenye mwangaza kamili na kila taa ya LED hutumia 127mA, kwa hivyo itakuwa busara kutumia nguvu ya nje na moduli zaidi ya moja na unganisho zingine na bodi za Arduino.

Hatua ya 4: Kuanza - Programu

Programu - pakua na usakinishe maktaba ya T1638 kutoka hapa. Asante na kudos kwa rjbatista kwenye gmail dot com kwa maktaba. Kuanzisha moduli kwenye mchoro ni rahisi. Jumuisha maktaba na:

# pamoja

kisha tumia moja ya yafuatayo kwa kila moduli:

Moduli ya TM1638 (x, y, z);

x ni pini ya dijiti ya Arduino iliyounganishwa na pini ya kebo ya moduli 4, y ni pini ya dijiti ya Arduino iliyounganishwa na pini ya kebo ya moduli 3, na z ni pini ya strobe. Kwa hivyo ikiwa ungekuwa na moduli moja na data, saa na strobe iliyounganishwa na pini 8, 7, na 6 ungetumia:

Moduli ya TM1638 (8, 7, 6);

Ikiwa ungekuwa na moduli mbili, na moduli moja ya strobe iliyounganishwa na Arduino digital 6, na moduli ya strobe mbili iliyounganishwa na dijiti 5, ungetumia:

Moduli ya TM1638 (8, 7, 6); Moduli ya TM1638 (8, 7, 5);

na kadhalika kwa moduli zaidi. Sasa kudhibiti onyesho…

Hatua ya 5: LED za rangi mbili

LED za rangi mbili
LED za rangi mbili

Kudhibiti LED nyekundu / kijani ni rahisi. Kwa kumbukumbu zinahesabiwa sifuri hadi saba kutoka kushoto kwenda kulia. Ili kuwasha au kuzima LED moja, tumia zifuatazo:

moduli.setLED (TM1638_COLOR_RED, x); // weka nambari ya x kwa redmodule.setLED (TM1638_COLOR_GREEN, x); // weka nambari ya LED x kuwa moduli ya kijani.setLED (TM1638_COLOR_RED + TM1638_COLOR_GREEN, 0); // weka nambari ya LED x kuwa nyekundu na kijani

Kutumia njia iliyo hapo juu inaweza kuwa rahisi sio sawa. Njia bora ni kushughulikia LED zote katika taarifa moja. Ili kufanya hivyo tunatuma kaiti mbili za data katika hexadecimal kwenye onyesho. MSB (baiti muhimu zaidi) ina bits nane, kila moja inawakilisha taa moja ya kijani ya kijani ikiwa kwenye (1) au off (0). LSB (ndogo muhimu byte) inawakilisha LED nyekundu.

Njia rahisi ya kuamua thamani ya hexadecimal kudhibiti LED ni rahisi, picha unayo safu moja ya LED - nane za kwanza kuwa kijani na ya pili nane nyekundu. Weka kila tarakimu kuwa 1 kwa na 0 kwa mbali. Badilisha nambari mbili za binary kuwa hexadecimal na utumie kazi hii:

moduli.setLEDs (0xgreenred);

Ambapo kijani ni nambari hexadecimal kwa LED za kijani na nyekundu ni nambari hexadecimal kwa LED nyekundu. Kwa mfano, kuwasha taa tatu za kwanza kama nyekundu, na tatu za mwisho kama kijani, uwakilishi wa binary utakuwa:

00000111 11100000 ambayo katika hexadecimal ni E007.

Kwa hivyo tungetumia:

moduli.setLEDs (0xE007);

ambayo hutoa picha kama inavyoonyeshwa hapo juu.

Hatua ya 6: Onyesho la sehemu 7

Ili kuondoa onyesho la nambari (lakini sio LED zilizo hapa chini), tumia tu:

moduli. UsafiDisplay ();

au kuwasha kila sehemu NA LED zote, tumia zifuatazo

moduli.setupDisplay (kweli, 7); // ambapo 7 ni nguvu (kutoka 0 ~ 7)

Ili kuonyesha nambari za desimali, tumia kazi:

moduli.setDisplayToDecNumber (a, b, uwongo);

ambapo nambari kamili, b ni msimamo wa nambari ya decimal (0 kwa hakuna, 1 kwa nambari 8, 2, kwa nambari 7, 4 kwa nambari 6, 8 kwa nambari 4, nk), na parameta ya mwisho (kweli / uwongo) huwasha au kuzima zero zinazoongoza. Mchoro ufuatao unaonyesha utumiaji wa kazi hii:

# pamoja na // fafanua moduli kwenye pini ya data 8, pini ya saa 9 na pini ya strobe 7 TM1638 moduli (8, 9, 7); unsigned muda mrefu a = 1; kuanzisha batili () {} utupu batili () {kwa (a = 10000; <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); kuchelewesha (1); } kwa (a = 10000; <11000; a ++) {moduli.setDisplayToDecNumber (a, 0, kweli); kuchelewesha (1); }}

… Na matokeo yaliyoonyeshwa kwenye video.

Hatua ya 7:

Image
Image

Moja ya huduma zinazovutia zaidi ni uwezo wa kutembeza maandishi kwenye onyesho moja au zaidi. Kufanya hivyo hakuhitaji ufafanuzi kama mchoro wa maandamano uliojumuishwa:

tm_1638_scrolling_modules_example.pde

pamoja na maktaba ya TM1638 inafuatwa kwa urahisi. Ingiza tu maandishi yako kwenye kamba ya const char , hakikisha kwamba moduli zimefungwa waya kulingana na ufafanuzi wa moduli mwanzoni mwa mchoro na umewekwa. Ili kuona herufi zinazopatikana, tembelea ukurasa wa kazi. Kumbuka kuwa onyesho ni sehemu saba tu, kwa hivyo wahusika wengine hawawezi kuonekana wakamilifu, lakini kwa muktadha watakupa wazo nzuri - tazama video katika hatua hii.

Hatua ya 8:

Mwishowe, unaweza pia kushughulikia kila sehemu ya kila tarakimu. Fikiria yaliyomo kwenye safu hii:

maadili ya baiti = {1, 2, 4, 8, 16, 32, 64, 128};

kila kitu kinawakilisha nambari 1 ~ 8. Thamani ya kila kipengee huamua ni sehemu gani ya nambari inayowasha. Kwa sehemu za ~ f, dp maadili ni 1, 2, 4, 6, 16, 32, 64, 128. Kwa hivyo matokeo ya kutumia safu hapo juu katika kazi ifuatayo:

moduli.setDisplay (maadili);

itakuwa kwa picha.

Hatua ya 9:

Picha
Picha

Kwa kawaida unaweza kuchanganya maadili kwa kila tarakimu ili kuunda herufi zako, alama, nk. Kwa mfano, kutumia maadili yafuatayo:

maadili ya baiti = {99, 99, 99, 99, 99, 99, 99, 99};

tuliunda kulingana na picha katika hatua hii.

Hatua ya 10: Vifungo

Thamani za vifungo zinarudishwa kama dhamana ya baiti kutoka kwa kazi:

moduli.getButtons ();

Kwa kuwa kuna vifungo nane, kila moja inawakilisha nambari moja ya nambari ambayo inarudishwa kama ka. Kitufe upande wa kushoto kinarudisha desimali moja, na haki inarudi 128. Inaweza pia kurudisha mashinikizo ya wakati huo huo, kwa hivyo kubonyeza kitufe cha kwanza na nane kurudi 129. Fikiria mchoro ufuatao, ambao unarudisha maadili ya vitufe vya vitufe katika mfumo wa desimali, kisha uonyeshe Thamani:

# pamoja na // fafanua moduli kwenye pini ya data 8, pini ya saa 9 na pini ya strobe 7 TM1638 moduli (8, 9, 7); vifungo vya byte; kuanzisha batili () {} batili kitanzi () {vifungo = moduli.getButtons (); moduli.setDisplayToDecNumber (vifungo, 0, uwongo); }

na matokeo kwenye video.

Bodi hizi za kuonyesha ni muhimu na tunatumahi kupata nyumba katika miradi yako. Chapisho hili limeletwa kwako na pmdway.com - inatoa kila kitu kwa watengenezaji na wapenda umeme, na uwasilishaji wa bure ulimwenguni.

Ilipendekeza: