Skip to content
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. HC-SR501 3.3V randomly sends tripped when radio is on
  • Getting Started
  • Controller
  • Build
  • Hardware
  • Download/API
  • Forum
  • Store

HC-SR501 3.3V randomly sends tripped when radio is on

Scheduled Pinned Locked Moved Troubleshooting
39 Posts 8 Posters 10.7k Views 8 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    burningstone
    wrote on last edited by gohan
    #1

    Hi all,

    I've read a lot of posts about battery-powered motion/temp/humidity sensors.
    I'm new to electronics and programming, but I've already had sucess in setting everything up.

    Below is my wiring.

    ![0_1490045167603_pir-dht22-battery-sketch.PNG](Uploading 100%)

    I haven't modified the arduino pro mini 3.3V version for a battery optimizied use.
    The VCC is directly connected to the h-pad (wire soldered to h-pad) of the HC-SR501.
    The Temp/Humidity sensors is a DHT22.

    The node should do the following:
    If the arduino woke up from interrupt, then send only the tripped status of the motion sensor.

    if the arduino woke up from the sleep timer (1 min for testing), then send humidity, battery and temperature, but only if the values changed more than the treshold.

    Everything works well, the node sends humidity, battery and temperature when the sleep timer ended and does this only if it changed more than my defined threshold.
    The node also detects correctly that it woke up from interrupt and sends only the motion sensor value.

    The problem is that it looks like the radio triggers the motion sensors or something like that.
    Everytime when the motion sensor detects motion, it sends 2-3 tripped messages in a row, if I understood correctly, this means the arduino wakes up from the interrupt, then sends the message and goes back to sleep and then immediately wakes up and sends the message again, right?
    Also when the arduino wakes up from the sleep timer, it sends the temp/hum/battery values and sometimes, with random behaviour also the motion tripped value.

    Where is the problem? Wiring? Coding? I tried dozens of codes and always the same behaviour :(
    Below my sketch:

    #include <SD.h>
    
    // Enable debug prints
    #define MY_DEBUG
    
    // Enable and select radio type attached 
    #define MY_RADIO_NRF24
    
    
    //define Node ID before include mysensors.h
    #define MY_NODE_ID 200
    
    #include <SPI.h>
    #include <MySensors.h>
    #include <readVcc.h>  
    #include <DHT.h>  
    
    
    #define CHILD_ID_HUM 0
    #define CHILD_ID_TEMP 1
    #define CHILD_ID_MOT 2
    
    //define PINS
    int BATTERY_SENSE_PIN = A0;  // select the input pin for the battery sense point
    #define DHT_DATA_PIN 5
    #define DIGITAL_INPUT_SENSOR 3   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
    #define INTERRUPT DIGITAL_INPUT_SENSOR-2 // Usually the interrupt = pin -2 (on uno/nano anyway)
    
    #define MIN_V 1900 // empty voltage (0%)
    #define MAX_V 3000 // full voltage (100%)
    
    unsigned long SLEEP_TIME = 60000UL; // Sleep time between reads (in milliseconds)
    int oldBatteryPcnt = 0;
    
    
    //Reporting Thresholds
    #define HUMI_TRANSMIT_THRESHOLD 3.0  // THRESHOLD tells how much the value should have changed since last time it was transmitted.
    #define TEMP_TRANSMIT_THRESHOLD 0.5
    #define BATTERY_TRANSMIT_THRESHOLD 2.0
    
    //Parameters
    DHT dht;
    float lastTemp = 0 ;
    float lastHum = 0 ;
    int count = 0;
    boolean lastTripped = false ;
    boolean metric = true; 
    MyMessage msgHum(CHILD_ID_HUM, V_HUM);
    MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
    MyMessage msgMot(CHILD_ID_MOT, V_TRIPPED);
    
    
    
    void setup()  
    { 
     // use the 1.1 V internal reference
    #if defined(__AVR_ATmega2560__)
     analogReference(INTERNAL1V1);
    #else
     analogReference(INTERNAL);
    #endif
      dht.setup(DHT_DATA_PIN); 
    
      // Send the Sketch Version Information to the Gateway
      sendSketchInfo("Humidity/Motion", "1.0");
    
      pinMode(DIGITAL_INPUT_SENSOR, INPUT);      // sets the motion sensor digital pin as input
     
      // Register all sensors to gw (they will be created as child devices)
      present(CHILD_ID_HUM, S_HUM);
      present(CHILD_ID_TEMP, S_TEMP);
      present(CHILD_ID_MOT, S_MOTION);
       
      metric = getControllerConfig().isMetric;
    }
    
    void loop()      
    
    {  
      //-1 woke up from sleep timer, 1 woke up from pin interrupt
       static int8_t wakeup; 
       
      //////////////////////////////////////////////////////////////////////////
      // Battery
      /////////////////////////////////////////////////////////////////////////
       int sensorValue = analogRead(BATTERY_SENSE_PIN);
       #ifdef DEBUG
       Serial.println(sensorValue);
       #endif
       
       // 1M, 470K divider across battery and using internal ADC ref of 1.1V
       // Sense point is bypassed with 0.1 uF cap to reduce noise at that point
       // ((1e6+470e3)/470e3)*1.1 = Vmax = 3.44 Volts
       // 3440/1023 = Volts per bit = 3.363075
       float batteryV  = sensorValue * 3.363075;
       //int batteryPcnt = ((batteryV - MIN_V) / (MAX_V - MIN_V))*100;
       int batteryPcnt = min(map(readVcc(), MIN_V, MAX_V, 0, 100), 100);
       
       #ifdef DEBUG
       Serial.print("Battery Voltage: ");
       Serial.print(batteryV);
       Serial.println(" V");  
    
       Serial.print("Battery percent: ");
       Serial.print(batteryPcnt);
       Serial.println(" %");
       #endif
    
       float diffBattery = abs(oldBatteryPcnt - batteryPcnt);
       if(wakeup == 1){
       }
       else if (diffBattery > BATTERY_TRANSMIT_THRESHOLD) {
         // Power up radio after sleep
       sendBatteryLevel(batteryPcnt);
         oldBatteryPcnt = batteryPcnt;
       }
    
      /////////////////////////////////////////////////////////////
      //Motion
      ////////////////////////////////////////////////////////////
      boolean tripped = digitalRead(DIGITAL_INPUT_SENSOR) == HIGH; 
     
      if(wakeup == -1){
      }
      else if (tripped != lastTripped ) {      
        Serial.println(tripped);
        send(msgMot.set(tripped?"1":"0"));  // Send tripped value to gw
      }
    
    
      ////////////////////////////////////////////////////////////////////
      //Temp and Humidity
      ///////////////////////////////////////////////////////////////////
      delay(dht.getMinimumSamplingPeriod());
    
      float temperature = dht.getTemperature();
      float diffTemp = abs(lastTemp - temperature);
      
      float humidity = dht.getHumidity();
      float diffHum = abs(lastHum - humidity);
      
      if (isnan(temperature)) {
        Serial.println("Failed reading temperature from DHT");
      }else if (wakeup == 1){
      }
      else if(diffTemp > TEMP_TRANSMIT_THRESHOLD) {
        lastTemp = temperature;
        if (!metric) {
          temperature = dht.toFahrenheit(temperature);
        }
        send(msgTemp.set(temperature, 1));
        Serial.print("T: ");
        Serial.println(temperature);
      }
      
      if (isnan(humidity)) {
          Serial.println("Failed reading humidity from DHT");
      } else if (wakeup == 1){
      }
      else if(diffHum > HUMI_TRANSMIT_THRESHOLD) {
          lastHum = humidity;
         send(msgHum.set(humidity, 1));
          Serial.print("H: ");
          Serial.println(humidity);
      }  
      //////////////////////////////////////////////////////////////////////
      // Sleep until interrupt comes in on motion sensor. Send update every two minute. 
      wakeup=sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), RISING, SLEEP_TIME);
    }
    
    YveauxY 1 Reply Last reply
    0
    • gohanG Offline
      gohanG Offline
      gohan
      Mod
      wrote on last edited by
      #2

      I fixed your code tags you were a little happy with those :)

      How are you powering the node and sensor?

      1 Reply Last reply
      0
      • B Offline
        B Offline
        burningstone
        wrote on last edited by
        #3

        0_1490048234979_pir-dht22-battery-sketch.PNG

        Here is the wiring. Didn't work in the first post. It is all powered by two AA batteries.

        1 Reply Last reply
        1
        • gohanG Offline
          gohanG Offline
          gohan
          Mod
          wrote on last edited by
          #4

          That's quite strange, have you tried a different sensor and radio?

          1 Reply Last reply
          0
          • R Offline
            R Offline
            rickmontana83
            wrote on last edited by
            #5

            I had what I suspect to be the same issue a while back, and it took me ages to debug.

            I haven't looked at your code or reviewed the circuit diagrams in detail, but the symptoms sound spot-on, so I'm reasonably confident that this is what is going on.

            For backround, the HC-SR501 is a very sensitive trigger that sets up a delicate balance between the two sides of the IR receiver, and then waits for that to get out of balance (i.e. from one side getting more or less light). Once things are out of balance, the sensor trips and you get an interrupt. Woohoo!

            Now, the problem here is that even though we like to think of power and ground as "constant", in actuality any load that is not constant is going to raise or lower the power rail voltage a bit. And if you have a relatively "heavy" load (like an active radio and Arduino processor) that suddenly goes "off", the power rail is going to spike high for a brief time, since the batteries and regulators are all whirring along trying to supply that higher load. That voltage spike then rips through the HC-SR501 (which, as you recall is already spring-loaded looking for minute imbalances), and tips the scales, causing a trigger and what ends up looking like a motion event. The interrupt pin on the Arduino goes high (or low) and wakey-wakey!

            (Keep in mind that I don't have access to an o-scope, so a lot of this is from thought experiment, conjecture and fiddling with various elements, but I'm reasonably certain that's at least close to what's happening.)

            I also suspect that this is exacerbated by using a lower voltage (3.3V vs 5V), tying directly to the 3.3V pin on the HC-SR501 (bypassing extra voltage regulation), and using batteries as a power source (they've got their own inefficiencies as a voltage source).

            So anyway, all that being said, the way I worked around this on my devices was to "stagger" the sleep. First I would power down the radio, then wait "a bit" (100ms or so?) for power to stabilize, then do the actual sleep() call to put the Arduino to sleep.

            This was with MySensors 1.4, which I think made it a little easier to get at the internal radio to do a powerDown() call. But I think it's still possible to get at the raw radio. I just don't recall off the top of my head how to do with with MyS 2.x.

            Anyway... hopefully that saves you a lot of head scratching. Digital components are awesome as building blocks, but darn it if analog issues creep in sometimes...

            1 Reply Last reply
            1
            • B Offline
              B Offline
              burningstone
              wrote on last edited by
              #6

              Yes, I've tried three different radios and two motion sensors, always the same behaviour.

              1 Reply Last reply
              0
              • gohanG Offline
                gohanG Offline
                gohan
                Mod
                wrote on last edited by
                #7

                What's the size of the cap?

                1 Reply Last reply
                0
                • B Offline
                  B Offline
                  burningstone
                  wrote on last edited by
                  #8

                  @gohan
                  The capacitor is 47µf.

                  @rickmontana83
                  Do you happen to know where I could find this information?

                  1 Reply Last reply
                  0
                  • gohanG Offline
                    gohanG Offline
                    gohan
                    Mod
                    wrote on last edited by
                    #9

                    If you have one, try a 100uF. Once I solved this way

                    1 Reply Last reply
                    0
                    • R Offline
                      R Offline
                      rickmontana83
                      wrote on last edited by
                      #10

                      @gohan I seem to remember trying that, and gave up when 470uF wasn't enough. :-) That being said, it's an easy enough thing to try.

                      @burningstone I'd search around the MySensors library code for the implementation of the sleep() routines. They'll need to call the radio shutdown somehow. Doing a quick drill-down, I see:

                      MySensorsCore.cpp defines the internal _sleep() routine, which ends up calling transportPowerDown() (to do the power-down of the radio in a hardware-independent way). This ends up calling into transportPowerDown() in MyTransportNRF24.cpp (for your radio type), which calls the RF24_powerDown() routine.

                      I would think that's probably the one you want to call.

                      1 Reply Last reply
                      0
                      • B Offline
                        B Offline
                        burningstone
                        wrote on last edited by
                        #11

                        @rickmontana83
                        Sorry, I don't understand what I have to do now.
                        Do I have change the sketch to:

                        RF24_powerDown();
                        wakeup=sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), RISING, SLEEP_TIME);
                        
                        
                        1 Reply Last reply
                        0
                        • gohanG Offline
                          gohanG Offline
                          gohan
                          Mod
                          wrote on last edited by
                          #12

                          If I am not mistaken, calling the sleep function already powers down radio

                          1 Reply Last reply
                          0
                          • B Offline
                            B Offline
                            burningstone
                            wrote on last edited by
                            #13

                            @gohan
                            Yes you are right, but I need to poweroff the radio and then wait some ms and then go into sleep interrupt if I understood @rickmontana83 correctly.

                            @rickmontana83
                            How can I call these functions from my sketch? Do I need to change the mysensor library files?

                            1 Reply Last reply
                            0
                            • B burningstone

                              Hi all,

                              I've read a lot of posts about battery-powered motion/temp/humidity sensors.
                              I'm new to electronics and programming, but I've already had sucess in setting everything up.

                              Below is my wiring.

                              ![0_1490045167603_pir-dht22-battery-sketch.PNG](Uploading 100%)

                              I haven't modified the arduino pro mini 3.3V version for a battery optimizied use.
                              The VCC is directly connected to the h-pad (wire soldered to h-pad) of the HC-SR501.
                              The Temp/Humidity sensors is a DHT22.

                              The node should do the following:
                              If the arduino woke up from interrupt, then send only the tripped status of the motion sensor.

                              if the arduino woke up from the sleep timer (1 min for testing), then send humidity, battery and temperature, but only if the values changed more than the treshold.

                              Everything works well, the node sends humidity, battery and temperature when the sleep timer ended and does this only if it changed more than my defined threshold.
                              The node also detects correctly that it woke up from interrupt and sends only the motion sensor value.

                              The problem is that it looks like the radio triggers the motion sensors or something like that.
                              Everytime when the motion sensor detects motion, it sends 2-3 tripped messages in a row, if I understood correctly, this means the arduino wakes up from the interrupt, then sends the message and goes back to sleep and then immediately wakes up and sends the message again, right?
                              Also when the arduino wakes up from the sleep timer, it sends the temp/hum/battery values and sometimes, with random behaviour also the motion tripped value.

                              Where is the problem? Wiring? Coding? I tried dozens of codes and always the same behaviour :(
                              Below my sketch:

                              #include <SD.h>
                              
                              // Enable debug prints
                              #define MY_DEBUG
                              
                              // Enable and select radio type attached 
                              #define MY_RADIO_NRF24
                              
                              
                              //define Node ID before include mysensors.h
                              #define MY_NODE_ID 200
                              
                              #include <SPI.h>
                              #include <MySensors.h>
                              #include <readVcc.h>  
                              #include <DHT.h>  
                              
                              
                              #define CHILD_ID_HUM 0
                              #define CHILD_ID_TEMP 1
                              #define CHILD_ID_MOT 2
                              
                              //define PINS
                              int BATTERY_SENSE_PIN = A0;  // select the input pin for the battery sense point
                              #define DHT_DATA_PIN 5
                              #define DIGITAL_INPUT_SENSOR 3   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
                              #define INTERRUPT DIGITAL_INPUT_SENSOR-2 // Usually the interrupt = pin -2 (on uno/nano anyway)
                              
                              #define MIN_V 1900 // empty voltage (0%)
                              #define MAX_V 3000 // full voltage (100%)
                              
                              unsigned long SLEEP_TIME = 60000UL; // Sleep time between reads (in milliseconds)
                              int oldBatteryPcnt = 0;
                              
                              
                              //Reporting Thresholds
                              #define HUMI_TRANSMIT_THRESHOLD 3.0  // THRESHOLD tells how much the value should have changed since last time it was transmitted.
                              #define TEMP_TRANSMIT_THRESHOLD 0.5
                              #define BATTERY_TRANSMIT_THRESHOLD 2.0
                              
                              //Parameters
                              DHT dht;
                              float lastTemp = 0 ;
                              float lastHum = 0 ;
                              int count = 0;
                              boolean lastTripped = false ;
                              boolean metric = true; 
                              MyMessage msgHum(CHILD_ID_HUM, V_HUM);
                              MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
                              MyMessage msgMot(CHILD_ID_MOT, V_TRIPPED);
                              
                              
                              
                              void setup()  
                              { 
                               // use the 1.1 V internal reference
                              #if defined(__AVR_ATmega2560__)
                               analogReference(INTERNAL1V1);
                              #else
                               analogReference(INTERNAL);
                              #endif
                                dht.setup(DHT_DATA_PIN); 
                              
                                // Send the Sketch Version Information to the Gateway
                                sendSketchInfo("Humidity/Motion", "1.0");
                              
                                pinMode(DIGITAL_INPUT_SENSOR, INPUT);      // sets the motion sensor digital pin as input
                               
                                // Register all sensors to gw (they will be created as child devices)
                                present(CHILD_ID_HUM, S_HUM);
                                present(CHILD_ID_TEMP, S_TEMP);
                                present(CHILD_ID_MOT, S_MOTION);
                                 
                                metric = getControllerConfig().isMetric;
                              }
                              
                              void loop()      
                              
                              {  
                                //-1 woke up from sleep timer, 1 woke up from pin interrupt
                                 static int8_t wakeup; 
                                 
                                //////////////////////////////////////////////////////////////////////////
                                // Battery
                                /////////////////////////////////////////////////////////////////////////
                                 int sensorValue = analogRead(BATTERY_SENSE_PIN);
                                 #ifdef DEBUG
                                 Serial.println(sensorValue);
                                 #endif
                                 
                                 // 1M, 470K divider across battery and using internal ADC ref of 1.1V
                                 // Sense point is bypassed with 0.1 uF cap to reduce noise at that point
                                 // ((1e6+470e3)/470e3)*1.1 = Vmax = 3.44 Volts
                                 // 3440/1023 = Volts per bit = 3.363075
                                 float batteryV  = sensorValue * 3.363075;
                                 //int batteryPcnt = ((batteryV - MIN_V) / (MAX_V - MIN_V))*100;
                                 int batteryPcnt = min(map(readVcc(), MIN_V, MAX_V, 0, 100), 100);
                                 
                                 #ifdef DEBUG
                                 Serial.print("Battery Voltage: ");
                                 Serial.print(batteryV);
                                 Serial.println(" V");  
                              
                                 Serial.print("Battery percent: ");
                                 Serial.print(batteryPcnt);
                                 Serial.println(" %");
                                 #endif
                              
                                 float diffBattery = abs(oldBatteryPcnt - batteryPcnt);
                                 if(wakeup == 1){
                                 }
                                 else if (diffBattery > BATTERY_TRANSMIT_THRESHOLD) {
                                   // Power up radio after sleep
                                 sendBatteryLevel(batteryPcnt);
                                   oldBatteryPcnt = batteryPcnt;
                                 }
                              
                                /////////////////////////////////////////////////////////////
                                //Motion
                                ////////////////////////////////////////////////////////////
                                boolean tripped = digitalRead(DIGITAL_INPUT_SENSOR) == HIGH; 
                               
                                if(wakeup == -1){
                                }
                                else if (tripped != lastTripped ) {      
                                  Serial.println(tripped);
                                  send(msgMot.set(tripped?"1":"0"));  // Send tripped value to gw
                                }
                              
                              
                                ////////////////////////////////////////////////////////////////////
                                //Temp and Humidity
                                ///////////////////////////////////////////////////////////////////
                                delay(dht.getMinimumSamplingPeriod());
                              
                                float temperature = dht.getTemperature();
                                float diffTemp = abs(lastTemp - temperature);
                                
                                float humidity = dht.getHumidity();
                                float diffHum = abs(lastHum - humidity);
                                
                                if (isnan(temperature)) {
                                  Serial.println("Failed reading temperature from DHT");
                                }else if (wakeup == 1){
                                }
                                else if(diffTemp > TEMP_TRANSMIT_THRESHOLD) {
                                  lastTemp = temperature;
                                  if (!metric) {
                                    temperature = dht.toFahrenheit(temperature);
                                  }
                                  send(msgTemp.set(temperature, 1));
                                  Serial.print("T: ");
                                  Serial.println(temperature);
                                }
                                
                                if (isnan(humidity)) {
                                    Serial.println("Failed reading humidity from DHT");
                                } else if (wakeup == 1){
                                }
                                else if(diffHum > HUMI_TRANSMIT_THRESHOLD) {
                                    lastHum = humidity;
                                   send(msgHum.set(humidity, 1));
                                    Serial.print("H: ");
                                    Serial.println(humidity);
                                }  
                                //////////////////////////////////////////////////////////////////////
                                // Sleep until interrupt comes in on motion sensor. Send update every two minute. 
                                wakeup=sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), RISING, SLEEP_TIME);
                              }
                              
                              YveauxY Offline
                              YveauxY Offline
                              Yveaux
                              Mod
                              wrote on last edited by
                              #14

                              @burningstone I didn't read the whole thread, but quickly scanning over it I understood you are powering the pir with 2xAA cells. If that's the case it is not going to work. The pir needs at least 3xAA cells to function correctly when you bypass its regulator.

                              http://yveaux.blogspot.nl

                              1 Reply Last reply
                              0
                              • B Offline
                                B Offline
                                burningstone
                                wrote on last edited by
                                #15

                                @Yveaux
                                Could you please explain why this will not work?
                                Because the pir sensor detects motion perfectly fine, the only problem are the false triggers, which occur when the radio sends the signal to the gateway.
                                I also saw some guys that run the exact same pir and arduino pro mini 3.3V version on 2xAA batteries.

                                YveauxY 1 Reply Last reply
                                0
                                • B burningstone

                                  @Yveaux
                                  Could you please explain why this will not work?
                                  Because the pir sensor detects motion perfectly fine, the only problem are the false triggers, which occur when the radio sends the signal to the gateway.
                                  I also saw some guys that run the exact same pir and arduino pro mini 3.3V version on 2xAA batteries.

                                  YveauxY Offline
                                  YveauxY Offline
                                  Yveaux
                                  Mod
                                  wrote on last edited by
                                  #16

                                  @burningstone the biss0001 chip on the pir is rated for 3..5V operation. If you use it outside its allowed range you can expect undefined behavior, e.g. false triggers.

                                  These sensors are very sensitive to power supply. Even with a good supply within spec behavior is sometimes strange, to say the least...

                                  http://yveaux.blogspot.nl

                                  1 Reply Last reply
                                  4
                                  • B Offline
                                    B Offline
                                    burningstone
                                    wrote on last edited by
                                    #17

                                    @Yveaux
                                    So what would you suggest? Adding a third AA-battery?
                                    I just can't understand why some people got this pir sensor working on 2 AA batteries and without false triggers.

                                    YveauxY 1 Reply Last reply
                                    0
                                    • B burningstone

                                      @Yveaux
                                      So what would you suggest? Adding a third AA-battery?
                                      I just can't understand why some people got this pir sensor working on 2 AA batteries and without false triggers.

                                      YveauxY Offline
                                      YveauxY Offline
                                      Yveaux
                                      Mod
                                      wrote on last edited by
                                      #18

                                      @burningstone pure luck? It's all about tolerances. Let's see if it still works for them once the environment temperature changes, the pir ages, the battery levels drop, the radio sends more data, etc, etc.
                                      A simple fix is to power the pir from 3xAA and the arduino and radio from only 2xAA.
                                      Search the forum, I've already explained it in another thread.

                                      http://yveaux.blogspot.nl

                                      1 Reply Last reply
                                      0
                                      • B Offline
                                        B Offline
                                        burningstone
                                        wrote on last edited by
                                        #19

                                        @Yveaux
                                        So i would need 5 batteries in total??
                                        Seems like overkill to me, and the sensor would become quite big :(

                                        YveauxY 1 Reply Last reply
                                        0
                                        • B burningstone

                                          @Yveaux
                                          So i would need 5 batteries in total??
                                          Seems like overkill to me, and the sensor would become quite big :(

                                          YveauxY Offline
                                          YveauxY Offline
                                          Yveaux
                                          Mod
                                          wrote on last edited by
                                          #20

                                          @burningstone no, just 3xAA.
                                          Power the arduino and radio from the first 2 only.

                                          http://yveaux.blogspot.nl

                                          YveauxY 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          6

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular