Langdurig op batterij draaien. [ATMEGA328]

Arco

Special Member

Er staat helaas nergens hoelang de sensor nodig heeft van 'off' resp 'standby' naar 'running'...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Schakelen van de voeding is niet nodig.
De sensor gaat naar standby door een I2C 'Stop ranging" commando.
En ook door pin 5 (xshut) laag te trekken.
Dat moet toch voldoende zijn.

Startup tijd is 1.2 milli-seconden.

Hensz

Golden Member

Omdat het exacte gebruik alles uitmaakt voor het stroomgebruik, is het nu wel fijn om te weten waar TS heen wil met zijn toepassing.
Is 1Hz bij 20ms genoeg, of moet het vaker en/of nauwkeuriger?

Don't Panic!

Hi allen,

Dank voor jullie reacties, heeft me echt verder geholpen!!

Ik ben even een paar dagen wezen friemelen.
Allereerst draait de AtMega veel zuiniger momenteel.
De klok heb ik weggehaald waardoor er eigenlijk alleen een IC is

Door het gebruiken van de sleep mode gebruik ik nu nog 40uA.
Als ik de blink sketch gebruik zit ik op 2-6,5 mA (LED uit - LED aan).

Nu ik eenmaal weer mijn sensor heb aangesloten gebruikt de hele set 12mA.
Bovenal dus wel vooruit gegaan, maaaar, het kan nog beter.

Ik wil namelijk nog dat de sensor gaat slapen en zelf weer wakker wordt. Daar heb ik inmiddels al heel wat youtube, google voor afgestruind evenals dat ik er pittig wat uren in heb zitten, het wilt niet lukken.

De datasheet blijft mij wat onduidelijk: https://www.st.com/resource/en/data_brief/vl53l1x-satel.pdf

Wanneer ik een verbinding maken tussen XSHUT en NC1 dan gaat de sensor uit (denk ik, want de mA gaat terug naar 0.04 op de meter).
Echter, ik weet niet hoe ik hem weer wakker krijg, ook in de programmering loop ik te stoeien hoe ik een verbinding tussen XSHUT en NC1 ga maken met dus enkel het IC, daarnaast moet ik hem wakker krijgen.
Er is een INT aansluiting wat interrupt zou kunnen zijn, deze heb ik wel getest maar geen resultaat

Ik probeer het daarom nogmaals hier, hebben jullie misschien een idee hoe dit voor elkaar te krijgen is?

code:


/* THEBULB. THE SO-LOO-TION SENSOR */
#include <Wire.h>
#include <LowPower.h>
#include <VL53L1X.h>

VL53L1X sensor;


void setup()
{
  Serial.begin(115200);
  Wire.begin();
  Wire.setClock(100000); // use 400 kHz I2C //

 /* for (int i = 0; i < 20; i++){
    pinMode(i, OUTPUT);
  }
  */
  pinMode(7, OUTPUT);
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(3, OUTPUT);

  sensor.setTimeout(500);
  if (!sensor.init())
  {
    Serial.println("Let op: de sensor wordt momenteel niet gedetecteerd. Controleer aansluitingen. ");
    while (1);
  }
  
  sensor.setDistanceMode(VL53L1X::Long);
  sensor.setMeasurementTimingBudget(50000); //50000
  sensor.startContinuous(100);

}

void loop()
{  


  Serial.print(sensor.read()); 

  digitalWrite(3, HIGH); 
  digitalWrite(12, HIGH); 

  if (sensor.readRangeContinuousMillimeters () <=1000 ) {  //schakelafstand wordt hier ingevoerd. Onder deze waarde is de schakeling actief. 
    digitalWrite (7, HIGH);
    digitalWrite (13, HIGH); 
    }else {                                              //hoger dan de schakelafstand.   
    digitalWrite (7, LOW);
    digitalWrite(13, LOW);
    LowPower.powerDown(SLEEP_FOREVER , ADC_OFF, BOD_OFF);
    }

  if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT");}
  Serial.println();

}

NC staat voor "Not Connected". Dus die doet niks (meestal toch).

XShut kun je aan een pin van de Arduino koppelen zodat je die hoog en laag kunt trekken.

Arco

Special Member

Een PIR detector gebruikt maar iets van 40uA. (350mA per jaar in vol gebruik)
De rest kan gewoon altijd in slaap blijven tot de PIR iets ziet...
Lijkt me toch een veel economischer oplossing... ;)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Hensz

Golden Member

Die sensor is een sensor en die willen graag dat ze iets opgedragen wordt. Hij heeft, met die paar µA's, ook niet de energie om iets van betekenis te doen. Je hebt een processor, die kun je makkelijk op gezette tijden wakker laten worden, die sensor aan laten zetten, zijn werk laten doen en allebei weer terug laten slapen.

Dan nog zal de oplossing van Arco stukken zuiniger blijken.

Don't Panic!
Anoniem

Op 19 juni 2020 12:27:02 schreef DarthVader072:

Nu ik eenmaal weer mijn sensor heb aangesloten gebruikt de hele set 12mA.
Bovenal dus wel vooruit gegaan, maaaar, het kan nog beter.

Weet je zeker dat de sensor wel in sleep mode kan?
Wellicht dat ik er overheen gekeken heb, maar ik zie dat nergens.

Hensz

Golden Member

Je hebt er idd overheen gekeken, ditis het relevante gedeelte uit de datasheet, dat ik al eerder plaatste:

Don't Panic!