Ultrazvukový snímač vzdálenosti

Dotazy na technické problémy, vlastní řešení technických problémů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
Anton
Příspěvky: 15
Registrován: 05 lis 2015, 00:00

Ultrazvukový snímač vzdálenosti

#1 Příspěvek od Anton »

Chci měřit výšku hladiny v nádrži pomocí ultrazvukového snímače.
Vlastním snímač HC-SR04.
http://www.electrodragon.com/w/HC-SR04_Ultrasonic_sensor
Signál potřebuji dostat do kontroléru simatic S7-1200.
Na vstup snímače se přivede triggerovací pulz nejméně 10 us a v závislosti na vzdálenosti odešle výstupní pulz.
Jenže signál ze snímače nese informaci v podobě délky pulzu, jež je extrémně krátká. Distance = High level time * sound velocity (340M / S) / 2. Tohle nemá kontrolér šanci měřit natož s nějakou přesností.

Délku pulzu potřebuji převést na analogovou hodnotu. Napadlo mě periodicky triggerovat a výstupní signál převést na střední hodnotu nebo po dobu trvání výstupního pulzu nabíjet kondenzátor a změřit na jaké napětí se nabil. Stačí mi měřit rozsah 5 cm až 35 cm s rozlišením klidně jen 2 cm.

Máte prosím nějaké jednoduché návrhy jak to řešit a technicky provést?

Děkuji za pomoc
Uživatelský avatar
Ruprecht
Příspěvky: 1494
Registrován: 28 zář 2005, 00:00
Bydliště: ZČ + JM

#2 Příspěvek od Ruprecht »

S7-1200 neznám, ale podle popisu na webu mají CPU nějaké čítače 30kHz nebo 100kHz podle typu.
5cm odpovídá 290us, 35cm odpovídá 2ms délky log.1 z čidla. 30kHz čítač má rozlišení 33us, což odpovídá asi 0,5cm. Při 100kHz čítači je rozlišení 10us (tedy asi 2mm hladiny).
Při log.1 z čidla čítač spustím, při log.0 přečtu hodnotu a zastavím. Ale opravdu netuším, jak rychlá je reakce S7-1200 CPU při změně vstupu (interrupt?)...

Pokud jsou reakce S7 pomalé, řešil bych to úplně stejně čítačem/timerem ale v nějakém malém externím jednočipu
Když promluví, tak buď kňučí, nebo lže.
Uživatelský avatar
hafca
Příspěvky: 4723
Registrován: 27 črc 2004, 00:00
Bydliště: 25km na západ od Prahy

#3 Příspěvek od hafca »

Kdybys neměl požadavek na výstup na simatic S7-1200, řešení by možná bylo hotové. Vyšlo v Elektoru 12/2014, je tam použité stejné čidlo, ale je to autonomní jednotka i s displejem. Je k tomu HEX i zdrojový kód.
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
Uživatelský avatar
ringojr
Příspěvky: 31
Registrován: 25 dub 2015, 00:00

#4 Příspěvek od ringojr »

Nejlevnější a nejrychlejší řešit přes Arduino. Pro čtení čidla existují knihovny a funguje to spolehlivě(odzkoušeno). A výstup pak lze realizovat podle libosti - buď převod na analog pomocí PWM či udělat vlastní šířkově modulovaný výstup jen pomoní WAIT funkcí.
Odpovědět

Zpět na „Poradna“