HP203B Druck Sensor I2C

OP #4089729
Lesenswert?
• ▲
▼
Ich habe einen HP203B Druck Sensor und möchte ihn über I2C auslesen.
Leider habe ich keine Lib für Arduino gefunden.

Die Adresse vom Sensor ist 0x76

Hier sind die Datenblätter: 
http://www.hoperf.com/upload/sensor/HP203B_ProductDevelopmentGuid_EN_V2.0.pdf
http://www.hoperf.com/upload/sensor/HP203B_DataSheet_EN_V2.0.pdf


Könnte mir bitte jemand helfen den Sensor auszulesen?
OP #4089765
Lesenswert?
• ▲
▼
1
#include <Wire.h>
2
byte val0 = 0;
3
byte val1 = 0;
4
byte val2 = 0;
5
byte address = 76;
6

7
void setup() {
8
  Serial.begin(9600);
9
  delay(100);
10
  Wire.begin();
11
  //Do some setup for the sensor
12
  // Set the resolution of the measurement
13
  Wire.beginTransmission(address);
14
  // point to Configuration Register
15
  Wire.write(0x06);
16
  // ends the command
17
  Wire.endTransmission();
18

19
  delay(100);
20

21
}
22

23
void loop() {
24
  // points to the Temperature Register
25
  Wire.beginTransmission(address);
26
  Wire.write(0x32);
27

28
  // Receives data from the Temperature Register
29
  Wire.requestFrom(address, byte(3));
30
  val0 = Wire.read();
31
  val1 = Wire.read();
32
  val2 = Wire.read();
33

34
  Wire.endTransmission();
35
  Serial.println(val0);
36
  Serial.println(val1);
37
  Serial.println(val2);
38
  Serial.println("");
39
  delay(500);
40
}
41
///////////////////////////////////////////////////

Naja ich kann die Adresse des Sensors lesen.
Nur bekomm ich ihn nicht initialsiert und auch keine Werte raus.
OP #4089835
Lesenswert?
• ▲
▼
Meine Implementierung:
1
#include <Wire.h>
2
byte val0 = 0;
3
byte val1 = 0;
4
byte val2 = 0;
5
byte val3 = 0;
6
byte val4 = 0;
7
byte val5 = 0;
8
byte address = 0x76;
9

10
void setup() {
11
  Serial.begin(9600);
12
  Serial.println("START");
13
  delay(100);
14
  Wire.begin();
15

16
  Wire.beginTransmission(address);
17
  Wire.write(0x48);
18
  Wire.endTransmission();
19

20
  delay(40);
21

22
  Wire.beginTransmission(address);
23
  Wire.write(0x10);
24
  Wire.endTransmission();
25

26
}
27

28
void loop() {
29

30

31

32
  Wire.requestFrom(address, 6);    // request 6 bytes from slave device #2
33

34
  while (Wire.available())   // slave may send less than requested
35
  {
36
    byte c = Wire.read();    // receive a byte as character
37
    Serial.print(c);         // print the character
38
    Serial.print(",");         // print the character
39
  }
40
  Serial.println("");
41
  delay(500);
42
}

Ist ja soweit richtig oder?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.