{"id":3073,"date":"2020-03-04T23:21:05","date_gmt":"2020-03-04T14:21:05","guid":{"rendered":"https:\/\/programresource.net\/?p=3073"},"modified":"2020-03-06T22:11:22","modified_gmt":"2020-03-06T13:11:22","slug":"reset-aruduino-once-after-power-up","status":"publish","type":"post","link":"https:\/\/programresource.net\/en\/2020\/03\/04\/3073.html","title":{"rendered":"Reset Aruduino once after power up"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/programresource.net\/images\/2020\/02\/P_20200220_224915_vHDR_Auto-1024x577.jpg\" alt=\"\" class=\"wp-image-2907\" srcset=\"https:\/\/programresource.net\/images\/2020\/02\/P_20200220_224915_vHDR_Auto-1024x577.jpg 1024w, https:\/\/programresource.net\/images\/2020\/02\/P_20200220_224915_vHDR_Auto-300x169.jpg 300w, https:\/\/programresource.net\/images\/2020\/02\/P_20200220_224915_vHDR_Auto-768x433.jpg 768w, https:\/\/programresource.net\/images\/2020\/02\/P_20200220_224915_vHDR_Auto.jpg 1443w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>There are some case that arduino and\/or connected devices doesn&#8217;t work right after powering up. Putting some delay does not work, and everything starts working after pressing reset button on Arduino.<\/p>\n\n\n\n<p>So, below is simple trick to restart Arduino once after powering up. Simply write 1 or 0 to EEPROM after each boot.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n#include &lt;avr\/wdt.h&gt;\n#include &lt;EEPROM.h&gt;\n\n\/\/Reset Arduino\nvoid software_reset() {\n\twdt_disable();\n\twdt_enable(WDTO_15MS);\n\twhile (1) {}\n}\n\nbyte Load_Bootstate() {\n\tint state;\n\tstate = EEPROM.read(0);\n\treturn state;\n}\n\nvoid Set_Bootstate(int state) {\n\tEEPROM.write(0, state);\n}\n\nvoid setup() {\n\tSerial.begin(9600);\n\n\t\/\/reboot after 500ms\n\tif (Load_Bootstate() == 0) { \/\/If data is 0, reboot\n\t\tSet_Bootstate(1); \/\/Write 1 to EEPROM. Boot normally next time.\n\t\tdelay(500);\n\t\tSerial.println(&quot;Rebooting&quot;);\n\t\tsoftware_reset();\n\t}\n\tSet_Bootstate(0); \/\/Write 0 to memory.\n\n\tSerial.println(&quot;Boot!&quot;);\n}\n\nvoid loop() {\n\n}\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>There are some case that arduino and\/or connected devices doesn&#8217;t work right after powering up. Putting some delay does not work, and everything starts working after pressing reset button on Arduino. So, below is simple trick to restart Arduino once after powering up. Simply write 1 or 0 to EEPROM after each boot.<\/p>\n","protected":false},"author":2,"featured_media":2908,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[866],"tags":[601,940,939,936,759],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/programresource.net\/images\/2020\/02\/P_20200220_224915_vHDR_Auto.jpg","jetpack_shortlink":"https:\/\/wp.me\/p3pJyQ-Nz","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/programresource.net\/en\/wp-json\/wp\/v2\/posts\/3073"}],"collection":[{"href":"https:\/\/programresource.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programresource.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programresource.net\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/programresource.net\/en\/wp-json\/wp\/v2\/comments?post=3073"}],"version-history":[{"count":1,"href":"https:\/\/programresource.net\/en\/wp-json\/wp\/v2\/posts\/3073\/revisions"}],"predecessor-version":[{"id":3074,"href":"https:\/\/programresource.net\/en\/wp-json\/wp\/v2\/posts\/3073\/revisions\/3074"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/programresource.net\/en\/wp-json\/wp\/v2\/media\/2908"}],"wp:attachment":[{"href":"https:\/\/programresource.net\/en\/wp-json\/wp\/v2\/media?parent=3073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programresource.net\/en\/wp-json\/wp\/v2\/categories?post=3073"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programresource.net\/en\/wp-json\/wp\/v2\/tags?post=3073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}