អត្ថបទថ្មី។
● ៥.៤. ការពង្រីកច្រកឌីជីថលសម្រាប់ NodeMCU ESP8266 ដោយប្រើបន្ទះឈីប MCP23017
យើងនឹងណែនាំការចង្អុលបង្ហាញ LED និងសំឡេងរោទិ៍នៅពេលប្រើម៉ូឌុល Nodemcu ជាឧបករណ៍បញ្ជាផ្ទះឆ្លាតវៃ។ ចំនួនម្ជុលនៅលើម៉ូឌុល Nodemcu គឺតិចជាងនៅលើ Arduino Mega ដូច្នេះយើងត្រូវការ IC ឧបករណ៍ពង្រីកបញ្ចូល MCP23017 ។ បន្ទះឈីប MCP23017 បន្ថែមច្រកចំនួន 16 ដែលអាចកំណត់រចនាសម្ព័ន្ធសម្រាប់ទាំងការបញ្ចូល និងទិន្នផល (រូបភាព 5.7) ។ បន្ទះឈីបនេះប្រើឡានក្រុង I2C ពីរខ្សែដ៏ពេញនិយម។
អង្ករ។ ៥.៧. MCP23017 pinouts
អាសយដ្ឋាននៃបន្ទះឈីប MCP23017 សម្រាប់ពិធីការ I2C អាចត្រូវបានកំណត់ដោយការរួមបញ្ចូលគ្នានៃសញ្ញានៅឧបករណ៍បញ្ចូលឌីជីថល A0 - A2 (រូបភាព 5.8) ដែលអនុញ្ញាតឱ្យអ្នកភ្ជាប់បន្ទះឈីប 8 MCP23017 ទៅមីក្រូកុងទ័រក្នុងពេលតែមួយ រៀងគ្នា 16* 8 = 128 ម្ជុល។
អង្ករ។ ៥.៨. ការកំណត់អាសយដ្ឋានរបស់បន្ទះឈីប MCP23017
បន្ទះឈីបមានច្រកចំនួន 2 នៃច្រក A (GPA0-GPA7) និង B (GPB0-GPAB) ដែលនីមួយៗអាចត្រូវបានកំណត់រចនាសម្ព័ន្ធសម្រាប់ការបញ្ចូល ឬទិន្នផល។
ការចុះបញ្ជី 5.3 ។ បង្ហាញឧទាហរណ៍នៃការបង្កើតធនាគារទិន្នផល A និង B ។
ការចុះបញ្ជី 5.3
// ភ្ជាប់បណ្ណាល័យ Wire.h #រួមបញ្ចូលការប្រើប្រាស់បន្ទះឈីប MCP23017 នឹងពង្រីកចំនួនទំនាក់ទំនងឌីជីថលនៃម៉ូឌុល Nodemcu ដោយ 16 ហើយនឹងអនុញ្ញាតឱ្យរៀបចំការចង្អុលបង្ហាញ LED និងសញ្ញាដែលអាចស្តាប់បាននៃប៉ារ៉ាម៉ែត្រឧបករណ៍ចាប់សញ្ញាសំខាន់ៗ។
មនុស្សគ្រប់គ្នាចូលចិត្តបន្ទះ Arduino ដែលមិនមានតម្លៃថោក ប៉ុន្តែជាញឹកញាប់គម្រោងមួយបាត់ច្រកឥតគិតថ្លៃមួយ ឬពីរយ៉ាងពិតប្រាកដ! ហើយពេលខ្លះមានច្រកគ្រប់គ្រាន់ ប៉ុន្តែអ្នកមិនចង់ទាញបណ្តុំខ្សែទៅផ្នែកផ្សេងទៀតនៃរចនាសម្ព័ន្ធនោះទេ។ ឧបមាថាអ្នកត្រូវដាក់ប៊ូតុង និង LEDs ជាច្រើននៅលើបន្ទះខាងមុខរបស់ឧបករណ៍។ វាកាន់តែអាចទុកចិត្តបាន និងងាយស្រួលក្នុងការភ្ជាប់ពួកវាទៅបន្ទះមេដោយគ្រាន់តែខ្សែទិន្នន័យពីរប៉ុណ្ណោះ ហើយមិនមែនជាមួយខ្សែ ឬខ្សែទេ មែនទេ?
សម្រាប់ស្ថានភាពបែបនេះ ឧបករណ៍ពង្រីកផ្សេងៗ (ឧបករណ៍ពង្រីក) នៃច្រក Arduino ត្រូវបានរចនាឡើង។
ជាធម្មតា ម្ជុល microcontroller អនុវត្តមុខងារផ្សេងគ្នាជាច្រើន ដូច្នេះឧបករណ៍ពង្រីកគឺខុសគ្នា៖
- ឧបករណ៍ពង្រីកច្រក GPIO ស្តង់ដារ
- ឧបករណ៍ពង្រីកទិន្នផល PWM
- ឧបករណ៍ពង្រីកការបញ្ចូលអាណាឡូក - ពហុគុណ និង ADCs ខាងក្រៅ
ដោយឡែកវាមានតម្លៃនិយាយអំពីឧបករណ៍បំប្លែងឌីជីថលទៅអាណាឡូក (DAC) និងអ្នកពង្រីកទំហំអាសយដ្ឋានឡានក្រុង I2C ។ ឧបករណ៍ទាំងនេះមិនចម្លងមុខងាររបស់ច្រកដោយផ្ទាល់ទេ ប៉ុន្តែពង្រីកសមត្ថភាពរបស់ microcontrollers ។
នៅក្នុងអត្ថបទដំបូងនៃស៊េរី យើងនឹងនិយាយអំពីឧបករណ៍ពង្រីកដ៏សាមញ្ញបំផុត និងមានប្រយោជន៍បំផុតដែលធ្វើការជាច្រក I/O ឌីជីថល។ ទាំងនេះគឺជា microcircuits និង។ ពួកវាត្រូវបានរៀបចំ និងដំណើរការដូចគ្នាបេះបិទ ហើយខុសគ្នាតែក្នុងចំនួនច្រកប៉ុណ្ណោះ។
ការជ្រើសរើសម៉ូឌុលពង្រីកសម្រាប់ Arduino
ម៉ូឌុលដែលពេញនិយមបំផុត និងមានតម្លៃថោកបំផុតត្រូវបានផលិតនៅលើបន្ទះឈីប PCF8574 (រូបភាពទី 1)
អង្ករ។ 1. ម៉ូឌុលពង្រីកច្រកដ៏ពេញនិយម PCF8574
គុណសម្បត្តិ៖
- តម្លៃថោក។
- ម៉ូឌុលអាចត្រូវបានភ្ជាប់ជាខ្សែសង្វាក់ដោយគ្រាន់តែបញ្ចូលឌុយនៃម៉ូឌុលមួយទៅក្នុងរន្ធនៃស៊េរីមុន។ កុំភ្លេចកំណត់ jumpers ទៅអាសយដ្ឋានម៉ូឌុលផ្សេងគ្នា!
គុណវិបត្តិ៖
- មិនអាចត្រូវបានបញ្ចូលដោយផ្ទាល់ទៅក្នុង breadboard មួយ (ខ្ញុំសូមណែនាំឱ្យលក់ឧបករណ៍ភ្ជាប់ច្រកទៅផ្នែកខាងក្រោយ) ។
- ច្រកសរុបចំនួនប្រាំបីនៅក្នុងម៉ូឌុលមួយ។
ប្រសិនបើអ្នកស្ថិតក្នុងអារម្មណ៍សម្រាប់គម្រោងធ្ងន់ធ្ងរជាងនេះ បញ្ជាម៉ូឌុល 16 ប៊ីតសម្រាប់ PCF8575 នៅលើ Aliexpress ។ ខ្ញុំសូមផ្តល់អនុសាសន៍យ៉ាងមុតមាំនូវម៉ូឌុលដែលបានបង្ហាញនៅក្នុងរូបភព។ ២.
អង្ករ។ 2. ម៉ូឌុលពង្រីកច្រក PCF8575
គុណសម្បត្តិ៖
- ច្រកច្រើនពីរដង។
- ការផ្គត់ផ្គង់ថាមពល 3.3V ដែលភ្ជាប់មកជាមួយ អ្នកអាចផ្តល់ថាមពលដល់ម៉ូឌុលផ្សេងទៀត។
- ការផ្គូផ្គងកម្រិតតក្កវិជ្ជាដែលភ្ជាប់មកជាមួយសម្រាប់ឡានក្រុង I2C នៅវ៉ុលផ្គត់ផ្គង់ផ្សេងៗគ្នា។
- ទម្រង់ងាយស្រួលសម្រាប់ក្តារបន្ទះ។
គុណវិបត្តិ៖
- តម្លៃខាងលើ។
របៀបដែលឧបករណ៍ពង្រីកច្រក PCF8574/PCF8575 GPIO ដំណើរការ
ការផ្លាស់ប្តូរទិន្នន័យកើតឡើងតាមរយៈឡានក្រុង I2C ។ មានតែខ្សែចំនួន 4 ប៉ុណ្ណោះដែលត្រូវបានទាមទារដើម្បីភ្ជាប់ទៅបន្ទះ Arduino រួមទាំងថាមពល។ អាសយដ្ឋានពង្រីកត្រូវបានកំណត់ដោយ jumpers បីនៅលើធាតុបញ្ចូល A0…A2 ដូច្នេះបន្ទះសៀគ្វីដូចគ្នាចំនួនប្រាំបីអាចត្រូវបានភ្ជាប់ទៅឡានក្រុងក្នុងពេលតែមួយ ហើយទទួលបានអតិបរមា 8*8=64 ច្រកបន្ថែមជាមួយ PCF8574 ឬ 8*16=128 ជាមួយ PCF8575 បន្ទះសៀគ្វី។
ដើម្បីបញ្ចេញទិន្នន័យទៅកាន់ច្រក សូមសរសេរបៃទិន្នន័យទៅអាសយដ្ឋាននៃម៉ូឌុលនៅលើឡានក្រុង I2C ។ ដើម្បីអានទិន្នន័យពីច្រក អានបៃនៅអាសយដ្ឋានដូចគ្នា។ បៃតែងតែត្រូវបានសរសេរ និងអានទាំងមូល ការងារជាមួយខ្ទង់នីមួយៗត្រូវបានធ្វើតាមកម្មវិធី។
លទ្ធផលនៃ microcircuit គឺជាការបញ្ចូលក្នុងពេលដំណាលគ្នា ហើយមិនមានការចុះឈ្មោះសេវាដែលកំណត់គោលបំណងនៃទិន្នផលនោះទេ។ មានតែបន្ទះដែលបៃទិន្នផលត្រូវបានសរសេរ។តើនេះអាចទៅរួចដោយរបៀបណា?
ច្រកដំណើរការក្នុងលក្ខណៈបើកចំហរ ហើយមានប្រដាប់ទប់ទាញខាងក្នុង។ ប្រសិនបើសូន្យឡូជីខលត្រូវបានសរសេរទៅទិន្នផល នោះត្រង់ស៊ីស្ទ័រទិន្នផលនឹងបើក ដែលបង្ខំឱ្យទាញលទ្ធផល "ទៅដី" ។ ការអានពីច្រកបែបនេះនឹងត្រឡប់សូន្យជានិច្ច។
សូមប្រុងប្រយ័ត្ននៅពេលអនុវត្តវ៉ុលផ្គត់ផ្គង់ដោយផ្ទាល់ទៅម្ជុលដែលមានកម្រិតទាប ឬប្រសិនបើចរន្តលើស 50 mAអ្នកនឹងបំផ្លាញបន្ទះឈីប!
ដើម្បីប្រើច្រកជាការបញ្ចូល សូមសរសេរច្រកមួយទៅវា។ ក្នុងករណីនេះ ត្រង់ស៊ីស្ទ័រខាងក្នុងនឹងត្រូវបានបិទ ហើយលទ្ធផលនៃការអាននឹងត្រូវបានកំណត់ដោយកម្រិតតក្កវិជ្ជាខាងក្រៅដែលបានអនុវត្តទៅម្ជុល។ ទិន្នផលឥតគិតថ្លៃត្រូវបានទាញឡើងដើម្បីថាមពលដោយ resistor ភ្ជាប់មកជាមួយ។
ដើម្បីប្រើច្រកមួយចំនួនជាច្រកចូល និងខ្លះជាលទ្ធផលក្នុងពេលដំណាលគ្នា មុនពេលដែលបៃទិន្នន័យនីមួយៗត្រូវបានសរសេរទៅឧបករណ៍ពង្រីក វាចាំបាច់ត្រូវអនុវត្តរបាំងនៃឯកតាទៅនឹងប៊ីតទាំងនោះដែលត្រូវនឹងធាតុបញ្ចូលដោយប្រើប្រតិបត្តិការ "ឡូជីខល OR" ។ . អស់ហើយ)))
រំខានដល់ជំនាន់
PCF857* Port Expanders បង្កើត Interrupt Pulse កំរិតទាបនៅទិន្នផល INT ជាមួយនឹងការផ្លាស់ប្តូរណាមួយនៃសញ្ញាបញ្ចូលនៅការបញ្ចូលណាមួយនៃ microcircuit ។ វាងាយស្រួលប្រសិនបើឧបករណ៍ពង្រីកបម្រើបន្ទះចុច។ ប៉ុន្តែអ្នកត្រូវតែកំណត់នៅក្នុងឧបករណ៍ដោះស្រាយការរំខានថាតើប៊ូតុងមួយណាត្រូវបានចុច ឬបញ្ចេញ។ ម៉ាស៊ីនភ្លើងរំខានត្រូវបានបំពាក់ដោយតម្រងទប់ស្កាត់ការជជែក។
ឧទាហរណ៍ទី 1៖ ការប្រើប្រាស់ម៉ូឌុល PCF8574
ចូរយើងប្រមូលផ្តុំសៀគ្វីសាមញ្ញនៃ LED ចំនួនបួន ម៉ូឌុល PCF8574 និងបន្ទះ Arduino (រូបភាព 3 និង 4) ។ ជាមួយនឹងគ្រោងការណ៍នៃការផ្លាស់ប្តូរនេះ យើងមិនត្រូវការ quenching resistors សម្រាប់ LEDs ទេ។ ចរន្តហូរតាមរយៈ LED និងឧបករណ៍ទប់ទល់ដែលភ្ជាប់ជាមួយផ្លូវដែក។
អង្ករ។ 3. ដ្យាក្រាមខ្សែនៃម៉ូឌុល PCF8574
អង្ករ។ 4. ប្លង់សៀគ្វីជាមួយម៉ូឌុល PCF8574
ចម្លង និងបិទភ្ជាប់គំនូរព្រាង 1 ទៅក្នុងបន្ទះ Arduino៖
កម្រិតខ្ពស់មួយត្រូវបានសរសេរដំបូងទៅច្រកទាំងអស់នៃ microcircuit ដូច្នេះច្រក P0 ... P3 អាចដំណើរការជាធាតុបញ្ចូល។
កម្រិតនៅលើម្ជុលច្រកត្រូវបានអានរៀងរាល់ 500 ms ហើយលទ្ធផលអានត្រូវបានបង្ហាញនៅលើម៉ូនីទ័រ។ ប្រសិនបើអ្នកភ្ជាប់ធាតុបញ្ចូល P0…P3 មួយទៅខ្សែធម្មតា សូន្យនឹងលេចឡើងនៅក្នុងប៊ីតរបស់វា។ បន្ទាប់មកតម្លៃអានត្រូវបានប្តូរទៅខាងឆ្វេងដោយបួនប៊ីតលទ្ធផលគឺទិន្នផលទៅច្រកហើយ LEDs មួយនឹងរលត់។ ឧទាហរណ៍ ប្រសិនបើសូន្យត្រូវបានអាននៅ pin P0 នោះ LED ដែលភ្ជាប់ទៅ pin P4 នឹងបិទ។
ចំណាំថាមុននឹងសរសេរទៅកម្មវិធីពង្រីកនីមួយៗ យើងត្រូវអនុវត្ត bitmask នៃមួយទៅ bits ទាំងអស់ដែលគួរតែជា inputs: dataSend |= B00001111;
ទម្រង់ការរងសម្រាប់ធ្វើការជាមួយឡានក្រុង I2C គឺសាមញ្ញបំផុត គ្មានកំហុសត្រូវបានដំណើរការទេ។
ដំបូន្មាន៖ដើម្បីស្វែងរក និងពិនិត្យមើលអាសយដ្ឋានម៉ូឌុលនៅលើឡានក្រុង I2C អ្នកអាចប្រើ . វាបញ្ចេញទៅស្ថានីយអាសយដ្ឋាននៃឧបករណ៍ទាំងអស់ដែលឆ្លើយតបទៅនឹងសំណើររថយន្តក្រុង។
ឧទាហរណ៍ទី 2៖ ការប្រើប្រាស់ម៉ូឌុល PCF8575
ភាពប្លែកនៃម៉ូឌុល PCF8575 គឺថាវាមានច្រកចំនួន 16 ដូច្នេះ តែងតែសរសេរពីរបៃ និងអានពីរបៃ. ច្បាប់នេះត្រូវតែត្រូវបានគេសង្កេតឃើញទោះបីជាមិនត្រូវការបៃទីពីរក៏ដោយ។
តោះផ្លាស់ប្តូរគ្រោងការណ៍បន្តិច។ យើងនឹងភ្ជាប់ LEDs ទៅច្រក P10 ... P13 ហើយយើងនឹងភ្ជាប់ច្រក P00 ... P03 ជាមួយនឹង jumper ទៅនឹងខ្សែធម្មតា (រូបភាព 5 និង 6) ។
អង្ករ។ 5. ដ្យាក្រាមខ្សែនៃម៉ូឌុល PCF8575
អង្ករ។ 6. ប្លង់សៀគ្វីជាមួយម៉ូឌុល PCF8575
Sketch 2 ដំបូងសរសេរមួយទៅច្រកទាំងអស់ បន្ទាប់មកអានស្ថានភាពរបស់ពួកគេរៀងរាល់ 500 ms ។ ដំណើរការអានត្រឡប់ពាក្យ 16 ប៊ីតដែលបែងចែកជាបៃ។ មាតិកានៃបៃទាប (ម្ជុល P00…P07) ត្រូវបានចម្លងទៅបៃខ្ពស់ ហើយបានផ្ទុកឡើងត្រឡប់ទៅម៉ូឌុលវិញ។ ប្រសិនបើលទ្ធផលមួយក្នុងចំណោមលទ្ធផល P00…P03 ត្រូវបានភ្ជាប់ទៅខ្សែធម្មតា នោះ LEDs មួយក្នុងចំណោម LEDs ដែលភ្ជាប់ទៅ P10…P13 នឹងរលត់ទៅវិញ។
// បណ្ណាល័យសម្រាប់ធ្វើការជាមួយ I2C #include
បណ្ណាល័យ Arduino សម្រាប់ PCF8574/PCF8575
បណ្ណាល័យអាចទាញយកបានពី GitHub ។ ប៉ុន្តែដូចដែលអ្នកបានឃើញ ការធ្វើការជាមួយឧបករណ៍ពង្រីកច្រកគឺសាមញ្ញណាស់ ហើយអ្នកអាចធ្វើបានយ៉ាងងាយស្រួលដោយគ្មានបណ្ណាល័យពិសេស។
អត្ថប្រយោជន៍សំខាន់មួយនៃវេទិកា Arduino គឺភាពពេញនិយមរបស់វា។ វេទិកាដ៏ពេញនិយមត្រូវបានគាំទ្រយ៉ាងសកម្មដោយក្រុមហ៊ុនផលិតឧបករណ៍អេឡិចត្រូនិកដោយបញ្ចេញកំណែពិសេសនៃបន្ទះផ្សេងៗដែលពង្រីកមុខងារជាមូលដ្ឋានរបស់ឧបករណ៍បញ្ជា។ ក្តារបែបនេះដែលត្រូវបានគេហៅថាជាបន្ទះពង្រីក (ឈ្មោះផ្សេងទៀត៖ arduino Shield, Shield) បម្រើដើម្បីអនុវត្តការងារជាច្រើនប្រភេទ និងអាចជួយសម្រួលដល់ជីវិតរបស់ arduinian បាន។ នៅក្នុងអត្ថបទនេះ យើងនឹងសិក្សាពីអ្វីដែលជាបន្ទះពង្រីក Arduino និងរបៀបដែលវាអាចត្រូវបានប្រើដើម្បីធ្វើការជាមួយឧបករណ៍ Arduino ជាច្រើនប្រភេទ៖ ម៉ូទ័រ (ខែលកម្មវិធីបញ្ជាម៉ូទ័រ) អេក្រង់ LCD (ខែល LCD) កាត SD (ឧបករណ៍កត់ត្រាទិន្នន័យ) ឧបករណ៍ចាប់សញ្ញា។ (Sensor Shield) និងឧបករណ៍ជាច្រើនទៀត។
ចូរយើងយល់ពីលក្ខខណ្ឌជាមុនសិន។ បន្ទះពង្រីក Arduino គឺជាឧបករណ៍ពេញលេញដែលត្រូវបានរចនាឡើងដើម្បីអនុវត្តមុខងារជាក់លាក់ និងត្រូវបានភ្ជាប់ទៅឧបករណ៍បញ្ជាមេដោយប្រើឧបករណ៍ភ្ជាប់ស្តង់ដារ។ ឈ្មោះដ៏ពេញនិយមមួយផ្សេងទៀតសម្រាប់បន្ទះពង្រីកគឺជាខែលភាសាអង់គ្លេស Arduino ឬជាខែល។ សមាសធាតុអេឡិចត្រូនិចចាំបាច់ទាំងអស់ត្រូវបានដំឡើងនៅលើបន្ទះពង្រីក ហើយអន្តរកម្មជាមួយ microcontroller និងធាតុផ្សេងទៀតនៃ main board កើតឡើងតាមរយៈម្ជុល arduino ស្តង់ដារ។ ភាគច្រើនជាញឹកញាប់ ប្រឡោះក៏ត្រូវបានផ្តល់ថាមពលពីបន្ទះ arduino មេផងដែរ ទោះបីជាក្នុងករណីជាច្រើនវាអាចផ្តល់ថាមពលពីប្រភពផ្សេងទៀតក៏ដោយ។ នៅក្នុងខែលណាមួយ មានម្ជុលឥតគិតថ្លៃមួយចំនួនដែលអ្នកអាចប្រើតាមការសំរេចចិត្តរបស់អ្នកដោយភ្ជាប់សមាសធាតុផ្សេងទៀតទៅនឹងពួកវា។
ពាក្យជាភាសាអង់គ្លេស Shield ត្រូវបានបកប្រែថា Shield, screen, screen។ នៅក្នុងបរិបទរបស់យើង វាគួរតែត្រូវបានយល់ថាជាអ្វីមួយដែលគ្របដណ្ដប់លើបន្ទះឧបករណ៍បញ្ជា ដែលបង្កើតស្រទាប់បន្ថែមនៃឧបករណ៍ អេក្រង់ដែលនៅពីក្រោយធាតុផ្សេងៗត្រូវបានលាក់។
ហេតុអ្វីបានជាត្រូវការខែល arduino?
អ្វីគ្រប់យ៉ាងគឺសាមញ្ញណាស់: 1) ដូច្នេះយើងសន្សំសំចៃពេលវេលានិង 2) នរណាម្នាក់អាចរកលុយបាន។ ហេតុអ្វីបានជាខ្ជះខ្ជាយពេលវេលាក្នុងការរចនា ការដាក់ ការបិទភ្ជាប់ និងការបំបាត់កំហុសអ្វីមួយដែលអ្នកអាចយកបានហើយចាប់ផ្តើមប្រើប្រាស់ភ្លាមៗ? វាត្រូវបានរចនា និងផ្គុំឡើងយ៉ាងល្អនៅលើផ្នែករឹងដែលមានគុណភាពខ្ពស់ បន្ទះពង្រីកជាធម្មតាអាចទុកចិត្តបានជាង និងប្រើប្រាស់ទំហំតិចនៅក្នុងឧបករណ៍ចុងក្រោយ។ នេះមិនមានន័យថាអ្នកត្រូវបោះបង់ចោលទាំងស្រុងនូវការជួបប្រជុំគ្នាដោយខ្លួនឯង ហើយមិនចាំបាច់យល់ពីគោលការណ៍នៃប្រតិបត្តិការនៃធាតុមួយចំនួននោះទេ។ យ៉ាងណាមិញ វិស្វករពិតប្រាកដម្នាក់តែងតែព្យាយាមយល់ពីរបៀបដែលគាត់ប្រើប្រាស់ដំណើរការ។ ប៉ុន្តែយើងនឹងអាចបង្កើតឧបករណ៍ស្មុគ្រស្មាញបន្ថែមទៀត ប្រសិនបើយើងមិនកែច្នៃកង់ឡើងវិញរាល់ពេល ប៉ុន្តែផ្តោតការយកចិត្តទុកដាក់របស់យើងទៅលើអ្វីដែលមនុស្សតិចតួចបានដោះស្រាយមុនយើង។
តាមធម្មជាតិ អ្នកត្រូវតែចំណាយសម្រាប់ឱកាស។ ស្ទើរតែជានិច្ចកាល តម្លៃនៃខែលចុងក្រោយនឹងខ្ពស់ជាងតម្លៃនៃសមាសធាតុនីមួយៗ អ្នកតែងតែអាចធ្វើឱ្យជម្រើសស្រដៀងគ្នាមានតម្លៃថោកជាង។ ប៉ុន្តែនៅទីនេះ វាអាស្រ័យលើអ្នកក្នុងការសម្រេចចិត្តថាតើពេលវេលា ឬលុយដែលចំណាយសម្រាប់អ្នកមានសារៈសំខាន់ប៉ុណ្ណា។ ដោយគិតពីជំនួយដែលអាចធ្វើបានទាំងអស់ពីឧស្សាហកម្មចិន ការចំណាយលើក្តារមានការថយចុះឥតឈប់ឈរ ដូច្នេះជម្រើសភាគច្រើនត្រូវបានធ្វើឡើងដើម្បីពេញចិត្តនឹងការប្រើប្រាស់ឧបករណ៍ដែលត្រៀមរួចជាស្រេច។
ឧទាហរណ៍ដ៏ពេញនិយមបំផុតនៃខែលគឺជាបន្ទះពង្រីកសម្រាប់ធ្វើការជាមួយឧបករណ៍ចាប់សញ្ញា ម៉ូទ័រ អេក្រង់ LCD កាត SD បណ្តាញ និងប្រព័ន្ធ GPS ប្រឡោះខែលជាមួយនឹងឧបករណ៍បញ្ជូនតដែលភ្ជាប់មកជាមួយសម្រាប់ភ្ជាប់ទៅបន្ទុក។
ការភ្ជាប់ Arduino Shields
ដើម្បីភ្ជាប់ប្រឡោះអ្នកគ្រាន់តែត្រូវ "ដាក់វា" ដោយប្រុងប្រយ័ត្ននៅលើបន្ទះមេ។ ជាធម្មតា ម្ជុលនៃប្រឡោះប្រភេទសិតសក់ (ប្រុស) ត្រូវបានបញ្ចូលយ៉ាងងាយស្រួលទៅក្នុងឧបករណ៍ភ្ជាប់ Arduino board។ ក្នុងករណីខ្លះ វាត្រូវបានតម្រូវឱ្យកែប្រែម្ជុលដោយប្រុងប្រយ័ត្ន ប្រសិនបើបន្ទះខ្លួនឯងមិនត្រូវបានលក់យ៉ាងស្អាត។ រឿងសំខាន់នៅទីនេះគឺត្រូវធ្វើសកម្មភាពដោយប្រុងប្រយ័ត្ននិងមិនប្រើកម្លាំងហួសប្រមាណ។
តាមក្បួនមួយខែលត្រូវបានរចនាឡើងសម្រាប់កំណែជាក់លាក់នៃឧបករណ៍បញ្ជា ទោះបីជាឧទាហរណ៍ ខែល Arduino Uno ជាច្រើនដំណើរការបានយ៉ាងល្អជាមួយបន្ទះ Arduino Mega ក៏ដោយ។ pinout នៅលើ mega ត្រូវបានធ្វើឡើងតាមរបៀបដែលទំនាក់ទំនងឌីជីថល 14 ដំបូងនិងទំនាក់ទំនងនៅជ្រុងម្ខាងនៃក្តារស្របគ្នាជាមួយនឹងទីតាំងនៃទំនាក់ទំនងនៅលើ UNO ដូច្នេះខែលពី arduino ក្លាយជាវាបានយ៉ាងងាយស្រួល។
កម្មវិធី Arduino Shield
ការសរសេរកម្មវិធីសៀគ្វីជាមួយបន្ទះពង្រីកគឺមិនខុសពីការសរសេរកម្មវិធីធម្មតារបស់ arduino ទេ ពីព្រោះតាមទស្សនៈរបស់ឧបករណ៍បញ្ជា យើងគ្រាន់តែភ្ជាប់ឧបករណ៍របស់យើងទៅនឹងម្ជុលធម្មតារបស់វា។ នៅក្នុងគំនូរព្រាង អ្នកត្រូវបញ្ជាក់ម្ជុលទាំងនោះដែលត្រូវបានភ្ជាប់នៅក្នុងខែលទៅនឹងម្ជុលដែលត្រូវគ្នានៅលើក្តារ។ តាមក្បួនមួយក្រុមហ៊ុនផលិតបង្ហាញពីការឆ្លើយឆ្លងនៃម្ជុលនៅលើប្រឡោះដោយខ្លួនឯងឬនៅក្នុងសៀវភៅណែនាំការតភ្ជាប់ដាច់ដោយឡែក។ ប្រសិនបើអ្នកទាញយកគំនូរព្រាងដែលបានណែនាំដោយក្រុមហ៊ុនផលិតបន្ទះ អ្នកក៏មិនចាំបាច់ធ្វើវាដែរ។
ការអាន ឬការសរសេរសញ្ញាការពារក៏ត្រូវបានធ្វើតាមរបៀបធម្មតាផងដែរ៖ ការប្រើប្រាស់មុខងារ និងពាក្យបញ្ជាផ្សេងទៀតដែលធ្លាប់ស្គាល់ចំពោះ arduinist ណាមួយ។ ក្នុងករណីខ្លះ ការប៉ះទង្គិចគ្នាអាចធ្វើទៅបាន នៅពេលដែលអ្នកធ្លាប់ប្រើគ្រោងការណ៍ការតភ្ជាប់នេះ ហើយអ្នកផលិតបានជ្រើសរើសមួយផ្សេងទៀត (ឧទាហរណ៍ អ្នកទាញប៊ូតុងទៅដី និងនៅលើខែល - ដើម្បីថាមពល)។ នៅទីនេះអ្នកគ្រាន់តែត្រូវប្រុងប្រយ័ត្ន។
តាមក្បួនមួយ បន្ទះពង្រីកនេះមាននៅក្នុងឧបករណ៍ arduino ហើយដូច្នេះវានៅជាមួយវាដែលមនុស្ស arduino ជួបញឹកញាប់បំផុត។ ខែលគឺសាមញ្ញណាស់ - ភារកិច្ចចម្បងរបស់វាគឺដើម្បីផ្តល់នូវជម្រើសងាយស្រួលបន្ថែមទៀតសម្រាប់ការភ្ជាប់ទៅបន្ទះ Arduino ។ នេះត្រូវបានធ្វើតាមរយៈឧបករណ៍ភ្ជាប់ថាមពល និងដីបន្ថែម នាំយកទៅក្តារបន្ទះទៅម្ជុលអាណាឡូក និងឌីជីថលនីមួយៗ។ ដូចគ្នានេះផងដែរនៅលើក្តារអ្នកអាចរកឃើញឧបករណ៍ភ្ជាប់សម្រាប់ភ្ជាប់ប្រភពថាមពលខាងក្រៅ (អ្នកត្រូវដំឡើង jumpers ដើម្បីប្តូរ) LED និងប៊ូតុងចាប់ផ្តើមឡើងវិញ។ ជម្រើសនៃខែល និងឧទាហរណ៍នៃការប្រើប្រាស់អាចត្រូវបានរកឃើញនៅក្នុងរូបភាព។
មានកំណែជាច្រើននៃបន្ទះពង្រីកឧបករណ៍ចាប់សញ្ញា។ ពួកវាទាំងអស់ខុសគ្នានៅក្នុងចំនួននិងប្រភេទនៃឧបករណ៍ភ្ជាប់។ កំណែពេញនិយមបំផុតនាពេលបច្ចុប្បន្ននេះគឺ Sensor Shield v4 និង v5 ។
របាំង arduino នេះមានសារៈសំខាន់ខ្លាំងណាស់នៅក្នុងគម្រោងមនុស្សយន្ត។ អនុញ្ញាតឱ្យអ្នកភ្ជាប់ម៉ូទ័រធម្មតា និង servo ទៅនឹងបន្ទះ Arduino ក្នុងពេលតែមួយ។ ភារកិច្ចចម្បងនៃខែលគឺដើម្បីផ្តល់ការគ្រប់គ្រងឧបករណ៍ដែលប្រើប្រាស់ចរន្តដែលមានកម្រិតខ្ពស់គ្រប់គ្រាន់សម្រាប់បន្ទះ arduino ធម្មតា។ លក្ខណៈពិសេសបន្ថែមនៃបន្ទះគឺជាមុខងារនៃការគ្រប់គ្រងថាមពលម៉ូទ័រ (ដោយប្រើ PWM) និងការផ្លាស់ប្តូរទិសដៅនៃការបង្វិល។ មានបន្ទះការពារម៉ូទ័រជាច្រើនប្រភេទ។ ជាទូទៅសម្រាប់ពួកគេទាំងអស់គឺវត្តមាននៅក្នុងសៀគ្វីនៃត្រង់ស៊ីស្ទ័រដ៏មានអានុភាពដែលតាមរយៈបន្ទុកខាងក្រៅត្រូវបានភ្ជាប់ ធាតុឧបករណ៍ផ្ទុកកំដៅ (ជាធម្មតាវិទ្យុសកម្ម) សៀគ្វីសម្រាប់ភ្ជាប់ថាមពលខាងក្រៅ ឧបករណ៍ភ្ជាប់សម្រាប់ភ្ជាប់ម៉ូទ័រ និងម្ជុលសម្រាប់ភ្ជាប់ទៅអាឌុយណូ។
ការរៀបចំការងារជាមួយបណ្តាញគឺជាកិច្ចការសំខាន់បំផុតមួយនៅក្នុងគម្រោងទំនើប។ ដើម្បីភ្ជាប់ទៅបណ្តាញក្នុងតំបន់តាមរយៈអ៊ីសឺរណិត មានបន្ទះពង្រីកដែលត្រូវគ្នា។
បន្ទះពង្រីកគំរូ
បន្ទះទាំងនេះគឺសាមញ្ញណាស់ - ពួកគេមានបន្ទះទំនាក់ទំនងសម្រាប់ធាតុម៉ោនប៊ូតុងកំណត់ឡើងវិញត្រូវបានបង្ហាញហើយវាអាចធ្វើទៅបានដើម្បីភ្ជាប់ថាមពលខាងក្រៅ។ គោលបំណងនៃខែលទាំងនេះគឺដើម្បីបង្កើនការបង្រួមនៃឧបករណ៍នៅពេលដែលសមាសធាតុចាំបាច់ទាំងអស់មានទីតាំងនៅខាងលើបន្ទះមេ។
Arduino LCD Shield និង tft Shield
ប្រឡោះប្រភេទនេះត្រូវបានប្រើដើម្បីធ្វើការជាមួយអេក្រង់ LCD នៅក្នុង arduino ។ ដូចដែលអ្នកបានដឹងហើយថាការភ្ជាប់សូម្បីតែអេក្រង់អត្ថបទ 2 បន្ទាត់សាមញ្ញបំផុតគឺនៅឆ្ងាយពីកិច្ចការតូចតាច: អ្នកត្រូវភ្ជាប់ទំនាក់ទំនងអេក្រង់ចំនួន 6 ក្នុងពេលតែមួយឱ្យបានត្រឹមត្រូវដោយមិនរាប់បញ្ចូលការផ្គត់ផ្គង់ថាមពល។ វាកាន់តែងាយស្រួលក្នុងការបញ្ចូលម៉ូឌុលដែលត្រៀមរួចជាស្រេចទៅក្នុងបន្ទះ arduino ហើយគ្រាន់តែបង្ហោះរូបភាពដែលសមស្រប។ នៅក្នុង LCD Keypad Shield ដ៏ពេញនិយម ពី 4 ទៅ 8 ប៊ូតុងត្រូវបានភ្ជាប់ភ្លាមៗទៅក្តារដែលអនុញ្ញាតឱ្យអ្នករៀបចំចំណុចប្រទាក់ខាងក្រៅភ្លាមៗសម្រាប់អ្នកប្រើប្រាស់ឧបករណ៍។ TFT Shield ក៏ជួយផងដែរ។
Arduino Data Logger Shield
កិច្ចការមួយទៀតដែលពិបាកអនុវត្តដោយខ្លួនឯងនៅក្នុងផលិតផលរបស់អ្នកគឺការផ្ទុកទិន្នន័យដែលទទួលបានពីឧបករណ៍ចាប់សញ្ញាជាមួយនឹងពេលវេលាយោង។ ប្រឡោះដែលត្រៀមរួចជាស្រេចអនុញ្ញាតឱ្យមិនត្រឹមតែរក្សាទុកទិន្នន័យ និងទទួលពេលវេលាពីនាឡិកាដែលភ្ជាប់មកជាមួយប៉ុណ្ណោះទេ ប៉ុន្តែថែមទាំងអាចភ្ជាប់ឧបករណ៍ចាប់សញ្ញាតាមវិធីដ៏ងាយស្រួលដោយ soldering ឬនៅលើបន្ទះសៀគ្វី។
សង្ខេបសង្ខេប
នៅក្នុងអត្ថបទនេះ យើងបានពិចារណាតែផ្នែកតូចមួយនៃជួរដ៏ធំនៃឧបករណ៍ផ្សេងៗដែលពង្រីកមុខងាររបស់ arduino ។ បន្ទះពង្រីកអនុញ្ញាតឱ្យអ្នកផ្តោតលើអ្វីដែលសំខាន់បំផុត - តក្កវិជ្ជានៃកម្មវិធីរបស់អ្នក។ អ្នកបង្កើតខែលដែលផ្តល់សម្រាប់ការដំឡើងត្រឹមត្រូវនិងអាចទុកចិត្តបាន ការផ្គត់ផ្គង់ថាមពលចាំបាច់។ អ្វីដែលនៅសេសសល់សម្រាប់អ្នកគឺស្វែងរកក្តារដែលអ្នកត្រូវការដោយប្រើខែលពាក្យអង់គ្លេសដែលគួរអោយស្រលាញ់ ភ្ជាប់វាទៅ arduino ហើយបង្ហោះគំនូរព្រាង។ ជាធម្មតា ការសរសេរកម្មវិធីណាមួយនៃខែលមាននៅក្នុងការអនុវត្តសកម្មភាពសាមញ្ញដើម្បីប្តូរឈ្មោះអថេរខាងក្នុងនៃកម្មវិធីដែលបានបញ្ចប់រួចហើយ។ ជាលទ្ធផល យើងទទួលបានភាពងាយស្រួលក្នុងការប្រើប្រាស់ និងការតភ្ជាប់ ក៏ដូចជាល្បឿននៃការផ្គុំឧបករណ៍ ឬគំរូដើម។
គុណវិបត្តិនៃការប្រើប្រាស់បន្ទះពង្រីកគឺការចំណាយរបស់ពួកគេ និងការបាត់បង់ប្រសិទ្ធភាពដែលអាចកើតមានដោយសារតែភាពបត់បែននៃខែលដែលស្ថិតនៅក្នុងធម្មជាតិរបស់វា។ សម្រាប់កម្មវិធីជាក់លាក់ ឬឧបករណ៍បញ្ចប់របស់អ្នក មុខងារទាំងអស់របស់ប្រឡោះប្រហែលជាមិនត្រូវការទេ។ ក្នុងករណីនេះ អ្នកគួរប្រើប្រឡោះតែនៅដំណាក់កាលនៃការបង្កើតគំរូ និងសាកល្បងប៉ុណ្ណោះ ហើយនៅពេលបង្កើតកំណែចុងក្រោយនៃឧបករណ៍របស់អ្នក សូមគិតអំពីការជំនួសវាដោយការរចនាជាមួយនឹងគ្រោងការណ៍ និងប្រភេទប្លង់ផ្ទាល់ខ្លួនរបស់អ្នក។ វាអាស្រ័យលើអ្នក អ្នកមានលទ្ធភាពទាំងអស់សម្រាប់ជម្រើសត្រឹមត្រូវ។
→ តើធ្វើដូចម្តេចដើម្បីពង្រីកចំនួននៃ analog inputs និង outputs នៅលើ Arduino របស់អ្នក?តើធ្វើដូចម្តេចដើម្បីពង្រីកចំនួននៃ analog inputs និង outputs នៅលើ Arduino របស់អ្នក?
multiplexer ឬ demultiplexer នឹងអនុញ្ញាតឱ្យអ្នកពង្រីកចំនួន inputs និង outputs នៅលើ Arduino របស់អ្នក។
4051 គឺជា 8-channel analog multiplexer/demultiplexer ដូច្នេះ៖
* ប្រសិនបើអ្នកកំពុងប្រើ 4051 ជា multiplexer៖ អ្នកអាចជ្រើសរើសធាតុបញ្ចូលណាមួយក្នុងចំណោម 8 ផ្សេងគ្នា ហើយអានស្ថានភាពរបស់វាទៅកាន់ឧបករណ៍បញ្ជា។
* ប្រសិនបើអ្នកកំពុងប្រើ 4051 ជា demultiplexer អ្នកអាចជ្រើសរើសលទ្ធផលណាមួយក្នុងចំណោម 8 ផ្សេងគ្នា ហើយសរសេរតម្លៃដែលអ្នកចង់បាននៅទីនោះ។
ដូចគ្នានេះផងដែរ 4051 អាចគ្រប់គ្រងតម្លៃអាណាឡូកនៅក្នុង Arduino របស់អ្នកអ្នកអាចប្រើសញ្ញាអាណាឡូក 0-5V និងភ្ជាប់ IC ទៅនឹងធាតុបញ្ចូលអាណាឡូកនៅលើ Arduino ។
ដើម្បីជ្រើសរើសការបញ្ចូល microcircuit ដែលចង់បាន ក៏ដូចជារបៀបប្រតិបត្តិការ អាន ឬសរសេរ យើងត្រូវប្រើសញ្ញាបញ្ជាបី (S0, S1 និង S2)។ ម្ជុលទាំងនេះនីមួយៗត្រូវតែភ្ជាប់ជាមួយលទ្ធផលឌីជីថលរបស់ Arduino ។ លទ្ធផលនីមួយៗមានលេខ (S0 = 1; S1 = 2; S2 = 4) ហើយប្រសិនបើលទ្ធផលមួយក្នុងចំណោមលទ្ធផលទាំងនេះត្រូវបានកំណត់ទៅកម្រិតតក្កវិជ្ជាខ្ពស់ នោះចំនួនម្ជុលដែលតំណាងនឹងមាន 4051 ។
ឧទាហរណ៍:
* ប្រសិនបើអ្នកកំណត់កំណត់ហេតុ "1" នៅធាតុបញ្ចូលនៃ microcircuit S0 និង S1 ហើយកត់ត្រា "0" នៅ S2 នោះការបញ្ចូល y3 នៃ microcircuit ត្រូវបានជ្រើសរើស វាមើលទៅដូចនេះ (1 +2 +0 = 3) ។
* ប្រសិនបើអ្នកកំណត់កំណត់ហេតុ "1" នៅធាតុបញ្ចូលនៃ microcircuit S0 និង S2 ហើយកត់ត្រា "0" នៅ S1 បន្ទាប់មកការបញ្ចូល y5 នៃ microcircuit ត្រូវបានជ្រើសរើស វាមើលទៅដូចនេះ (1 +0 +4 = 5) ។
វាមិនអាចទៅរួចទេក្នុងការអាន ឬសរសេរស្ថានភាពទៅលេខ 4051 ច្រើនជាងមួយក្នុងពេលតែមួយ។ ប៉ុន្តែអ្នកអាចអាននិងសរសេរស្ថានភាពពីលទ្ធផលនៃបន្ទះឈីបបានយ៉ាងលឿន។ មិនចាំបាច់មានការពន្យាពេលរវាងការជ្រើសរើស ការអាន ឬសរសេរស្ថានភាពនៃ 4051 pins នោះទេ។
* Z----- សញ្ញាបញ្ចូលឬលទ្ធផលទូទៅ (ភ្ជាប់ជាមួយ Arduino I/O)
* អ៊ី ----- បើកការបញ្ចូល (កំណត់ហេតុសកម្ម "0") (ភ្ជាប់ទៅដី (GND))
* Vee --- វ៉ុលផ្គត់ផ្គង់អវិជ្ជមាន (ភ្ជាប់ទៅនឹងដី (GND))
* GND --- ដីអវិជ្ជមាន (0 V)
* S0-S2 - ជ្រើសរើសធាតុបញ្ចូល (បានភ្ជាប់ទៅម្ជុលឌីជីថល Arduino ចំនួនបី)
* y0-Y7 - ធាតុចូល/លទ្ធផលឯករាជ្យ
* Vcc --- វ៉ុលផ្គត់ផ្គង់វិជ្ជមាន (5V)
រូបភាពខាងឆ្វេងខាងលើគឺជាឧទាហរណ៍នៃរបៀបប្រើ 9 multiplexer ដើម្បីអានការបញ្ចូលអាណាឡូកចំនួន 64 ជាមួយនឹងការបញ្ចូលអាណាឡូក Arduino តែមួយប៉ុណ្ណោះ។
រូបភាពខាងស្តាំខាងលើគឺជាឧទាហរណ៍នៃរបៀបប្រើ 4051s ពីរ (មួយបានកំណត់រចនាសម្ព័ន្ធជា demultiplexer និងមួយជា multiplexer) នៅក្នុងម៉ាទ្រីស 8x8 ដើម្បីសាកល្បង 64 ប៊ូតុង ឬការបញ្ចូលឌីជីថលផ្សេងទៀតពីការបញ្ចូលឌីជីថលតែមួយនៅលើ Arduino (ពីការដំឡើងលើកទីពីរ អ្នកអាចមានប៊ូតុងពីរក្នុងពេលតែមួយ) ក្នុងពេលតែមួយ បើមិនដូច្នេះទេ អ្នកគួរតែប្រើការកំណត់ដំបូង (ខាងឆ្វេង)។
ឧទាហរណ៍កូដ៖
// ឧទាហរណ៍សម្រាប់ការប្រើប្រាស់ 4051 analog multiplexer/demultiplexer
// ដោយ ដាវីឌ គ.
int led = 13 ; // ដំឡើង LED នៅជើងទី 13
int r0 = 0; // តម្លៃជ្រើសរើសលទ្ធផលទៅ 4051 (S0)
int r1 = 0; // តម្លៃជ្រើសរើសទិន្នផលទៅ 4051 (S1)
int r2 = 0; // តម្លៃជ្រើសរើសលទ្ធផលទៅ 4051 (S2)
ជួរ int = 0; // រក្សាទុកលេខកូដធុង
ចំនួន int = 0; // ជក់
int bin = ( 000, 1, 10, 11, 100, 101, 110, 111); // អារេនៃលេខគោលពីរដែលកំណត់ចំនួននៃការបញ្ចូល / ទិន្នផលដែលបានជ្រើសរើសនៃបន្ទះឈីប 4051 ពី 1 ដល់ 8 ។
ការដំឡើងទុកជាមោឃៈ () ( // ចាប់ផ្តើម
pinMode (2, OUTPUT); // s0 ចេញ
pinMode (3, OUTPUT); // s1 ចេញ
pinMode (4, OUTPUT); // s2 ចេញ
digitalWrite (ដឹកនាំ, ខ្ពស់); // បំភ្លឺ LED
ស៊េរីចាប់ផ្តើម (៩៦០០); // អត្រាប្តូរប្រាក់ UART
}
void loop()(
សម្រាប់ (រាប់ = 0; រាប់ ≤ 7; រាប់ ++) ( // វដ្តតាមរយៈធាតុអារេពី 1 ដល់ 8
ជួរដេក = bin [រាប់] ;
r0 = ជួរដេក & 0x01 ;
r1 = (ជួរដេក >> 1) & 0x01 ; //
r2 = (ជួរដេក >> 2) & 0x01 ; //
digitalWrite(2, r0);
digitalWrite(3, r1);
digitalWrite(4, r2);
Serial.println(bin);
ការពន្យាពេល (1000);
បន្ទះសៀគ្វី SPI ឬ I2C ADC អាចរកបានយ៉ាងងាយស្រួលនៅក្នុងជួរនៃដំណោះស្រាយ អត្រាគំរូ និងចំនួនឆានែល។ ពួកវាមានភាពងាយស្រួលក្នុងការបន្ថែមទៅ Arduino ណាមួយ។
ឧទាហរណ៍ MCP3208 នឹងផ្តល់ឱ្យ 8 ឆានែលនៃគុណភាពបង្ហាញ 12 ប៊ីតក្នុងមួយ SPI ដែលមានន័យថា 3 pins (MOSI/MISO/SCK) + 1 ក្នុងមួយបន្ទះឈីប (SS) ។ ដូច្នេះ 1 បន្ទះសៀគ្វីនឹងមាន 4 pins, 2 chips 5 pins, 3 chips 6 pins ជាដើម។
ការបន្ថែម ICs ជាច្រើនទៅកាន់ SPI bus អាចជាការរំខាននៅក្នុងខ្លួនវាជាមួយនឹងការកើនឡើងនៃសមត្ថភាពនៃធាតុបញ្ចូលទាំងនោះ ដែលមានន័យថាអ្នកត្រូវបន្ថយល្បឿននៃការផ្ញើសារបន្តិច ឬបន្ថែមការផ្អាកបន្ថែមមួយចំនួនដើម្បីជំរុញឡានក្រុងឱ្យកាន់តែខ្លាំង។
បន្ទះសៀគ្វី I2C អាចមានល្បិចជាង ព្រោះមានតែចំនួនកំណត់នៃអាស័យដ្ឋាននៅលើឡានក្រុង I2C ប៉ុណ្ណោះ - បូកនៅលើ Arduinos I2C ជាច្រើនក៏ជាបន្ទះ analog ពីរដែលអ្នកប្រហែលជាមិនចង់លះបង់។
ជម្រើសទីពីរពាក់ព័ន្ធនឹងការប្រើប្រាស់ឧបករណ៍ពហុគុណអាណាឡូក (ឧទាហរណ៍ 4051) ដើម្បីប្តូរប្រភពផ្សេងៗគ្នាទៅធាតុបញ្ចូលអាណាឡូកដែលមានស្រាប់។
ជម្រើសទីបី ដែលអ្នកប្រហែលជាមិនបានពិចារណានោះគឺមាន arduinos ជាច្រើន (ឬ microcontrollers ដែលមិនមានតម្លៃថោកផ្សេងទៀត) ដែលនីមួយៗធ្វើការទាញយក ហើយបន្ទាប់មកអនុវត្តវិធីសាស្រ្តទំនាក់ទំនងមួយចំនួនរវាងពួកគេ (ឬជាមួយមេតែមួយ)។ វាមានអត្ថប្រយោជន៍បន្ថែមនៃការអាចយកគំរូឆានែលច្រើនក្នុងពេលតែមួយ (មួយក្នុងមួយ microcontroller) ដែលបង្កើនល្បឿនការងាររបស់អ្នកបន្តិច។
ដោយពង្រីកលើចម្លើយរបស់ Mazhenko អ្នកអាចប្រើ analog multiplexer ដូចជា 74HC4051 ដើម្បីប្រែក្លាយច្រកអាណាឡូកមួយទៅជា 8 ។
បងប្អូនជីដូនមួយរបស់វា 74HC4067 នឹង multiplex 16 ports ។ ឥឡូវនេះជាមួយនឹងការបញ្ចូលអាណាឡូកចំនួន 6 នៅលើ Arduino Uno អ្នកអាចមានធាតុបញ្ចូល 6 x 16 = 96 ។ សញ្ញាបញ្ជា A/B/C អាចស្របគ្នា។
វានឹងអនុញ្ញាតឱ្យអ្នកដោះស្រាយការបញ្ចូលចំនួន 96 ជាមួយនឹងបន្ទះសៀគ្វីបន្ថែមចំនួន 6 និងលេខកូដសាមញ្ញសមរម្យ។ ខ្ញុំមានឧទាហរណ៍កូដនៅលើទំព័រ 74HC4051 mux/demux របស់ខ្ញុំ។
សម្រាប់ 8 លេខកូដបញ្ចូល:
// ឧទាហរណ៍នៃការប្រើប្រាស់ 74HC4051 multiplexer/demultiplexer // Author: Nick Gammon // Date: 14 March 2013 const byte sensor = A0; // ដែលច្រក multiplexer ចូល/ចេញត្រូវបានតភ្ជាប់ // អាសយដ្ឋាន multiplexer ជ្រើសរើសបន្ទាត់ (A/B/C) const byte addressA = 6;//low-order bit const byte addressB = 5; const byte addressC = 4; // high-order bit void setup()( Serial.begin(115200); Serial.println("កំពុងចាប់ផ្តើមការសាកល្បង multiplexer..."); pinMode(addressA, OUTPUT); pinMode(addressB, OUTPUT ); pinMode (addressC, OUTPUT); ) // ចុងបញ្ចប់នៃការដំឡើង int readSensor (const byte which) ( // ជ្រើសរើស MUX channel digitalWrite ត្រឹមត្រូវ (addressA, (which & 1) ? HIGH: LOW); // low-order bit digitalWrite (addressB, (which & 2) ? HIGH: LOW); digitalWrite (addressC, (which & 4) ? HIGH: LOW); // high-order bit // ឥឡូវអាន sensor ត្រឡប់ analogRead (sensor); ) / / end of readSensor void loop () ( // បង្ហាញការអាន sensor ទាំង 8 សម្រាប់ (byte i = 0; i< 7; i++) { Serial.print ("Sensor "); Serial.print (i); Serial.print (" reads: "); Serial.println (readSensor (i)); } delay (1000); } //end of loop
ខ្ញុំបានធ្វើការយ៉ាងពិតប្រាកដជាមួយនឹងបញ្ហាដូចគ្នា។ ខ្ញុំត្រូវការកម្មវិធីដែលអាន 100 thermistor... ហេតុអ្វី? ជាការប្រសើរណាស់, ប្រសិនបើអ្នកត្រូវការវា។
ខ្ញុំបានបញ្ចប់វារួចហើយ។
ខ្ញុំបានសាកល្បង 74HC4051 multiplexer/demultiplexer ។ ប៉ុន្តែសម្រាប់ហេតុផលមួយចំនួន ខ្ញុំមិនបានទទួលលទ្ធផលដែលចង់បាន។
រឿងដំបូងដែលអ្នកនឹងរកឃើញ... POWER អ្នកនឹងត្រូវការការផ្គត់ផ្គង់ថាមពលខាងក្រៅ ក្នុងករណីរបស់ខ្ញុំ ខ្ញុំទើបតែបង្កើតវ៉ុលបែងចែក ហើយភ្ជាប់ thermistor ទៅនឹងថាមពលនោះ ហើយបន្ទាប់មកគ្រាន់តែប្រើ analog port ដើម្បីអាន...
ខ្ញុំកំពុងប្រើ I2C protocol, 8 arduino Mega 7 slaves និង master មួយ។ ហើយបន្ទាប់ពីផ្ញើ ផ្ញើចំនួនគត់ អណ្តែត និង blah blah មិនដំណើរការសម្រាប់ខ្ញុំគ្រាន់តែធ្វើវា។ វាអាចផ្ញើអាណាឡូកអានលើ I2C ហើយមេធ្វើការបំប្លែងចាំបាច់ទាំងអស់។
ប្រសិនបើអ្នកនៅតែចាប់អារម្មណ៍ខ្ញុំអាចផ្ញើកូដប្រភពសម្រាប់មេនិងទាសករ។ ជាមួយនឹងគំរូនេះ អ្នកអាចភ្ជាប់បានរហូតដល់ 50 arduinos ហើយមេនឹងរកមើល arduino នីមួយៗដែលបានភ្ជាប់នៅលើបណ្តាញ និងស្នើសុំទិន្នន័យ។
របៀបកំណត់ទិន្នន័យឡើងវិញ (កំណត់ឡើងវិញរឹង កំណត់ឡើងវិញពីរោងចក្រ) នៅលើ Samsung Galaxy
កម្មវិធីបង្កប់ដ៏ល្អបំផុតសម្រាប់ HTC Desire ជាមួយ Sense shell - Runnymede និង RuHD ការដំឡើង RuHD សម្រាប់ Desire
វិធីដើម្បីត្រឡប់ក្តារចុចទៅ Android ប្រសិនបើវាបាត់
កាមេរ៉ា Android មិនដំណើរការទេ។
អ្វីដែលត្រូវជ្រើសរើស - PS4 ឬ Xbox One