Hirdetés

Új hozzászólás Aktív témák

  • Teasüti

    nagyúr

    Miért van az, hogy az alábbi 3 soros kód részlet - hőmérséklet olvasása MPU6050-ről - nem fut le a setup()-ban (rawData[ ] nem tartalmaz semmit), míg a loop()-ban igen?

    szerk: nem aktuális, delay megoldotta.
    Gondolom a szenzor reset után még nem volt adat, mikor olvasott az Uno. :F

    //temperature from MPU6050
    Serial.println(readTempData());
    Serial.print(float(readTempData()/340.0 + 36.53), 2);
    Serial.println(" °C");

    int16_t readTempData()
    {
    uint8_t rawData[2]; // x/y/z gyro register data stored here
    readBytes(MPU6050_ADDRESS, TEMP_OUT_H, 2, &rawData[0]); // Read the two raw data registers sequentially into data array
    Serial.println(rawData[0], BIN);
    Serial.println(rawData[1], BIN);
    return ((int16_t)rawData[0]) << 8 | rawData[1] ; // Turn the MSB and LSB into a 16-bit value
    }

    void readBytes(uint8_t address, uint8_t subAddress, uint8_t count, uint8_t * dest)
    {
    Wire.beginTransmission(address); // Initialize the Tx buffer
    Wire.write(subAddress); // Put slave register address in Tx buffer
    Wire.endTransmission(false); // Send the Tx buffer, but send a restart to keep connection alive
    uint8_t i = 0;
    Wire.requestFrom(address, count); // Read bytes from slave register address
    while (Wire.available()) {
    dest[i++] = Wire.read();
    } // Put read results in the Rx buffer
    }

Új hozzászólás Aktív témák