Video: Raspberry Pi - TMD26721 Infrarooi digitale nabyheidsdetektor Java -tutoriaal: 4 stappe
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
TMD26721 is 'n infrarooi digitale nabyheidsdetektor wat 'n volledige nabyheidsopsporingstelsel en logika vir digitale koppelvlak bied in 'n enkele 8-pins oppervlakmonteringsmodule. Die nabyheidsopsporing bevat verbeterde sein-na-geraas en akkuraatheid. 'N Nabyheidsverrekeningsregister laat kompensasie toe vir optiese stelseloorspraak tussen die IR -LED en die sensor. Hier is die demonstrasie daarvan met framboospi met behulp van Java -kode.
Stap 1: wat u nodig het..
1. Framboos Pi
2. TMD26721
3. I²C -kabel
4. I²C -skild vir Framboos Pi
5. Ethernet -kabel
Stap 2: Verbindings:
Neem 'n I2C skild vir framboos pi en druk dit liggies oor die gpio penne van framboos pi.
Koppel dan die een kant van die I2C -kabel aan die TMD26721 -sensor en die ander kant aan die I2C -skild.
Koppel ook die Ethernet -kabel aan die pi, of u kan 'n WiFi -module gebruik.
Verbindings word op die foto hierbo getoon.
Stap 3: Kode:
Die java-kode vir TMD26721 kan afgelaai word vanaf ons github repository- Dcube Store Community.
Hier is die skakel
Ons het pi4j -biblioteek vir java -kode gebruik, die stappe om pi4j op die framboos -pi te installeer word hier beskryf:
pi4j.com/install.html
U kan die kode ook hiervandaan kopieer; dit word soos volg gegee:
// Versprei met 'n vrywillige lisensie.
// Gebruik dit op enige manier wat u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas.
// TMD26721
// Hierdie kode is ontwerp om te werk met die TMD26721_I2CS I2C Mini Module beskikbaar by
invoer com.pi4j.io.i2c. I2CBus;
voer com.pi4j.io.i2c. I2CD -toestel in;
invoer com.pi4j.io.i2c. I2CFactory;
invoer java.io. IOException;
openbare klas TMD26721
{
openbare statiese leegte hoof (String argumente ) gooi uitsondering
{
// Skep I2C -bus
I2CBus -bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Kry I2C -toestel, TMD26721 I2C -adres is 0x39 (57)
I2CD -toestel = bus.getDevice (0x39);
// Kies nabyheidstydregister OF met opdragregister
// Ptyd = 2,73 ms
device.write (0x02 | 0x80, (byte) 0xFF);
// Kies wagtydregister OF met opdragregister
// Wtyd = 2,73 ms
device.write (0x03 | 0x80, (byte) 0xFF);
// Kies polsslagregister OF met opdragregister
// polsslag = 32
device.write (0x0E | 0x80, (byte) 0x20);
// Kies kontroleregister OF met opdragregister
// 100 mA LED -sterkte, proximtiy gebruik CH1 -diode, 1x PGAIN, 1x WEER
device.write (0x0F | 0x80, (byte) 0x20);
// Kies aktiveer register OF met opdragregister
// Stel Power AAN, nabyheid en wag ingeskakel
device.write (0x00 | 0x80, (byte) 0x0D);
Draad.slaap (800);
// Lees 2 grepe data vanaf adres 0x18 (24)
// nabyheid lsb, nabyheid msb
byte data = nuwe byte [2];
device.read (0x18 | 0x80, data, 0, 2);
// Skakel die data om
int proximity = (((data [1] & 0xFF) * 256)+ (data [0] & 0xFF));
// Uitset data na die skerm
System.out.printf ("Nabyheid van die toestel: %d %n", nabyheid);
}
}
Stap 4: Aansoeke:
TMD26721 is 'n infrarooi digitale nabyheidssensor wat opgeneem kan word in die aanraakskermbeheer van die selfoon en die outomatiese luidsprekerfunksie. Dit kan ook die vervanging van meganiese skakelaars sowel as papieruitlijning bied. Die hoë doeltreffendheid en betroubaarheid maak dit geskik vir verskillende toepassings vir nabyheidswaarneming.