Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2019:accu-monitor

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2019:accu-monitor [2020/01/19 19:52]
Milan Ambrož [Úvod]
2019:accu-monitor [2020/01/19 22:17] (aktuální)
Milan Ambrož [Závěr]
Řádek 23: Řádek 23:
 Napájení je řešeno pomocí izolovaného zdroje z 12V na 5V. Napětí 5V je následně vyfiltrováno a stabilizováno lineárním stabilizátorem na 3,3V, kterým se dále napájí mikroprocesor. Toto řešení odstraňuje problém vzniku zemní smyčky mezi GND napájení a GND měřených akumulátorů. Napájení je řešeno pomocí izolovaného zdroje z 12V na 5V. Napětí 5V je následně vyfiltrováno a stabilizováno lineárním stabilizátorem na 3,3V, kterým se dále napájí mikroprocesor. Toto řešení odstraňuje problém vzniku zemní smyčky mezi GND napájení a GND měřených akumulátorů.
  
-Komunikace je připravena pro montáž převodkíku ​UART- RS485, který není nutné osazovat. Toto bylo zvoleno z důvodu, kdyby bylo potřeba komunikovat po této sběrnici.+Komunikace je připravena pro montáž převodníku ​UART- RS485, který není nutné osazovat. Toto bylo zvoleno z důvodu, kdyby bylo potřeba komunikovat po této sběrnici.
 Rovněž je UART opticky oddělen pomocí dvojitých digitálních optočlenů,​ které umožnují jak 3,3V logickou úroveň, tak 5V. Rovněž je UART opticky oddělen pomocí dvojitých digitálních optočlenů,​ které umožnují jak 3,3V logickou úroveň, tak 5V.
  
Řádek 30: Řádek 30:
 Protože mikroprocesor zvládne měřit pouze napětí do velikosti napájecího (3,3V). z tohoto důvodu jsou zařazeny před jednotlivé vstupy děliče napětí. Tyto děliče je potřeba vypočítat pro maximální hladinu napětí, které budeme měřit. Zároveň je třeba brát v potaz rozlišení AD převodníku,​ 12 bitů, nebo taktéž 4096 stavů. Protože mikroprocesor zvládne měřit pouze napětí do velikosti napájecího (3,3V). z tohoto důvodu jsou zařazeny před jednotlivé vstupy děliče napětí. Tyto děliče je potřeba vypočítat pro maximální hladinu napětí, které budeme měřit. Zároveň je třeba brát v potaz rozlišení AD převodníku,​ 12 bitů, nebo taktéž 4096 stavů.
  
-Při výpočtu děliče je důležité brát v potaz maximální impedanci děliče z pohledu analogového vstupu. U tohoto mikroprocesoru,​ kde je AD převodník vybavený vzorkovacím kondenzátorem je impedance závislá na vzorkovací frekvenci. Pro nejpomalejší vzorkování mi bylo doporučeno použít rezistor 33k.+Při výpočtu děliče je důležité brát v potaz maximální impedanci děliče z pohledu analogového vstupu. U tohoto mikroprocesoru,​ kde je AD převodník vybavený vzorkovacím kondenzátorem je impedance závislá na vzorkovací frekvenci. Pro nejpomalejší vzorkování mi bylo doporučeno použít rezistor 33k. Dále je tento rezistor blokován kondenzíátorem,​ což opět snižuje impedanci v případě vzorkování.
  
 Pro rezistor 33k a maximálnímu měřenému napětí 3,3V odpovídá poměr 10k na 1V. Pokud vybereme tedy druhý rezistor děliče 560k, máme na něm úbytek 56V. Celkem tedy 59,3V. Toto je napětí, které lze maximálně měřit a odpovídá to napětí 14,825V na jeden akumulátor,​ což je příliš vysoké napětí. Maximální provozní napětí akumulátoru je 14,4V, což odpovídá při čtyřech zapojených v sérii 57,6V. Pro rezistor 33k a maximálnímu měřenému napětí 3,3V odpovídá poměr 10k na 1V. Pokud vybereme tedy druhý rezistor děliče 560k, máme na něm úbytek 56V. Celkem tedy 59,3V. Toto je napětí, které lze maximálně měřit a odpovídá to napětí 14,825V na jeden akumulátor,​ což je příliš vysoké napětí. Maximální provozní napětí akumulátoru je 14,4V, což odpovídá při čtyřech zapojených v sérii 57,6V.
  
-Maximální rozlišení poté bude 59,3V / 4094 = 14,5mV. Toto rozlišení plně postačuje pro monitoring olověného akumulátoru,​ kde postačí měření na stovky milivoltů.+Maximální rozlišení poté bude 59,3V / 4096 = 14,5mV. Toto rozlišení plně postačuje pro monitoring olověného akumulátoru,​ kde postačí měření na stovky milivoltů.
  
 Hodnota filtračních kondenzátorů pro napěťové děliče je možná příliš vysoká, ale vzhledem ke kapacitě měřených akumulátorů (200Ah) nevadí velké zpoždění reakce na změnu. Kapacita byla zvolena jednotná pro celé zapojení Hodnota filtračních kondenzátorů pro napěťové děliče je možná příliš vysoká, ale vzhledem ke kapacitě měřených akumulátorů (200Ah) nevadí velké zpoždění reakce na změnu. Kapacita byla zvolena jednotná pro celé zapojení
Řádek 85: Řádek 85:
 Analogově-digitální převodník pracuje v automatickém režimu měření deseti kanálů a referenčního zdroje napětí. Změřené hodnoty jsou opět pomocí DMA zapisovány do pole hodnot "​adcvalue" ​ Analogově-digitální převodník pracuje v automatickém režimu měření deseti kanálů a referenčního zdroje napětí. Změřené hodnoty jsou opět pomocí DMA zapisovány do pole hodnot "​adcvalue" ​
 AD převodník mikroprocesoru STM32 funguje tak, že při konfiguraci zvolíme, které vstupy chceme měřit a ty se měří cyklicky za sebou. Vše se děje automaticky,​ není potřeba ručně volit, který vstup se má změřit. vždy pokračuje na další. ​ AD převodník mikroprocesoru STM32 funguje tak, že při konfiguraci zvolíme, které vstupy chceme měřit a ty se měří cyklicky za sebou. Vše se děje automaticky,​ není potřeba ručně volit, který vstup se má změřit. vždy pokračuje na další. ​
-Jako poslední se měří vnitřní napěťová reference. Z této reference se pomocí kalibrační hodnoty, kterou do mikroprocesoru pevně nahrál výrobce vypočáítá ​aktuální napájecí napětí AD převodníku. Toto napětí posléze slouží jako referenční napětí pro AD převod měřených hodnot.+Jako poslední se měří vnitřní napěťová reference. Z této reference se pomocí kalibrační hodnoty, kterou do mikroprocesoru pevně nahrál výrobce, se vypočítá aktuální napájecí napětí AD převodníku. Toto napětí posléze slouží jako referenční napětí pro AD převod měřených hodnot.
 Tento přepočet je prováděn pomocí proměnných typu float z důvodu, že zde vychází velká čísla a výsledek dělení je desetinný. Mikroprocesor ale i s float proměnnými počítá velmi rychle, narozdíl od osmibitových mikroprocesorů. Tento přepočet je prováděn pomocí proměnných typu float z důvodu, že zde vychází velká čísla a výsledek dělení je desetinný. Mikroprocesor ale i s float proměnnými počítá velmi rychle, narozdíl od osmibitových mikroprocesorů.
 V následující ukázce kódu se vypíše na sériovou linku napětí prvního akumulátoru:​ V následující ukázce kódu se vypíše na sériovou linku napětí prvního akumulátoru:​
Řádek 103: Řádek 103:
 V poslední řadě se v hlavní nekonečné smyčce programu kontroluje, zdali napětí některého z akumulátorů nevybočuje z pevně nastavených mezí. V tomto případě se rozsvítí indikační LED pro daný akumulátor. V poslední řadě se v hlavní nekonečné smyčce programu kontroluje, zdali napětí některého z akumulátorů nevybočuje z pevně nastavených mezí. V tomto případě se rozsvítí indikační LED pro daný akumulátor.
  
-Na začátku kódu jsou defonovány ​hodnoty jak děliče, tak mezních napětí:+Na začátku kódu jsou definovány ​hodnoty jak děliče, tak mezních napětí:
 <code c> <code c>
 #define divider 23.0 #define divider 23.0
Řádek 145: Řádek 145:
 Při výrobě DPS v domácích podmínkách se mi nepodařilo vyvolat kvalitní předlohu pro výrobu, pravděpodobně mám už staré zásoby fotocitlivého kuprextitu a z tohoto důvodu jsem sestavil zařízení pomocí vývojového kitu a nepájivého pole. Při výrobě DPS v domácích podmínkách se mi nepodařilo vyvolat kvalitní předlohu pro výrobu, pravděpodobně mám už staré zásoby fotocitlivého kuprextitu a z tohoto důvodu jsem sestavil zařízení pomocí vývojového kitu a nepájivého pole.
  
-Při výrobě finálního výrobku je také třeba v progrtamu ​změnit hodnotu dělícího poměru, aktuální hodnota je vztažená k děliči 680k/33k, protože dané rezistory byly k dispozici ve vývodovém pouzdru. ​+Při výrobě finálního výrobku je také třeba v programu ​změnit hodnotu dělícího poměru, aktuální hodnota je vztažená k děliči 680k/33k, protože dané rezistory byly k dispozici ve vývodovém pouzdru. ​
  
 Funkce SW byla otestována na nepájivém kontaktním poli a pracuje spolehlivě. Na ukázkách jsou sice využity čtyři vstupy, ale postupně byly ověřeny všechny vstupy. ​ Funkce SW byla otestována na nepájivém kontaktním poli a pracuje spolehlivě. Na ukázkách jsou sice využity čtyři vstupy, ale postupně byly ověřeny všechny vstupy. ​
Řádek 151: Řádek 151:
 Zbylé dva kanály a dvě nevyužité LED jsou plánovány pro rozšíření funkce. Pomocí dvou kanálů budou měřena napětí obvodu 24V a 12V, ze kterého se napájí osvětlení. LED budou indikovat správnost těchto napětí. Zbylé dva kanály a dvě nevyužité LED jsou plánovány pro rozšíření funkce. Pomocí dvou kanálů budou měřena napětí obvodu 24V a 12V, ze kterého se napájí osvětlení. LED budou indikovat správnost těchto napětí.
  
-Další užitečné rozšíření bude aplikace ​jednoducháho ​filtru výstupu AD převodníku. Ačkoliv jsou vstupy filtrovány,​ tak příležitostně je změřena špatná hodnota, pravděpodobně vlivem rušení. Tato chyba se ale může vyskytovat taktéž z důvodu dlouhých přívodů a sestavení na nepájivém kontaktním poli.+Další užitečné rozšíření bude aplikace ​jednoduchého ​filtru výstupu AD převodníku. Ačkoliv jsou vstupy filtrovány,​ tak příležitostně je změřena špatná hodnota, pravděpodobně vlivem rušení. Tato chyba se ale může vyskytovat taktéž z důvodu dlouhých přívodů a sestavení na nepájivém kontaktním poli.
  
 **ZIP archiv se schematem a PCB v SW Eagle a zdrojovými kódy:** **ZIP archiv se schematem a PCB v SW Eagle a zdrojovými kódy:**
 +{{ :​2019:​monitor_pb:​mereni_solar_nucleo.zip |}}
  
 **Krátké video demonstrující funkci:** **Krátké video demonstrující funkci:**
 +https://​youtu.be/​7ZXOgswnDS0 
 +{{youtube>​7ZXOgswnDS0?​medium}}
  
 ===== Zdroje ===== ===== Zdroje =====
2019/accu-monitor.1579459933.txt.gz · Poslední úprava: 2020/01/19 19:52 autor: Milan Ambrož