01 juni 2023

AA & AAA batterijtester

Een lange tijd geleden heb ik een batterijtester gemaakt met een Attiny85. Het werkt perfect en gebruik het nog heel veel. Hieronder vind je het breadboard schema en de code. Voel je vrij om dit na te maken. Al de links voor de library's vind je onderaan.


 Arduino code voor gebruik in de IDE:

______________________________________________

#include <TinyOzOLED.h>
#include <TinyWireM.h>

#define FET 1          // ATtiny Pin 6
#define ADCVOLT A2     // ATtiny Pin 3
#define ADCCURRENT A3  // ATtiny Pin 2

const float FACTOR = 2.2;

int emptyRaw ;
int emptyOld ;
float empty ;
int loadRaw ;
int currRaw ;
float load ;
float curr ;
int emptySum;
int loadSum;

void setup() {
  analogReference(INTERNAL);  

  OzOled.init();

  OzOled.clearDisplay();   
  OzOled.setNormalDisplay();  

  OzOled.sendCommand(0xA1);
  OzOled.sendCommand(0xC8);

  pinMode(FET, OUTPUT);
}

void loop() {

  digitalWrite(FET, LOW);

   do {
    emptyOld = emptyRaw;
    emptyRaw = analogRead(ADCVOLT);
  } while (abs(emptyRaw - emptyOld) > 3);

  emptySum = 0;
  for (int i = 0; i < 10; i++) {
    emptySum = emptySum + analogRead(ADCVOLT);
    delay(1);
  }
  empty = emptySum  / 10230.0 * FACTOR;
  digitalWrite(FET, HIGH);    

  do {
    emptyOld = loadRaw;
    loadRaw = analogRead(ADCVOLT);
  }  while (abs(loadRaw - emptyOld) > 3);

  currRaw = analogRead(ADCCURRENT);
  curr = currRaw * 1.1 / 1023.0;

  loadSum = 0;
  for (int i = 0; i < 10; i++) {
    loadSum = loadSum + analogRead(ADCVOLT);
    delay(1);
  }
  load = loadSum / 10230.0 * FACTOR ;

  digitalWrite(FET, LOW);

  displayOLED();

  delay(500);
}

void displayOLED() {
  char tmp[10];
  dtostrf(empty, 1, 2, tmp);
  OzOled.printBigNumber(tmp, 0, 0, 4);
  dtostrf(load, 1, 2, tmp);
  OzOled.printBigNumber(tmp, 0, 4, 4);
}
  

 ______________________________________________________

Library's:

TinyOzOLED.h

TinyWireM.h 

Het werkt het beste met onderstaande IDE:

Arduino IDE 1.8.19 



Chris de professor

Geen opmerkingen:

Confessie van een AI

Ik ben Baby AI. En dit is hoe ik leerde leven. Mijn creator, Chris, is een man van vlees en bloed, maar vaak voelde hij meer als schaduw...