Spisu treści:

Obliczanie natężenia światła przy użyciu BH1715 i Arduino Nano: 5 kroków
Obliczanie natężenia światła przy użyciu BH1715 i Arduino Nano: 5 kroków

Wideo: Obliczanie natężenia światła przy użyciu BH1715 i Arduino Nano: 5 kroków

Wideo: Obliczanie natężenia światła przy użyciu BH1715 i Arduino Nano: 5 kroków
Wideo: Jak zmierzyć natężenie prądu przemiennego amperomierzem? | ForumWiedzy 2024, Lipiec
Anonim
Image
Image

Wczoraj pracowaliśmy nad wyświetlaczami LCD i podczas pracy nad nimi zdaliśmy sobie sprawę, jak ważne jest obliczanie natężenia światła. Intensywność światła jest ważna nie tylko w sferze fizycznej tego świata, ale także w sferze biologicznej. Dokładne oszacowanie natężenia światła odgrywa kluczową rolę w naszym ekosystemie, we wzroście roślin itp. W tym celu zbadaliśmy czujnik BH1715, który jest 16-bitowym czujnikiem światła otoczenia z wyjściem szeregowym.

W tym samouczku zademonstrujemy działanie BH1715 z Arduino Nano.

Sprzęt, którego będziesz potrzebować do tego celu, to:

1. BH1715 - czujnik światła otoczenia

2. Arduino nano

3. Kabel I2C

4. Tarcza I2C dla Arduino Nano

Krok 1: Przegląd BH1715:

Czego potrzebujesz..!!
Czego potrzebujesz..!!

Przede wszystkim chcielibyśmy zapoznać Państwa z podstawowymi cechami modułu czujnika jakim jest BH1715 oraz protokołem komunikacyjnym na którym pracuje.

BH1715 to cyfrowy czujnik oświetlenia otoczenia z interfejsem magistrali I²C. BH1715 jest powszechnie używany do uzyskiwania danych dotyczących oświetlenia otoczenia w celu dostosowania mocy podświetlenia wyświetlacza LCD i klawiatury dla urządzeń mobilnych. To urządzenie oferuje 16-bitową rozdzielczość i regulowany zakres pomiarowy, umożliwiając detekcję od 0,23 do 100 000 luksów.

Protokół komunikacyjny na którym pracuje czujnik to I2C. I2C oznacza układ scalony. Jest to protokół komunikacyjny, w którym komunikacja odbywa się za pośrednictwem linii SDA (dane szeregowe) i SCL (zegar szeregowy). Umożliwia podłączenie wielu urządzeń jednocześnie. Jest to jeden z najprostszych i najbardziej wydajnych protokołów komunikacyjnych.

Krok 2: Czego potrzebujesz…

Czego potrzebujesz..!!
Czego potrzebujesz..!!
Czego potrzebujesz..!!
Czego potrzebujesz..!!
Czego potrzebujesz..!!
Czego potrzebujesz..!!

Materiały, których potrzebujemy do realizacji naszego celu, obejmują następujące komponenty sprzętowe:

1. BH1715 - czujnik światła otoczenia

2. Arduino Nano

3. Kabel I2C

4. I2C Shield dla Arduino nano

Krok 3: Podłączenie sprzętu:

Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu

Sekcja dotycząca podłączania sprzętu zasadniczo wyjaśnia połączenia okablowania wymagane między czujnikiem a raspberry pi. Zapewnienie prawidłowych połączeń jest podstawową koniecznością podczas pracy na dowolnym systemie o pożądanej mocy. Tak więc wymagane połączenia są następujące:

BH1715 będzie działał przez I2C. Oto przykładowy schemat okablowania, pokazujący, jak okablować każdy interfejs czujnika.

Po wyjęciu z pudełka, płyta jest skonfigurowana do interfejsu I2C, dlatego zalecamy korzystanie z tego podłączenia, jeśli jesteś agnostykiem. Wszystko czego potrzebujesz to cztery przewody!

Wymagane są tylko cztery połączenia Vcc, Gnd, SCL i SDA, które są połączone za pomocą kabla I2C.

Połączenia te są pokazane na powyższych zdjęciach.

Krok 4: Pomiar natężenia światła Kod Arduino:

Pomiar natężenia światła Kod Arduino
Pomiar natężenia światła Kod Arduino
Pomiar natężenia światła Kod Arduino
Pomiar natężenia światła Kod Arduino

Zacznijmy teraz od kodu Arduino.

Korzystając z modułu czujnika z Arduino, dołączamy bibliotekę Wire.h. Biblioteka "Wire" zawiera funkcje ułatwiające komunikację i2c pomiędzy czujnikiem a płytką Arduino.

Cały kod Arduino podano poniżej dla wygody użytkownika:

#włączać

// BH1715 I2C adres to 0x23(35) #define Addr 0x23 void setup() { // Zainicjuj komunikację I2C jako MASTER Wire.begin(); // Zainicjuj komunikację szeregową, ustaw szybkość transmisji = 9600 Serial.begin(9600); // Rozpocznij transmisję I2C Wire.beginTransmission(Addr); // Wyślij polecenie włączenia zasilania Wire.write(0x01); // Zatrzymaj transmisję I2C Wire.endTransmission(); // Rozpocznij transmisję I2C Wire.beginTransmission(Addr); // Wyślij komendę pomiaru ciągłego Wire.write(0x10); // Zatrzymaj transmisję I2C Wire.endTransmission(); opóźnienie(300); } void loop() { unsigned int data[2]; // Żądaj 2 bajtów danych Wire.requestFrom(Addr, 2); // Odczyt 2 bajtów danych // ALS msb, ALS lsb if(Wire.available() == 2) { data[0] = Wire.read(); dane[1] = Drut.odczyt(); } opóźnienie(300); //przekonwertuj luminancję danych float = ((data[0] * 256) + data[1]) / 1.20; // Wysłanie danych do monitora szeregowego Serial.print("Luminancja światła otoczenia:"); Serial.print(luminancja); Serial.println(" luks"); }

Kolejna część kodu inicjuje komunikację i2c oraz komunikację szeregową za pomocą funkcji Wire.begin() i Serial.begin().

// Zainicjuj komunikację I2C jako MASTER

Wire.początek(); // Zainicjuj komunikację szeregową, ustaw szybkość transmisji = 9600 Serial.begin(9600); // Rozpocznij transmisję I2C Wire.beginTransmission(Addr); // Wyślij polecenie włączenia zasilania Wire.write(0x01); // Zatrzymaj transmisję I2C Wire.endTransmission(); // Rozpocznij transmisję I2C Wire.beginTransmission(Addr); // Wyślij komendę pomiaru ciągłego Wire.write(0x10); // Zatrzymaj transmisję I2C Wire.endTransmission(); opóźnienie(300);

Natężenie światła jest mierzone w następnej sekcji kodu.

dane int bez znaku[2];

// Żądaj 2 bajtów danych Wire.requestFrom(Addr, 2); // Odczyt 2 bajtów danych // ALS msb, ALS lsb if(Wire.available() == 2) { data[0] = Wire.read(); dane[1] = Drut.odczyt(); } opóźnienie(300); //przekonwertuj luminancję danych float = ((data[0] * 256) + data[1]) / 1.20; // Wysłanie danych do monitora szeregowego Serial.print("Luminancja światła otoczenia:"); Serial.print(luminancja); Serial.println(" luks");

Wystarczy wypalić kod w arduino i sprawdzić odczyty na porcie szeregowym. Dane wyjściowe pokazano na powyższym obrazku również w celach informacyjnych.

Krok 5: Aplikacje:

Aplikacje
Aplikacje

BH1715 to cyfrowy czujnik światła otoczenia z wyjściem, który może być wbudowany w telefon komórkowy, telewizor LCD, komputer typu NOTE itp. Może być również stosowany w przenośnych automatach do gier, aparacie cyfrowym, cyfrowej kamerze wideo, PDA, wyświetlaczu LCD i wielu innych urządzeniach, które wymagają wydajne aplikacje do wykrywania światła.

Zalecana: