Das AH49E ist ein kleines, vielseitiges und lineares Halleffekt Gerät, das durch das Magnetfeld eines Permanentmagneten oder eines Elektromagneten betrieben wird. Die Ausgangsspannung wird durch die Versorgungsspannung eingestellt und variiert proportional zur Stärke des Magnetfeldes. Die integrierte Schaltung zeichnet sich durch ein geringes Ausgangsrauschen aus, was den Einsatz einer externen Filterung überflüssig macht. Es besitzt Präzisionswiderstände für eine erhöhte Temperaturstabilität und Genauigkeit. Der Betriebstemperaturbereich dieser linearen Hallsensoren liegt bei -40°C bis +85°C, geeignet für kommerzielle, private und industrielle Anwendungen.

Der Sensor gibt über seinen Ausgang ein analoges Spannungssignal aus, welches die Stärke des Magnetfelds angibt.

Technische Daten

Chipsatz AH49E
Rauscharmer Ausgang macht eine Filterung praktisch überflüssig
Reagiert auf positive und negative Gauss (Gauss ist die Einheit in welcher Magnetische Kraft gemessen wird.)
Messbereich -40°C bis 85°C
Stromverbrauch 3.5mA bei 5V

Pin-Belegung

Codebeispiel Arduino

Anschlussbelegung Arduino

Arduino Sensor
Pin A5 Signal
5V +V
Masse GND

Das Programm misst den aktuellen Spannungswert am Sensor, berechnet aus diesen und dem bekannten Serienwiderstand den aktuellen Widerstandswert des Sensors und gibt die Ergebnisse auf der seriellen Ausgabe aus.

int sensorPin = A5; // Hier wird der Eingangs-Pin deklariert
 
// Serielle Ausgabe in 9600 Baud
void setup()
{
    Serial.begin(9600);
}
 
// Das Programm misst den aktuellen Spannungswert am Sensor,
// berechnet aus diesen und dem bekannten Serienwiderstand den aktuellen
// Widerstandswert des Sensors und gibt die Ergebnisse auf der serielle Ausgabe aus
 
void loop()
{      
        // Aktueller Spannungswert wird gemessen...
    int rawValue = analogRead(sensorPin);
        float voltage = rawValue * (5.0/1023) * 1000;
         
        float resitance = 10000 * ( voltage / ( 5000.0 - voltage) );
         
    // ... und hier auf die serielle Schnittstelle ausgegeben
    Serial.print("Spannungswert:"); Serial.print(voltage); Serial.print("mV");
    Serial.print(", Widerstandswert:"); Serial.print(resitance); Serial.println("Ohm");
    Serial.println("---------------------------------------");
 
    delay(500);
}

Beispielprogramm Download

KY035-Arduino.zip

Codebeispiel Raspberry Pi

Programmierbeispiel in der Programmiersprache Python

Anschlussbelegung Raspberry Pi

Raspberry Pi Sensor
KY-053 A0 Signal
3,3V [Pin 1] +V
Masse [Pin 6] GND
Sensor KY-053
Signal A0
Raspberry Pi KY-053
GPIO 3 [Pin 5] SCL
Gpio 2 [Pin 3] SDA
3,3V [Pin 17] +V
Masse [Pin 14] GND

Analoger Sensor, daher muss folgendes beachtet werden

Der Raspberry Pi besitzt im Gegensatz zum Arduino keine analogen Eingänge bzw. es ist kein ADC (analog digital Converter) im Chip des Raspberry Pi's integriert. Dies schränkt den Raspberry Pi ein, wenn man Sensoren einsetzen möchte, wo nicht digital Werte ausgegeben werden [Spannungswert überschritten -> digital EIN | Spannungswert unterschritten -> digital AUS | Beispiel: Knopf gedrückt [EIN] Knopf losgelassen [AUS]], sondern es sich hier um einen kontinuierlichen veränderlichen Wert handeln sollte (Beispiel: Potentiometer -> Andere Position = Anderer Spannungswert)

Um diese Problematik zu umgehen, besitzt unser Sensorkit X40 mit dem KY-053 ein Modul mit 16 Bit genauen ADC, welches Sie am Raspberry nutzen können, um diesen um 4 analoge Eingänge erweitern zu können. Dieses wird per I2C an den Raspberry Pi angeschlossen, übernimmt die analoge Messung und gibt den Wert digital an den Raspberry Pi weiter.

Somit empfehlen wir, bei analogen Sensoren dieses Sets das KY-053 Modul mit dem besagten ADC dazwischenzuschalten. Nähere Informationen finden Sie auf der Informationsseite zum KY-053 Analog Digital Converter

Das Programm nutzt zur Ansteuerung des ADS1115 ADC die entsprechenden ADS1x15 und I2C Python-Libraries von Adafruit. Diese wurden unter dem folgenden Link https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15 unter der MIT-Lizenz veröffentlicht. Die benötigten Libraries sind nicht im unteren Download-Paket enthalten.

Bitte beachten Sie das Sie vor der benutzung dieses Beispiels I2C auf ihrem Raspberry Pi aktivieren müssen.

#!/usr/bin/python
# coding=utf-8

import time
import board
import busio
import adafruit_ads1x15.ads1115 as ADS
from adafruit_ads1x15.analog_in import AnalogIn

# Create the I2C bus
i2c = busio.I2C(board.SCL, board.SDA)

# Create the ADC object using the I2C bus
ads = ADS.ADS1115(i2c)
voltageMax = 3.3
# Create single-ended input on channels
chan0 = AnalogIn(ads, ADS.P0)
chan1 = AnalogIn(ads, ADS.P1)
chan2 = AnalogIn(ads, ADS.P2)
chan3 = AnalogIn(ads, ADS.P3)



while True:
    resistance = chan0.voltage / (voltageMax - chan0.voltage) * 10000

    print("Spannungswert: ",'%.2f' % chan0.voltage,"V, Widerstand: ",'%.2f' % resistance, "Ω")
    print("---------------------------------------------------")
    time.sleep(1)

Beispielprogramm Download

KY035-RPi.zip

Zu starten mit dem Befehl:

sudo python3 KY035.py

Codebeispiel Micro:Bit

Anschlussbelegung Micro:Bit:

Micro:Bit Sensor
Pin 1 Signal
3V +V
Masse GND

Hierbei handelt es sich um ein MakeCode Beispiel für Micro:Bit welches essenziel das gleiche macht wie die Beispiele der anderen beiden Varianten. Jedoch ist dieses Beispiel eher näher an das Beispiel des Raspberry Pi angelehnt als an das Beispiel des Arduino.

Beispielprogramm Download

microbit-KY-035