我刚买了一个 Arduino Nano 33 BLE ( https://store.arduino.cc/products/arduino-nano-33-ble-with-headers )。我想从 DYPA02YYxx 传感器(https://github.com/riteshRcH/waterproof_small_blind_ultrasonic_sensor_DYP-A02YYxx_v1.0/tree/master/photos)读取超声波距离测量值。
以前,我将 Arduino Nano 用于相同目的,并使用了完美运行的代码:https ://github.com/riteshRcH/waterproof_small_blind_ultrasonic_sensor_DYP-A02YYxx_v1.0/blob/master/code/arduino/DYPA02YYUM_v1_arduino_uno_code/DYPA02YYUM_v1_arduino_uno_code.ino
我的主要问题是 Arduino Nano 33 BLE 上没有 SoftwareSerial.h 可用。因此,我不知道应该为四根线使用哪个引脚并触发测量。
我在这里尝试了建议,但没有运气:
- Arduino Nano 33 IoT 的软件序列号
- Arduino Nano 33 BLE GPS
- https://docs.arduino.cc/tutorials/nano-33-ble-sense/UART
当我调用它来触发测量时,这段代码卡住了。似乎 println 是一个阻塞调用。
UART sensor(digitalPinToPinName(3), digitalPinToPinName(4), NC, NC);
sensor.println("get"); // The execution blocks here
if (sensor.available()) { // I never reach this point
Serial.println(sensor.read());
}
我也试过这个来触发但没有效果:
void trigger(){
digitalWrite(3, LOW);
delayMicroseconds(2);
digitalWrite(3, HIGH);
delayMicroseconds(10);
digitalWrite(3, LOW);
}
它应该是一个简单的 UART 通信。我做错了什么?