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 | }
|