def get_distance(): GPIO.output(TRIG, False) time.sleep(0.05) GPIO.output(TRIG, True) time.sleep(0.00001) GPIO.output(TRIG, False)
Actual distance = Measured distance * (343.0 / sqrt(331.3 * (1 + T_celsius/273.15))) | Parameter | Conditions | Value | |-----------|------------|-------| | Supply voltage | Absolute max | 5.5V | | Supply voltage | Operating | 4.5V – 5.5V | | Logic input low | Trig, EN | < 0.8V | | Logic input high | Trig, EN | > 2.0V (3.3V compatible) | | Echo output low | IOL = 2mA | < 0.4V | | Echo output high | IOH = 2mA | > 4.0V (5V logic) | | Output impedance | - | 100 Ω | aj sr04m datasheet
Some versions have a 5th pin (EN – Enable), but standard 4-pin is most common. If present, tie EN to VCC to enable. Wiring Example (Arduino): AJ-SR04M → Arduino Uno VCC → 5V Trig → Digital Pin 9 Echo → Digital Pin 10 GND → GND 3. Theory of Operation & Timing Diagram The AJ-SR04M uses the same timing protocol as HC-SR04, but with improved signal conditioning for longer cable runs. def get_distance(): GPIO
// Add 1kΩ resistor from Echo to ESP32 pin, and 2kΩ from pin to GND. // Then code same as Arduino but use pulseIn() or interrupts. 10.3 Raspberry Pi (Python) import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) TRIG = 23 ECHO = 24 GPIO.setup(TRIG, GPIO.OUT) GPIO.setup(ECHO, GPIO.IN) Theory of Operation & Timing Diagram The AJ-SR04M
while GPIO.input(ECHO) == 0: pulse_start = time.time() while GPIO.input(ECHO) == 1: pulse_end = time.time()
Copyright © 2026 fzmoviesy.com