Sensoren

Bezug nehmend auf: [HW] Sensors Module

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

Datentypen

  • ir_distance_sensor

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

  • a - Dividend.
  • b - Nicht-lineare Konstante.
  • k - Lineare Konstante.

Konstante

  • ir_distance_sensor GP2Y0A21YK

Sharp GP2Y0A21YK Formelparameter zur Entfernungsberechnung.

Funktionen

  • signed short thermistor_calculate_celsius(unsigned short adc_value)

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

  • adc_value - ADC Umrechnungsergebnis (10-Bit mit +5 V Referenzspannung).
  • Gibt die Temperatur mit Grenzwerten von -20 bis 100 °C an.
  • signed short ir_distance_calculate_cm(ir_distance_sensor sensor, unsigned short adc_value)

Berechnet die Entfernung von ADC Ergebnissen die vom IR-Entfernungssensor empfangene Spannung an. Parameter:

  • sensor - Kalkulationsparameter des Distanzsensors.
  • adc_value - ADC Umrechnungsergebnis (10-bit mit +5 V Referenzspannung).
  • 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 Auslöseimpuls an einem Pin und messen die Zeit bis zum 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 - Variable des auslösenden Pins.
  • echo - Variable des Echo-Pin variable.
  • Gibt Entfernung in cm an, oder 0 wenn Messung nicht möglich.

Beispiel

Nutzung des Infrarot- und Ultraschallentfernungssensors.

#include <homelab/module/sensors.h>
 
// Kontroll-Pins des Ultraschallentfernungssensors.
pin pin_trigger = PIN(G, 1);
pin pin_echo    = PIN(G, 0);
 
int main(void)
{
	unsigned short adc_value = 400; // zufälliges ADC Ergebnis.
	signed short distance;
 
	// Entfernungsberechnung des ADC Ergebnisses des IR-Entfernungssensors.
	distance = ir_distance_calculate_cm(GP2Y0A21YK, adc_value);
 
	// Messung mit Ultraschallentfernungssensor.
	distance = ultrasonic_measure(pin_trigger, pin_echo);
}
de/software/homelab/library/module/sensor.txt · Last modified: 2020/07/20 09:00 by 127.0.0.1
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