Arduino Analog in/out 0-10V ...

Odpovědět
beo
Příspěvky: 3
Registrován: 02 pro 2017, 19:47
Reputation: 0

Arduino Analog in/out 0-10V ...

Příspěvek od beo » 02 pro 2017, 20:21

Zdravím všechy,

dostal jsem zadání na levné vytvoření ovládání pro vzduchotechniku, narazil jsem však na několik výzev a chtěl bych Vás zde poprosit o radu. Jen pro začátek, motory a čidla už jsou dána a nelze je měnit.

1.) Veškeré analogové řízení u motorů a zpět u senzorů a ovládání je 0-10V - jak jednoduše a elegantně pořešit tuto nekompatibilitu? Žádný shield co by toto řešil jsem nenašel. Mé řešení je následující, ale pokud existuje jednoduší a snažší tak budu moc rád:

- Analog INPUT: přes napěťový dělič R1=R2=10K
Obrázek

- Analog OUTPUT: přes tranzistor
Obrázek

2.) Protože pro řešení problému s výstupem z analogu 0-10V musím mít napětí 12V, tak pro napájení Arduina Uno používám externí zdroj 12V/1A a chci se zeptat, jestli mohu toto napětí vzít pro zbytek obvod např. z Vin? Případně ze kterého Pinu?

3.) Teplotní čidla jsou na bázi PTC termistoru, tedy 100 ohmu pri 0°C - což je docela masakr, je třeba použít opět nějaký dělič? Pokud toto připojím napřímo, tak by proud byl 50mA. Nějaké elegantnější řešení?



Moc díky za pomoc
Honza

Wojta
Příspěvky: 184
Registrován: 22 črc 2017, 16:39
Reputation: 0

Re: Arduino Analog in/out 0-10V ...

Příspěvek od Wojta » 02 pro 2017, 22:43

Řekl bych že ty dvě zapojení co tu máte se asi o moc vylepšit nedají. Napěťový dělič je elegantní a pro tenhle účel stopro postačí. Akorát bych možná přidal ochranné diody na výstup děliče kdyby se tam přece jen objevilo větší napětí než 5V.

Řekl bych že tranzistor je taky asi to nejjednodušší co jde.
S Vin pinem to jde. Je přes diodu připojený na zdroj takže tam nebude úplně 12V a budete si muset dávat trochu pozor na proud diodou ale jinak by to mělo být OK.

No a to stoohmový čidlo je trochu oříšek. Jakou přesnost potřebujete? Jak je čidlo zapojené? Jak dlouhý vodič? Tady bude hrát roli opravdu vše. Některá čidla (PT100..) mají dokonce vodič který slouží jako kompenzace. Změří se odpor vodiče a ten se pak odečte aby byl výsledek ještě přesnější. Taky by se to asi také nejlépe řešilo děličem jak píšete. Kdyby tím teklo 50mA, zahříval by termistor sám sebe :). Rezistor děliče by ale musel mít dobrou toleranci a i zdrojové napětí by muselo být docela přesné. To vše záleží na vyžadované přesnosti.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Arduino Analog in/out 0-10V ...

Příspěvek od pavel1tu » 03 pro 2017, 09:58

Také nemám výhrady, ale pokud to bude na profi nasazení, tak je to celé naprd....
Pohybuji se již 20 let v průmyslu a jinde, kam nasazujeme své věci (ne arduina, ty mám s dětmi na hraní) - všude ale všude se musí počítat s rušením, možným přetížením.
Tudíž tu bude potřeba filtrace, ochrana proti přetížení.

Co tu nepíšeš u těch 10V ustupů, jakou potřebuješ přesnost, v jakém prostředí to bude (změny teplot), odporový dělič je super, ale jaké rozmezí napětí budeš snímat, jiný proud poteče při 1V a jiný při 10V, odporové děliče(pokud potřebuješ přesnost) se VŽDY počítají i s odporem vstupu a počítají se i proudy, pak opravdu spočítáš jak bude fungovat - rozhodně to nebude logaritmické....

PT100 jsem tu již řešil (problém je těch 100 OHM), záleží jak přesnou hodnotu ptřebuješ, pak jak bude dlouhý kabel. já to kdysi řešil s HX711, je mnoho zapojení, a pokud bude kabel dlouhý, ale vede uvnitř budovy, kompenzace vedení se jen "nakalibruje" v ACčku (nebo arduinu) a je to. U měření na 0,1stC se musí zapojit a počítat kompenzace kabelu, nejlepší profi převodníky používají dokonce 4 vodičové zapojení.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

beo
Příspěvky: 3
Registrován: 02 pro 2017, 19:47
Reputation: 0

Re: Arduino Analog in/out 0-10V ...

Příspěvek od beo » 04 pro 2017, 17:18

Moc děkuji za odpovědi, projdu si to ještě vše jednou a pouvažuji jak to pořešit. Prostředí by mělo být kancelářské. Případně můžeme arduino zalít do pryskyřice.

Přidávám tedy další specifikace.

Teplotní čidla jsou následující + SMOKE senzor:
SENSIT PTS150-2m - Pt100/3850 (http://marcomplet.cz/docs/Sensit/sensit ... abelem.pdf)
SENSIT MINI P 120-70 - Pt 100/3850 (http://marcomplet.cz/docs/Sensit/sensit_MINI.pdf)
AE-1: čidlo znečištění vzduchu AS10-SMOKE (0-10 V) - zde je případ čtení napěti 0-10V, odráží míru znečištění

U teplotních čidel max 10metrů kabel, nejspíš nezáleží tolik na přesnosti a 0,1C bude naprosto dostačující. Podle čidel pojedou motory.

Motory
M-1, M-2: ventilátor CK315C (230 V, 334 W, 1,46 A, 2400 min-1) - půjde to přes frekvenční měniče (pokud jsem pochopil spravně)
M-3: servo BELIMO LR24A-SR / 5Nm / 0-10V (AC/DC 24 V, 2 VA)

Zde jsou případy ovládání motorů přes napětí 0-10V, u M1-M2 přes frekvenční měnič půjde o výkon, M3 je servo které bude nastavovat pozici ramena 0-100% opět pomocí 0-10V.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 44 hostů