Gerçek Zaman Saati için arama sonuçları

  • Mikroişlemci ile Gerçek Zamanlı USB ye Veri Kayıt etmek

    Mikroişlemci ile Gerçek Zamanlı USB ye Veri Kayıt etmek

    Robson Benjamin tarafından

    PIC18F452 mikrodenetleyici (MCU), VNC1L-1A USB ana bilgisayar denetleyici yongası, DS1302 RTC yongası ve LCD kullanan USB tabanlı gerçek zamanlı veri kayıt sistemi sunulmaktadır. Sistem, veri ölçümünün zamanını ve süresini ayarlama esnekliğine sahiptir.

    Veri kaydediciler uzak veri toplama sistemleri için gereklidir ve genellikle alınan verileri depolamak için depolama ortamı gerektirir. Kalem sürücüleri gibi depolama ortamları, elde edilen verileri aktarmak için USB ana bilgisayar özelliğine sahip bir cihaz veya PC gerektirir. Genel amaçlı bir MCU’da USB ana bilgisayar özelliği yoktur. İşte USB ana bilgisayar işlevselliği sağlayan bir Vinculum çipli yeni bir veri toplama sistemi. Ayrıca, DS1302 yongası ve 4×4 tuş takımını kullanarak veri ölçümlerinin zamanını ve süresini ayarlayabilirsiniz.

    Gerçek zamanlı USB veri kayıt cihazının blok şeması Şekil 1’de gösterilmiştir. Yazarın prototip panosu Şekil 2’de gösterilmiştir.

    1: Gerçek zamanlı USB veri kaydedicisinin blok şemasıŞekil 2: Yazarın prototipi

    Devre ve çalışma

    Gerçek zamanlı USB veri kayıt cihazının devre şeması Şekil 3’te gösterilmiştir. 3.3V voltaj regülatörü MAX882 (IC1), sıcaklık sensörü LM35 (IC2), Vinculum ana bilgisayar kontrolörleri VNC1L-1A (IC3) ve PIC18F452 ( IC4), gerçek zamanlı, damlama şarj süresi tutma DS1302 çip (IC5), 16 × 2 likit kristal ekran (LCD1) ve diğer birkaç bileşen.

    PIC18F452 MCU veri toplama işlevselliği sağlar. VNCIL-1A, UART arabirimi üzerinden PIC18F452 ile arayüzlenmiştir.

    3: Gerçek zamanlı USB veri kaydedicisinin devre şeması

    VNC1L-1A

    İki USB bağlantı noktası ve birleşik seri UART, seri çevresel arabirim (SPI) veya FIFO arabirimi vardır. Pimler USB1DP ve USB1DM, USB Port-1’in sırasıyla D + ve D- USB veri sinyallerini taşır. Pimler USB2DP ve USB2DM, USB Port-2’nin sırasıyla D + ve D- USB veri sinyallerini taşır.

    Port-1, USB slave çevre birimlerini destekler (kullanılmaz). Port-2, USB flash sürücüler gibi BOMS (yalnızca toplu depolama) sınıfı cihazları destekler. VNC1L-1A ve PIC18F452 arasındaki iletişim için seri UART, SPI veya FIFO arayüzü, pimleri toprağa veya 3.3V’ye bağlayarak bir çift pim, ACBUS5 (pim 46) ve ACBUS6 (pim 47) kullanılarak seçilebilir.

    UART arayüzü, IC3’ün 46 ve 47 pinleri 47kΩ direnç üzerinden toprağa bağlanarak seçilir. ADBUS0 (pim 31) ve ADBUS1 (pim 32) sırasıyla TxD ve RxD sinyallerini taşır ve ADBUS2 (pim 33) ve ADBUS3 (pim 34) sırasıyla UART arayüzünün RTS # ve CTS # sinyallerini taşır.

    Vinculum, VNC1L-1A’nın farklı işlevlerini desteklemek için önceden derlenmiş birkaç standart ürün yazılımı sürümü sunar. Mevcut uygulama için, donanım yazılımı sürümü VDAP (disk ve çevre birimleri) kullanılır. Bellenim, VNC1A-1A’daki çip üzeri 64kB flash bellekten çalışır ve harici PIC MCU’nun komut izleme arabirimi aracılığıyla komut / veri göndermesine ve almasına izin veren bir komut monitörü içerir.

    Monitör, dizin işlemleri (dizin oluşturma, silme veya listeleme), dosya işlemleri (dosya oluşturma, açma, okuma, yazma, kapatma, silme veya yeniden adlandırma) ve hata ayıklama işlemlerini (bellenim sürümlerini tanımlama veya alma) gerçekleştirmek için DOS benzeri disk yönetimi komutlarını destekler . Ayrıca VNC1L-1A’ya flash bellek sürücüsünün takılmasını ve çıkarılmasını sağlayan komutlar içerir.

    Aygıt yazılımı USB bağlantı noktasına takılı bir flash sürücü algıladığında, UART arabiriminde DOS benzeri bir D: \> istemi gönderir. Flash sürücüye veri yazıldığında pim 18’e bağlı bir LED’i (LED2) yanıp sönmesi için kodlar üretir.

    Komut monitörü komut veya veri modunda çalışır. Komut modunda, VNC1L-1A monitör bağlantı noktasındaki kodları komut olarak yorumlar ve üzerinde çalışır. Veri modunda, verileri monitör bağlantı noktasından USB aygıtına geçirir. Başlangıçta, VNC1L-1A başladığında, komut modunda kalır. Daha sonra seri UART arayüzünün DTR # ve DSR # sinyallerini taşıyan VNC1L-1A pinleri ADBUS5 (pin 36) ve ADBUS6 (pin 37) sinyallerini verir ve çalışma modunu değiştirir. Mevcut başvuruda, VNC1L-1A yukarıda belirtilen pinlerin 3.3V ila 47kΩ arasına bağlanarak komut modunda çalışacak şekilde yapılmıştır.

    VNC1L-1A’nın ADBUS0 – ADBUS3, PROG #, RESET #, Vcc ve GND pinleri FTDI programcısı üzerinden programlama için kullanılır.

    Programlama sırasında CON4 ve CON5 konnektörlerindeki köprü bağlantılarını sökün, aksi takdirde 9 ve 10 pinleri 3.3V’a bağlanmalıdır.

    FTDI programlaması dahil Vinculum ana bilgisayar denetleyicisi hakkında daha fazla bilgi kaynak kodu ile birlikte source.efymag.com adresinde mevcuttur.

    Yazılım açıklaması

    PIC18F452’nin pim 2 ve 3’üne düzenli aralıklarla uygulanan iki analog voltajı örneklemek ve VNC1L-1A’ya bağlı USB flash sürücüdeki bir dosyaya veri kaydetmek için bir ürün yazılımı programı burada açıklanmaktadır. Yazılım CCS C derleyicisi kullanılarak yazılmıştır ve PIC18F452 flash belleğe yüklenmiştir.

    Yazılım, aşağıdaki görevleri yerine getiren modülleri içerir:

    UART iletişimini senkronize etme

    VNC1L-1A ve PIC18F452 arasındaki UART iletişimi, PIC18F452’den gönderilen E ve e karakterlerinin yankıları alınarak sağlanır.

    Veri Al Mevcut kesme (INT_RDA) işleme

    Kesme, UART arayüzü üzerinden PIC18F452’nin alma tamponunda VNC1L-1A’dan bir bayt alındığında PIC18F452’de üretilir. Program karakteri okur ve USB flash sürücüye gönderir.

    Analog kanalları örnekleme

    Bellenim, analog kanallar 0 ve 1’i örneklemek için kodlar içerir. Ayrıca, CCS C Derleyicisi kanal seçmek ve dönüştürülmüş veri almak için çip üzerindeki ADC’yi yapılandırmak için dahili işlevlere sahiptir. Bu fonksiyonlar program tarafından analog kanalları örneklemek için kullanılabilir.

    USB flash sürücüye veri yazma kodları

    Ürün yazılımı, flash sürücüde Results.dat dosyası oluşturmak, dosyaya yirmi değer örneklenmiş veri yazmak ve dosyayı kapatmak için komutlar göndermek için kodlar içerir.

    RTC ve kullanıcı arayüzü

    Mevcut tasarımda, giriş için klavye ve çıkış süresini izlemek için çıkış ekranı için LCD ile bir kullanıcı arayüzü sağlanmıştır. DS1302 yongası sisteme gerçek zamanlı veri sağlar. DS1302’nin bir MCU ile arabirimi, senkron seri iletişim kullanılarak basitleştirilir. Yonga etkinleştirme (CE), G / Ç (veri hattı) ve seri saat (SCLK) sinyalleri için DS1302 ile iletişim kurmak için sadece üç kablo gereklidir.

    Okuma veya yazma işlemi sırasında, bu pimin toprakta dahili 40kΩ aşağı çekilme direnci olduğundan CE yüksek olmalıdır. SCLK, seri arayüzdeki veri hareketini senkronize etmek için kullanılır. Dahası, DS1302 çok düşük güçte çalışacak şekilde tasarlanmıştır, böylece verileri tutar ve 1µW’dan daha düşük güç tüketimi ile bilgi alır.

    CCS C Derleyici gerçek zamanlı saat DS1302 ve 4×4 klavye için sürücü sağlar. Ayrıca MCU, Port B pimleri için yazılım komutları kullanılarak etkinleştirilebilen dahili çekme dirençlerine sahiptir. Bu nedenle, MCU’nun Port B pimleri ile klavye arasındaki bağlantı doğrudan verilir. Dakika, saat, tarih ve gün gibi zaman aralığını ayarlama yetkisine sahiptir, böylece yeterli güç sağlanırsa verilerin tüm gün boyunca sürekli olarak kaydedilmesi sağlanır. Zaman ayarları LCD’de izlenebilir1.

    İnşaat ve test

    Elde tutulan veri kaydedici için bir PCB düzeni Şekil 4’te ve bileşen düzeni Şekil 5’te gösterilmiştir. Devreyi PCB’ye monte edin.

    4: Gerçek zamanlı USB veri kaydedicisinin gerçek boyutlu PCB düzeni5: PCB için bileşen yerleşimi

    PCB ve bileşen yerleşim PDF’lerini indirin: buraya tıklayın

    PCB montajı tamamlandığında, DataLogger.hex hex kodunu uygun bir programlayıcı kullanarak PIC18F452’ye yazın. Programladıktan sonra, programlayıcıdan çıkarın ve PCB’ye yerleştirin. Devreniz artık kullanıma hazırdır.

    CON2 konektörüne bir kalem sürücü takın. Devreye güç vermek için 5V DC’yi CON1 üzerinden bağlayın. LED1 ve LED2, bir kalem sürücü bağlanana kadar iki saniye boyunca yanıp söner. Sıcaklık sensörü LM35 otomatik olarak ortam sıcaklığını algılar. PIC18F452’nin pim 19una bağlı LED3’ün yanması sıcaklık verileri ölçümünün devam ettiğini gösterir.

    PIC18F452’nin pim 2’sine bağlanan 10 kilo-ohm’luk bir potmetre (VR1) önceden tanımlanmış bir okuma belirler (örneğin, 2V). Yani, biri LM35 ve diğeri VR1 ayarıyla olmak üzere iki okuma alınır ve USB sürücüye gönderilir.

    Ayarlar ve test

    Zaman ayarları için 4 × 4 klavyeyi CON3’e bağlayın. Klavyeden girişleri beslemek için aşağıda bir örnek verilmiştir. Devreyi test etmek için aşağıdaki adımları izleyin.

    1. Tüm devre bağlantılarını kontrol edin
    2. Devre kartını 5V, 500mA DC güç kaynağı ile bağlayın
    3. LCD’de Başlatılıyor mesajı görüntülenir. LCD’de Başlat mesajı için 1’e basın görüntüleninceye kadar biraz bekleyin1
    4. Klavyede 1 tuşuna basın
    5. Yıl 19’a basın
    6. Aylık 09’a basın
    7. Tarih için 08 tuşuna basın
    8. Basın 01 hafta içi (Pazar)
    9. Saat için 08 tuşuna basın
    10. Dakika 30’a basın
    11. Başlangıç ​​saati için 08 tuşuna basın
    12. 32 başlangıç ​​dakikasına basın
    13. Bitiş saati için 08 tuşuna basın
    14. Bitiş dakikası için 35 tuşuna basın
    15. Saat boyunca 00 tuşuna basın
    16. Dakika süre 01’e basın

    Yukarıdaki örnekte, veri kaydı 8 Ekim 30, Pazar, 8 saat 30 dakika, başlar. Gerçek veri kaydı 8 saat 32 dakikadan başlar. İşlem 8 saat 35 dakikada durur. Ölçüm süresi bir saat içinde (bu durumda 00) ve her dakika güncelleme döngüsü ile.

    Kalem sürücüsünü karttan çıkarın. Artık Microsoft Excel veya başka bir uyumlu program kullanarak kayıtlı verileri USB’den açabilirsiniz. Excel kullanılarak açılan Kayıtlı Veri Sonuçları dosyası Şekil 6’da gösterilmiştir. İlk sütun voltajı, ikinci sütun sıcaklık değerlerini gösterir. Prototip panosu Scandisk 16GB, Sony 32GB ve HP 16GB / 32GB ile test edildi.

    6: Sonuç Excel formatında

    Böylece, Vinculum ana bilgisayar denetleyicisini kullanan USB tabanlı veri toplama sistemi, sinyali önceden tanımlanmış zaman aralıklarında örnekler ve verileri bir flash sürücüde depolar.

    , Çıktısı, verilere hızlı erişimi kolaylaştıran Microsoft Excel formatında kaydedilir. Ayrıca, Excel biçimi verilerin daha ileri analizini kolaylaştırır.

    Kaynak kodunu indirmek için:  buraya tıklayın

     

     

     

    https://drive.google.com/file/d/13t4wffuWoSCq1LbQeZG-Mx38e4lH1XdV/view?usp=sharing

  • DS1307 RTC , SD veya mikro SD kart , DHT 11 21 22 Kullanımı

    Proje adı: DS1307 RTC modülü, SD veya mikro SD kart modülü, DHT 11 21 22 modülü

    unknown DHT.pdf    indirrr

    Etiketler: Arduino Uno, DS1307 RTC Modülü, AT24C32 Gerçek Zaman Saati, RTC, DS1307 Gerçek Zaman Saati (RTC) modülü, I2C , DHT 11 21 22 modülü, sıcaklık, nem, sıcaklık ve nem sensörü, SD veya mikro SD kart modülü

    Ekler: eskiz1 , kütüphane3 , kütüphane4 , kütüphane5

    Bu projede, bu parçalar gerekli ( Değerli ziyaretçiler Sen parçaların linklere proje satın tıklayarak desteklemek ve onları satın ya da diri bu web sitesini tutmamıza bağış yapabilirsiniz teşekkür ederiz.. ):

    1. Arduino Uno R3 (Arduino’nun diğer sürümünü de kullanabilirsiniz)

    2. DS1307 Gerçek Zamanlı Saat (RTC) modülü 1 adet

    3.Arduino IDE (siz indirebilirsiniz burada )

    4. Bağlantı kabloları MM, FM

    5. Lityum İyon pil LIR2032 3.6 VDC veya CR12203VDC veya CR2032 3VDC (pil tutucu ve modüle bağlıdır) 1 adet

    6. DHT11 21 22 Nem ve sıcaklık modülü 1 adet

    7. Direnç 1 adet (10 KOhm)

    8. SD kart veya Mikro SD kart modülü 1 adet

    veya

    9. SD kart adaptörü ile Micro SD kart 1 adet

    Genel

    DS1307 Gerçek Zamanlı Saat (RTC) modülünü, SD veya mikro SD kart modülünü ve DHT 11/21/22 modülünü Arduino kartına nasıl bağlayacağımızı ve kullanacağımızı öğreneceğiz.

    DHT11’i sıcaklık ve nemi ölçmek için kullanacağız; tarih ve saati almak için gerçek zaman saati (RTC) modülü; SD karttaki verileri kaydetmek için SD kart modülünü kullanın.

    SD kart modülünü anlama

    Bununla ilgili daha fazla bilgiyi buradan edinebilirsiniz .

    DHT modülünü anlama

    Burada onlar hakkında daha fazla bilgi edinebilirsiniz .

    DS1307 Gerçek Zamanlı Saat (RTC) modülünü anlama

    Burada onlar hakkında daha fazla bilgi edinebilirsiniz.

    DHT modülünün sinyalleri ve bağlantıları

    Karşılaşabileceğiniz DHT11’in iki farklı sürümü vardır. Bir tipte dört pim, diğer tipte üç pim vardır ve küçük bir PCB’ye monte edilir. PCB monteli versiyon güzel çünkü sinyal hattı için yüzeye monte 10K Ohm çekme direnci içerir. Her iki sürüm için de pin çıkışları:

    SD kart modülünün sinyalleri ve bağlantıları

    Not: Kullandığınız modüle bağlı olarak, pimler farklı bir sırada olabilir.

    VCC (5V) – 5V pin Arduino Uno’ya bağlayın. Sadece VCC pin ve hiçbir 3V3 pin VCC’yi Arduino Board’un 3.3V pinine bağlayın

    3V3 (veya 3.3V) – 3.3V pin Arduino Uno’ya bağlayın

    CS (veya SS veya D3) (Chip Select veya Slave Select) – master’ın belirli cihazları etkinleştirmek ve devre dışı bırakmak için kullanabileceği her cihazdaki pin

    MOSI (veya DI veya SI veya CMD) (Master Out Slave In) – Çevre birimlere veri göndermek için Master hattı

    CLK (veya SCK) (Seri Saat) – Master tarafından üretilen veri iletimini senkronize eden saat darbeleri

    MISO (veya DO veya SO) (Master In Slave Out) – Master’a veri göndermek için Slave hattı

    GND (veya G) – öğütülmüş

    CD – Bu, Kart Algılama pinidir. Bir kart takıldığında toprağa kısalır. Bir çekme direnci (10K ya da öylesine) bağlamalı ve bir kartın ne zaman takıldığını tespit etmek istiyorsanız bunu başka bir pime bağlamalısınız.

    DS1307 Gerçek Zamanlı Saat (RTC) modülünün sinyalleri ve bağlantıları

    GND – topraklama pimi.

    VCC – 5V veya 3.3V güç kaynağı pimi.

    SDA – I2C arayüz veri pimi.

    SCL – I2C arayüzü saat pimi.

    kablolama

    SD veya mikro SD kart modülü SPI iletişimini kullanır. Farklı Arduino kartlarında farklı SPI pinleri bulunur. Başka bir Arduino kartı kullanıyorsanız, Arduino SPI belgelerine bakın .

    DS1307 Gerçek Zamanlı Saat (RTC) modülü I2C iletişimini kullanır. Bu, Arduino ile sadece 2 pin kullanarak iletişim kurduğu anlamına gelir. Arduino Uno – Seri Veri Hattı (SDA) (Arduino Uno SDA veya Analog pim A4) ve Seri Saat Hattı (SCL) (Arduino Uno SCL veya Analog pim A5) için.

    Uno yerine başka Arduino kartı kullanıyorsanız, SCL ve SDA pinlerinin neler olduğunu kontrol edin.

    Nano: SDA (A4); SCL (A5)
    MEGA: SDA (20); SCL (21)
    Leonardo: SDA (20); SCL (21)
    Aşağıdaki resimde Arduino Uno ile gerekli bağlantılar gösterilmektedir.

    Adım Adım talimat

    Çoğu SD kart kutudan çıkar çıkmaz çalışır, ancak bir bilgisayarda veya kamerada kullanılmış bir kartınız olabilir ve SD kitaplığı tarafından okunamaz. Kartın biçimlendirilmesi, Arduino’nun okuyabileceği ve yazabileceği bir dosya sistemi oluşturur. SD kartların ömrünü kısalttığı için sık sık biçimlendirmek istenmez. Kartınızı biçimlendirmek için bir SD okuyucu ve bilgisayara ihtiyacınız olacaktır. Kütüphane FAT16 ve FAT32 dosya sistemlerini destekler, ancak mümkünse FAT16 kullanın. Ek bilgilere buradan bakın .
    SD kartı FAT16 veya FAT32 olarak biçimlendirin . SD kartı bilgisayarınıza takın. Bilgisayarım’a gidin ve SD karta sağ tıklayın. Biçim Seç …
    Yeni bir pencere açılır. FAT32’yi seçin , biçimlendirme işlemini başlatmak için Başlat’a basın ve ekrandaki talimatları izleyin.
    Biçimlendirilmiş SD kartı SD kart modülüne takın.

    S

  • Arduino nano Ladder PLC Saidino PLC ve Outseal

    Arduino nano işlemcileri PLC lerde olduğu gibi ladder ( Merdiven ) Mantğı ile programlayabilmek için Outseal Proğramı tam bu iş için yapılmış. Normal ladder mantığı ile PLC programlar gibi çok kolay kendi projelerinizi yapabileceksiniz.

    Set reset komutları, Yükselen düşen kenar, zamanlayıcı ( timer ) , sayıcı ( counter ), karşılaştırma kontakları , toplama çıkarma bölme tüm matematiksel işlemler.

    Doğrudan direk arduino nano işlemciye program atabilme.

    Dahili lcd ekran.

    Modbus adresleri

    Dahili kalıcı ve geçici hafızlar.

    Giriş çıkış genişleme modulleri

    PWM ve PULSE ( Darbe ) üreteçleri

    2 adet analog giriş

    DS3231 RTC Gerçek zaman saati vb. bir çok işleve sahiptir.

    Dahili simulasyon özelliği ile PLC olmadanda programınızı test edip çalıştırabiliyorsunuz.

    arduino nano plc saidino plc ladder

    Arduino Nano PLC için Nano Pin e karşılık gelen PLC uç Karşılıkları

    arduino plc ladder bağlantı uçları

    Programı İndirmek için Tıklayın

    Programın Çalışabilmesi için Bilgisayarınızda
    NET FrameWork 4.5.1 Yüklü olması Gerekmektedir. Eğer yüklü değilse buradan yükleyin. Microsoft Net FW 4.5.1 Offline Installer sitesinde indirebilirsiniz (62.4 MB)

  • Kablosuz Su Seviyesi Göstergesi

    Bu Kablosuz Su Seviyesi Göstergesi-Cum-Controller ile Tank Taşmasını Durdurun

    Burada, tank taşmasını durdurmak için elektronik bir sistem açıklanmaktadır. Su seviyesini, su tankının altından üstüne kadar, önceden belirlenmiş sekiz seviyeden herhangi biri arasında tutabilir.

    Teknik

    Sistem bir nokta seviyesi kontrol tekniği kullanır. Tankın yüksekliği boyunca aşağıdan yukarıya doğru sekiz farklı nokta seçilir. Sensörler her bir noktaya yerleştirilir ve özel bir paralel-seri (212) dijital kodlayıcının girişlerini adreslemek için kablolanır.

    Su seviyesi yükselirken veya azalırken, kodlayıcı sırayla iyi tanımlanmış bir sayı listesini takip eder (daha sonra devre açıklaması bölümünde ele alınacaktır). Sensörler tarafından bu şekilde üretilen 8-bit dijital sayı, kodlayıcı tarafından seri bir forma kodlanır ve kablosuz olarak uzak bir alıcı uca gönderilir. İki uç arasındaki iletişim ASK / OOK modunda çalışan bir çift 433MHz UHF verici ve alıcı modülü aracılığıyla yapılır.

    Alıcı uçta uyumlu bir seri-paralel (212) dekoder kullanılır. Aktarılan verilerin kodunu çözer ve yalnızca kod çözücü adres satırları eşleşen verilerle beslendiğinde onaylar. Yani, herhangi bir zamanda, kodlayıcıda sensörler tarafından üretilen dijital 8 bitlik sayı ve kod çözücü adres hatlarına beslenen 8 bitlik sayı aynı olmalıdır.

    Bir eşleşmeye sahip olmak için, özel bir dijital sayaç, kod çözücü adres hatlarına sürekli olarak iyi tanımlanmış bir 8 bit sayı listesi (yukarıda belirtilmiştir) üretir ve besler. Bir eşleşme karşılanır karşılanmaz, kod çözücü geçerli bir iletim (VT) sinyali üretir. Ayrıca, kodlayıcıdan veri çıkış hatlarına gönderilen 4 bitlik verileri de çıktılar. Bu VT sinyalini kullanarak, yeni sensör verisi üretilmediği sürece sayaç tarayıcı durdurulur ve durdurulur.

    Eşleşen 8 bitlik sayı, sekiz ışık yayan diyot ( LED ) ile gösterilir. Her LED, adres satırlarının belirli bir bitini ve dolayısıyla belirli bir sensörün mantıksal durumunu temsil eder. LED’ler işaretlenirse, kişi sadece belirtilen gösterge LED’lerinin durumunu gözlemleyerek tanktaki su seviyesini kolayca değerlendirebilir.

    Sekiz dijital adres biti arasında, her ikisi röleyi otomatik olarak açmak / kapatmak için röle kontrol devresi tarafından kullanılabilir – röleyi açmak için daha düşük bit ve kapatmak için daha yüksek bit. Bu da, suyu, bahsedilen bitlerle temsil edilen iki seviye arasında tutmak için su pompasını açar / kapatır.

    Verici ve alıcının blok diyagramları sırasıyla Şekil 1 ve 2’de gösterilmektedir.

    1: Vericinin blok şemasıŞekil 2: Alıcının blok şeması

    Devre ve çalışma

    Kablosuz su seviye göstergesi-cum-kontrolör devresi verici ve alıcı olmak üzere iki üniteye ayrılmıştır.

    Verici ünitesi

    Şekil 3, kablosuz su seviyesi kontrol cihazının verici ünitesinin şemasını göstermektedir. Sensör düzeneği, 5V voltaj regülatörü 7805 (IC1), kodlayıcı HT12E (IC2) ve 433MHz RF verici modülünü (TX1) içerir. Transformatör X1, 230V AC’yi, diyotlar (D1 ve D2) ile düzeltilen ve regüle edilmiş 5V sağlamak için IC1 tarafından düzenlenen 12V-0-12V’ye dönüştürür. Filtreleme için C1 ve C2 kapasitörleri kullanılır. 5V besleme devreyi etkinleştirir.

    3: Kablosuz Su Seviye Kontrol Cihazı ve göstergesi için verici ünitesinin devre şeması

    Sensör düzeneği, tankın altından dikey olarak dikilmiş plastik bir boru (veya yalıtılmış metal boru) üzerine kenetlenmiş sekiz metal şeridi (S0 ila S7) tutar. Metal şeritler su seviyesi sensörleri olarak işlev görür (Şek. 4). Bunlar genellikle borunun uzunluğu boyunca boru uzunluğunun 1/8, 2/8, vb. Konumlarında tabandan tam tank yüksekliğine eşit aralıklarla yerleştirilir. (Bunlar istenirse eşit olmayan mesafelerde de aralıklandırılabilir.) Kablolar bu şeritlerden kodlayıcı IC’nin adres hatlarına akar. En alttaki (S0) kodlayıcının (IC2) A0’ına (pim 1) gider. Bir sonraki sensör (S1) A1’e (pim 2) gider ve kodlayıcının pim 8’ine giden S7’ye kadar devam eder.

    4: Sensörün montaj şeması (a) ve gerçek montaj (b)

    Tankın altındaki boruya kenetlenen ek bir metal şerit SG, devre topraklamasına gider. Metal tank durumunda, tankın kendisi SG olarak işlev görebilir. Kodlayıcının TE girişi (pin 14) kalıcı olarak topraklanır. Dolayısıyla, kodlayıcı sürekli olarak kodlanmış veri üretecek şekilde yapılandırılmıştır. Veriler DOUT satırında mevcuttur (pin 17).

    İlk olarak, sensörleri tanktan devreye bağlayın ve devreyi açın. Depodaki su seviyesi S0’ın altında kalırsa, sensör su ile topraklanmaz ve bu nedenle enkodere dijital adres girişi 11111111 olur. Depoya su pompalanırsa seviye yükselmeye başlar. S0’a ulaştığında dijital adres 11111110 olur. Su seviyesi artmaya devam ederse, HT12E kodlayıcısının adres satırları Tablo 1’de gösterildiği gibi dijital 8 bitlik sayıları takip eder.

    Depo boş olduğunda, kodlayıcının adres satırı 11111111 olacaktır. Su seviyesi kodlayıcı adresiyle dolduğunda 0000000 olacaktır.

    Bu nedenle, herhangi bir anda, sensörler tarafından üretilen dijital sayı ve IC’nin veri giriş hatlarındaki (pin 10, 11, 12 ve 13) 4 bitlik veriler (varsa) IC tarafından seri forma kodlanır. HT12E’nin pin 17’sinden temin edilebilen kodlanmış seri veriler, 433MHz TX modülünün veri giriş pinine yönlendirilir. ASK / OOK modunda çalışan modül, kablosuz olarak uzak bir alıcı uca iletir.

    Şekil 5: Kablosuz Su Seviye Kontrolörü ve Göstergesi için alıcı biriminin devre şeması

    Alıcı ünitesi

    Şekil 5, kablosuz su seviye göstergesi-cum-kontrolörünün alıcı biriminin şemasını göstermektedir. Transformatör X2, 5V voltaj regülatörü 7805 (IC8), NAND geçidi 4011 (IC3), TTL NAND geçidi 74LS00 (IC4), dekoder HT12D (IC5), iki zamanlayıcı NE555 (IC6 ve IC9), vardiya kaydı 74LS164 (IC7 ), iki BC547 transistörü (T1 ve T2), transistör SL100 (T3), 12V röle ve birkaç ayrık bileşen.

    Transformatör X2, 230V AC’yi diyotlar (D5 ve D6) ile düzeltilen ve regüle edilmiş 5V sağlamak için IC8 tarafından düzenlenen 12V-0-12V’ye dönüştürür. Süzgeç için C3 ve C4 kapasitörleri kullanılır. 12V, D3 üzerinden röle devresine giderken 5V besleme devreyi etkinleştirir.

    433MHz UHF RF alıcı modülü olan RX1, havai tankın yanına yerleştirilmiş verici ünitesinin TX1 modülü tarafından iletilen ASK modülasyonlu RF sinyalini almak ve demodüle etmek için kullanılır. Demodüle edilmiş çıktı, kodlayıcıyı ileten uçta on iki (sekiz adres ve dört veri) bitin durumunu (mantık seviyeleri) temsil eden dikdörtgen darbeler dizisidir.

    Transistör T1, RX1’den sinyal çıkışını yükseltmek için bir darbe amplifikatörü olarak kullanılır. Darbe yüksekliğini CMOS uyumlu mantık-1 seviyesine yükseltir (5V VDD’de> 3,5V). Bu uyumlu çıktı daha sonra IC3’ün (dahili NAND geçidi N4) 12 ve 13 pinlerine beslenir. NAND geçidi, mükemmel dikdörtgen dalga şeklindeki darbelerin elde edilmesine yardımcı olur.

    NAND geçidinin N4 çıkışı (pim 11) 212 özel dekoder IC5’in girişine (pim 14) beslenir. Kod çözücü, sadece 8-bit adresinin mantık seviyeleri verici ucundaki kodlayıcının seviyeleri ile eşleştiğinde ve sadece N4 geçidinden gelen sinyali kabul eder ve kodunu çözer. Kodlayıcının adres bitleri sabit olmadığından ve tanktaki su seviyesindeki değişikliklerle değiştiğinden, özel bir adres tarama sistemi kullanılır. Sistem, bir eşleşme bulunana kadar olası tüm adres bitlerini dekodere sürekli olarak gönderir.

    Adres tarama sistemi, 8-bit seri-paralel-çıkış-çıkış kaydırma yazmacı 74LS164 (IC7) etrafında inşa edilmiş bir Johnson sayacı içerir . Bir saat puls üreteci NE555 (IC6) gerekli saat pulsunu sürekli olarak kaydırma yazmacına besler. Böylece sayaç ilerler ve çıktıları sırasıyla ilk önce ileri sonra ters sırada olmak üzere Tablo 1’de tablolanan mantık düzeylerini sırayla takip eder. IC6 kararsız modda çalışır. Saat nabız hızı R12 ve R15 dirençleri ve C7 kondansatörü tarafından yönetilir. LED11 saatin çalışma durumunu göstermek için yanıp söner. Güç ilk açıldığında IC7, R18 ve C8 içeren açılış sıfırlama devresi ile sıfırlanır.

    Sonuç olarak, IC7’nin tüm çıkış bitleri mantık azalır. Nihai yazmaç çıkışının (şimdi mantık düşük) olan iltifatı, IC3’ün çıkış pimi 4 aracılığıyla kaydırma yazmacı IC7’nin 1 ve 2 pinlerine giriş verileri olarak geri beslenir. Bu nedenle, IC6’dan gelen saat darbeleri ile sayaç ilerler ve çıktıları sırasıyla önce ve sonra ters sırada Tablo 1’de verilen mantık seviyelerini sırayla takip eder. Sayaç, saat sayacı beslediği sürece sırayı tekrarlamaya devam eder.

    Şimdi, IC7’nin sekiz çıkışı, kod çözücü HT12D’nin sekiz adres hattına (A0 ila A7) bağlıdır. Bu nedenle, belirli bir zamanda, IC7 çıkışı kodlayıcının adresiyle eşleştiğinde, kod çözücünün IC3’ün pin 11’inden veri alması sağlanır ve IC5’in VT çıkışı (pin17) mantık yüksekliğine gider. LED2 geçerli bir sinyalin (VT) alındığını gösterir. Bu VT sinyali IC3’ün N3 kapısı ile iltifat edilir ve saat üreteci IC6’nın pimini 4 sıfırlamak için beslenir. Bu nedenle, kod çözücü (IC5) veri almayı etkinleştirir etkinleştirmez, saat sıfırlama pimi nabız üretimini kısıtlayarak mantığın altına iner.

    Sayaç, IC6’dan saat darbesi almadığı için durur. LED2 açık kalır, LED11 bu durumu göstermek için söner. Adres hatlarına bağlı LED’ler bu anda geçerli adresleri gösterir, bu da tekrar kodlayıcıdaki sensörlerin durumudur. LED’lerin yanması (LED3 – LED10) yüksek mantığı temsil eder, yani tank boştur (su yok) ve tersi (tabloya bakın). Örneğin, LED’lerin durumu Tablo 3’te gösterilmiştir.

    İlgili sensör çıkışlarındaki su seviyesi Tablo 4’te gösterilmiştir.

    Tanktaki su seviyesi S2’nin üstünde, S3’ün altında olacaktır.

    Röle kontrolü

    Depodaki su seviyesi önceden belirlenmiş iki sensör seviyesi arasında sınırlandırılabilir. Devre şemasında S1 ve S6 sırasıyla minimum ve maksimum su seviyeleri için seçilir. Su seviyesi S1’in altına düştüğünde, 8-bit sensör çıkışı Tablo 5’te verildiği gibi olur.

    Alıcıda adres taraması durur ve sonuç olarak Johnson sayacı 74LS164 çıkışları (Q0 – Q7) Tablo 6’da gösterildiği gibi olduğunda VT yüksek olur.

    IC4’ün NAND geçidi N2’nin giriş pimleri 4 ve 5, sırasıyla IC5’in VT (pim 17) ve IC7’nin Q1’ine (pim 4) bağlıdır. IC4’ün NAND geçidi N2, pimleri 4 ve 5’te iki mantık yüksek sinyali aldığından, çıkış pimi 6, mantıksal düşük seviyeye gider ve NE555 (IC9) etrafında inşa edilen çift kararlı flip-flopu tetikler. IC9 çıkışı (pin 3), T2 ve T3’ü (Darlington çifti) açarak yüksek olacak şekilde ayarlanmıştır. Röle hemen etkinleştirilir ve kontağı kapatır. Pompa motoru açılır ve flip-flop sıfırlanmadığı sürece açık kalır.

    Su, tankı S1 tarafından belirtilen seviyeden doldurmaya devam eder. Su seviyesi tankın üstüne doğru arttıkça, sensörlerin çıkışı Tablo 1’de gösterildiği gibi yolu geçer. Bunu yaparken, S6 mantık düştüğünde, IC7 alıcı sayacı 74LS164 Q6 çıkışındaki karşılık gelen taranan adres azalır .

    IC7’nin Q6’sının mantık durumu, IC4’ün N4 kapısı tarafından ters çevrilir ve pim 11’deki çıkışı, N3 kapısının giriş pimine 10 beslenir. N3’ün diğer giriş kapısı VT (şu anda mantık yüksek olan) ile beslenir. Sonuç olarak, çıkışı (pin 8) mantığın altına iner, IC9’u sıfırlar ve dolayısıyla rölenin enerjisini keser. Pompa durur.

    İnşaat ve test

    Kablosuz Su Seviyesi Kontrolörü ve Gösterge verici ünitesinin PCB yerleşimi Şekil 6’da ve bileşen yerleşimi Şekil 7’de gösterilmiştir. PCB üzerindeki devreyi monte edin ve 230V AC’yi X1’in primerine bağlayın.

    Benzer şekilde, Kablosuz Su Seviyesi Kontrolörü ve Gösterge alıcı biriminin gerçek boyutlu bir PCB düzeni Şekil 8’de ve bileşen düzeni Şekil 9’da gösterilmiştir. PCB üzerindeki devreyi monte edin ve 230V AC’yi X2’nin primerine bağlayın.

    6: Verici birimin PCB düzeni7: Verici ünitesi PCB’si için bileşen yerleşimi8: Alıcı birimin PCB yerleşimi9: Alıcı birim PCB için bileşen düzeni

    PCB ve bileşen yerleşim PDF’lerini indirin: buraya tıklayın

    RL1 rölesi PCB’ye bağlı değildir; PCB’ye yalnızca röle bobini terminalleri bağlanır. Motorun, sigortanın ve AC şebekesinin de harici olarak bağlanması gerekir.

    Tankın su seviyesini belirtmek için LED3 ila LED10 kullanılır. LED3 maksimum, LED10 minimum seviye göstergeleri içindir. LED’lerin yanması, tankın boş olduğu anlamına gelir.

    Biri verici ve diğeri alıcı için olmak üzere iki ayrı ünite monte edin. Sensör düzeneğini oluşturmak için, Şekil 4’te gösterildiği gibi metal kelepçeler kullanılabilir. Bunlar yalıtılmış bir alüminyum boru üzerine yerleştirilir. Yalıtım için PVC boru manşonu kullanılmıştır. Bununla birlikte, metal boru sert bir plastik boru ile değiştirilebilir, bu durumda manşon gerekmez.
    İzoleli kablolar, sensörleri HT12E’nin kodlayıcı adres hatlarına (A0 ila A7) bağlamak için kullanılır. Bu tellerin uzunluğunu azaltmak için verici ünitesi, tankın üzerine su geçirmeyen plastik bir kutuya monte edilebilir.

     

    https://drive.google.com/file/d/1AxLrybSZSSzWv101c8l9EQeXQMxCrG6q/view?usp=sharing

     

  • Arduino ile NRF24L01  RF alıcı-verici modülü

    Arduino ile NRF24L01  RF alıcı-verici modülü
    Proje adı: NRF24L01 2.4GHZ RF alıcı-verici modülü
    Etiketler: Arduino, Arduino Uno, nRF Seri Adaptör, nRF24L01, 2.4GHZ NRF24L01 Modülü, PA LNA SMA anteni, NRF24L01 alıcı-verici modülü, WINGONEER, PA, SMA ve LNA antenli, 2.4G NRF24L01 anten kablosuz alıcı-verici modülü, Arduino, Arduino Uno , Arduino Mega, Arduino Nano, Arduino, NRF24L01 RF modülü, RF alıcı-verici modülü, 2.4G, antistatik köpükte anten, kablosuz alıcı-verici modülü kiti, SPI kablosuz veri iletim modülü, kablosuz veri toplama, NRF seri adaptör, 5V-3.3V VCC adaptörü NRF24L01 kablosuz modülü için kart, NRF24L01 için koparma adaptörü, ATMEGA48 ile NRF24L01 için kalkan, 3.3V regülatörlü nRF24L01 için taban modülü, 8pin NRF24L01, YL-105, YL 105 için USB adaptör için soket adaptör plakası, AS01-ML01DP3, Arduino Kablosuz İletişim, Arduino ile nRF24L01 – 2.4GHz RF Alıcı Verici, nRF24L01 Arduino
    Ekler: kütüphane1 , sunucularetrak1 , istemcilerutrak1
    Bu projede, bu parçalar gerekli ( Değerli ziyaretçiler Sen parçaların linklere proje satın tıklayarak desteklemek ve onları satın ya da diri bu web sitesini tutmamıza bağış yapabilirsiniz teşekkür ederiz.. ):
    1. Arduino Uno R3 ( Arduino’nun diğer sürümünü de kullanabilirsiniz) 2 adet

    2. Jumper kabloları FM

    3. Arduino IDE (siz indirebilirsiniz burada )
    4. NRF24L01 harici anten olmadan veya harici anten ile 2.4 GHZ RF alıcı-verici modülü PA LNA SMA -2 adet

    Genel
    NRF24L01 kablosuz alıcı-verici modülü, nasıl çalıştığını ve Arduino kartı ile arayüz hakkında bilgi edineceğiz.
    NRF24L01 2.4GHZ RF alıcı-verici modülünü anlama
    NRF24L01 2.4 GHZ RF alıcı-verici modülleri Arduino topluluğu arasında çok popüler. Bunlar alıcı-vericilerdir, yani her modül veri iletebilir ve alabilir. İki veya daha fazla Arduino kartının bir mesafeden birbirleriyle kablosuz olarak iletişim kurabilmesi, sensör verilerini uzaktan izleme, robotları kontrol etme, ev otomasyonu ve liste devam ediyor gibi birçok olasılık açar. Ucuz ama güvenilir 2 yönlü RF çözümlerine gelince, hiç kimse Nordic Semiconductor’dan nRF24L01 + alıcı-verici modülünden daha iyi bir iş yapmaz. nRF24L01 + (artı) alıcı-verici modülü, genellikle 2 dolardan daha az bir fiyata çevrimiçi olarak elde edilebilir ve bu da alabileceğiniz en ucuz veri iletişim seçeneklerinden biri haline gelir. Bu modüller çok küçüktür, neredeyse her DIY projesine kablosuz bir arayüz eklemenize izin verir.
    NRF24L01 + alıcı-verici modülü, dünya çapında 2,4 GHz ISM frekans bandında çalışacak şekilde tasarlanmıştır ve veri iletimi için GFSK modülasyonunu kullanır. Veri aktarım hızı 250kbps, 1Mbps ve 2Mbps’den biri olabilir. 2,4 GHz bant, lisanssız düşük güçlü cihazların kullanımı için uluslararası olarak ayrılmış Endüstriyel, Bilimsel ve Tıbbi (ISM) bantlardan biridir. Kablosuz telefonlar, Bluetooth cihazları, yakın alan iletişimi (NFC) cihazları ve kablosuz bilgisayar ağları (WiFi), tümü ISM frekanslarını kullanır.
    Modülün çalışma voltajı 1,9 ila 3,6 V arasındadır, ancak iyi haber mantık pimlerinin 5 volt toleranslı olmasıdır, bu yüzden herhangi bir mantık seviyesi dönüştürücü kullanmadan bir Arduino’ya veya herhangi bir 5V mantık mikrodenetleyicisine kolayca bağlayabiliriz. Modül programlanabilir çıkış gücü vizini destekler. 0 dBm, -6 dBm, -12 dBm veya -18 dBm’dir ve 0 dBm’de iletim sırasında inanılmaz bir şekilde yaklaşık 12 mA tüketir, bu da tek bir LED’den bile daha düşüktür. Ve en iyisi, bekleme modunda 26 µA ve güç kapama modunda 900 nA tüketir. Bu nedenle düşük güçlü uygulamalar için kablosuz cihazlardır.
    NRF24L01 + alıcı-verici modülü, maksimum 10 Mb / sn veri hızı ile 4 pimli Seri Çevresel Arabirim (SPI) üzerinden iletişim kurar. Frekans kanalı (125 seçilebilir kanal), çıkış gücü (0 dBm, -6 dBm, -12 dBm veya -18 dBm) ve veri hızı (250kbps, 1Mbps veya 2Mbps) gibi tüm parametreler SPI arabirimi üzerinden yapılandırılabilir. SPI veri yolu bir Master ve Slave kavramını kullanır, çoğu yaygın uygulamada Arduino’muz Master ve nRF24L01 + alıcı-verici modülü Slave’dir. I2C veriyolundan farklı olarak, SPI veriyolundaki slave sayısı sınırlıdır, Arduino Uno’da en fazla iki SPI slave kullanabilirsiniz, yani iki nRF24L01 + alıcı-verici modülü.
    Modül, 125 bağımsız kanalı kullanabilir ve bu da 125 bağımsız modemi bir ağda tek bir yerde bulundurma imkanı verir. Her kanalın 6 adede kadar adresi olabilir veya her ünite aynı anda 6 adede kadar başka ünite ile iletişim kurabilir.
    Şartname:
    • Frekans Aralığı 2.4 GHz ISM Bandı
    • Maksimum Hava Veri Hızı 2 Mb / s
    • Modülasyon Formatı GFSK
    • Maks. Çıkış Gücü 0 dBm
    • Çalışma Besleme Gerilimi 1,9 V – 3,6 V
    • Maks. Çalışma Akımı 13.5mA
    • Min. Akım (Bekleme Modu) 26µA
    • Lojik Girişler 5V Toleranslı
    • İletişim Aralığı 800+ m (görüş açısı)
    Veri sayfasını burada bulabilirsiniz .
    Dahili antenli nRF24L01 + kablosuz alıcı-verici modülü VS nRF24L01 + PA LNA harici antenli kablosuz alıcı-verici modülü
    NRF24L01 + çipine dayanan birçok modül mevcuttur. Dahili antenli nRF24L01 + kablosuz alıcı-verici modülünü ve harici antenli nRF24L01 + PA LNA kablosuz alıcı-verici modülünü karşılaştıralım.
    1. nRF24L01 + dahili anten ile kablosuz alıcı-verici modülü

    Dahili anten kullanır. Bu, koparmanın daha kompakt bir versiyonuna izin verir. Bununla birlikte, daha küçük anten aynı zamanda daha düşük bir iletim menzili anlamına gelir. Bu sürümle açık havada 100 metrelik bir mesafeden açık bir alanda iletişim kurabileceksiniz. İç mekandaki menziliniz hafifçe zayıflayacaktır.
    Harici antenli 2. nRF24L01 + PA LNA kablosuz alıcı-verici modülü

    Bir SMA konektörü ve bir ördek anteni ile birlikte gelir, ancak gerçek fark bu değildir. Gerçek fark, PA, LNA ve gönderme-alma anahtarlama devresini entegre eden özel bir RFX2401C çipi ile gelmesidir . Ördek anten ile birlikte bu menzil genişletici çip, modülün yaklaşık 1000 metre daha büyük bir iletim menzili elde etmesine yardımcı olur.
    PA LNA anlamı ne?

    PA açılımı Güç amplifikatörü . Sadece nRF24L01 + yongasından iletilen sinyalin gücünü arttırır. Oysa LNA , Düşük Gürültülü Amplifikatör anlamına gelir . LNA’nın işlevi, antenden son derece zayıf ve belirsiz sinyali almaktır (genellikle mikrovoltlar veya -100 dBm’nin altında) ve daha faydalı bir seviyeye (genellikle yaklaşık 0.5 ila 1V) yükseltmektir. Alma yolunun düşük gürültülü amplifikatörü (LNA) ve iletim yolunun güç amplifikatörü (PA), iki sinyali ayıran ve nispeten güçlü PA çıkışının hassas LNA girişine aşırı yüklenmesini önleyen bir dupleksleyici aracılığıyla antene bağlanır.
    NRF24L01 + alıcı-verici modülü nasıl çalışır?
    NRF24L01 + alıcı-verici modülü Kanal adı verilen belirli bir frekansta veri iletir ve alır. Ayrıca iki veya daha fazla alıcı-verici modülünün birbirleriyle iletişim kurabilmeleri için aynı kanalda olmaları gerekir. Bu kanal 2.4 GHz ISM bandında herhangi bir frekans olabilir veya daha kesin olmak gerekirse, 2.400 ila 2.525 GHz (2400 ila 2525 MHz) arasında olabilir. Her kanal 1MHz’den daha düşük bir bant genişliğine sahiptir. Bu bize 1MHz aralıklı 125 olası kanal verir. Böylece, modül 125 farklı kanal kullanabilir ve bu da 125 bağımsız kanalı tek bir yerde çalıştırabilir.

    Kanal 250kbps ve 1Mbps hava veri hızında 1MHz’den daha düşük bir bant genişliğine sahiptir. Bununla birlikte, 2Mbps hava veri hızında, 2MHz bant genişliği doldurulur (RF kanalı frekans ayarının çözünürlüğünden daha geniştir). Bu nedenle, üst üste binmeyen kanalları sağlamak ve 2Mbps modunda çapraz konuşmayı azaltmak için iki kanal arasında 2MHz aralık bırakmanız gerekir.
    Seçtiğiniz kanalın RF kanalı frekansı aşağıdaki formüle göre ayarlanır: Frek (Seçili) = 2400 + CH (Seçili). Örneğin, veri aktarımı için kanalınız olarak 108 seçerseniz, kanalınızın RF kanalı frekansı 2508MHz (2400 + 108) olur.
    NRF24L01 +, Çok Kademeli adlı bir özellik sunar. Çoklu Vericiler Tek Alıcı için bir kısaltmadır. Her bir RF kanalının mantıksal olarak Veri Boruları adı verilen 6 paralel veri kanalına ayrıldığı. Başka bir deyişle, bir veri borusu fiziksel RF Kanalındaki mantıksal bir kanaldır. Her veri hattının kendi fiziksel adresi (Veri Hattı Adresi) vardır ve yapılandırılabilir.

    Yukarıdaki resme bakarsanız, birincil alıcının aynı anda 6 farklı verici düğümünden bilgi toplayan bir hub alıcısı gibi davrandığını göreceksiniz. Hub alıcısı herhangi bir zamanda dinlemeyi durdurabilir ve verici görevi görür. Ancak bu bir seferde sadece bir boru / düğüm yapılabilir.
    NRF24L01 + alıcı-verici modülü, Enhanced ShockBurst olarak bilinen bir paket yapısı kullanır. Bu basit paket yapısı 5 farklı alana bölünmüştür.

    The original ShockBurst structure consisted only of Preamble, Address, Payload and the Cyclic Redundancy Check (CRC) fields. Enhanced ShockBurst brought about greater functionality for more enhanced communications using a newly introduced Packet Control Field (PCF).
    This new structure is great for a number of reasons. Firstly, it allows for variable length payloads with a payload length specifier, meaning payloads can vary from 1 to 32 bytes.
    Secondly, it provides each sent packet with a packet ID, which allows the receiving device to determine whether a message is new or whether it has been retransmitted (and thus can be ignored).
    Finally, and most importantly, each message can request an acknowledgement to be sent when it is received by another device.

    Orijinal ShockBurst yapısı yalnızca Giriş, Adres, Yük ve Döngüsel Artıklık Kontrolü (CRC) alanlarından oluşuyordu. Geliştirilmiş ShockBurst, yeni tanıtılan bir Paket Kontrol Alanı (PCF) kullanarak daha gelişmiş iletişim için daha fazla işlevsellik sağladı. Bu yeni yapı birkaç nedenden dolayı harika. İlk olarak, bir yük uzunluğu belirleyicisi ile değişken uzunluklu yüklere izin verir, yani yükler 1 ila 32 bayt arasında değişebilir. İkincisi, gönderilen her pakete, alıcı cihazın bir mesajın yeni olup olmadığını veya yeniden iletilip iletilmediğini (ve böylece göz ardı edilip edilemeyeceğini) belirlemesini sağlayan bir paket kimliği sağlar. Son olarak ve en önemlisi, her mesaj başka bir cihaz tarafından alındığında bir bildirim gönderilmesini talep edebilir.
    Şimdi, iki nRF24L01 + modülünün birbirleriyle nasıl işlem yaptığını daha iyi anlamak için üç senaryoyu tartışalım.
    1. Onay ve kesinti ile işlem. Bu olumlu bir senaryo örneğidir. Burada verici, alıcıya bir veri paketi göndererek bir iletişimi başlatır. Tüm paket iletildikten sonra, alındı paketinin (ACK paketi) alınmasını bekler (yaklaşık 130 µs). Alıcı paketi aldığında vericiye ACK paketi gönderir. ACK paketini alırken verici, yeni verilerin kullanılabilir olduğunu göstermek için kesme (IRQ) sinyali verir.
    2. Veri paketi ile işlem kaybedildi. Bu, iletilen paketin kaybı nedeniyle yeniden iletimin gerekli olduğu olumsuz bir senaryodur. Paket iletildikten sonra verici ACK paketinin alınmasını bekler. Verici, Otomatik Yeniden İletim-Gecikme (ARD) süresi içinde alamazsa, paket yeniden iletilir. Yeniden iletilen paket alıcı tarafından alındığında, ACK paketi iletilir ve bu da vericide kesinti oluşturur.
    3. Onay ile işlem kaybedildi. Bu yine ACK paketinin kaybedilmesi nedeniyle yeniden iletimin gerekli olduğu olumsuz bir senaryodur. Burada alıcı ilk denemede paketi alsa bile, ACK paketinin kaybı nedeniyle verici, alıcının paketi hiç almadığını düşünür. Bu nedenle, Otomatik Yeniden İletme-Gecikme süresi bittikten sonra paketi yeniden iletir. Artık alıcı, öncekiyle aynı paket kimliğini içeren paketi aldığında, atar ve ACK paketini tekrar gönderir.
    Bu paketin tamamı, mikro denetleyicinin katılımı olmadan nRF24L01 + yongası tarafından otomatik olarak yapılır.
    NRF24L01 + 2.4 GHZ RF alıcı-verici modülü aralığı nasıl geliştirilir
    1. Güç kaynağı gürültüsünü azaltın. Radyo Frekansı (RF) sinyali üreten bir RF devresi, güç kaynağı gürültüsüne karşı çok duyarlıdır . Kontrol edilmezse, güç kaynağı gürültüsü elde edebileceğiniz aralığı önemli ölçüde azaltabilir.Güç kaynağı bağımsız bir pil değilse, gücün üretilmesiyle ilişkili gürültü olması ihtimali yüksektir. Bu gürültünün sisteme girmesini önlemek için, güç kaynağı hattı boyunca nRF24L01 + modülüne fiziksel olarak mümkün olduğunca yakın bir 10 µf filtre kondansatörü yerleştirilmesi tavsiye edilir. Üstesinden gelmenin en kolay yolu, nRF24L01 için çok ucuz bir Adaptör Modülü kullanmaktır.

    Adaptör modüllerinin kendi 3.3V voltaj regülatörü ve bir dizi filtre kapasitörü vardır, böylece 5V güç kaynağı ile çalıştırabilirsiniz.
    2. Kanal frekansınızı değiştirin. Bir RF devresi için bir başka potansiyel gürültü kaynağı, özellikle aynı kanalda ayarlanmış komşu ağlarınız veya diğer elektronik cihazlardan gelen parazitiniz varsa dış ortamdır. Bu sinyallerin soruna neden olmasını önlemek için nRF24L01 + modülünüzde en yüksek 25 kanalı kullanmanızı öneririz. Bunun nedeni WiFi’nin alt kanalların çoğunu kullanmasıdır.
    3. Düşük Veri Hızı. NRF24L01 +, -94dBm olan 250Kbps hızda en yüksek alıcı hassasiyetini sunar. Ancak 2MBps veri hızında, alıcı hassasiyeti -82dBm’ye düşer. Bu dili konuşursanız, 250Kbps’deki alıcının 2Mbps’den yaklaşık 10 kat daha hassas olduğunu bilirsiniz. Bu, alıcının 10 kat zayıf bir sinyalin kodunu çözebileceği anlamına gelir. Alıcı hassasiyeti, alıcının bir RF sinyali algılayabileceği en düşük güç seviyesidir. Negatif sayının mutlak değeri ne kadar büyük olursa, alıcı hassasiyeti de o kadar iyi olur. Örneğin, −94 dBm alıcı hassasiyeti −82 dBm alıcı duyarlılığından 12 dB daha iyidir. Böylece, veri hızını düşürmek elde edebileceğiniz aralığı önemli ölçüde artırabilir. Ayrıca, çoğu projemiz için 250Kbps hız fazlasıyla yeterli.
    4. daha yüksek çıkış gücü. Maksimum çıkış gücünün ayarlanması iletişim aralığını da geliştirebilir. NRF24L01 +, çıkış gücünden birini seçmenizi sağlar. 0 dBm, -6 dBm, -12 dBm veya -18 dBm. 0 dBm çıkış gücünün seçilmesi havadan daha güçlü sinyal gönderir.
    NRF24L01 2.4GHZ RF alıcı-verici modülünün sinyalleri ve bağlantıları

    Bu modülün güç tüketimi, iletim sırasında tek bir LED’den bile daha düşük olan yaklaşık 12mA’dır. Modülün çalışma voltajı 1.9 ila 3.6V arasındadır, ancak iyi olan şey diğer pimlerin 5V mantığını tolere etmesidir, bu yüzden herhangi bir mantık seviyesi dönüştürücüsü kullanmadan onu bir Arduino’ya kolayca bağlayabiliriz.
    Bu pinlerden üçü (MISO, MOSI, SCK) SPI iletişimi içindir ve Arduino’nun SPI pinlerine bağlanması gerekir, ancak her Arduino kartının farklı SPI pinlerine sahip olduğunu unutmayın. CSN ve CE pinleri Arduino kartının herhangi bir dijital pinine bağlanabilir ve modülü bekleme veya aktif modda ayarlamak ve iletim veya komut modu arasında geçiş yapmak için kullanılır. Son pim (IRQ), kullanılması gerekmeyen bir kesme pimidir.
    GND – topraklama pimi. Arduino kartı GND pinine bağlandı.
    VCC – güç kaynağı pimi. Arduino kartına bağlı 3V3 pin
    IRQ – Maskelenebilir kesme pimi
    MISO (Master In Slave Out) – Master’a veri göndermek için Slave hattı. Üç durum seçeneğiyle SPI Slave Veri Çıkışı
    MOSI (Master Out Slave In) – Çevre birimlere veri göndermek için Master hattı. SPI Slave Veri Girişi
    CE – Chip Enable RX veya TX modunu etkinleştirir
    CSN (Chip Select Not) – SPI Chip Seçimi. Aktif-DÜŞÜK pim ve normalde YÜKSEK tutulur. Bu pim azaldığında, nRF24L01 SPI portunu veri için dinlemeye başlar ve buna göre işler.
    SCK (Seri Saat) – SPI Saati. Master tarafından üretilen veri iletimini senkronize eden saat darbeleri.
    kablolama
    Giriş voltajı 1,9V ila 3,6V arasındadır. Bu voltajı aşmayın, eğer daha fazla ise NRF24L01 modülünüz hasar görür.
    NRF24L01 + alıcı-verici modülü çok fazla veri aktarımı gerektirdiğinden, bir mikrodenetleyicideki donanım SPI pinlerine bağlandığında en iyi performansı verecektir.
    1. Ana (sunucu) kablolama

    2. Bağımlı (istemci) kablolama

    Adım Adım talimat
    1. Ana bilgisayara (sunucu) taslak yükleme (Arduino Uno 1)
    1. Kablolama yapın.
    2. Adruino Uno kartınızı PC’nize takın ve doğru kart ve com bağlantı noktasını seçin.
    3. Sunucu kroki1’inizi doğrulayın ve Adruino Uno’nuza yükleyin .
    2. Taslağa köle (istemci) yükleniyor (Arduino Uno 2)
    1. Kablolama yapın.
    2. Adruino Uno kartınızı PC’nize takın ve doğru kart ve com bağlantı noktasını seçin.
    3. Client sketch1’i doğrulayın ve Adruino Uno’nuza yükleyin .
    3. İletişimin kurulması
    1. PuTTY.org’dan PuTTY istemcisini indirmeniz ve yüklemeniz gerekir .
    2. Kodu Arduino Uno 1 ve Arduino Uno 2’ye yüklediğinizde, müşteri bir mesaj gönderecektir: “Merhaba Dünya!” ve sunucuya istemciye aşağıdaki iletiyi geri gönderiyor: “merhaba”. Bu mesajlar seri monitörde görüntülenir.
    3.
    özet
    NRF24L01 kablosuz alıcı-verici modülü, nasıl çalıştığını ve Arduino kartı ile arayüz hakkında bilgi edindik. nRF24L01 kablosuz alıcı-verici modülleri, alıcı ve verici birbirine yakın olduğunda çok iyi çalışır. Eğer onları çok uzağa yerleştirmiş olursanız, iletişimi kaybedersiniz. İletişim aralığı da değişir. Herhangi bir engel olup olmadığına ve harici bir anten kullanıp kullanmadığınıza ortamınızda ne kadar gürültü bağlı olduğuna bağlı olacaktır.
    Birden fazla düğüme sahip olabilir ve birden fazla istemciye izin vermek için farklı aygıt adresleri ayarlayabilirsiniz.Kütüphane, bu kavramı kullanmanıza yardımcı olacak bir örnekle birlikte gelir.Arduino IDE’nizde yüklü olan kütüphaneyi tutmak. Git Dosya -> Örnekler -> Radiohead -> nrf24 ve bu örnekleri “kullanmak nrf24_reliable_datagram_client ” ve ” nrf24_reliable_datagram_server “. Koda bakarsanız, her cihaz için farklı adresler ayarlayabilirsiniz. Bununla ilgili daha fazla bilgiyi burada bulabilirsiniz .
    Arduino Mega kartını kullanmak istiyorsanız, pinleri değiştirmelisiniz: Arduino Mega’da 10-> 53, 13-> 52, 11-> 51, 12-> 50 ve bunun yerine aşağıdakileri kullanarak (kodda 7. satır) başlatın: RH_NRF24 nrf24 (8, 53); //mega
    Kütüphaneler:
    • Bu proje açıklamasının başlangıcındaki eklere bakın
    • RadioHead kütüphanesi dahildir. PC’nizdeki kütüphaneleri indirin, sıkıştırın ve ekleyin: örneğin C: \ Users \ toshiba \ Documents \ Arduino \ libraries veya C: \ Program Files (x86) \ Arduino \ library. Bu bağlantıya PC’nizde yüklü olan Adruino IDE programının Tercihleri bölümünde ulaşabilirsiniz. Bununla ilgili daha fazla bilgiyi burada bulabilirsiniz . Piyasada bulunan hemen hemen tüm RF modülleriyle çalışır.
    Proje kaynakları:

    unknown NRF24L01_ARDUINO.pdf____indir

    • Bu proje açıklamasının başlangıcındaki eklere bakın

  • Arduino ile LDR Işık Kontrol Uygulaması ile melodi

    Arduino Başlangıç ​​Seti: Proje 6

    Proje adı: IŞIK TERMİNİ

    Keşfedin: tone () işleviyle ses çıkarmak, analog sensörleri kalibre etmek

    Kod:

    int sensorValue;
    int sensorLow = 1023;
    int sensorHigh = 0;
    const int ledPin = 13;
    void setup() {
    pinMode(ledPin, OUTPUT);
    digitalWrite(ledPin, HIGH);
    while (millis() < 5000) {
    sensorValue = analogRead(A0);
    if (sensorValue > sensorHigh) {
    sensorHigh = sensorValue;
    }
    if (sensorValue < sensorLow) {
    sensorLow = sensorValue;
    }
    }
    digitalWrite(ledPin, LOW);
    }
    void loop() {
    sensorValue = analogRead(A0);
    int pitch =
    map(sensorValue,sensorLow,sensorHigh, 50, 4000);
    tone(8,pitch,20);
    delay(10);
    }
    

    sketch

    Bu projede, şu parçalara ihtiyacınız var:

    1.Aruduino Uno R3 (Arduino’nun diğer sürümünü de kullanabilirsiniz)

    2. atlama kabloları

    3. Direnç 1 adet (10 KOhm)

    4. Breadboard yarım boy 

    5. Arduino IDE (siz indirebilirsiniz burada  )

    6. Fotorezistör (fotosel) 1 adet

    7. Piezo zil 1 adet

    GENEL

    Bu Uygulama ile Bir müzisyenin parmaklarını tuşlara dokunmadan yukarı aşağı hareket ettirerek bir müzik çalmasını öğreneceksiniz.

    Bir theremin, bir müzisyenin ellerinin enstrüman etrafındaki hareketlerine dayanarak ses yapan bir enstrümandır. Muhtemelen birini korkutucu filmlerde duymuşsundur. Bu arada, antenlerin kapasitif değişimini okuyarak, performansçı ellerinin iki antene göre nerede olduğunu tespit eder. Bu antenler, sesi yaratan analog devrelere bağlanır. Bir anten sesin frekansını ve diğer ses seviyesini kontrol eder. Arduino bu enstrümandaki gizemli sesleri tam olarak çoğaltamasa da, tone () işlevini kullanarak bunları taklit etmek mümkündür . Aşağıdaki resim analogWrite () ve ton () tarafından yayılan darbeler arasındaki farkı göstermektedir. Bu, hoparlör veya piezo gibi bir dönüştürücünün farklı hızlarda ileri geri hareket etmesini sağlar. Arduino ile kapasitansı algılamak yerine, ışık miktarını tespit etmek için bir fotorezistör (fotosel) kullanacaksınız. Ellerinizi sensörün üzerinde hareket ettirerek, fotorezistörün yüzüne düşen ışık miktarını, Arduino Starter Kit Projesi 4’te olduğu gibi değiştireceksiniz. Analog pinteki voltajdaki değişiklik hangi frekans notunun çalınacağını belirleyecektir. Arduino Başlangıç ​​Kiti Projesi 4’teki gibi bir voltaj bölücü devre kullanarak fotorezistörleri Arduino’ya bağlayacaksınız. Muhtemelen önceki projede analogRead () kullanarak bu devreyi okuduğunuzda fark etmişsinizdir.okumalarınız 0 ila 1023 arasında değişmedi. Toprağa bağlanan sabit direnç aralığın alt ucunu ve ışığınızın parlaklığı üst ucunu sınırlar. Sınırlı bir aralığa yerleşmek yerine, yüksek ve düşük değerleri alan sensör okumalarını kalibre edersiniz, bunları aralığınızdan olabildiğince fazla alan çıkarmak için map () işlevini kullanarak bunları ses frekanslarına eşleştirirsiniz . Bu, farklı ışık koşullarına sahip bir oda gibi, devrenizi yeni bir ortama taşıdığınızda sensör okumalarını ayarlama avantajına sahip olacaktır. Piezo, elektrik aldığında titreyen küçük bir elementtir. Hareket ettiğinde, etrafındaki havayı uzaklaştırır, ses dalgaları oluşturur.

    DEVRE

    Geleneksel bunlar, sesin frekansını ve sesini kontrol edebilir. Bu örnekte, yalnızca frekansı kontrol edebileceksiniz. Arduino üzerinden ses seviyesini kontrol edemeseniz de, hoparlöre gelen voltaj seviyesini manuel olarak değiştirmek mümkündür. Breadboard’unuzda dış bus hatlarını güç ve toprağa bağlayın. Piezo’nuzu alın ve bir ucu toprağa, diğerini Arduino’daki dijital pim 8’e bağlayın. Fotorezistörünüzü bir uçtan 5V’a bağlayarak breadboard’a yerleştirin. Diğer ucunu Arduino’nun analog IN 0 pimine bağlayın ve 10 kilometrelik bir dirençle topraklayın. Bu devre, Arduino Başlangıç ​​Kiti Proje 4’teki voltaj bölücü devresi ile aynıdır.

    KODCreate a variable to hold the analogRead() value from the photoresistor. Next, create variables for the high and low values. You are going to set the initial value in the sensorLow variable to 1023, and set the value of the sensorHigh variable to 0. When you first run the program, you will compare these numbers to the sensor’s readings to find the real maximum and minimum values. Create a constant named ledPin. You will use this as an indicator that your sensor has finished calibrating. For this project, use the on-board LED connected to pin 13. In the setup(), change the pinMode() of ledPin to OUTPUT, and turn the light on. The next steps will calibrate the sensor’s maximum and minimum values. You’ll use a while() statement to run a loop for 5 seconds. while() loops run until a certain condition is met. In this case you’re going to use the millis() function to check the current time. millis() reports how long the Arduino has been running since it was last powered on or reset.In the loop, you’ll read the value of the sensor; if the value is less than sensorLow (initially 1023), you’ll update that variable. If it is greater than sensorHigh (initially 0), that gets updated. When 5 seconds have passed, the while() loop will end. Turn off the LED attached to pin 13. You’ll use the sensor high and low values just recorded to scale the frequency in the main part of your program. In the loop(), read the value on A0 and store it in sensorValue. Create a variable named pitch. The value of pitch is going to be mapped from sensorValue. Use sensorLow and sensorHigh as the bounds for the incoming values. For starting values for output, try 50 to 4000. These numbers set the range of frequencies the Arduino will generate. Next, call the tone() function to play a sound. It takes three arguments: what pin to play the sound on (in this case pin 8), what frequency to play (determined by the pitch variable), and how long to play the note (try 20 milliseconds to start).Ardından, sese çalması için biraz zaman vermek üzere 10 milisaniye boyunca bir gecikme () arayın.

    AnalogRead () değerini fotorezistörden tutmak için bir değişken oluşturun . Sonra, yüksek ve düşük değerler için değişkenler oluşturun. SensorLow değişkenindeki başlangıç​​değerini 1023 olarak ve sensörHigh değişkeninin değerini 0 olarak ayarlayacaksınız . Programı ilk çalıştırdığınızda, gerçek maksimum ve minimum değerleri bulmak için bu sayıları sensörün okumaları ile karşılaştıracaksınız. . LedPin adlı bir sabit oluşturun . Bunu, sensörünüzün kalibrasyonunun bittiğini gösteren bir gösterge olarak kullanacaksınız. Bu proje için, on-board olarak pim 13 bağlanmış LED kullanmak kurulum () , değiştirmek pinMode () ait ledPinÇIKIŞ’a gidin ve ışığı açın. Bir sonraki adımlar sensörün maksimum ve minimum değerlerini kalibre edecektir. 5 saniye boyunca bir döngü çalıştırmak için while () ifadesini kullanacaksınız. while () döngüler belirli bir koşul yerine getirilinceye kadar çalışır. Bu durumda , geçerli saati kontrol etmek için millis () işlevini kullanacaksınız. millis (), Arduino’nun ne zamandan beri çalıştırıldığından veya sıfırlandığından beri ne kadar süredir çalıştığını Döngüde, sensörün değerini okursunuz; değer sensorLow’dan düşükse (başlangıçta 1023), bu değişkeni güncelleyeceksiniz. SensorHigh değerinden büyükse (başlangıçta 0), bu güncellenir. 5 saniye geçtikten sonra , ()döngü sona erecek. Pim 13’e bağlı LED’i çevirin. Programın ana bölümündeki frekansı ölçeklemek için yeni kaydedilen yüksek ve düşük değerleri kullanın. Gelen döngü () , A0 değerini okumak ve sensorValue saklayın. Pitch adlı bir değişken oluşturun. Pitchin değeri sensorValue’dan eşlenecek . Gelen değerlerin sınırları olarak sensorLow ve sensorHigh kullanın . Çıkış için başlangıç ​​değerleri için, 50 ila 4000’i deneyin. Bu sayılar, Arduino’nun üreteceği frekans aralığını belirler. Sonra, tonu arayın ()Bir ses çalmak için Bu üç argüman alır: Sesi çalmak için hangi pin (bu durumda pin 8), hangi frekansı çalmak (adım değişkeni tarafından belirlenir) ve notun ne kadar süre çalınacağını (başlamak için 20 milisaniye deneyin). Sesi çalması için bir süre vermek üzere 10 milisaniye boyunca bir gecikme () .BAŞLANGIÇ

    Arduino’yu ilk açtığınızda, sensörü kalibre etmeniz için 5 saniyelik bir pencere vardır. Bunu yapmak için, elinize ulaşan ışık miktarını değiştirerek elinizi fotorezistör üzerinde yukarı ve aşağı hareket ettirin. Enstrümanı çalarken kullanmak istediğiniz hareketleri ne kadar yaklaştırırsanız kalibrasyon o kadar iyi olacaktır. 5 saniye sonra kalibrasyon tamamlanacak ve Arduino’daki LED sönecektir. Bu olduğunda, piezodan gelen bir ses duymalısınız! Sensöre düşen ışık miktarı değiştikçe, piezonun çaldığı frekans da olmalıdır.ÖZETAralık haritası () perde belirler fonksiyonu oldukça geniştir, müzikal stil için doğru bir uyum olanları bulmaya frekansları değiştirmeyi deneyin. Ton () işlevi çok PWM gibi çalışır analogWrite () fakat anlamlı bir di ff eden farkla. Gelen analogWrite () frekansı sabittir; Bu periyottaki bakliyat oranını görev döngüsünü değiştirmek için değiştirirsiniz. İle tonu () hala darbeleri göndererek, ancak bunların frekansı değişiyor. tone () her zaman% 50 görev döngüsünde darbeler (pimin yüksek olduğu zamanın yarısı, düşük olduğu zamanın yarısı). Tonu ()fonksiyonu, bir hoparlörü veya piezoyu attığında farklı frekanslar üretme yeteneği verir. Sensörleri bir voltaj bölücü devresinde kullanırken, muhtemelen 0 – 1023 arasında tam bir değer aralığı elde edemezsiniz. Sensörleri kalibre ederek, girişlerinizi kullanılabilir bir aralıkla eşleştirmek mümkündür.Bu konuda Youtube’daki filmlerden birini izleyin – buraya tıklayın