កោះបីមឺលស៊ីនណូបលីហ្វូគូស៊ីម៉ានិងសូម្បីតែខ្លះនៅលើទឹកដីជាតិដូចជារ៉េអាក់ទ័រផ្កាថ្ម I នៅម៉ាឌ្រីតឬរ៉េអាក់ទ័រវ៉ាន់ឌែល - អ៊ីនៅកាតាឡាន។ មានច្រើន គ្រោះថ្នាក់នុយក្លេអ៊ែរ ដែលបានកើតឡើងនៅទូទាំងប្រវត្តិសាស្រ្តនិងទោះបីជាមានផលវិបាកដ៏គួរឱ្យភ័យខ្លាចវាហាក់ដូចជាប្រធានបទនេះ វិទ្យុសកម្ម។ វាបន្តបង្កើនការទាក់ទាញជាក់លាក់។ ប៉ុន្តែអ្វីដែលដឹងតិចតួចនោះគឺថាជារៀងរាល់ថ្ងៃយើងទាំងអស់គ្នាត្រូវបានប៉ះពាល់នឹងវិទ្យុសកម្មធម្មជាតិទាំងពីរដែលមកពីចន្លោះខាងក្រៅនិងដែលបានមកពីរ៉ែនៃផែនដី ...
ជាការប្រសើរណាស់, ប្រសិនបើអ្នកចង់វាស់វិទ្យុសកម្មនៅជុំវិញអ្នក, នៅក្នុងមគ្គុទេសក៍ថ្មីនេះយើងបង្ហាញអ្នកមួយជំហានម្តង ៗ នៃនីតិវិធី តើអ្នកអាចបង្កើតបញ្ជរហ្គេហ្គេនយ៉ាងដូចម្តេចនោះគឺឧបករណ៍ដែលមានសមត្ថភាពវាស់វិទ្យុសកម្ម។ ជាទូទៅវាគឺជាឧបករណ៍ដែលអាចវាស់ភាគល្អិតដែលប៉ះពាល់ជាមួយឧបករណ៏ដូចជាវិទ្យុសកម្មអ៊ីយ៉ូដដូច្នេះវាត្រូវបានគេហៅថារាប់ចាប់តាំងពីវាអាចរាប់ចំនួនផលប៉ះពាល់ហើយដូច្នេះកំរិតវិទ្យុសកម្មនៃវត្ថុឬទីកន្លែង។
លិបិក្រម
តើខ្ញុំគួរដឹងអ្វីខ្លះមុន?
មុនពេលចាប់ផ្តើមគម្រោង DIY ខ្ញុំចង់ធ្វើអត្ថាធិប្បាយអ្វីមួយ អំពីវិទ្យុសកម្មសម្រាប់អ្នកដែលមិនដឹងអំពីវា។ អ្នកដែលមានចំណេះដឹងពីមុនអ្នកអាចរំលងផ្នែកនេះហើយទៅមើលដោយផ្ទាល់ដូចខាងក្រោម ...
តើវិទ្យុសកម្មគឺជាអ្វី?
វាគឺជាបាតុភូតនៃ កម្មវិធីថាមពល នៅក្នុងសំណុំបែបបទនៃរលកអេឡិចត្រូម៉ាញេទិកឬភាគល្អិត subatomic តាមរយៈឧបករណ៍ផ្ទុកមួយ។ ដូច្នេះយើងអាចមានប្រភេទវិទ្យុសកម្មផ្សេងៗគ្នា។
តើវិទ្យុសកម្មប្រភេទណាខ្លះ?
មានច្រើន ប្រភេទនៃវិទ្យុសកម្មដូចជាកំដៅអេឡិចត្រូម៉ាញេទិក។ ល។ ប៉ុន្តែក្រុមដែលចាប់អារម្មណ៍យើងនៅទីនេះមានពីរក្រុមធំ៖
- មិនមែនអ៊ីយ៉ូដ៖ វាជារលកឬភាគល្អិតដែលមិនអាចយកអេឡិចត្រុងចេញពីរូបធាតុបានគឺវាមិនអាចធ្វើអ៊ីយ៉ូដបានទេ។ ឧទាហរណ៍របស់វាអាចជារលកអេឡិចត្រូម៉ាញ៉េទិចមីក្រូវ៉េវវិទ្យុពន្លឺល។
- Ionizing៖ វាជារលកឬភាគល្អិតដែលអាចបង្ហូរអេឡិចត្រុងចេញពីរូបធាតុបានគឺវាអាចអ៊ីយ៉ូដដោយសារតែថាមពលខ្ពស់របស់វា។ ដូច្នេះវាគ្រោះថ្នាក់បំផុត។ នៅក្នុងក្រុមនេះយើងមានឡាស៊ែរកាំរស្មីអិលអាល់ហ្វាបេតាហ្គាម៉ាកាំរស្មីវិទ្យុសកម្មហ្វ្រាំងឬប៊្លុកឡាំង) ។ ល។
បើយើងក្រឡេកមើល ក្នុងវិសាលគមអេឡិចត្រូម៉ាញេទិករលកដែលមានរលកវែងបំផុតដូចជាវិទ្យុឬមីក្រូវ៉េវគឺជាការជ្រៀតចូលតិចបំផុតដែលមានថាមពលតិចបំផុត (ប្រេកង់ទាប) ។ ខណៈពេលដែលយើងរំកិលទៅខាងស្តាំយើងឃើញថារាល់ដងរលកខ្លីនិងប្រេកង់រំញ័រកាន់តែខ្លាំងដូច្នេះពួកគេមានថាមពលច្រើនហើយងាយជ្រាបចូលនិងខូច។
ប្រភេទនៃវិទ្យុសកម្មអ៊ីយ៉ូដ៖
ប្រសិនបើយើងផ្តោតលើ វិទ្យុសកម្មអ៊ីយ៉ូដដែលមានសមត្ថភាពក្នុងការវាស់ស្ទង់ប្រដាប់ប្រដា Geiger យើងត្រូវត្រងម្តងទៀតនិងផ្តោតលើមូលដ្ឋានគ្រឹះចំនួន ៣ ដោយសារតែបាតុភូតនុយក្លេអ៊ែរ៖
- អាល់ហ្វា៖ ពួកគេមានបន្ទុកវិជ្ជមានហើយត្រូវបានផ្សំឡើងដោយប្រូតេអីននិងនឺត្រុងចំនួនពីរពោលគឺពួកគេគឺជាអាតូមអេលីយ៉ូម។ ពួកវាមានគ្រោះថ្នាក់និងជ្រាបចូលតិចបំផុតព្រោះពួកគេអាចត្រូវបានបញ្ឈប់ដោយប្រើក្រដាសធម្មតា។ ផលប៉ះពាល់លើសុខភាពគឺអាស្រ័យទៅលើបញ្ហាមួយចំនួនព្រោះវាមិនអាចជ្រាបចូលទៅក្នុងស្រទាប់ខាងក្រៅនៃស្បែកបានទេប៉ុន្តែប្រសិនបើវាចូលទៅក្នុងខ្លួនពួកគេអាចបង្កគ្រោះថ្នាក់។ ការស្រូបចូលការបញ្ចូលឬចាក់ចូលទៅក្នុងខ្លួននៃប្រភពដែលបង្កើតជាវិទ្យុសកម្មនេះអាចបំផ្លាញជាលិការរស់នៅ។
- បេតា: ពួកគេគឺជាភាគល្អិតនៃបន្ទុកអគ្គីសនីអវិជ្ជមានអេឡិចត្រុង។ ពួកវាមានភាពជ្រៀតចូលនិងស្វាហាប់ជាងមុនហើយដើម្បីបញ្ឈប់ពួកគេយើងអាចធ្វើវាជាមួយក្រដាសអាលុយមីញ៉ូមផ្ទះបាយ។ ទោះបីជាមានការជ្រាបចូលកាន់តែច្រើនក៏ដោយវាមិនបង្កអន្តរាយដល់ជាលិការរស់និងឌីអិនអេដូចសារធាតុមុន ៗ ទេព្រោះថាអ៊ីយ៉ូដបង្កឱ្យមានកើតឡើងកាន់តែទូលំទូលាយ។ វាអាចបណ្តាលឱ្យរលាកស្បែកហើយប្រសិនបើពួកគេចូលក្នុងខ្លួនវាអាចជា ...
- ហ្គាម៉ាកាំរស្មីហ្គាម៉ាគឺជាអ្នកដែលមានថាមពលនិងថាមពលដែលអាចជ្រាបចូលបានខ្ពស់បំផុតដូច្នេះវាមានគ្រោះថ្នាក់បំផុត។ វានិយាយអំពីផតថលដែលជាថាមពលសុទ្ធដែលមិនអាចបញ្ឈប់បានដោយងាយទេគឺមានតែសន្លឹកសំណបេតុងប៉ុណ្ណោះ។ ពួកវាងាយឆ្លងកាត់រាងកាយរបស់យើងហើយបណ្តាលឱ្យខូចខាតជាលិកាធ្ងន់ធ្ងរការបំផ្លាញ DNA ។
ដូច្នេះវាមិនមែនជាល្បែងទេហើយពី hwlibre យើងលើកទឹកចិត្តឱ្យអ្នកធ្វើ យកការប្រុងប្រយ័ត្នទាំងអស់ និងដឹងច្បាស់នូវអ្វីដែលអ្នកកំពុងធ្វើ។ យើងមិនយកចិត្តទុកដាក់លើបញ្ហាដែលអាចកើតមាន ...
បំពង់ Geiger-Müller៖
ពួកវាជាអាយុកាលរបស់វ៉ែនតាហ្គីហ្គែនទាំងអស់ព្រោះវាជាឧបករណ៍ o អង្គញាណ ដែលទទួលខុសត្រូវចំពោះការទទួលវិទ្យុសកម្មនិងបំលែងចំនួននៃការឆក់នោះទៅជាកម្លាំងអគ្គិសនីដែលអាចបកស្រាយដោយផ្នែកផ្សេងទៀតនៃសៀគ្វី។ វាត្រូវបានគេស្គាល់ថាជាបំពង់ Geiger-Müllerឬជាបំពង់ Geiger ហើយអ្នកអាចទិញវានៅក្នុងហាងលក់តាមអ៊ិនធឺរណែតផ្សេងៗដូចជា Amazon, Aliexpress ។ ល។ ជម្រើសមួយទៀតគឺយកវាចេញពីបញ្ជរហ្គេហ្គេនដែលយើងមានចាស់ឬប្រើប្រាស់ខុស។
មានម៉ូឌែលជាច្រើនមានម៉ូដែលខុសៗគ្នា (អេសធីធី ៩, អិលឌី - ៧១២, ជេ ៤០៨, …) និងក្រុមហ៊ុនផលិតផ្សេងៗគ្នា (GSTube, អិលឌី, ណុបអុបទិក, …) ។ ការពេញនិយមបំផុតគឺ ជនជាតិអាមេរិកនិងជនជាតិរូស្សីទោះបីវាក៏មានជនជាតិចិនដែរ។ ដើមកំណើតសូវៀតខ្លះមានទំនោរមានតំលៃថោកដែលថ្លៃបំផុតគឺ NLD ។ អ្វីដែលយើងត្រូវតែច្បាស់គឺតម្លៃវ៉ុលរវាងវាផ្លាស់ទីព្រោះសញ្ញាអាណាឡូកដែលវាបញ្ចេញនឹងមានច្រើនឬតិចអាស្រ័យលើកាំរស្មីដែលចាប់បាន។
ប្រទេស | អ្នកលក់ | គំរូ | ភាគល្អិតដែលវាចាប់យក | វ៉ុល | សម្ភារៈ | តំលៃ |
---|---|---|---|---|---|---|
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 គឺ។ ប៉ុន្តែ នឹងភ្ញាក់ផ្អើល ដោយដឹងថាយើងកាន់វត្ថុវិទ្យុជាច្រើនរាល់ថ្ងៃដោយមិនដឹងខ្លួន៖ ប៊ូតុងខ្លះសេរ៉ាមិចថ្មម៉ាបអំពូលបោះជំរុំបារីក្រដាសថ្នាំជក់ក្រដាសជូតមួយចំនួន។ ល។ អ្វីទាំងអស់ដែលខ្ញុំអាចប្រើដើម្បីសាកល្បងបញ្ជរហ្គេហ្គេរបស់អ្នកនិងមើលថាតើវាដំណើរការរឺអត់ ...
សំភារៈចាំបាច់៖
នៅពេលដែលរឿងទាំងអស់ត្រូវបានដឹងយើងទៅដោយផ្ទាល់ រាយសមាសធាតុទាំងអស់ដែលយើងត្រូវការ ដើម្បីកសាងបញ្ជរហ្គីហ្គេសផលិតដោយខ្លួនយើង៖
- ម៉ូឌុលបំប្លែង / ឌីស៊ីឌីស៊ីឌីស៊ី វ៉ុលខ្ពស់ (ឧ។ សូដុ) ។ វានឹងជួយយើងក្នុងការលៃតម្រូវវ៉ុលខ្ពស់ដែលហ្គីហ្គេល - មូលឡឺដោះស្រាយនិងបំលែងវ៉ុលនោះទៅជាវ៉ុលតូចមួយបើប្រៀបធៀបទៅនឹងក្តារអាឌូណូនិងសមាសធាតុផ្សេងទៀត។ ចងចាំថាវាត្រូវតែទប់ទល់នឹងវ៉ុលបញ្ចូលនៃបំពង់ដែលអ្នកបានជ្រើសរើស។
- ម៉ូឌុលសាក។ ឧទាហរណ៍ នេះ.
- ម៉ូឌុលធ្លាក់ចុះ កម្មវិធីបម្លែង DC-DC ៣-៥ វ៉.
- អាណូឌូណូណាណូទោះបីជារបស់ណាក៏មានប្រយោជន៍ដែរប៉ុន្តែដើម្បីកុំអោយទំហំធំពេកណាណូអាចចូលចិត្តបាន។
- អេក្រង់ OLED ១២៨ × ៦៤ ឬ ១២៨ × ៣២ ដែលយើងនឹងប្រើជាអេក្រង់ដើម្បីបង្ហាញលទ្ធផលវាស់វែង។
- ត្រង់ស៊ីស្ទ័រ 2n3904 សម្រាប់បំពង់របស់យើង។
- ធន់ ១០ ម។ ម។ មនិង ១០ គ។ មទៀត។
- ស្រោមអនាម័យ នៃ 470pf ។
- ប្តូរ សម្រាប់បិទនិងបើក។
- Buzzer ឬអ្នកនិយាយតូច។
- ថ្មអេបផល.
នេះទាក់ទងនឹងសមាសធាតុទោះបីជាអ្នកក៏នឹងត្រូវការដែរ ឧបករណ៍ ដូចជាឡភ្លើងខ្សែភ្លើងសម្រាប់សន្លាក់មួយចំនួនអារីដូណូអាយអ៊ីដើម្បីធ្វើក្តារអាគុយអាគុយនិងប្រអប់ភ្លើងផងដែរប្រសិនបើអ្នកចង់ការពារម៉ែត្ររបស់អ្នក។ ប្រសិនបើអ្នកមានម៉ាស៊ីនបោះពុម្ព 3D អ្នកអាចបង្កើតប្រអប់ផ្លាស្ទិចផ្ទាល់ខ្លួន។
តំឡើងសំណង់ហ្គីហ្គែនជាជំហាន ៗ ៖
រឿងបន្ទាប់នៅពេលអ្នកមានសមាសធាតុទាំងអស់គឺប្រមូលផ្តុំសមាសធាតុទាំងអស់នៃរូបផ្គុំនេះយោងតាមដ្យាក្រាមនេះដែលយើងបង្ហាញដល់អ្នក។ នេះ ការជួបប្រជុំគ្នា វាមានលក្ខណៈសាមញ្ញហើយមិនត្រូវការការពន្យល់បន្ថែមទេ។ វាគ្រាន់តែភ្ជាប់ធាតុទាំងអស់ដូចនេះ។ អ្នកអាចធ្វើវាបានតែមួយ តុនំប៉័ង មុនពេលដើម្បីសាកល្បងថាអ្វីគ្រប់យ៉ាងដំណើរការបានត្រឹមត្រូវហើយបន្ទាប់មកបន្តទៅ solder សមាសធាតុទាំងអស់ដើម្បីធ្វើឱ្យវាមានជាអចិន្ត្រៃយ៍។
ជំហាន៖
- 1
- 2
នេះ ជំហានដើម្បីអនុវត្តតាម ពួកគេមានដូចខាងក្រោម:
- ជាមួយម៉ាយល៍មួយអ្នកអាចធ្វើបាន ក្រិតតាមខ្នាត វ៉ុល (រូបភាពទី ១) ។ ឧទាហរណ៍ប្រសិនបើអ្នកបានជ្រើសរើសបំពង់ 1V Geiger-Müllerអ្នកត្រូវកែរទ័រ potentiometer នៃម៉ូឌុល DC-DC ដើម្បីឱ្យវាដំណើរការនៅវ៉ុលនោះ។
- បន្ទាប់មកកំណត់ខ្លួនអ្នកទៅ solder ឬចូលរួមសមាសធាតុទាំងអស់ ដូចដែលពួកគេបង្ហាញនៅក្នុងដ្យាក្រាមមុនដូចនៅក្នុងរូបភាពទី ២ ។
- អ្នកអាចប្រើក ប្រអប់ដើម្បីការពារ សមាសធាតុទាំងអស់ឬអត់។
- ភ្ជាប់បន្ទះ 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
៥៧ យោបល់ទុកអ្នក
ជំរាបសួរ, ខ្ញុំចង់ធ្វើវាជាមួយ arduino uno ហើយខ្ញុំត្រូវបានគេឆ្ងល់ថាអ្វីដែលនឹងជាគ្រោងការណ៍ដើម្បីម៉ោនវាហើយប្រសិនបើមានអ្វីផ្សេងទៀតនឹងផ្លាស់ប្តូរ
សួស្តី paola,
ការតភ្ជាប់គឺដូចគ្នានៅក្នុង ONE ។ ហើយអ្នកក៏អាចផ្លាស់ប្តូរការតភ្ជាប់មួយចំនួននៅលើម្ជុលផ្សេងទៀតបានដែរប្រសិនបើអ្នកចូលចិត្តរឿងតែមួយគត់ដែលអ្នកគួរតែផ្លាស់ប្តូរលេខកូដនៃគំនូសព្រាងដើម្បីឆ្លើយតបទៅនឹងអ្វីដែលអ្នកបានដាក់។ ប៉ុន្តែវាគឺដូចគ្នា។ គោរពការតភ្ជាប់ GND និង Vcc ហើយអ្វីដែលនៅសល់ដូចដែលខ្ញុំបាននិយាយអ្នកអាចដាក់វានៅក្នុងលេខផ្សេងគ្នាឬក្នុងលេខដដែលនៅលើក្តាររបស់អ្នក ... (ត្រូវហើយគោរពតាមឌីជីថលនិងអាណាឡូក I / O ដូចដែលពួកគេស្ថិតនៅលើ ក្តារណាណូ)
សូមអរគុណ!