Innholdsfortegnelse:
Video: Raspberry Pi - TMD26721 Infrarød digital nærhetsdetektor Java Opplæring: 4 trinn
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
TMD26721 er en infrarød digital nærhetsdetektor som gir et komplett nærhetsdeteksjonssystem og digital grensesnittlogikk i en enkelt 8-pinners overflatemonteringsmodul. Nærhetsdeteksjonen inkluderer forbedret signal-til-støy og nøyaktighet. Et nærhetsforskyvningsregister tillater kompensasjon for optisk systemoverskridelse mellom IR -LED og sensoren. Her er demonstrasjonen med bringebær pi ved hjelp av java -kode.
Trinn 1: Hva du trenger..
1. Bringebær Pi
2. TMD26721
3. I²C -kabel
4. I²C Shield for Raspberry Pi
5. Ethernet -kabel
Trinn 2: Tilkoblinger:
Ta et I2C -skjold for bringebærpi og skyv det forsiktig over gpio -pinnene til bringebærpi.
Koble deretter den ene enden av I2C -kabelen til TMD26721 -sensoren og den andre enden til I2C -skjoldet.
Koble også Ethernet -kabelen til pi eller du kan bruke en WiFi -modul.
Tilkoblinger er vist på bildet ovenfor.
Trinn 3: Kode:
Java-koden for TMD26721 kan lastes ned fra vårt github-depot- Dcube Store Community.
Her er lenken
Vi har brukt pi4j bibliotek for java -kode, trinnene for å installere pi4j på bringebær pi er beskrevet her:
pi4j.com/install.html
Du kan også kopiere koden herfra, den er gitt som følger:
// Distribuert med en fri viljelisens.
// Bruk den slik du vil, profitt eller gratis, forutsatt at den passer inn i lisensene til de tilhørende verkene.
// TMD26721
// Denne koden er designet for å fungere med TMD26721_I2CS I2C Mini Module tilgjengelig fra
importer com.pi4j.io.i2c. I2CBus;
importer com.pi4j.io.i2c. I2CDenhet;
importer com.pi4j.io.i2c. I2CFactory;
importer java.io. IOException;
offentlig klasse TMD26721
{
public static void main (String args ) kaster Unntak
{
// Lag I2C -buss
I2CBus -buss = I2CFactory.getInstance (I2CBus. BUS_1);
// Få I2C -enhet, TMD26721 I2C -adresse er 0x39 (57)
I2CDevice -enhet = bus.getDevice (0x39);
// Velg tidsregister for nærhet ELLER med kommandoregister
// Ptime = 2,73 ms
device.write (0x02 | 0x80, (byte) 0xFF);
// Velg ventetidsregister ELLER med kommandoregister
// Wtime = 2,73 ms
device.write (0x03 | 0x80, (byte) 0xFF);
// Velg pulsregister ELLER med kommandoregister
// Pulstelling = 32
device.write (0x0E | 0x80, (byte) 0x20);
// Velg kontrollregister ELLER med kommandoregister
// 100 mA LED -styrke, proximtiy bruker CH1 -diode, 1x PGAIN, 1x IGJEN
device.write (0x0F | 0x80, (byte) 0x20);
// Velg aktiver register ELLER med kommandoregister
// Slå på PÅ, nærhet og ventetid aktivert
device.write (0x00 | 0x80, (byte) 0x0D);
Tråd. Sover (800);
// Les 2 byte data fra adresse 0x18 (24)
// nærhet lsb, nærhet msb
byte data = ny byte [2];
device.read (0x18 | 0x80, data, 0, 2);
// Konverter dataene
int nærhet = (((data [1] & 0xFF) * 256)+ (data [0] & 0xFF));
// Utdata til skjermen
System.out.printf ("Enhetens nærhet: %d %n", nærhet);
}
}
Trinn 4: Søknader:
TMD26721 er en infrarød digital nærhetssensor som kan integreres i berøringsskjermkontroll for mobilt håndsett og automatisk høyttalertelefonaktivering. Den kan også bytte mekanisk bryter samt papirjustering. Den høye effektiviteten og påliteligheten gjør den egnet for forskjellige applikasjoner for nærhetsmåling.