របៀបធ្វើបញ្ជរហ្គេហ្គេ

 

counter geiger ដែលផលិតនៅផ្ទះ

កោះបីមឺលស៊ីនណូបលីហ្វូគូស៊ីម៉ានិងសូម្បីតែខ្លះនៅលើទឹកដីជាតិដូចជារ៉េអាក់ទ័រផ្កាថ្ម I នៅម៉ាឌ្រីតឬរ៉េអាក់ទ័រវ៉ាន់ឌែល - អ៊ីនៅកាតាឡាន។ មាន​ច្រើន គ្រោះថ្នាក់នុយក្លេអ៊ែរ ដែលបានកើតឡើងនៅទូទាំងប្រវត្តិសាស្រ្តនិងទោះបីជាមានផលវិបាកដ៏គួរឱ្យភ័យខ្លាចវាហាក់ដូចជាប្រធានបទនេះ វិទ្យុសកម្ម។ វាបន្តបង្កើនការទាក់ទាញជាក់លាក់។ ប៉ុន្តែអ្វីដែលដឹងតិចតួចនោះគឺថាជារៀងរាល់ថ្ងៃយើងទាំងអស់គ្នាត្រូវបានប៉ះពាល់នឹងវិទ្យុសកម្មធម្មជាតិទាំងពីរដែលមកពីចន្លោះខាងក្រៅនិងដែលបានមកពីរ៉ែនៃផែនដី ...

ជាការប្រសើរណាស់, ប្រសិនបើអ្នកចង់វាស់វិទ្យុសកម្មនៅជុំវិញអ្នក, នៅក្នុងមគ្គុទេសក៍ថ្មីនេះយើងបង្ហាញអ្នកមួយជំហានម្តង ៗ នៃនីតិវិធី តើអ្នកអាចបង្កើតបញ្ជរហ្គេហ្គេនយ៉ាងដូចម្តេចនោះគឺឧបករណ៍ដែលមានសមត្ថភាពវាស់វិទ្យុសកម្ម។ ជាទូទៅវាគឺជាឧបករណ៍ដែលអាចវាស់ភាគល្អិតដែលប៉ះពាល់ជាមួយឧបករណ៏ដូចជាវិទ្យុសកម្មអ៊ីយ៉ូដដូច្នេះវាត្រូវបានគេហៅថារាប់ចាប់តាំងពីវាអាចរាប់ចំនួនផលប៉ះពាល់ហើយដូច្នេះកំរិតវិទ្យុសកម្មនៃវត្ថុឬទីកន្លែង។

តើខ្ញុំគួរដឹងអ្វីខ្លះមុន?

និមិត្តសញ្ញាវិទ្យុសកម្មដែលមិនមែនជាអ៊ីយ៉ូដនិងវិទ្យុសកម្ម

មុនពេលចាប់ផ្តើមគម្រោង DIY ខ្ញុំចង់ធ្វើអត្ថាធិប្បាយអ្វីមួយ អំពីវិទ្យុសកម្មសម្រាប់អ្នកដែលមិនដឹងអំពីវា។ អ្នកដែលមានចំណេះដឹងពីមុនអ្នកអាចរំលងផ្នែកនេះហើយទៅមើលដោយផ្ទាល់ដូចខាងក្រោម ...

តើវិទ្យុសកម្មគឺជាអ្វី?

វាគឺជាបាតុភូតនៃ កម្មវិធីថាមពល នៅក្នុងសំណុំបែបបទនៃរលកអេឡិចត្រូម៉ាញេទិកឬភាគល្អិត subatomic តាមរយៈឧបករណ៍ផ្ទុកមួយ។ ដូច្នេះយើងអាចមានប្រភេទវិទ្យុសកម្មផ្សេងៗគ្នា។

តើវិទ្យុសកម្មប្រភេទណាខ្លះ?

វិសាលគមអេឡិចត្រូម៉ាញេទិក

មាន​ច្រើន ប្រភេទនៃវិទ្យុសកម្មដូចជាកំដៅអេឡិចត្រូម៉ាញេទិក។ ល។ ប៉ុន្តែក្រុមដែលចាប់អារម្មណ៍យើងនៅទីនេះមានពីរក្រុមធំ៖

  • មិនមែនអ៊ីយ៉ូដ៖ វាជារលកឬភាគល្អិតដែលមិនអាចយកអេឡិចត្រុងចេញពីរូបធាតុបានគឺវាមិនអាចធ្វើអ៊ីយ៉ូដបានទេ។ ឧទាហរណ៍របស់វាអាចជារលកអេឡិចត្រូម៉ាញ៉េទិចមីក្រូវ៉េវវិទ្យុពន្លឺល។
  • Ionizing៖ វាជារលកឬភាគល្អិតដែលអាចបង្ហូរអេឡិចត្រុងចេញពីរូបធាតុបានគឺវាអាចអ៊ីយ៉ូដដោយសារតែថាមពលខ្ពស់របស់វា។ ដូច្នេះវាគ្រោះថ្នាក់បំផុត។ នៅក្នុងក្រុមនេះយើងមានឡាស៊ែរកាំរស្មីអិលអាល់ហ្វាបេតាហ្គាម៉ាកាំរស្មីវិទ្យុសកម្មហ្វ្រាំងឬប៊្លុកឡាំង) ។ ល។

បើយើងក្រឡេកមើល ក្នុងវិសាលគមអេឡិចត្រូម៉ាញេទិករលកដែលមានរលកវែងបំផុតដូចជាវិទ្យុឬមីក្រូវ៉េវគឺជាការជ្រៀតចូលតិចបំផុតដែលមានថាមពលតិចបំផុត (ប្រេកង់ទាប) ។ ខណៈពេលដែលយើងរំកិលទៅខាងស្តាំយើងឃើញថារាល់ដងរលកខ្លីនិងប្រេកង់រំញ័រកាន់តែខ្លាំងដូច្នេះពួកគេមានថាមពលច្រើនហើយងាយជ្រាបចូលនិងខូច។

ប្រភេទនៃវិទ្យុសកម្មអ៊ីយ៉ូដ៖

អាល់ហ្វាបេតានិងហ្គាម៉ា

ប្រសិនបើយើងផ្តោតលើ វិទ្យុសកម្មអ៊ីយ៉ូដដែលមានសមត្ថភាពក្នុងការវាស់ស្ទង់ប្រដាប់ប្រដា Geiger យើងត្រូវត្រងម្តងទៀតនិងផ្តោតលើមូលដ្ឋានគ្រឹះចំនួន ៣ ដោយសារតែបាតុភូតនុយក្លេអ៊ែរ៖

  • អាល់ហ្វា៖ ពួកគេមានបន្ទុកវិជ្ជមានហើយត្រូវបានផ្សំឡើងដោយប្រូតេអីននិងនឺត្រុងចំនួនពីរពោលគឺពួកគេគឺជាអាតូមអេលីយ៉ូម។ ពួកវាមានគ្រោះថ្នាក់និងជ្រាបចូលតិចបំផុតព្រោះពួកគេអាចត្រូវបានបញ្ឈប់ដោយប្រើក្រដាសធម្មតា។ ផលប៉ះពាល់លើសុខភាពគឺអាស្រ័យទៅលើបញ្ហាមួយចំនួនព្រោះវាមិនអាចជ្រាបចូលទៅក្នុងស្រទាប់ខាងក្រៅនៃស្បែកបានទេប៉ុន្តែប្រសិនបើវាចូលទៅក្នុងខ្លួនពួកគេអាចបង្កគ្រោះថ្នាក់។ ការស្រូបចូលការបញ្ចូលឬចាក់ចូលទៅក្នុងខ្លួននៃប្រភពដែលបង្កើតជាវិទ្យុសកម្មនេះអាចបំផ្លាញជាលិការរស់នៅ។
  • បេតា: ពួកគេគឺជាភាគល្អិតនៃបន្ទុកអគ្គីសនីអវិជ្ជមានអេឡិចត្រុង។ ពួកវាមានភាពជ្រៀតចូលនិងស្វាហាប់ជាងមុនហើយដើម្បីបញ្ឈប់ពួកគេយើងអាចធ្វើវាជាមួយក្រដាសអាលុយមីញ៉ូមផ្ទះបាយ។ ទោះបីជាមានការជ្រាបចូលកាន់តែច្រើនក៏ដោយវាមិនបង្កអន្តរាយដល់ជាលិការរស់និងឌីអិនអេដូចសារធាតុមុន ៗ ទេព្រោះថាអ៊ីយ៉ូដបង្កឱ្យមានកើតឡើងកាន់តែទូលំទូលាយ។ វាអាចបណ្តាលឱ្យរលាកស្បែកហើយប្រសិនបើពួកគេចូលក្នុងខ្លួនវាអាចជា ...
  • ហ្គាម៉ាកាំរស្មីហ្គាម៉ាគឺជាអ្នកដែលមានថាមពលនិងថាមពលដែលអាចជ្រាបចូលបានខ្ពស់បំផុតដូច្នេះវាមានគ្រោះថ្នាក់បំផុត។ វានិយាយអំពីផតថលដែលជាថាមពលសុទ្ធដែលមិនអាចបញ្ឈប់បានដោយងាយទេគឺមានតែសន្លឹកសំណបេតុងប៉ុណ្ណោះ។ ពួកវាងាយឆ្លងកាត់រាងកាយរបស់យើងហើយបណ្តាលឱ្យខូចខាតជាលិកាធ្ងន់ធ្ងរការបំផ្លាញ DNA ។

ដូច្នេះវាមិនមែនជាល្បែងទេហើយពី hwlibre យើងលើកទឹកចិត្តឱ្យអ្នកធ្វើ យកការប្រុងប្រយ័ត្នទាំងអស់ និងដឹងច្បាស់នូវអ្វីដែលអ្នកកំពុងធ្វើ។ យើងមិនយកចិត្តទុកដាក់លើបញ្ហាដែលអាចកើតមាន ...

បំពង់ Geiger-Müller៖

បំពង់ geiger

ពួកវាជាអាយុកាលរបស់វ៉ែនតាហ្គីហ្គែនទាំងអស់ព្រោះវាជាឧបករណ៍ o អង្គញាណ ដែលទទួលខុសត្រូវចំពោះការទទួលវិទ្យុសកម្មនិងបំលែងចំនួននៃការឆក់នោះទៅជាកម្លាំងអគ្គិសនីដែលអាចបកស្រាយដោយផ្នែកផ្សេងទៀតនៃសៀគ្វី។ វាត្រូវបានគេស្គាល់ថាជាបំពង់ Geiger-Müllerឬជាបំពង់ Geiger ហើយអ្នកអាចទិញវានៅក្នុងហាងលក់តាមអ៊ិនធឺរណែតផ្សេងៗដូចជា Amazon, Aliexpress ។ ល។ ជម្រើសមួយទៀតគឺយកវាចេញពីបញ្ជរហ្គេហ្គេនដែលយើងមានចាស់ឬប្រើប្រាស់ខុស។

មានម៉ូឌែលជាច្រើនមានម៉ូដែលខុសៗគ្នា (អេសធីធី ៩, ​​អិលឌី - ៧១២, ជេ ៤០៨, …) និងក្រុមហ៊ុនផលិតផ្សេងៗគ្នា (GSTube, អិលឌី, ណុបអុបទិក, …) ។ ការពេញនិយមបំផុតគឺ ជនជាតិអាមេរិកនិងជនជាតិរូស្សីទោះបីវាក៏មានជនជាតិចិនដែរ។ ដើមកំណើតសូវៀតខ្លះមានទំនោរមានតំលៃថោកដែលថ្លៃបំផុតគឺ NLD ។ អ្វីដែលយើងត្រូវតែច្បាស់គឺតម្លៃវ៉ុលរវាងវាផ្លាស់ទីព្រោះសញ្ញាអាណាឡូកដែលវាបញ្ចេញនឹងមានច្រើនឬតិចអាស្រ័យលើកាំរស្មីដែលចាប់បាន។

ប្រតិបត្ដិការបំពង់ Geiger ជាមួយនឹងផលប៉ះពាល់នៃភាគល្អិត

ប្រទេស អ្នកលក់ គំរូ ភាគល្អិតដែលវាចាប់យក វ៉ុល សម្ភារៈ តំលៃ
Rusia GSTube អេសប៊ីអេម - ៣៥០ បេតា / ហ្គាម៉ា 400V អាលុយមីញ៉ូម ទាប
Rusia GSTube អេសប៊ីអេម - ៣៥០ បេតា / ហ្គាម៉ា 650V អាលុយមីញ៉ូម ទាប
Rusia GSTube បាទ -1 ក្រាម ហ្គាម៉ា 440V អាលុយមីញ៉ូម ទាប
Rusia GSTube អេសធីធី -១៣ បេតា / ហ្គាម៉ា 389V អាលុយមីញ៉ូម ទាប
Rusia GSTube បាទ -3bg បេតា / ហ្គាម៉ា 400V អាលុយមីញ៉ូម ទាប
សហរដ្ឋអាមេរិក អិល អិល - ៧១២ អាល់ហ្វា / បេតា / ហ្គាម៉ា 500V Mica មធ្យម
សហរដ្ឋអាមេរិក អិល អិល - ៧១២ អាល់ហ្វា / បេតា / ហ្គាម៉ា 500V Mica Alto
សហរដ្ឋអាមេរិក អិល អិល - ៧១២ អាល់ហ្វា / បេតា / ហ្គាម៉ា 500V Mica Alto
ប្រទេស​ចិន អុបទិកខាងជើង J408 ឆ្នាំ ហ្គាម៉ា 420V គ្រីស្តាល់ ទាប
ប្រទេស​ចិន អុបទិកខាងជើង ជ ០២១១ ប៊ី បេតា / ហ្គាម៉ា 350V គ្រីស្តាល់ ទាប
ប្រទេស​ចិន អុបទិកខាងជើង ជ ០២១១ ប៊ី បេតា / ហ្គាម៉ា 420V គ្រីស្តាល់ ទាប

សម្រាប់រឿងនោះ។ យើងនឹងត្រូវក្រិតសៀគ្វីរបស់យើង ដើម្បីបំលែងសញ្ញាទាំងនេះទៅជាឯកតាដែលក្នុងនោះវិទ្យុសកម្មត្រូវបានវាស់ជាធម្មតាដូចជា Sievert (Sv), roentgen, ឬ Rem ក្នុងចំណោមរបស់ផ្សេងទៀត ... ដូចដែលយើងនឹងធ្វើជាមួយឧបករណ៏សីតុណ្ហភាពយើងត្រូវតែបំលែងវ៉ុលទិន្នផលទាំងនោះទៅជាអង្សាសេ។ ឬតាមទំហំដែលយើងកំពុងវាស់។

ឯកតា SI សម្រាប់វាស់កាំរស្មី៖

ប្រព័ន្ធអន្តរជាតិ (អេសអាយ) មានតួនាទីជាអង្គភាពរបស់ខ្លួន សៀលីវេត (Sv)ចងចាំថាមានតារាងដែលបង្ហាញពីគ្រោះថ្នាក់ឬផលប៉ះពាល់នៃវិទ្យុសកម្មដែលយើងកំពុងចាប់យកដើម្បីសុខភាព៖

mSv ផលប៉ះពាល់សុខភាព
50-100 ការផ្លាស់ប្តូរគីមីវិទ្យាឈាម
500 ចង្អោរក្នុងរយៈពេលតែប៉ុន្មានម៉ោង
700 ក្អួត
750 ការបាត់បង់សក់ក្នុងរយៈពេល 2-3 សប្តាហ៍
900 ជំងឺរាគរូស
1000 ការហូរឈាម
4000 ការស្លាប់ដែលអាចកើតមានក្នុងរយៈពេលពីរខែ

អ្នកបានដឹងរួចហើយថាវាមិនត្រឹមតែអាស្រ័យលើកម្រិតថ្នាំប៉ុណ្ណោះទេប៉ុន្តែវាក៏អាស្រ័យលើផងដែរ ការប៉ះពាល់។ នោះគឺយើងអាចទទួលបាន ១០០ ដូសក្នុងមួយដងហើយមិនមានអ្វីកើតឡើងនោះទេប៉ុន្តែប្រសិនបើយើងកំពុងទទួលបាន ៥០ ម៉ែតអេសអេសអស់រយៈពេលជាច្រើនខែនោះផលប៉ះពាល់រយៈពេលវែងអាចនឹងមានអវិជ្ជមានខ្លាំង ...

ប្រភពវិទ្យុសកម្មសម្រាប់តេស្តៈ

គ្រីស្តាល់អ៊ុយរ៉ាញ៉ូមនិងឧបករណ៍ចាប់ផ្សែង

ដើម្បីអនុវត្ត។ តេស្តកាំរស្មីអ្នកគួរតែដឹងថាមានជំរើសជាច្រើន។ មានគ្រីស្តាល់អ៊ុយរ៉ាញ៉ូមដូចអ្វីដែលអ្នកឃើញនៅក្នុងរូបភាពនេះ (ខាងឆ្វេង) ដែលប្រដាប់ប្រដា Geiger ត្រូវបានសាកល្បងនៅក្នុងមន្ទីរពិសោធន៍។ ប៉ុន្តែមានប្រភពផ្សេងទៀតដែលនៅជិតយើងអាចទទួលបានវិទ្យុសកម្មឬសម្ភារៈវិទ្យុសកម្មដូចជាឧបករណ៍ចាប់ផ្សែងនៅក្នុងឧបករណ៍ចាប់ភ្លើង។

នៅខាងក្នុងឧបករណ៍រាវរកទាំងនោះមាន ប្រភពនៃវិទ្យុសកម្មអ៊ីយ៉ូដ នៃអាមេរិចនិងផលិតកាំរស្មីអាល់ហ្វា។ អ្នកគួរតែដឹងផងដែរថាអាហារជាច្រើនដែលសំបូរទៅដោយប៉ូតាស្យូមមានអ៊ីសូតូមមួយដែលមានឈ្មោះថាប៉ូតាស្យូម ៤០ ដែលបញ្ចេញកាំរស្មីទោះបីជាវាមិនមែនជាបញ្ហាសម្រាប់រាងកាយរបស់យើងក៏ដោយវាគឺជាកំរិតទាបខ្លាំងណាស់ដូចជាវិទ្យុសកម្មដែលយើងទទួលបានពីធម្មជាតិ (ជាក់លាក់ ថ្មក្រានីត) ឬ cosmos ។

យើងខ្លួនយើងមានវិទ្យុសកម្មយើងត្រូវបានបង្កើតឡើងពីកាបូនហើយកាបូន -14 គឺ។ ប៉ុន្តែ នឹងភ្ញាក់ផ្អើល ដោយដឹងថាយើងកាន់វត្ថុវិទ្យុជាច្រើនរាល់ថ្ងៃដោយមិនដឹងខ្លួន៖ ប៊ូតុងខ្លះសេរ៉ាមិចថ្មម៉ាបអំពូលបោះជំរុំបារីក្រដាសថ្នាំជក់ក្រដាសជូតមួយចំនួន។ ល។ អ្វីទាំងអស់ដែលខ្ញុំអាចប្រើដើម្បីសាកល្បងបញ្ជរហ្គេហ្គេរបស់អ្នកនិងមើលថាតើវាដំណើរការរឺអត់ ...

ប៉ុន្តែខ្ញុំសូមនិយាយម្តងទៀតអ្នកត្រូវតែប្រុងប្រយ័ត្ននៅពេលប្រើពុម្ពអក្សរជាក់លាក់។

សំភារៈចាំបាច់៖

នៅពេលដែលរឿងទាំងអស់ត្រូវបានដឹងយើងទៅដោយផ្ទាល់ រាយសមាសធាតុទាំងអស់ដែលយើងត្រូវការ ដើម្បីកសាងបញ្ជរហ្គីហ្គេសផលិតដោយខ្លួនយើង៖

  1. ម៉ូឌុលបំប្លែង / ឌីស៊ីឌីស៊ីឌីស៊ី វ៉ុលខ្ពស់ (ឧ។ សូដុ) ។ វានឹងជួយយើងក្នុងការលៃតម្រូវវ៉ុលខ្ពស់ដែលហ្គីហ្គេល - មូលឡឺដោះស្រាយនិងបំលែងវ៉ុលនោះទៅជាវ៉ុលតូចមួយបើប្រៀបធៀបទៅនឹងក្តារអាឌូណូនិងសមាសធាតុផ្សេងទៀត។ ចងចាំថាវាត្រូវតែទប់ទល់នឹងវ៉ុលបញ្ចូលនៃបំពង់ដែលអ្នកបានជ្រើសរើស។
  2. ម៉ូឌុលសាក។ ឧទាហរណ៍ នេះ.
  3. ម៉ូឌុលធ្លាក់ចុះ កម្មវិធីបម្លែង DC-DC ៣-៥ វ៉.
  4. អាណូឌូណូណាណូទោះបីជារបស់ណាក៏មានប្រយោជន៍ដែរប៉ុន្តែដើម្បីកុំអោយទំហំធំពេកណាណូអាចចូលចិត្តបាន។
  5. អេក្រង់ OLED ១២៨ × ៦៤ ឬ ១២៨ × ៣២ ដែលយើងនឹងប្រើជាអេក្រង់ដើម្បីបង្ហាញលទ្ធផលវាស់វែង។
  6. ត្រង់ស៊ីស្ទ័រ 2n3904 សម្រាប់បំពង់របស់យើង។
  7. ធន់ ១០ ម។ ម។ មនិង ១០ គ។ មទៀត។
  8. ស្រោមអនាម័យ នៃ 470pf ។
  9. ប្តូរ សម្រាប់បិទនិងបើក។
  10. Buzzer ឬអ្នកនិយាយតូច។
  11. ថ្មអេបផល.

នេះទាក់ទងនឹងសមាសធាតុទោះបីជាអ្នកក៏នឹងត្រូវការដែរ ឧបករណ៍ ដូចជាឡភ្លើងខ្សែភ្លើងសម្រាប់សន្លាក់មួយចំនួនអារីដូណូអាយអ៊ីដើម្បីធ្វើក្តារអាគុយអាគុយនិងប្រអប់ភ្លើងផងដែរប្រសិនបើអ្នកចង់ការពារម៉ែត្ររបស់អ្នក។ ប្រសិនបើអ្នកមានម៉ាស៊ីនបោះពុម្ព 3D អ្នកអាចបង្កើតប្រអប់ផ្លាស្ទិចផ្ទាល់ខ្លួន។

តំឡើងសំណង់ហ្គីហ្គែនជាជំហាន ៗ ៖

ដ្យាក្រាមសៀគ្វីប្រឆាំងហ្គីហ្គី

រឿងបន្ទាប់នៅពេលអ្នកមានសមាសធាតុទាំងអស់គឺប្រមូលផ្តុំសមាសធាតុទាំងអស់នៃរូបផ្គុំនេះយោងតាមដ្យាក្រាមនេះដែលយើងបង្ហាញដល់អ្នក។ នេះ ការជួបប្រជុំគ្នា វាមានលក្ខណៈសាមញ្ញហើយមិនត្រូវការការពន្យល់បន្ថែមទេ។ វាគ្រាន់តែភ្ជាប់ធាតុទាំងអស់ដូចនេះ។ អ្នកអាចធ្វើវាបានតែមួយ តុនំប៉័ង មុនពេលដើម្បីសាកល្បងថាអ្វីគ្រប់យ៉ាងដំណើរការបានត្រឹមត្រូវហើយបន្ទាប់មកបន្តទៅ solder សមាសធាតុទាំងអស់ដើម្បីធ្វើឱ្យវាមានជាអចិន្ត្រៃយ៍។

ជំហាន៖

នេះ ជំហានដើម្បីអនុវត្តតាម ពួកគេមានដូចខាងក្រោម:

  1. ជាមួយម៉ាយល៍មួយអ្នកអាចធ្វើបាន ក្រិតតាមខ្នាត វ៉ុល (រូបភាពទី ១) ។ ឧទាហរណ៍ប្រសិនបើអ្នកបានជ្រើសរើសបំពង់ 1V Geiger-Müllerអ្នកត្រូវកែរទ័រ potentiometer នៃម៉ូឌុល DC-DC ដើម្បីឱ្យវាដំណើរការនៅវ៉ុលនោះ។
  2. បន្ទាប់មកកំណត់ខ្លួនអ្នកទៅ solder ឬចូលរួមសមាសធាតុទាំងអស់ ដូចដែលពួកគេបង្ហាញនៅក្នុងដ្យាក្រាមមុនដូចនៅក្នុងរូបភាពទី ២ ។
  3. អ្នកអាចប្រើក ប្រអប់ដើម្បីការពារ សមាសធាតុទាំងអស់ឬអត់។
  4. ភ្ជាប់បន្ទះ Arduino ទៅកុំព្យូទ័ររបស់អ្នកដោយប្រើខ្សែយូអេសប៊ីនិងជាមួយ Arduino IDE សរសេរកម្មវិធីខាងក្រោម (អ្នកអាចទាញយកវានៅទីនេះ) សម្រាប់ កំណត់ពេលវា។ ហើយវាអាចបំលែងវ៉ុលដែលយើងធ្វើការវាស់វែងនៅក្នុងឯកតាដែលអ្នកបានជ្រើសរើស។ អ្នកអាចប្រើគ្រឿងផ្សេងទៀតប្រសិនបើអ្នកចូលចិត្តឬធ្វើការកែតម្រូវដោយការកែប្រែកូដប្រភពនៃការបង្ហាញប្រភេទរូបភាព ...
/*
*
* SCL - A5
* SDA - A4
*
*
* Voltmeter - A3
*
* PWM - D9
* Input - D2
*
* buzzer - D7
*
*/

#include <Bounce2.h>

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2

//////////////////////////////////////////////////////////////////////////////

unsigned long previousMillis = 0;
unsigned long previousMillis1 = 0;
const long interval = 40000;
const long interval1 = 500;

static const unsigned char PROGMEM lcd_bmp[] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x1C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x0E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x1F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x1F, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x1F, 0xC0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x3F, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC0, 0x3F, 0xF0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC0, 0x3F, 0xF0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xE0, 0x7F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xE0, 0x7F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xF0, 0x7F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xE0, 0x7F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xC0, 0x3F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x40, 0x38,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x80, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09, 0x00, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0F, 0x00, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1F, 0x80, 0x18,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3F, 0xC0, 0x10,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7F, 0xC0, 0x30,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0xE0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xF0, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xFF, 0xF8, 0xC0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xF9, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFE, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFC, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

static const unsigned char PROGMEM logo[] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x1C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x0E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x1F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x1F, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x1F, 0xC0,
0x07, 0x9E, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x7F, 0xC0, 0x3F, 0xE0,
0x07, 0x9E, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0xFF, 0xC0, 0x3F, 0xF0,
0x07, 0x9E, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x3F, 0xE0, 0x00, 0x00, 0xFF, 0xC0, 0x3F, 0xF0,
0x07, 0x9E, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0xFF, 0xE0, 0x7F, 0xF8,
0x07, 0x9E, 0x3E, 0x73, 0x9C, 0x00, 0x78, 0x3E, 0x3E, 0xF0, 0xF0, 0x01, 0xFF, 0xE0, 0x7F, 0xF8,
0x07, 0x9E, 0x7F, 0x33, 0x98, 0x00, 0x78, 0x7F, 0x3E, 0xF1, 0xF8, 0x01, 0xFF, 0xFF, 0xFF, 0xF8,
0x07, 0x9E, 0x7F, 0x33, 0xB8, 0x00, 0x78, 0x7F, 0x3E, 0xF3, 0xFC, 0x01, 0xFF, 0xF0, 0x7F, 0xF8,
0x07, 0xFE, 0xE7, 0x33, 0xB8, 0x00, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0xFF, 0xE0, 0x7F, 0xF8,
0x07, 0xFE, 0xE7, 0x3F, 0xF9, 0xF0, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0xFF, 0xC0, 0x3F, 0xF8,
0x07, 0xFE, 0xE7, 0x3F, 0xF9, 0xF0, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0xF8, 0x00, 0x03, 0xF8,
0x07, 0xFE, 0xE7, 0x3F, 0xF8, 0x00, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0x00, 0x20, 0x40, 0x38,
0x07, 0x9E, 0xE7, 0x3F, 0xF0, 0x00, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0x00, 0x10, 0x80, 0x08,
0x07, 0x9E, 0xE7, 0x1F, 0xF0, 0x00, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0x00, 0x09, 0x00, 0x08,
0x07, 0x9E, 0xE7, 0x1E, 0xF0, 0x00, 0x78, 0x73, 0xBF, 0xF3, 0x9C, 0x01, 0x00, 0x0F, 0x00, 0x08,
0x07, 0x9E, 0xE7, 0x1E, 0xF0, 0x00, 0x78, 0x73, 0xBF, 0xF3, 0x9C, 0x00, 0x80, 0x1F, 0x80, 0x18,
0x07, 0x9E, 0x7F, 0x1E, 0xF0, 0x00, 0x78, 0x7F, 0x3F, 0xE3, 0xFC, 0x00, 0x80, 0x3F, 0xC0, 0x10,
0x07, 0x9E, 0x7E, 0x1E, 0xF0, 0x00, 0x78, 0x3F, 0x3F, 0xC1, 0xF8, 0x00, 0xC0, 0x7F, 0xC0, 0x30,
0x07, 0x9E, 0x1C, 0x1C, 0xE0, 0x00, 0x78, 0x1C, 0x3F, 0x00, 0xF0, 0x00, 0x40, 0xFF, 0xE0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xF0, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xFF, 0xF8, 0xC0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xF9, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFE, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFC, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

static const unsigned char PROGMEM fl[] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

static const unsigned char PROGMEM bt1[] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

const int buttonPin = 2;
const int ledPin = 13;

int buttonState = 0;
int bt = 0;
int pbt = 0;
int s1 = 0;
unsigned long j;
unsigned long CR = 0;

unsigned long cs;
int sec;
/////////////////////////////////

float input_voltage = 0.0;
float temp=0.0;

///////////////////////////////////

Bounce bouncer = Bounce();

void setup() {

Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 128x32)

display.display();

display.clearDisplay();

display.drawBitmap(0, 0, logo, 128, 32, WHITE);
display.display();
delay(2000);
display.clearDisplay();

TCCR1A = TCCR1A & 0xe0 | 2;
TCCR1B = TCCR1B & 0xe0 | 0x09;
analogWrite(9,22 ); // на выводе 9 ШИМ=10%

pinMode(ledPin, OUTPUT); //

pinMode (7, OUTPUT); // buzzer

pinMode(2 ,INPUT); // кнопка на пине 2
digitalWrite(2 ,HIGH); // подключаем встроенный подтягивающий резистор
bouncer .attach(2); // устанавливаем кнопку
bouncer .interval(5); // устанавливаем параметр stable interval = 5 мс

}

void loop() {

///////////////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned long currentMillis = millis();
unsigned long currentMillis1 = millis();

if (bouncer.update())
{ //если произошло событие
if (bouncer.read()==0)
{ bt++;
}
}

if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
CR = bt;
bt = 0;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (bt != pbt) {
pbt = bt;
s1 = 1;
}
////////////////////////////////////////////VOLTMETER PIN A3////////////////////////////////////////////////////////////////////

int analog_value = analogRead(A3);
input_voltage = (analog_value * 5.0) / 1024.0;

if (input_voltage < 0.1)
{
input_voltage=0.0;
}

///////////////////////////////////////////////TEXT ON DISPLAY//////////////////////////////////////////////////////////////////
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(10,0);
display.clearDisplay();
display.println(CR);
display.setCursor(10,18);
display.println(bt);
display.setCursor(40,18);
display.println();
display.setTextSize(1);
display.setCursor(40,0);
display.println("mR/hr");

/////////////////////////////////////////////////BATTERY INDICATION////////////////////////////////////////////
display.drawBitmap(0, 0, fl, 128, 32, WHITE);

if (input_voltage > 3.3) {
display.drawBitmap(0, 0, bt1, 128, 32, WHITE);
if (input_voltage > 3.4) {
display.drawBitmap(0, -5, bt1, 128, 32, WHITE);
if (input_voltage > 3.5) {
display.drawBitmap(0, -10, bt1, 128, 32, WHITE);
if (input_voltage > 3.6) {
display.drawBitmap(0, -15, bt1, 128, 32, WHITE);
if (input_voltage > 3.8) {
display.drawBitmap(0, -20, bt1, 128, 32, WHITE);
}
}
}
}
}

////////////////////////////////////////////////////RADIATION ICON AND BUZZER/////////////////////////////////////////////////////////////
if (s1 == 1){
display.drawBitmap(-10, 0, lcd_bmp, 128, 32, WHITE);
digitalWrite (7, HIGH); // buzzer ON
}
else
{
digitalWrite (7, LOW); // buzzer OFF
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (currentMillis1 - previousMillis1 >= interval1) {
previousMillis1 = currentMillis1;
if (s1 == 1){
s1=0;
}
}
display.display();
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

តើអ្នកអាចពិនិត្យមើលយ៉ាងដូចម្តេច សាមញ្ញ​ណាស់ (ទោះបីជាវាហាក់ដូចជាយូរដោយសារតែការកំណត់ទាំងនោះសម្រាប់ការបង្ហាញក៏ដោយ) អ្នកគ្រាន់តែត្រូវធ្វើការផ្លាស់ប្តូរពីវ៉ុលដែលក្តារ Arduino ទទួលបានទៅស៊េរីទិន្នន័យដែលអាចចាប់បាននៅលើអេក្រង់ឬអេក្រង់។

ប្រសិនបើអ្វីៗដំណើរការល្អអ្នកគួរតែមើល ព័ត៌មាននៅលើអេក្រង់និងសំលេងរំខាន នៅលើប៊្លុយហ្ស៊ីសនៅពេលប្រឈមមុខនឹងបញ្ជរហ្គេហ្គេរបស់អ្នកជាមួយប្រភពវិទ្យុសកម្មមួយចំនួន។

ប្រភព:

ការណែនាំ - បញ្ជរ DIY Arduino Geiger

ចម្អិនអាហារ - ការ Hack - បញ្ជរហ្គីហ្គេនៈក្រុមប្រឹក្សាភិបាលឧបករណ៍ចាប់កាំរស្មីសម្រាប់ Arduino និង Raspberry Pi


ខ្លឹមសារនៃអត្ថបទប្រកាន់ខ្ជាប់នូវគោលការណ៍របស់យើង ក្រមសីលធម៌វិចារណកថា។ ដើម្បីរាយការណ៍ការចុចកំហុស នៅទីនេះ.

៥៧ យោបល់ទុកអ្នក

ទុកឱ្យយោបល់របស់អ្នក

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានបោះពុម្ភ។ អ្នកគួរតែអនុវត្តតាម *

*

*

  1. ទទួលខុសត្រូវចំពោះទិន្នន័យ: មីហ្គែល - ហ្គែលហ្គេតថន
  2. គោលបំណងនៃទិន្នន័យ៖ គ្រប់គ្រង SPAM ការគ្រប់គ្រងមតិយោបល់។
  3. ភាពស្របច្បាប់៖ ការយល់ព្រមរបស់អ្នក
  4. ការប្រាស្រ័យទាក់ទងទិន្នន័យ៖ ទិន្នន័យនឹងមិនត្រូវបានទាក់ទងទៅភាគីទីបីឡើយលើកលែងតែកាតព្វកិច្ចផ្នែកច្បាប់។
  5. ការផ្ទុកទិន្នន័យ៖ មូលដ្ឋានទិន្នន័យដែលរៀបចំដោយបណ្តាញ Occentus (EU)
  6. សិទ្ធិ៖ នៅពេលណាដែលអ្នកអាចដាក់កម្រិតទាញយកមកវិញនិងលុបព័ត៌មានរបស់អ្នក។

  1.   Paola dijo

    ជំរាបសួរ, ខ្ញុំចង់ធ្វើវាជាមួយ arduino uno ហើយខ្ញុំត្រូវបានគេឆ្ងល់ថាអ្វីដែលនឹងជាគ្រោងការណ៍ដើម្បីម៉ោនវាហើយប្រសិនបើមានអ្វីផ្សេងទៀតនឹងផ្លាស់ប្តូរ

    1.    លោកអ៊ីសាក dijo

      សួស្តី paola,
      ការតភ្ជាប់គឺដូចគ្នានៅក្នុង ONE ។ ហើយអ្នកក៏អាចផ្លាស់ប្តូរការតភ្ជាប់មួយចំនួននៅលើម្ជុលផ្សេងទៀតបានដែរប្រសិនបើអ្នកចូលចិត្តរឿងតែមួយគត់ដែលអ្នកគួរតែផ្លាស់ប្តូរលេខកូដនៃគំនូសព្រាងដើម្បីឆ្លើយតបទៅនឹងអ្វីដែលអ្នកបានដាក់។ ប៉ុន្តែវាគឺដូចគ្នា។ គោរពការតភ្ជាប់ GND និង Vcc ហើយអ្វីដែលនៅសល់ដូចដែលខ្ញុំបាននិយាយអ្នកអាចដាក់វានៅក្នុងលេខផ្សេងគ្នាឬក្នុងលេខដដែលនៅលើក្តាររបស់អ្នក ... (ត្រូវហើយគោរពតាមឌីជីថលនិងអាណាឡូក I / O ដូចដែលពួកគេស្ថិតនៅលើ ក្តារណាណូ)
      សូមអរគុណ!