Usage Example for Arduino-Sleep Mode Test

Last revision 2026/01/19

The article delves into using Arduino's sleep mode, providing detailed sample code and guidance on optimizing power efficiency through effective testing and implementation.

Software Preparation

Library installation

Sample Code

    #define Sleep_RQ  11  //sleep control input pin of the WIFI shield
    #define Sleep_ON  12  //sleep state output pin of the WIFI shield
    unsigned char flag;  //Sleep state

    void setup()
    {
      Serial.begin(115200);    //Baudrate
      pinMode(Sleep_ON,INPUT);
      pinMode(Sleep_RQ,OUTPUT);
      digitalWrite(Sleep_RQ,HIGH);  //Running
      delay(100);

      Serial.println("Start!");         //Test start
      for(unsigned char i = 0;i<10;i++)  //output the state of the shield lasts 20 seconds
      {
        flag = digitalRead(Sleep_ON);
        if(0 == flag)
          Serial.println("D12=0 Sleep");
        else
          Serial.println("D12=1 Active");
        delay(1000);
      }

      Serial.println("Sleep after five second!");    //Sleep after five second
      digitalWrite(Sleep_RQ,LOW);                     //set the shield to sleep mode
      delay(5000);
      digitalWrite(Sleep_RQ,HIGH);
      delay(100);
      Serial.println("Sleep Now!");

      for(unsigned char i = 0;i<10;i++)      //output the state of the shield lasts 20 seconds
      {
        flag = digitalRead(Sleep_ON);
        if(0 == flag)
          Serial.println("D12=0 Sleep");
        else
          Serial.println("D12=1 Active");
        delay(1000);
      }

      Serial.println("Weak up  Now!");
      digitalWrite(Sleep_RQ,LOW);         //set the shield to normal working state
      delay(2000);
      digitalWrite(Sleep_RQ,HIGH);
      delay(100);

      for(unsigned char i = 0;i<10;i++)   //output the state of the shield lasts 20 seconds
      {
        flag = digitalRead(12);
        if(0 == flag)
          Serial.println("D12=0 Sleep");
        else
          Serial.println("D12=1 Active");
        delay(1000);
      }
      Serial.println("Test RX and TX!");
    }

    void loop()
    {
      if(Serial.available()>0)     //Print what serial received.
      {
        char inbyte=Serial.read();
        Serial.print(inbyte);
      }
    }

Was this article helpful?

TOP