Hardwarenahe Programmierung

You are viewing an older revision! See the latest version

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

lm75b.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 LM75B Sample Code für Arduino auf Github.

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