OpenXSensor: RPM + DS1820 + Model_QID

Meranie teploty openXsensor (OXS) má už v základe. Je možné použiť LM35, prípadne nejaký NTC temistor, a pripojiť ich …  na analógové vstupy. Lenže ja som chcel digitálne meranie s DS18B20. Snímač otáčok motora je možné buď pripojením na budenie motora – a to nemeria otáčky pri voľnobehu – alebo bezkontaktne opticky, či magneticky. No a doplniť do OXS funkciu Model_QID som chcel, pretože prijímače D8R-II Plus – ktoré používam v modeloch – nemajú model ID, ako majú prijímače X-kovej rady.

1, Meranie teploty s DS18B20.

DS18B20 je digitálny teplotný snímač s rozlíšením 9 až 12 bit, meracím rozsahom -55°C až +125°C a rozlíšením až 0.0625°C. Datasheet je tu. Snímač na pripojenie potrebuje tri vodiče: zem, +5V a signál. Každý snímač má vlastnú unikátnu 64- bitovú adresu, snímače je možné zapájať paralelne, t.j. všetky na jednu zbernicu. Podľa FrSky Hub protokolu je možné merať najviac dve teploty s rozlíšením 1°C. K Arduinu sa pripája na pin č. 3. Medzi pin č.3 a +5V ( Vcc ) je nutné zapojiť odpor 4k7.  Vo vysielači majú teploty označenie Temp1 a Temp2.

Adresy oboch DS18B20 je treba prečítať cez address reader a zadať do openXsensor_20_RPM_DS1820_QID.ino, premenné Probe01Probe02.

Komentár k programu:

Pin 3 je definovaný v oXs_config_advanced.h, kapitola 12.

openXsensor_20_RPM_DS1820_QID.ino sú úpravy týkajúce sa merania teploty vyznačené kľúčovým slovom “DS1820”.

2, Meranie otáčok s TLE4905L.

Na meranie otáčok som použil unipolárnu hallovu sondu TLE4905L. Datasheek  k hall sonde je tu. Je treba dať pozor na polaritu magnetu, sonda reaguje len na – asi severný – pól. TLE4905L má výstup typu otvorený kolektor: do plusu som dal odpor 560ohm v sérii so zelenou LED, obe v SMD prevedení veľkosto 0805. Na Arduine je vstupom pin č. 8 – nie je možné zmeniť. Ako držiak som použil kúsok univerzálneho plošného spoja.

Magnety som použil tieto( typ VMM4-N35, kód 20102 ), priemer 4mm, výška 2mm. Pre heliny mám ešte v zásobe tieto( typ VMM5UH-N35UH, kód 20477 ), priemer 2mm, výška 3mm.

Dosah majú cca 3-4 mm, s TLE4905L chodia spoľahlivo. Držiak na motor som navrhol vo FreeCad a vytlačil na 3D tlačiarni. Magnety aj polohu držiaka na motore som zakvapol 5- minútovým Epoxy. Držiaky pre 28mm aj 35mm motor sú tu.

Pre FrSky protokoly parameter #define PULSES_PER_ROTATION 2 oXs_config_advanced.h program ignoruje. Do vysielačky posiela priamo frekvenciu v Hz, RPM z toho prepočítava OpenTX vo vysielačke.

3, Model_QID.

Čo je to Model_QID som popísal v tomto článku. V OXS je možné posielať Model_QID ako FUEL_LEVEL, alebo AccX.

openXsensor_20_RPM_DS1820_QID.ino sú úpravy týkajúce sa Model_QID vyznačené kľúčovým slovom “Model_QID”.

4, Procesorová doska.

Procesorovú dosku som použil štandardne Arduino Mini Pro. Z dosky som odspájkoval reset tlačidlo. Pre istotu 🙂

Stavba vyzerala nejako takto:

Zľava: prototyp RPM senzora, dva teplotné snímače s DS18B20, GPS, OpenXSensor.

Do modelov, kde treba šetriť každý gram v papierovom boxe:

5, Program.

Program je možné stiahnuť tu: openXsensor_20_RPM_DS1820_QID.

6, Skúšky.

Na skúšky som použil obľúbeného Suchoja:

Snímač Temp2 je pod akumulátorom ( vľavo ), Temp1 meria vonkajšiu teplotu ( vpravo od OXS ).

Zobrazenie na vysielačke.

Varovanie pre Model_QID:

Telemetrická obrazovka Suchoja:

No a nejaké logy z lietania:

Otáčky vs. odoberaný prúd.

Vonkajšia teplota ( Temp1 ) a teplota akumulátora ( Temp2 ).

7, Známe obmedzenia.

Pri skúške s prijímačom X6R dochádzalo pri súčasnom meraní teploty s DS18B20 a použití GPS k výpadkom z GPSky. Ďalšie skúšky s X8R budú pokračovať, keď mi príde prijímač, ktorý je t.č. na ceste.

8, Záver.

Funguje to. Ešte mám v pláne jednu fintu, ako pridať ďalšie dve merania teploty – teplota motora a teplota regulátora – ale to až keď bude čas 🙂

 

 

Tento obsah bol zaradený v Technika a označkovaný ako , , . Zálohujte si trvalý odkaz.

Pridaj komentár