## 超声波距离传感器 ![](https://img.kancloud.cn/4f/91/4f91b631b316ac3b98e65ef88fe75e70_605x350.png) >注意:上图中面包板和超声波距离传感器可以不用杜邦线连接:直接把超声波传感器插入面包板,这里不过是为了演示更加清晰所以用了杜邦线。 用`DistanceSensor`类检测距离超声波距离传感器最近的物体: ~~~ from gpiozero import DistanceSensor from time import sleep sensor = DistanceSensor(23, 24) while True: print('Distance to nearest object is', sensor.distance, 'm') sleep(1) ~~~ ![](https://img.kancloud.cn/40/73/4073e3bfe3aeeafd0fad88f48d04aecb_349x144.png) >距离传感器有2个引脚: 一个是 **trigger** (marked TRIG on the sensor) ,一个是**echo**(marked ECHO on the sensor). ECHO引脚需要加一个分压电阻防止ECHO引脚5v电压损害树莓派. 按照下面说明连接距离传感器:    1.传感器GND引脚连接树莓派接地引脚  2.TRIG引脚连接到一个GPIO引脚。  3.ECHO引脚末端连接330Ω电阻。  4.GND引脚末端连接470Ω电阻。  5. 把电阻未连接的一端连接到其他GPIO引脚,这种形式需要分压器。    6.最后把创阿奇的VCC引脚接到树莓派5v引脚。 Alternatively, the 3V3 tolerant HC-SR04P sensor (which does not require a voltage divider) will work with this class. 为了让代码更具有可读性,还可以指定echo和trigger引脚分别连接到哪个引脚,如下图: ![](https://img.kancloud.cn/95/60/9560aac3b0b31e2918ff0a22958e57cf_422x152.png) ``` from gpiozero import DistanceSensor from time import sleep sensor = DistanceSensor(echo\=18, trigger\=17) while True: print('Distance: ', sensor.distance \* 100)     sleep(1) ``` 当超声波距离传感器探测到的距离小于特定值的时候,执行特定的函数。 ~~~ from gpiozero import DistanceSensor, LED from signal import pause sensor = DistanceSensor(23, 24, max_distance=1, threshold_distance=0.2) led = LED(16) sensor.when_in_range = led.on sensor.when_out_of_range = led.off pause() ~~~