Autolaturi mökille varavoimaksi Arduinon avulla

Liittynyt
10.07.2017
Viestejä
654
@ississ , tuossa parhaillaan yritän tuota R2-vastuksen vaihtamista. Pitää laittaa sen tilalle potikka, että löytää uuden arvon vastukselle. Mitähän kannattaa olla minimilähtöä säätäessä olla kytkettynä? Ilmeisesti shuntti voi olla pois, kunhan siis piirissä on virrat päällä ja mittaa lähtöä samaan aikaan.

EDIT: Vastusti vastuksen irrotuksen kanssa! Mutta onnistuin sen lopulta saamaan irti ja tilalle perus 10k potikka. En vielä katsonut vastusarvoja sen kummemmin, mutta nyt on niin, että nollan ampeerin testikuormalla näyttää 2,24 volttia. Nyt en ymmärrä: 8,4 ampeerin testikuormalla lähtö on 1,78 volttia. Onkohan lähtö käänteinen? Onhan se, mutta mitähän tapahtuu isommilla virroilla? Niitä minulla ei ennen laturia ole mahdollista tällä testata.

Testissä kortti oli kytketty 12 voltin virtalähteeseen ja sillä mitattiin 12 voltin testikuormaa. VOUT oli kytkemättä ja mittasin suoraan VOUT pinniltä tuo lähtöjännitteen.
 
Viimeksi muokattu:
Liittynyt
17.01.2018
Viestejä
2 124
@ississ , tuossa parhaillaan yritän tuota R2-vastuksen vaihtamista. Pitää laittaa sen tilalle potikka, että löytää uuden arvon vastukselle. Mitähän kannattaa olla minimilähtöä säätäessä olla kytkettynä? Ilmeisesti shuntti voi olla pois, kunhan siis piirissä on virrat päällä ja mittaa lähtöä samaan aikaan.

EDIT: Vastusti vastuksen irrotuksen kanssa! Mutta onnistuin sen lopulta saamaan irti ja tilalle perus 10k potikka. En vielä katsonut vastusarvoja sen kummemmin, mutta nyt on niin, että nollan ampeerin testikuormalla näyttää 2,24 volttia. Nyt en ymmärrä: 8,4 ampeerin testikuormalla lähtö on 1,78 volttia. Onkohan lähtö käänteinen? Onhan se, mutta mitähän tapahtuu isommilla virroilla? Niitä minulla ei ennen laturia ole mahdollista tällä testata.

Testissä kortti oli kytketty 12 voltin virtalähteeseen ja sillä mitattiin 12 voltin testikuormaa. VOUT oli kytkemättä ja mittasin suoraan VOUT pinniltä tuo lähtöjännitteen.
Minimilähtö pitää määrittää niin että syöttö = VIN+ = VIN- = korkein mahdollinen eli 15V
Sitten vastusarvoa säätämällä niin että lähtö juuri ja juuri nousee minimistä.

Tällaisessa on kätevää olla erillinen erotettu jännitelähde jolla voi syöttää VIN+ ja VIN- välille sopivan jännitteen (siis 0 - 30mV ilman mittavastusta) jolloin saa testattua koko alueen. Tuohon riittää vaikka 1 akku/patteri ja vastusjako trimmillä. Eli silloin syöttö ja VIN+ = 15V ja toisella saadaan VIN- mittauksen verran alemmas.
Jos toimii väärään suuntaan niin silloin VIN+ ja VIN- on todennäköisesti väärin päin.
 
Liittynyt
10.07.2017
Viestejä
654
@ississ , joo, turhaan panikoin tuossa aikaisemmin! Eli siis VIN+ ja VIN- päinvastoin, niin normaalisti alkoi toimia. Joo, tuo minimilähdön määritys tosiaan pitäisi varmasti tehdä korkeammalla jännitteellä, tuossa jos laturin säädin saa jostain syystä täydet työsuhteet, jännite on 16 V. Eli ehkä pitäisi syöttää opamp-piiriä semmoisella jännitteellä. Ei vain ole semmoista virtalähdettä tähän hätään. 16 V:n ja 12 V:n ero on 33 %.

Tässä kuitenkin testattuna 12 V:n jännitteellä, ja erittäin lineaarinen on kyllä tuo, kun säädin potikalla vastusta hieman lisää. Eka testi ei vielä ollut riittävän suurella vastuksella ylittääkseen minilähdön jännitteen, mikä näkyy kuvaajassa epälineaarisuutena. Vastus on mitattu potikasta, kun se on kytkettynä sammutettuun piiriin. Mittasin kyllä ennen alkuperäisen 1k:n vastuksen poistamista, niin 1k sain tulokseksi. Eli tässä piirissä vastuksen voinee mitata ainakin tuossa kohdassa oikein vaikka onkin kytkettynä piiriin. Lopulliseksi täytyy hakea joku vastus tai useampi rinnan tai sarjaan, jotta käyttöön saa mahdollisimman lähelle testattua olevan vastuksen.

Tuosta voisi arvata, että jakaisi lähdön niin, että huippuarvo on 12 voltissa 90 ampeerin virralla 4 volttia. Tämä tekisi, jos menisi lineaarisesti, vähän yli 5 volttia 16 voltissa, joka tuskin hajottaisi vielä Arduinoa ja 16 volttia on jo äärimmäisen epätodennäköinen skenaario.



Laturin apukortin virtamittaus testaus 15524.png
 
Viimeksi muokattu:
Liittynyt
18.10.2016
Viestejä
556
Tota tota en oo varma oonko kartalla mutta laturi ei voi ladata 12v 90A koska akku jännite tuskin koskaan on niin alhaalla, sen takia akkua ladataan 13, 8-14,4v jännitteellä että akkuun yleensä menee sähköä. Omasta mielestä pitäs mitottaa tolla 14,4v se maksimi lataus virta
 
Liittynyt
10.07.2017
Viestejä
654
@Nasty76 , no näinhän se on. Ei ole minunkaan mielestä mahdollista ladata tosiaan 12 voltin jännitteellä. Minulla ei kuitenkaan ole kummempaa virtalähdettä käytössä, joten täytynee pärjäillä 12 voltin virtalähteellä testeissä ja mitoituksissa.
 
Liittynyt
10.07.2017
Viestejä
654
Mites muuten tuo opampin käyttöjännite? Jos se olisi aina ja koko ajan sama, eikö tuo vahvistuksen säätö olisi silloin varmempi? Käsittääkseni nyt lähtö vaeltaa käyttöjännitteen mukaan, tai olen ymmärtänyt väärin.

Tuohon toki voisi ehkä miettiä sitä vakiojännitelähdettä, mutta yritän nyt ensin tätä jotenkin saada toimimaan.
 
Liittynyt
17.01.2018
Viestejä
2 124
Mites muuten tuo opampin käyttöjännite? Jos se olisi aina ja koko ajan sama, eikö tuo vahvistuksen säätö olisi silloin varmempi? Käsittääkseni nyt lähtö vaeltaa käyttöjännitteen mukaan, tai olen ymmärtänyt väärin.

Tuohon toki voisi ehkä miettiä sitä vakiojännitelähdettä, mutta yritän nyt ensin tätä jotenkin saada toimimaan.
Kyllä käyttöjännitekin yleensä vähän vaikuttaa mutta sisäisesti noissa on yleensä vakiovirrat joilla pelataan niin jännite ei hirveästi vaikuta.
Tulojen jännitetaso tietenkin koska sieltä on vastusjako maahan niin muuttaa tasoa. Eli ei välttämätön.

Kyllä se vähän vaeltaa, myös siksi että tulot on niin lähellä käyttöjännitettä ja on myös aika iso vahvistus. Mutta kuten sanottua sen voit hoitaa pois arduinossa kun mittaa myös käyttöjännitteen.

1.14k olisi samalla kertoimella kuin se jonka mittasin (2.5k/2.2k). eli ehkä 1.2k olisi hyvä. Lähtöön jännitejako niin että pysyy alle 5V.

Tuosta latauksesta, laturin jännitteen pitää tietysti aina olla suurempi kuin akun, muuten ei virta kulje oikeaan suuntaan. Jos jännite olisi tasan sama niin latausvirta = 0. Eli maksimilataus onnistuu vain jos akut ovat täysin tyhjät, muussa tapauksessa jännite-ero rajoittaa aina latausvirtaa.
Mitoitus sen mukaan mikä on akkujen maksimijännite ( + pieni marginaali on aina hyvästä).
Sen puoleen 15V olisi sopiva mitoitukseen koska sen yli jännite ei koskaan saisi nousta. Tuo aiemmin mainittu 14.4V on myös hyvä kohdearvo.
 
Liittynyt
10.07.2017
Viestejä
654
@ississ , joo laitoin tilalle nyt noin 1,18k vastuksen (kaksi sarjassa) ja minimilähtö (0 A) oli 2,02 V, 90 ampeerilla se olisi 4,42 volttia. Mitattu 12 voltilla. Tämä vastuksen muutos 1,18 kilo-ohmiin loivensi lineaarista käyrää.

Voi olla, etten ole ihan kartalla, mutta mielestäni opampi vahvistaa vain tulosignaalin. Kun latauksessa jännite lienee noin 14,5 volttia, mikä on opampin minimilähtö, tai varsinkin yläpään lähtö 90 ampeerin kohdalla silloin? Varmasti se ei selviä muuten kuin mittaamalla laitteiston käydessä, mutta vaikuttaako siis tuo jännite lähtöön merkittävästi? Jos ei vaikuta merkittävästi, jännitejakoa ei tarvita.

EDIT: Hyvin toimii myös Rduinoon liitettynä! Ainoa vaan, että virta-arvot on väärin (160 A nollassa). Ei onnistunut tyylillä

C++:
float currentFactor = 80.00 / (4.15 - 2.02);  // Adjusted for 2.02 volts = 0 amps and 4.15 volts = 80 amps
.

Vaan tässä pitää käyttää jotain muuta tapaa, oli se sitte map tai joku muu. Yritän tutkia tässä vaihtoehtoja.

Mutta suuret kiitokset taas @ississ ja @Nasty76 :kin! Vaikuttaa siltä, että tällä elektronisilta osin päästään taas eteenpäin. :thumbsup:


EDIT2: No joo. Tekoälyn avustuksella sain virran mittauksen toimimaan. Eli suoran yhtälö sovitettuna. Säätöä tarvii, kun 4,3 ampeerin virralla näyttää oikein, mutta 8,3 ampeerin virralla tulee 9,3 ampeeria. Suoran pisteitä pitää vähän rukata. Eli hienosäädön voi tehdä tuossa koodissa helposti nyt.

Koodissa monia kohtia kommentoitu, kun niitä ei ole säätövaiheessa tarvinnut.

BTW tälleen sisällä lämpimässä kokeiltuna Arduinon mittaama arvo heittelee keskimäärin jotain ± 0,2 ampeeria, ja välillä saattaa tulla hetkellinen yli ampeerinkin pomppua. Voi tosin johtua joistakin liitoksistakin, kun on tällä hetkellä tyyliin hässäkkä. Toki lopulliseen laitetaan kunnolla.

C++:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);  // Create a new LiquidCrystal_I2C display object with the correct I2C address and display size

// Define the pins
const int currentPin = A0;             //information about current
const int voltagePin = A2;             //information about voltage
const int motorPin = 7;                //motor running pin, HIGH = motor running, TEST purpose LOW
const int pwmPin = 9;                  //PWM output pin
const int relayPin = 3;                //Relay control pin
float voltageFactor = 5.00 / 1023.00;  //Factor to convert ADC reading to voltage
// OLD: float currentFactor = 80.00 / (4.15 - 2.02);  // Adjusted for 2.02 volts = 0 amps and 4.15 volts = 80 amps

// NEW: Define the points for current calculation
float x1 = 2.02;    // volts
float y1 = 0;       // amps
float x2 = 4.1538;  // volts
float y2 = 80;      // amps
// Calculate the slope and intercept
float m = (y2 - y1) / (x2 - x1);
float b = y1 - m * x1;

float currentCal = 0.97; // Variable to shift th whole current level

float sensVfactor = 20.00 / 4.9248;  //4.9248 volts = 20 volts, factor to convert high voltage to 0-5 V
float current;                       //store current value
float sensVoltage;                   //store sensed voltage
const int N = 25;                    //number of current readings to average
const int Y = 25;                    //number of sensed voltage readings to average
int readings[N];                     //array to store the current readings
int readingsV[Y];                    //array to store the sensed voltage readings
int motorStatus;                     //0=stopped, 1=starting, 2=running, 3=stopped but did run, on status 3, just switch off and on again to go back 0
int lcdStep;                         //0=current display, 1=voltage display
unsigned long lastTime = 0;          //timer to measure engine sensor input time for starting




void setup() {

  Serial.begin(9600);  // Start the serial communication

  // Initialize the LCD here
  // Give the screen time to boot
  delay(200);
  lcd.begin(16, 2);
  lcd.backlight();
  lcd.clear();

  // Change timers on pins to change PWM freq to 122 Hz
  // Pins D9 and D10 - 122 Hz
  TCCR1A = 0b00000001;  // 8bit
  TCCR1B = 0b00000100;  // x256 phase correct

  // Make pins output/input
  pinMode(currentPin, INPUT);       //Information on charging current
  pinMode(voltagePin, INPUT);       //information on voltage, for real use, delete _PULLUP
  pinMode(motorPin, INPUT_PULLUP);  //Vibration sensor in, for motor running detect,  for real use, delete _PULLUP (it is for test purpose, pullup resistor)
  pinMode(pwmPin, OUTPUT);          //Charger pwm output
  pinMode(relayPin, OUTPUT);        //Ignition relay pin

  // Start Duty Cycle at 5 %
  analogWrite(pwmPin, 13);
}


void motorRunning() {  //engine running function
  if (digitalRead(motorPin) == HIGH && motorStatus == 0) {

    if (millis() - lastTime >= 6000) {  //wait at least 6 seconds before ramping up pwn and so start charging

      motorStatus = 1;
    }

  } else if (motorStatus == 0) {
    lastTime = millis();

    lcd.setCursor(0, 0);  //On lcd print Finnish to start the engine
    lcd.print("K");
    lcd.print((char)0xe1);
    lcd.print("ynnist");
    lcd.print((char)0xe1);
    lcd.print("   ");
    lcd.setCursor(0, 1);
    lcd.print("moottori");
  }
}


void rampUp() {  //rampup pwm

  // Ramp pwm up
  if (motorStatus == 1) {

    analogWrite(pwmPin, 48);
    delay(1000);
    analogWrite(pwmPin, 83);
    delay(1000);
    analogWrite(pwmPin, 118);
    delay(1000);
    analogWrite(pwmPin, 153);  //Duty Cycle at 60 percent

    motorStatus = 2;
  }
}


//void shutDown() {  //engine shutdown, execute relay
// If the charging current drops below five amperes
// start the shutdown function and turn off the relay for 15 seconds
// if (current < 5 && motorStatus == 2) {
//digitalWrite(relayPin, LOW);
//lcd.clear();
//lcd.setCursor(0, 0);
//lcd.print("Sammutus");


//motorStatus = 3;

// } else {
// digitalWrite(relayPin, HIGH);  //else, keep relay on
//}
//}


void showCurrent() {  //show current and voltage on lcd only when normal running state


  if (motorStatus == 2) {

    lcd.setCursor(0, 0);
    lcd.print("Virta:");
    lcd.setCursor(0, 1);
    lcd.print((float)current);
    lcd.print(" ");
    lcd.setCursor(5, 1);
    lcd.print(" A");

    lcd.setCursor(8, 0);
    lcd.print("J");
    lcd.print((char)0xe1);
    lcd.print("nnite:");
    lcd.setCursor(8, 1);
    lcd.print((float)sensVoltage);
    lcd.print(" ");
    lcd.setCursor(13, 1);
    lcd.print(" V");
  }
}




void loop() {


  //calculate current from shunt reading
  // Calculate the charging current from the average and display it on the LCD screen.
  // take N readings and store them in the array
  for (int i = 0; i < N; i++) {
    readings[i] = analogRead(currentPin);
    delay(10);  // wait for 10 milliseconds between readings
  }

  // calculate the average of the N readings
  float sum = 0;
  for (int i = 0; i < N; i++) {
    sum += readings[i];
  }
  float average = sum / N;

  float voltage = average * voltageFactor;  //  Convert ADC reading to voltage

  //OLD
  //current = voltage * currentFactor;  // Convert voltage to current

  //NEW
  current = (m * voltage + b) * currentCal;  // Convert voltage to current using the new linear equation


  //calculate high voltage from voltage divider input
  // Calculate the charging voltage from the average and display it on the LCD screen.
  // take Y readings and store them in the array
  for (int j = 0; j < Y; j++) {
    readingsV[j] = analogRead(voltagePin);
    delay(10);  // wait for 10 milliseconds between readings
  }

  // calculate the average of the N readings
  float sumV = 0;
  for (int j = 0; j < Y; j++) {
    sumV += readingsV[j];
  }
  float averageV = sumV / Y;

  float voltageV = averageV * voltageFactor;  //  Convert ADC reading to voltage

  sensVoltage = voltageV * sensVfactor;  // Convert voltage to real voltage







  motorRunning();
  rampUp();
  //shutDown();
  showCurrent();
  Serial.print("Lcdstep: ");
  Serial.print((int)lcdStep);
  Serial.println();
  Serial.print("Jannite: ");
  Serial.print((float)sensVoltage);
  Serial.println();
  Serial.print("Virta: ");
  Serial.print((float)current);
  Serial.println();
}
 
Viimeksi muokattu:
Liittynyt
17.01.2018
Viestejä
2 124
Voi olla, etten ole ihan kartalla, mutta mielestäni opampi vahvistaa vain tulosignaalin. Kun latauksessa jännite lienee noin 14,5 volttia, mikä on opampin minimilähtö, tai varsinkin yläpään lähtö 90 ampeerin kohdalla silloin? Varmasti se ei selviä muuten kuin mittaamalla laitteiston käydessä, mutta vaikuttaako siis tuo jännite lähtöön merkittävästi? Jos ei vaikuta merkittävästi, jännitejakoa ei tarvita.
Tällaisessa "vakio" tilanteessa opari pyrkii pitämään tulojen eron nollassa.

Nyt kytkennässä on yksi vastusjako joka asettaa toiseen tuloon tietyn jännitteen.
Toisessa tulossa on myös vastusjako mitattavasta kohteesta lähtöön.
Eli lähtö pyrkii sellaiseen jännitteeseen jossa tulojen ero on 0.

Jos on perusvahvistin
1715794616509.png


Ajatellaan niin että tässä tulosignaali olisi R3 päässä ja in+ kytketään maahan. Piirille 2- puoleinen syöttö.
Jos R3 in = 0 -> lähtö = 0 -> in- = 0. (Tai jos yksipuoleinen syöttö niin in+ = VCC/2 jolloin "nollatilanteessa" lähtökin on VCC/2)

Vastuksilla määrätään vahvistus. Nyt jos tulosignaalia nostetaan se pyrkii nostamaan in- jännitettä jolloin opari laskee lähtöä niin paljon että in ero on taas 0.
Toisaalta jos tulosignaali pysyy nollassa mutta säädetäänkin in+ tulon jännitettä niin lähdön taso muuttuu myös.

Differentiaalivahvistimessa molemmissa on vastusjako yhtä aikaa jolloin vahvistetaan ero (molemmat nousee saman verran, in+ ja in- ero pysyy nollassa -> lähtö ei muutu). Jos toinen haara on erilainen kuin toinen niin molempien signaalien nousu saman verran vaikuttaa lähtöön.
Myös jos oparin lähdön jännitealue ei riitä (suuri vahvistus, lähdöt lähellä ylä- tai alarajaa) tapahtuu tuo leikkaantuminen kuten huomattiin. Sen voi tietyissä rajoissa kiertää muuttamalla toisen haaran vahvistusta (eli sitä vastusjakoa). Toisena vaihtoehtona olisi jännitealueen muutos eli suurempi/pienempi käyttäjännite nollan suhteen tai vahvistuksen pienentäminen jolloin tarvitaan useampi vahvistin peräkkäin.

Oikea differentiaali olisi tällainen, eli kummallakin tulolla on oma vahvistin joiden vahvistus on sama (määritetään R ja Re avulla). Tärkeää tässä on se että molemmat toimivat samalla tavalla ja siksi Re on yhteinen vahvistinten välissä eikä maassa/muussa jännitteessä ja "virtuaalinen nolla" kelluu jossain Re alueella tuloista riippuen.
Ja näiden perään differentiaali jonka vahvistus on 1 (kaikki 4 vastusta saman kokoisia).
1715794994548.png




Yksinkertainen nollan asetus pitää tehdä ennen kertomista (tai sen jälkeen) eli
virta = ( luettu adc arvo - nollakohta ) * kertoimet;
tai
virta = ( luettu adc arvo * kertoimet ) - nollakohta;

Erona näissä on vain se kumpaa vähennetään, raakaa adc mittausarvoa vai laskettua virtaa. Mutta kertoimen sisälle nollakohdan hävitystä ei voi laittaa.

Nuo häiriöt voi johtua monestakin syystä, yksi on johdotus ja toinen itse adc ja mitä muuta hommaa piirillä silloin on. Hyvä että sait toimimaan.
 
Liittynyt
10.07.2017
Viestejä
654
@ississ , kiitokset vaivannäöstä! Pitää tutustua näihin.

On kätevää olla erillinen erotettu jännitelähde jolla voi syöttää VIN+ ja VIN- välille sopivan jännitteen (siis 0 - 30mV ilman mittavastusta) jolloin saa testattua koko alueen. Tuohon riittää vaikka 1 akku/patteri ja vastusjako trimmillä. Eli silloin syöttö ja VIN+ = 15V ja toisella saadaan VIN- mittauksen verran alemmas.
Jos toimii väärään suuntaan niin silloin VIN+ ja VIN- on todennäköisesti väärin päin.
Mitähän kämmäsin, kun en saanut toimimaan? Onko VIN+ jännitteen oltava sama tai suurempi kuin piirin käyttöjännitteen? En nimittäin saanut toimimaan 1,5 voltin virtalähteestä jännite laskettuna 32 millivolttiin. Opampin lähtö oli minimissä (noin 1,5 V) kun shuntti kytkettynä se on 0 ampeerin virralla 2,02 volttia.

Tulisiko akkujännite olla VIN+ ja VIN- olisi 32 millivolttia pienempi? (32 mV siis vastaa 80 A).
 
Liittynyt
17.01.2018
Viestejä
2 124
@ississ , kiitokset vaivannäöstä! Pitää tutustua näihin.



Mitähän kämmäsin, kun en saanut toimimaan? Onko VIN+ jännitteen oltava sama tai suurempi kuin piirin käyttöjännitteen? En nimittäin saanut toimimaan 1,5 voltin virtalähteestä jännite laskettuna 32 millivolttiin. Opampin lähtö oli minimissä (noin 1,5 V) kun shuntti kytkettynä se on 0 ampeerin virralla 2,02 volttia.

Tulisiko akkujännite olla VIN+ ja VIN- olisi 32 millivolttia pienempi? (32 mV siis vastaa 80 A).
Kumpikaan tulo (piirin jalassa) ei saisi yleesä ylittää käyttöjännitettä.
Eli toinen vin samaan kuin käyttöjännite ja toiseen se 0...32mV mitattava jännite.
Myös kaikki 3 samassa pitäisi antaa minimilähdön.
Tässä se jännite joka päätyy oparin + tuloon pitää olla tuloista isompi.
 
Liittynyt
10.07.2017
Viestejä
654
@ississ , joo, eli vika saattoi olla siinä, että kytkin miinuksen VIN- napaan ja plussan VIN+ napaan. Eli vetäisin +12 V VIN- napaan ja +32 mV VIN+ napaan? Ilmeisesti vetäisin millivolttivirtalähteen miinuksen yksinkertaisesti maahan?
 
Liittynyt
17.01.2018
Viestejä
2 124
@ississ , joo, eli vika saattoi olla siinä, että kytkin miinuksen VIN- napaan ja plussan VIN+ napaan. Eli vetäisin +12 V VIN- napaan ja +32 mV VIN+ napaan? Ilmeisesti vetäisin millivolttivirtalähteen miinuksen yksinkertaisesti maahan?
Näkemättä kytkentää voi vaan arvata...
 
Liittynyt
10.07.2017
Viestejä
654
@ississ, Niin siis tarkoitin nyt uutta testausta varten uutta kytkentää, mikäli oikein olen ymmärtänyt. Nyt kun luin uudestaan tuon edellisen viestini, niin siitä saakin sen käsityksen, että olisin kuvannut sitä kytkentää joka ei toiminut. Vain ensimmäinen lause koski sitä aikaisempaa testiä.

EDIT: No joo. Kokeilin uudemman kerran tuota millivolttitestiä. Saan aivan oikein ulkoisesta virtalähteestä jännitteenjakajan kautta 32 mV ulos. Syötän tämän +32 mV VIN+ napaan ja miinuksen maahan. Sitten kytken akkuplussan normaalisti kortin käyttöjännitteeksi sekä nyt VIN- napaan. Akkumiinuksen kytken normaalisti maahan. Opampi VOUT on tällöin akkujännite! En uskalla kytkeä Arduinoon virtoja tai edes liittää VOUT-johtoa siihen. Joku tässä nyt mättää, jota en tajua. Joskus aikaisemmin kyllä sain toimimaan testaamalla samalla tyylillä, mutta nyt on joku ongelma.

Ymmärrän, että VIN+ ja VIN- ero pitää olla käytännössä simuloitaessa 80 ampeerin virtaan, jos jännite olisi tasan 12 V, niin 12,000 V ja 11,968 V. Eikö sen näin pitäisi mennä?
 
Viimeksi muokattu:
Liittynyt
10.07.2017
Viestejä
654
@Uutta matoa koukkuun , joo tuo on tosi hyvä. Miksihän noita ei saa Suomesta kohtuuhintaan, tai ylipäätään? Kun tässä ei ole aikaa kolme kuukautta odotella tilausten saapumista ja vaatinee silti jonkinnäköisen vahvistimen väliin.

EDIT: Jos kiinanpojan speksit pitää paikkansa, ei tämmöiseen tarvitsisi mitään vahvistinta: 5.49€ 75% OFF|WCS1600 WCS1700 WCS1800 3 5V Hall Current Sensor Adjustable DC 100A 70A 35A Short Over Current Detector Protection Module| | - AliExpress

Jos laskeskellaan että, käyttäisimme Rduinon sisäistä 1100 mV:n referenssiä (en tiedä miten se tapahtuu), niin saisimme siitä 1100 / 1023 ~ 1,08 mV/porras ja tuo sensori olisi 20 mV/A jolloin ~ 1,08 mV / porras / 20 mv/A ~ 0,05 A. Eli riittäisi tarkkuudeltaan paremmin kuin hyvin, siis jos kiinanpojan tiedot pitäisi paikkansa. Ja voi olla, ettei tuo oikeasti kestä kuin 30 ampeeria jatkuvaa virtaa. :p
 
Viimeksi muokattu:
Liittynyt
10.07.2017
Viestejä
654
Joo. Ei se vaan ota onnistuakseen tuo testin tekeminen. Nyt sain sentään opampin lähdön seuraamaan millivolttivirtalähdettä. Testi siis onnistui jotenkin. Yllätyksekseni, kun millivoltit olivat noin 120, oli vasta silloin lähtö yli 2 volttia. Kuten aiemmin kerroin, kun systeemi on kytkettynä shunttiin ja käyttöjännite otetaan shuntin akun puoleiselta karvalta, silloinhan se minimi on se 2,02 volttia ja lähtee nousemaan lineaarisesti virran mukaan. Mutta tämä ulkoisella virtalähteellä tehtävä millivolttitesti nyt ei vaan onnistu, lähtö alkaa nousta vasta reilusti korkeammalla millivolttitulolla.
 
Viimeksi muokattu:
Liittynyt
18.10.2016
Viestejä
556
Hetkinen eikös tollasta shuntin häviöitä mitata kummaltakin puolelta shunttia eikä maatavasten, vai ymmärsinkö väärin taas jotain käsittääkseni shuntin yli jäävää hitu virtaa pitäisi mitata eli jännite häviöitä siitä shuntin kummaltakin puolelta
 
Liittynyt
17.01.2018
Viestejä
2 124
Koska ei jaksa piirtää niin käytetään Texasin valmista kuvaa
1715973587890.png


Tämä on siis oikea kytkentä. Ja silloin kun testataan jännitelähteellä niin kuorma otetaan pois ja kelluva jännitelähde laitetaan Rshunt tilalle jolloin vahvistin näkee tulot kuten oikeassakin kytkennässä.
Kaikki muut tavat ovat enemmän tai vähemmän väärin.
 
Liittynyt
10.07.2017
Viestejä
654
@ississ , kyllä. Tuo se tapa, jolla ensiksi tein tuon testin ja siis eilen se onnistui. Tai siis "onnistui". Kuten sanottua, vaadittiin yli 120 millivolttia, että opampin lähtö nousi yli 2 voltin, joka on shunttikytkennässä vasta minimi. Pitää vielä kerran kokeilla, ja jos ei onnistu, täytyy kai nostaa kädet pystyyn. :(

EDIT: Joo, ei toimi tuo testi. Vaadittiin yli 140 mV, jotta lähtö nousi yli kahteen volttiin. Nyt myös Rduinossa oli virrat, ja ampeerinäyttö vaelteli -5 ja 40 ampeerin välillä! Huom.! Lähtöjännite pysyi kuitenkin vakaana. Jääkö tässä muuta vaihtoehto, kuin testi lopullisessa muodossaan. Eli akku tyhjänä ja laturi käyttöön, kortilta VOUT-piuha irti varmuudeksi ja mittaa lähdön maksimilatausvirralla?

EDIT2: Tein varmuudeksi toisenkin testin. Otin koko apukortin irti pöydälle. Arvot muuttuivat, mutta tämäkään ei valitettavasti auta simuloimaan shunttia. Nyt noin 90 millivoltin tulo vaadittiin 2,02 voltin lähtöön. Sinänsähän piirissä ei selvästikään ole mitään ongelmaa, koska se seuraa tuloa. Mutta ihme, kun lähtö nollan kohdalla nousee reilusti, ja rajusti pienempi tulo riittää, kun koko järjestelmä kasataan.


Olisihan se ollut hyvä testata ensin koko alue, mutta ei näytä onnistuvan. :(
 
Viimeksi muokattu:
Liittynyt
17.01.2018
Viestejä
2 124
@ississ , kyllä. Tuo se tapa, jolla ensiksi tein tuon testin ja siis eilen se onnistui. Tai siis "onnistui". Kuten sanottua, vaadittiin yli 120 millivolttia, että opampin lähtö nousi yli 2 voltin, joka on shunttikytkennässä vasta minimi. Pitää vielä kerran kokeilla, ja jos ei onnistu, täytyy kai nostaa kädet pystyyn. :(

EDIT: Joo, ei toimi tuo testi. Vaadittiin yli 140 mV, jotta lähtö nousi yli kahteen volttiin. Nyt myös Rduinossa oli virrat, ja ampeerinäyttö vaelteli -5 ja 40 ampeerin välillä! Huom.! Lähtöjännite pysyi kuitenkin vakaana. Jääkö tässä muuta vaihtoehto, kuin testi lopullisessa muodossaan. Eli akku tyhjänä ja laturi käyttöön, kortilta VOUT-piuha irti varmuudeksi ja mittaa lähdön maksimilatausvirralla?

EDIT2: Tein varmuudeksi toisenkin testin. Otin koko apukortin irti pöydälle. Arvot muuttuivat, mutta tämäkään ei valitettavasti auta simuloimaan shunttia. Nyt noin 90 millivoltin tulo vaadittiin 2,02 voltin lähtöön. Sinänsähän piirissä ei selvästikään ole mitään ongelmaa, koska se seuraa tuloa. Mutta ihme, kun lähtö nollan kohdalla nousee reilusti, ja rajusti pienempi tulo riittää, kun koko järjestelmä kasataan.


Olisihan se ollut hyvä testata ensin koko alue, mutta ei näytä onnistuvan. :(
Sanoisin että jos se ei toimi tuolla testillä niin todennäköisesti ei oikeastikaan. Voi tietysti olla käyttöjänniteriippuvainen mutta sekään ei ole hyvä.
 
Toggle Sidebar

Statistiikka

Viestiketjut
243 590
Viestejä
4 252 380
Jäsenet
71 344
Uusin jäsen
Suskari

Hinta.fi

Ylös Bottom