Video: Raspberry Pi - TMD26721 infraqizil raqamli yaqinlik detektori Java darsligi: 4 qadam
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
TMD26721-infraqizil raqamli yaqinlik detektori bo'lib, u to'liq 8-pinli sirtni o'rnatish modulida to'liq yaqinlikni aniqlash tizimi va raqamli interfeys mantig'ini ta'minlaydi. Yaqin atrofdagi ofset registri IQ LED va sensor o'rtasida optik tizimning kesishishi uchun kompensatsiyani beradi. Bu erda java kodi yordamida malina pi bilan namoyish.
1 -qadam: Sizga nima kerak.. !
1. Raspberry Pi
2. TMD26721
3. I²C kabeli
4. Raspberry Pi uchun I²C qalqoni
5. Ethernet kabeli
2 -qadam: Ulanishlar:
Malinali pi uchun I2C qalqonini oling va uni malina pi gpio pimlariga sekin suring.
Keyin I2C kabelining bir uchini TMD26721 sensoriga, ikkinchi uchini esa I2C ekraniga ulang.
Ethernet kabelini pi -ga ulang yoki WiFi modulidan foydalanishingiz mumkin.
Ulanishlar yuqoridagi rasmda ko'rsatilgan.
3 -qadam: Kod:
TMD26721 uchun java kodini bizning github omboridan- Dcube Store hamjamiyatidan yuklab olish mumkin.
Mana havola
Biz Java kodi uchun pi4j kutubxonasidan foydalandik, malina pi ga pi4j o'rnatish bosqichlari bu erda tasvirlangan:
pi4j.com/install.html
Siz bu erdan kodni nusxalashingiz mumkin, u quyidagicha berilgan:
// Ixtiyoriy litsenziya bilan tarqatilgan.
// Agar xohlasangiz, foyda yoki tekin ishlating, agar u tegishli asarlar litsenziyalariga mos kelsa.
// TMD26721
// Bu kod TMD26721_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan
com.pi4j.io.i2c. I2CBus -ni import qilish;
com.pi4j.io.i2c. I2CDevice -ni import qilish;
com.pi4j.io.i2c. I2CFactory -ni import qilish;
java.io. IOException ni import qilish;
umumiy sinf TMD26721
{
public static void main (String args ) istisno qiladi
{
// I2C avtobusini yarating
I2CBus avtobus = I2CFactory.getInstance (I2CBus. BUS_1);
// I2C qurilmasini oling, TMD26721 I2C manzili 0x39 (57)
I2CDevice qurilmasi = bus.getDevice (0x39);
// Yaqinlik vaqt registrini yoki buyruqlar registri bilan tanlang
// Vaqt = 2,73 milodiy
device.write (0x02 | 0x80, (bayt) 0xFF);
// Kutish vaqtini ro'yxatdan o'tkazishni yoki buyruqlar registri bilan tanlang
// Vaqt = 2,73 milodiy
device.write (0x03 | 0x80, (bayt) 0xFF);
// Pulslar ro'yxatga olish registrini yoki buyruqlar registri bilan tanlang
// Pulslar soni = 32
device.write (0x0E | 0x80, (bayt) 0x20);
// Boshqaruv registrini yoki buyruqlar registri bilan tanlang
// 100 mA LED quvvati, yaqinlik CH1 diodidan, 1x PGAIN, 1XA QAYTA
device.write (0x0F | 0x80, (bayt) 0x20);
// Ro'yxatdan o'tishni yoqishni yoki buyruqlar registri bilan tanlang
// Quvvatni yoqish, yaqinlik va kutish yoqilgan
device.write (0x00 | 0x80, (bayt) 0x0D);
Thread.sleep (800);
// 0x18 (24) manzilidan 2 bayt ma'lumotni o'qing
// yaqinlik lsb, yaqinlik msb
bayt ma'lumotlar = yangi bayt [2];
device.read (0x18 | 0x80, ma'lumotlar, 0, 2);
// Ma'lumotni aylantirish
int yaqinlik = (((ma'lumotlar [1] & 0xFF) * 256)+ (ma'lumotlar [0] & 0xFF));
// Ma'lumotni ekranga chiqarish
System.out.printf ("Qurilmaning yaqinligi: %d %n", yaqinlik);
}
}
4 -qadam: Ilovalar:
TMD26721 - bu infraqizil raqamli yaqinlik sensori, u mobil telefonlar sensorli ekranini boshqarish va karnayni avtomatik yoqish tizimiga qo'shilishi mumkin. Shuningdek, u mexanik kalitni almashtirishni va qog'ozni tekislashni ta'minlay oladi. Uning yuqori mahsuldorligi va ishonchliligi uni yaqinlikni aniqlashning turli xil ilovalariga mos keladi.