This is an old revision of the document!


Sensoren

Related to: [HW] Sensors Module

Diese Bibliothek enthält Funktionen für die verschiedenen Sensoren im HomeLab Kit.

Datentypen

  • ir_distance_sensor

Infrarotentfernungsmesser Distanzberechnungs.Parameterstruktur. Formel für die Entfernungsberechnung ist a / (ADC + b) - k. Struktur:

  • a - Dividend.
  • b - Non-linear constant.
  • k - Linearizing constant.

Konstante

  • ir_distance_sensor GP2Y0A21YK

Sharp GP2Y0A21YK Entfernungsberechnungs-Formelparameter.

Funktionen

  • signed short thermistor_calculate_celsius(unsigned short adc_value)

Berechnet die Thermistor Temperatur in Grad Celcius aus ADC Konversionsergebnissen. Die Funktionen benutzen eine vorgefertigte Konversionstabelle. Parameter:

  • adc_value - ADC conversion result (10-bit with +5 V reference voltage)..
  • Gibt die Temperatur mit Grenzwerten von -20 to 100 °C an.
  • signed short ir_distance_calculate_cm(ir_distance_sensor sensor, unsigned short adc_value)

Berechnet die Entfernung von ADC Ergebnissen die von der IR-Entfernungsmesserspannung empfangen wurde. Parameter:

  • sensor - Distance sensor calculation parameters.
  • adc_value - ADC konversions Ergebnis (10-bit mit +5 V Vergleichsspannung).
  • Gibt die Entfernung in cm an, oder -1 wenn eine Messung nicht möglich ist.
  • unsigned short ultrasonic_measure(pin trigger, pin echo)

Misst die Entfernung mit dem Ultraschallentfernungsmesser. Die Funktionen generieren einen Triggerpuls an einem Pin und messen die Zeit des Echopulses am anderen Pin. Die Entfernung wird über die Zeit berechnet. Die Funktionen benötigen eine 14.7456Mhz Taktfrequenz. Die Messung kann bis zu 36ms dauern. Parameter:

  • trigger - Trigger pin variable.
  • echo - Echo pin variable.
  • Gibt Entfernung in cm an, oder 0 wenn Messung nicht möglich.

Beispiel

Das folgende Programm demonstriert die Benutzung des IR und Ultraschallentfernungsmessers.

#include <homelab/module/sensors.h>
 
// Ultrasonic distance sensor control pins.
pin pin_trigger = PIN(G, 1);
pin pin_echo    = PIN(G, 0);
 
int main(void)
{
	unsigned short adc_value = 400; // random ADC result.
	signed short distance;
 
	// Distance calculation from IR distance sensor ADC result.
	distance = ir_distance_calculate_cm(GP2Y0A21YK, adc_value);
 
	// Measuring with ultrasonic distance sensor.
	distance = ultrasonic_measure(pin_trigger, pin_echo);
}
de/software/homelab/library/module/sensor.1288347181.txt.gz · Last modified: (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0