Talaan ng mga Nilalaman:

Banayad na Pagkalkula ng Intensity Gamit ang BH1715 at Arduino Nano: 5 Hakbang
Banayad na Pagkalkula ng Intensity Gamit ang BH1715 at Arduino Nano: 5 Hakbang

Video: Banayad na Pagkalkula ng Intensity Gamit ang BH1715 at Arduino Nano: 5 Hakbang

Video: Banayad na Pagkalkula ng Intensity Gamit ang BH1715 at Arduino Nano: 5 Hakbang
Video: ✨A Will Eternal EP 01 - 106 Full Version [MULTI SUB] 2024, Hulyo
Anonim
Image
Image

Kahapon ay nagtatrabaho kami sa mga LCD display, at habang nagtatrabaho sa mga ito napagtanto namin ang kahalagahan ng pagkalkula ng intensity ng ilaw. Ang light intensity ay hindi lamang mahalaga sa pisikal na domain ng mundong ito ngunit mayroon din itong nasabing papel na ginagampanan sa biological domain din. Ang tumpak na pagtatantya ng tindi ng ilaw ay gumaganap ng isang mahalagang papel sa aming ecosystem, sa paglaki ng mga halaman, atbp. Kaya, para sa paghahatid sa hangaring ito ay pinag-aralan namin ang sensor na ito na BH1715, na isang 16-bit na serial output type na ambient light sensor.

Sa tutorial na ito, ipapakita namin ang pagtatrabaho ng BH1715 kasama si Arduino Nano.

Ang hardware na kakailanganin mo para sa hangaring ito ay ang mga sumusunod:

1. BH1715 - Ambient Light Sensor

2. Arduino nano

3. I2C Cable

4. I2C Shield Para kay Arduino Nano

Hakbang 1: Pangkalahatang-ideya ng BH1715:

Ang iyong kailangan..!!
Ang iyong kailangan..!!

Una sa lahat nais naming pamilyar ka sa mga pangunahing tampok ng module ng sensor na ang BH1715 at ang protocol ng komunikasyon kung saan ito gumagana.

Ang BH1715 ay isang digital na Ambient Light Sensor na may isang interface ng bus na I²C. Ang BH1715 ay karaniwang ginagamit upang makuha ang ambient light data para sa pag-aayos ng LCD at Keypad backlight power para sa mga mobile device. Nag-aalok ang aparatong ito ng isang 16-bit na resolusyon at isang naaayos na saklaw ng pagsukat, pinapayagan ang pagtuklas mula sa.23 hanggang 100, 000 lux.

Ang protocol ng komunikasyon kung saan gumagana ang sensor ay I2C. Ang I2C ay nangangahulugang inter-integrated circuit. Ito ay isang protocol ng komunikasyon kung saan nagaganap ang komunikasyon sa pamamagitan ng mga linya ng SDA (serial data) at SCL (serial clock). Pinapayagan ang pagkonekta ng maraming mga aparato nang sabay. Ito ay isa sa pinakasimpleng at pinaka mahusay na protocol ng komunikasyon.

Hakbang 2: Ano ang Kailangan Mo.. !

Ang iyong kailangan..!!
Ang iyong kailangan..!!
Ang iyong kailangan..!!
Ang iyong kailangan..!!
Ang iyong kailangan..!!
Ang iyong kailangan..!!

Ang mga materyal na kailangan namin para makamit ang aming layunin ay may kasamang mga sumusunod na bahagi ng hardware:

1. BH1715 - Ambient Light Sensor

2. Arduino Nano

3. I2C Cable

4. I2C Shield para sa Arduino nano

Hakbang 3: Hardware Hookup:

Hardware Hookup
Hardware Hookup
Hardware Hookup
Hardware Hookup

Karaniwang ipinapaliwanag ng seksyon ng hookup ng hardware ang mga koneksyon sa mga kable na kinakailangan sa pagitan ng sensor at ng raspberry pi. Ang pagtiyak sa tamang mga koneksyon ay ang pangunahing pangangailangan habang nagtatrabaho sa anumang system para sa nais na output. Kaya, ang mga kinakailangang koneksyon ay ang mga sumusunod:

Ang BH1715 ay gagana sa paglipas ng I2C. Narito ang halimbawa ng diagram ng mga kable, na nagpapakita kung paano i-wire ang bawat interface ng sensor.

Sa labas ng kahon, naka-configure ang board para sa isang interface ng I2C, dahil inirerekumenda namin ang paggamit ng hookup na ito kung hindi ka agnostiko. Ang kailangan mo lang ay apat na wires!

Apat na koneksyon lamang ang kinakailangan ng Vcc, Gnd, SCL at SDA pin at ang mga ito ay konektado sa tulong ng I2C cable.

Ang mga koneksyon na ito ay ipinakita sa mga larawan sa itaas.

Hakbang 4: Pagsukat ng Banayad na Intensity na Arduino Code:

Sukat ng Lakas ng Intensity Arduino Code
Sukat ng Lakas ng Intensity Arduino Code
Sukat ng Lakas ng Intensity Arduino Code
Sukat ng Lakas ng Intensity Arduino Code

Magsimula tayo sa Arduino code ngayon.

Habang ginagamit ang module ng sensor sa Arduino, isinasama namin ang Wire.h library. Naglalaman ang library ng "Wire" ng mga pagpapaandar na nagpapadali sa komunikasyon ng i2c sa pagitan ng sensor at ng Arduino board.

Ang buong Arduino code ay ibinibigay sa ibaba para sa kaginhawaan ng gumagamit:

# isama

// BH1715 I2C address ay 0x23 (35) #define Addr 0x23 void setup () {// Initialise I2C komunikasyon bilang MASTER Wire.begin (); // Initialise Serial Communication, itakda ang baud rate = 9600 Serial.begin (9600); // Start I2C Transmission Wire.beginTransmission (Addr); // Send power on command Wire.write (0x01); // Stop I2C Transmission Wire.endTransmission (); // Start I2C Transmission Wire.beginTransmission (Addr); // Magpadala ng tuloy-tuloy na utos ng pagsukat Wire.write (0x10); // Stop I2C Transmission Wire.endTransmission (); pagkaantala (300); } void loop () {unsigned int data [2]; // Humiling ng 2 byte ng data Wire.requestFrom (Addr, 2); // Basahin ang 2 bytes ng data // ALS msb, ALS lsb kung (Wire.available () == 2) {data [0] = Wire.read (); data [1] = Wire.read (); } pagkaantala (300); // convert the data float luminance = ((data [0] * 256) + data [1]) / 1.20; // Output data sa serial monitor Serial.print ("Ambient Light Luminance:"); Serial.print (luminance); Serial.println ("lux"); }

Ang sumusunod na bahagi ng code ay nagpapasimula ng komunikasyon sa i2c at ang serial na komunikasyon sa tulong ng pag-andar ng Wire.begin () at Serial.begin ().

// Initialise I2C na komunikasyon bilang MASTER

Wire.begin (); // Initialise Serial Communication, itakda ang baud rate = 9600 Serial.begin (9600); // Start I2C Transmission Wire.beginTransmission (Addr); // Send power on command Wire.write (0x01); // Stop I2C Transmission Wire.endTransmission (); // Start I2C Transmission Wire.beginTransmission (Addr); // Magpadala ng tuloy-tuloy na utos ng pagsukat Wire.write (0x10); // Stop I2C Transmission Wire.endTransmission (); pagkaantala (300);

Sinusukat ang intensity ng ilaw sa sumusunod na seksyon ng code.

unsigned int data [2];

// Humiling ng 2 byte ng data Wire.requestFrom (Addr, 2); // Basahin ang 2 bytes ng data // ALS msb, ALS lsb kung (Wire.available () == 2) {data [0] = Wire.read (); data [1] = Wire.read (); } pagkaantala (300); // convert the data float luminance = ((data [0] * 256) + data [1]) / 1.20; // Output data sa serial monitor Serial.print ("Ambient Light Luminance:"); Serial.print (luminance); Serial.println ("lux");

Ang kailangan mo lang gawin ay sunugin ang code sa arduino at suriin ang iyong mga pagbasa sa serial port. Ang output ay ipinapakita sa larawan sa itaas din para sa iyong sanggunian.

Hakbang 5: Mga Aplikasyon:

Mga Aplikasyon
Mga Aplikasyon

Ang BH1715 ay isang digital output ambient light sensor na maaaring isama sa Mobile phone, LCD TV, NOTE PC atbp Maaari din itong magamit sa Portable game machine, Digital camera, Digital video camera, PDA, LCD display at marami pang mga aparato na nangangailangan mahusay na mga application ng light sensing.

Inirerekumendang: