mirror of
https://github.com/meshtastic/firmware.git
synced 2025-04-23 00:58:14 +00:00
Merge e535d17165
into 72dd5bd88d
This commit is contained in:
commit
4bc079df4c
@ -41,21 +41,38 @@ void RCWL9620Sensor::begin(TwoWire *wire, uint8_t addr, uint8_t sda, uint8_t scl
|
|||||||
|
|
||||||
float RCWL9620Sensor::getDistance()
|
float RCWL9620Sensor::getDistance()
|
||||||
{
|
{
|
||||||
uint32_t data;
|
uint32_t data = 0;
|
||||||
_wire->beginTransmission(_addr); // Transfer data to addr.
|
uint8_t b1 = 0, b2 = 0, b3 = 0;
|
||||||
_wire->write(0x01);
|
|
||||||
_wire->endTransmission(); // Stop data transmission with the Ultrasonic
|
|
||||||
// Unit.
|
|
||||||
|
|
||||||
_wire->requestFrom(_addr,
|
LOG_INFO("[RCWL9620] Envoi de la commande de mesure");
|
||||||
(uint8_t)3); // Request 3 bytes from Ultrasonic Unit.
|
|
||||||
|
_wire->beginTransmission(_addr);
|
||||||
|
_wire->write(0x01); // À tester aussi sans cette ligne si besoin
|
||||||
|
uint8_t result = _wire->endTransmission();
|
||||||
|
LOG_INFO("[RCWL9620] endTransmission result = %d", result);
|
||||||
|
delay(100); // délai pour laisser le capteur répondre
|
||||||
|
|
||||||
|
LOG_INFO("[RCWL9620] Lecture des données I2C...");
|
||||||
|
_wire->requestFrom(_addr, (uint8_t)3);
|
||||||
|
|
||||||
|
if (_wire->available() < 3) {
|
||||||
|
LOG_INFO("[RCWL9620] Moins de 3 octets reçus !");
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
b1 = _wire->read();
|
||||||
|
b2 = _wire->read();
|
||||||
|
b3 = _wire->read();
|
||||||
|
|
||||||
|
data = ((uint32_t)b1 << 16) | ((uint32_t)b2 << 8) | b3;
|
||||||
|
|
||||||
|
float Distance = float(data) / 1000.0;
|
||||||
|
|
||||||
|
LOG_INFO("[RCWL9620] Bytes lus = %02X %02X %02X", b1, b2, b3);
|
||||||
|
LOG_INFO("[RCWL9620] data=%.2f, mesure=%.2f",
|
||||||
|
(double)data,
|
||||||
|
(double)Distance);
|
||||||
|
|
||||||
data = _wire->read();
|
|
||||||
data <<= 8;
|
|
||||||
data |= _wire->read();
|
|
||||||
data <<= 8;
|
|
||||||
data |= _wire->read();
|
|
||||||
float Distance = float(data) / 1000;
|
|
||||||
if (Distance > 4500.00) {
|
if (Distance > 4500.00) {
|
||||||
return 4500.00;
|
return 4500.00;
|
||||||
} else {
|
} else {
|
||||||
@ -63,4 +80,5 @@ float RCWL9620Sensor::getDistance()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
Reference in New Issue
Block a user