Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03
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:
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…
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:
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:
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:
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:
Obliczanie wilgotności, ciśnienia i temperatury przy użyciu BME280 i interfejsu fotonowego.: 6 kroków
Obliczanie wilgotności, ciśnienia i temperatury za pomocą BME280 i interfejsu fotonowego.: Natrafiamy na różne projekty, które wymagają monitorowania temperatury, ciśnienia i wilgotności. W ten sposób zdajemy sobie sprawę, że te parametry faktycznie odgrywają kluczową rolę w oszacowaniu wydajności pracy systemu w różnych warunkach atmosferycznych
Pomiar natężenia światła za pomocą BH1715 i Raspberry Pi: 5 kroków
Pomiar natężenia światła za pomocą BH1715 i Raspberry Pi: 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 fizycznej domenie tego świata, ale ma również dobrze opisaną rolę w biologii
Przełącznik światła sterowany mruganiem przy użyciu gogli z gumką Shota Aizawy (My Hero Academia): 8 kroków (ze zdjęciami)
Przełącznik światła sterowany mruganiem przy użyciu gogli z gumką Shota Aizawy (My Hero Academia): Jeśli czytasz moją mangę hero academia lub oglądasz moje anime hero academia, musisz znać postać o imieniu shota aizawa. Shota Aizawa, znana również jako Głowa Gumki, jest Pro Hero i wychowawcą klasy 1-A w U.A. Dar Shota daje mu ab
Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Uruchamianie Rainbow na Neopixel Ws2812 przy użyciu M5stack M5stick C przy użyciu Arduino IDE: 5 kroków
Neopixel Ws2812 Rainbow LED Glow z M5stick-C | Uruchamianie Rainbow na Neopixel Ws2812 Używając M5stack M5stick C Używając Arduino IDE: Cześć chłopaki, w tej instrukcji dowiemy się, jak używać neopikselowych ws2812 LED lub taśmy LED lub matrycy LED lub pierścienia LED z płytką rozwojową m5stack m5stick-C z Arduino IDE i zrobimy wzór tęczy z nim
Obliczanie natężenia światła przy użyciu BH1715 i fotonu cząstek: 5 kroków
Obliczanie natężenia światła przy użyciu BH1715 i Particle Photon: 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 fizycznej domenie tego świata, ale ma również dobrze opisaną rolę w biologii