Hardwarenahe Programmierung

ESP32 LM75B Programmierung

Die mbed I2C Programmierung wird an Hand des Temperatursensors LM75B am ESP32 über das AddOn Board PBPCB1 für das mbed-Application-Board und die Arduino IDE gezeigt (es werden die Default GPIO verwendet: SDA 21, SCL 22):

mbedEsp32S_LM75B_I2C.ino

#include <Wire.h>

#define LM75B_address 0x48          // A0=A1=A2=Low
#define temp_reg      0x00          // Temperture register
#define conf_reg      0x01          // Configuration register

double temp = 0.0;
 
void setup()
{   
  Wire.begin();
  Serial.begin(115200);

  Wire.beginTransmission(LM75B_address);
  Wire.write(temp_reg); 
  Wire.endTransmission();
}
 
void loop()
{
  delay(500);

  Wire.requestFrom(LM75B_address, 2);           
  double tmp = (double((Wire.read()<<8)|Wire.read()) / 256.0);
  Serial.println(tmp);
}
  • Zeile 11: Initialisiert die Bibliothek und meldet den ESP32 mit der angegebenen Adresse am I²C-Bus an.
  • Zeile 14: Bereitet eine Datenübertragung an das Gerät mit der angegebenen Adresse vor.
  • Zeile 15: Anschließend werden die zu übertragenden Daten mit einem oder mehreren Wire.write()-Befehl(en) in einen Puffer geschrieben.
  • Zeile 16: Mit dem Aufruf von Wire.endTransmission() werden die Daten übertragen.
  • Zeile 23: Fordert vom angegebenen Gerät bzw. der Adresse die angegebene Anzahl von Bytes an (hier: 2).
  • Zeile 24: Erfolgt die Zusammensetzung des Temperaturwertes analog zum Datenblatt bzw. mbed Programm
  • Zeile 25 gibt den Temperaturwert über die serielle Schnittstelle aus.

Siehe auch

So wie es beim mbed System die LM75B-Bibliothek gibt, werden auch im Arduino System dafür z.B. die Temperature_LM75_Derived-Bibliothek, die auch über die Arduino-IDE eingebunden werden kann: Files->Examples->I2C_Temperature_Sensors_derived_from_the_LM75->BasicUsage.

ESP32-LM75B-Bibliothek


All wikipages