User Tools

Site Tools


et:software:homelab:library:module:sensor

This is an old revision of the document!


Andurid

Seotud mooduliga: [HW] Andurite moodul

See teegi osa sisaldab Kodulabori andurite kasutamise funktsioone.

Andmetüübid

  • ir_distance_sensor
    Infrapuna-kaugusanduri kauguse arvutuse funktsiooni parameetrite struktuur. Kauguse arvutusvalem on a / (ADC + b) - k. Struktuuri liikmed:
    • a - jagatav.
    • b - vabaliige.
    • k - korrigeerimiskonstant.

Konstandid

  • ir_distance_sensor GP2Y0A21YK - Sharp GP2Y0A21YK kaugusanduri parameetrite struktuuri objekt.

Funktsioonid

  • signed short thermistor_calculate_celsius(unsigned short adc_value)

Termistori temperatuuri arvutamine Celsiuse kraadides ADC muunduri väärtusest. Funktsioon põhineb teisendustabelil. Parameetrid:

  • adc_value - ADC teisenduse väärtus.
  • Tagastab temperatuuri Celsiuse kraadides -20 kuni 100 kraadi piires.
  • signed short ir_distance_calculate_cm(ir_distance_sensor sensor, unsigned short adc_value)

IR kaugusanduri väljundpinge ADC väärtuse sentimeetriteks ümberarvutamise funktsioon. Parameetrid:

  • sensor - Kaugusanduri parameetrite struktuuri objekt.
  • adc_value - 10-bitine +5 V võrdluspingega ADC väärtus.
  • Tagastab kauguse sentimeetrites või -1, kui seda ei saanud arvutada.
  • unsigned short ultrasonic_measure(pin trigger, pin echo)

Ultraheli-kaugusanduri mõõtmise teostamise funktsioon. Funktsioon tekitab SRF04/SRF05 kaugusmõõdiku päästikuimpulsi ja mõõdab kajaimpulsi saabumise aega. Aja põhjal arvutatakse objekti kaugus. Mõõtmine võtab aega kuni 36 ms. Funktsioon eeldab 14.7456 MHz mikrokontrolleri taktsagedust. Parameetrid:

  • trigger - päästiku viigu muutuja.
  • echo - kaja viigu muutuja.
  • Tagastab kauguse sentimeetrites või 0, kui mõõtmine ebaõnnestus.

 

Näide

#include <homelab/module/sensors.h>
 
// Ultraheli kaugusmõõdiku juhtviigud
pin pin_trigger = PIN(G, 1);
pin pin_echo    = PIN(G, 0);
 
int main(void)
{
	unsigned short adc_value = 400; // näidisväärtus
	signed short distance;
 
	// IR kaugusanduri ADC väärtuse sentimeetriteks teisendamine
	distance = ir_distance_calculate_cm(GP2Y0A21YK, adc_value);
 
	// Ultraheli-kaugusanduriga mõõtmine
	distance = ultrasonic_measure(pin_trigger, pin_echo);
}
et/software/homelab/library/module/sensor.1321541326.txt.gz · Last modified: (external edit)