Mehrere BH1750

OP #5377598
Lesenswert?
• ▲
▼
Hallo zusammen
Ich würde gerne mehrere Lichtsensoren des Typs BH1550 mit dem Arduino 
auslesen und auf dem LCD anzeigen.
Die Idee dahinter ist eine Messwand für die Lumenmessung für Projektoren
dazu müsste ich 9 Messpunkte aufzeichnen und dann den querschnitt der 
Messungen machen
desweiteren muss ich dann die lux in Lumen umrechnen.
in erster linie gehts mir darum 9 Sensoren auszulesen und jeweils im 
seriell monitor anzuzeigen.
Kennt sich da jemand aus?

1
#include <AS_BH1750.h>
2
#include <Wire.h>
3
#include <Adafruit_RGBLCDShield.h>
4
#include <math.h>
5

6
/*
7
* LightMeter_LCD
8
* BH1750:
9
* Sensor SCL pin an A5
10
* Sensor SDA pin an A4
11
* Sensor VDD pin an 5V
12
* Sensor GND pin an GND
13
* Sensor ADDR pin frei
14
*/
15

16
AS_BH1750 lightMeter;
17

18
// Setup LCD-Shield
19
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
20

21
void setup() {
22
  // Display initialisieren
23
  lcd.clear();
24
  lcd.begin(16, 2); // 16x2 Zeichen
25
  lcd.setCursor(0,0);
26
  lcd.print("LightMeter v1.0");
27
  lcd.setCursor(0,1);
28
  lcd.print("Initializing...");
29
  delay(1000);
30
  lcd.clear();
31

32
  if(!lightMeter.begin()){
33
    // Prüfen, ob Sensor vorhanden ist
34
    lcd.clear();
35
    lcd.setCursor(0,0);
36
    lcd.print("BH1750 not found");
37
    lcd.setCursor(0,1);
38
    lcd.print("check wiring!");
39
    while (1) {
40
      delay(1000);
41
    }
42
  }
43

44
}
45

46
void loop() {
47
  char clux[9];
48

49
  // Werte auslesen und aufbereiten
50
  float lux = lightMeter.readLightLevel();
51
  dtostrf(lux, 8, 1, clux);
52

53
  lcd.setCursor(0,0);
54
  lcd.print("Light level: ");
55
  lcd.setCursor(5,1);
56
  lcd.print(clux);
57
  lcd.print(" lx");
58

59
  delay(500);
60
}
Gast #5377713
Lesenswert?
• ▲
▼
Andreas K. schrieb:
> Ist das nicht ein Normales shiftregister?
> Von denen hätte ich noch welche rumliegen.

Nö, ein Analog-Multiplexer.

Andreas K. schrieb:
> Ich habe auch irgendwo gelesen dass der Adresspin auf HIGH gesetzt
> werden muss.

Vermutlich im Datenblatt...
Entweder gegen GND oder gegen "+" schalten. Dadurch kann man zwei 
Bausteine an einem Bus betreiben.
Man könnte also mit einem vierfach I²C-Multiplexer zumindest 8 Bausteine 
betreiben.
Gast #5377722
Lesenswert?
• ▲
▼
Das Datenblatt:
http://www.mouser.com/ds/2/348/bh1750fvi-e-186247.pdf

Andreas K. schrieb:
> Ok. was macht denn der muiplexer

Google das mal bitte selber. Oder guck ins Wikipedia.

Andreas K. schrieb:
> Oder sollte ich etwas andere Hardware organisieren RasPY oder ähnliches?

Du hast das Problem nicht verstanden, oder?
Du brauchst nicht nur einen I²C-Bus, sondern 4-9, je nach gewählter 
Ansteuerung.
Gast #5380807
Lesenswert?
• ▲
▼
Ein TCA9548A wäre solch ein 1 zu 8 I2C-Multiplexer.
Den gibt es auch als kleines Breakout Board für den Arduino.
Pro Ausgangsport des TCA9548A kannst du dann zwei BH1750 anschließen.
Einen davon mit Adresspin auf LOW den zweiten mit Adresspin auf HIGH.
Insgesamt wären so 16 BH1750 möglich ohne dass diese sich mit ihren 
Adressen ins Gehege kommen.
Gast #5382231
Lesenswert?
• ▲
▼
Jim M. schrieb:
> Blöde Frage, aber wäre Software I²C hier nicht viel einfacher als
> irgendwelche Busumschalter?
>
> Grade der I²C Master ist doch relativ einfach umsetzbar. Bräuchte mann
> dann halt fünfmal mit jeweils unterschiedlichen Bus Pins.

Und das erwartest du von jemandem, der nicht mal in der Lage ist, ein 
Datenblatt zu lesen?

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.