• Elektr sxemasi Quyidagi rasmda Arduino Nano va SSD1306
  • Kod tushuntirish
  • O`rnatilgan tizimlar




    Download 0,9 Mb.
    bet5/6
    Sana28.05.2024
    Hajmi0,9 Mb.
    #256159
    1   2   3   4   5   6
    Bog'liq
    O\'rnatilgan T shahzod (2)

    Oldindan ko'rish bo'limi 
    Oldindan ko'rish bo'limida biz quyida ko'rsatilgandek OLED-da ko'rsatiladigan tasvirning aniq ko'rinishini ko'rishimiz mumkin:

    Chiqish bo'limi 
    Chiqish qismida biz yaratilgan kodni yaratamiz va nusxalaymiz, buning uchun quyidagi amallarni bajaring:

    1. Kodni chiqarish formati (biz uni Arduino kodi sifatida o'rnatdik, chunki biz ulardan foydalanamiz).

    2. Identifikator (bu parametr yaratilgan massiv nomini belgilaydi, biz uni asl holicha qoldiramiz).

    3. Chizish rejimi (Biz chizish rejimini gorizontal holatga o'rnatdik).

    4. Va nihoyat, biz kod yaratish tugmasini bosamiz, bu yakuniy chiqish kodini yaratadi.

    Quyidagi rasm sizga aniq fikr beradi

    Elektr sxemasi
    Quyidagi rasmda Arduino Nano va SSD1306 o'rtasidagi interfeys ulanishlari ko'rsatilgan : 


    Arduino Nano Pin

    OLED PIN-kod

    GND

    GND

    3,3 V

    VCC

    D13

    CLK

    D11

    MOSI

    D8

    RES

    D9

    SDC

    D10

    CCS

    Kod tushuntirish
    OLED-da tasvirni ko'rsatish uchun bizga ushbu GitHub omboridan yuklab olish mumkin bo'lgan Arduino kutubxonasi yordami kerak . Kutubxonaning U8glib-1.19.1.zip versiyasini yuklab oling va uni Arduino IDE-ga import qiling. Agar siz Arduino-da yangi bo'lsangiz , kutubxonani qanday import qilishni tavsiflovchi ushbu havoladan foydalaning . Quyidagi bo'limda biz kodni oldindan yaratilgan HEX massivini OLED-ga ko'rsatish uchun o'zgartiramiz. Ishchi video bilan to'liq kod ushbu maqolaning oxirida berilgan. Kodning batafsil tushuntirishi quyida keltirilgan. 
    Birinchidan, yuklab olingan kutubxonani qo'shing.
    #include "U8glib.h" // U8glib kutubxonasini o'z ichiga oladi
    Keyin OLED uchun barcha kerakli pinlarni aniqlang.
    #OLED_CLK_PIN 13-ni aniqlang //Arduino Digital Pin D13: SCK #OLED_MOSI_PIN 11-ni aniqlang //Arduino Digital Pin D11: MOSI #OLED_RES_PIN 10 ni aniqlang //Arduino Digital Pin D10: SS #OLED_SDC_PIN 9-ni aniqlang //Arduino Digital Pin D9: OC1A #OLED_CSS_PIN 8-ni aniqlang //Arduino Digital Pin D13: ICP1
    u8glib kutubxonasini ishga tushiring.
    U8GLIB_SH1106_128X64 u8g(OLED_CLK_PIN, OLED_MOSI_PIN, OLED_RES_PIN, OLED_SDC_PIN, OLED_CSS_PIN);
    Keyin yaratilgan tasvirlar qatorini qo'shing.
    const uint8_t circuitdigest[] PROGMEM = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1c, 0x01, 0x87, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x0c, 0x01, 0x87, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x8f, 0xf0, 0x7f, 0x31, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x8f, 0xf0, 0x7f, 0x33, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x81, 0x8f, 0x31, 0x80, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0x31, 0x80, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0xb1, 0x80, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0xc1, 0x98, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0xc1, 0x98, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff, …….. ………..
    Draw funksiyasi u8g.drawBitmapP funksiyasi yordamida OLED-da bitmap tasvirini (QR kod) chizish uchun ishlatiladi.
    bekor chizish (void) { // to'liq ekranni qayta chizish uchun grafik buyruqlar bu erda joylashtirilishi kerak u8g.drawBitmapP( 0, 0, 16, 64, sxema bo'yicha); ….. ……
    Nihoyat, loop() funksiyasida OLED-da tasvirni yaratish uchun barcha kerakli protseduralarni chaqiring
    void loop() { u8g.firstPage(); //Ushbu protseduraga qo'ng'iroq, rasm tsiklining boshlanishini belgilaydi. qil { chizish(); } while( u8g.nextPage() ); // Ushbu protseduraga qo'ng'iroq, rasm tsikli tanasining oxirini belgilaydi. // biroz kechikishdan keyin rasmni qayta tiklang kechikish (1000);}
    Kodni to'ldirgandan so'ng, Arduino-ni kompyuteringizning USB portiga ulang, COM portingizni tanlang va kodni yuklang. Agar siz hamma narsani to'g'ri bajargan bo'lsangiz, siz OLED-da QR kodli ishlaydigan displeyga ega bo'lasiz.

    Umid qilamanki, siz ushbu loyihani yoqtirdingiz va yangi narsalarni o'rganishni yoqtirdingiz, o'qishni davom eting va keyingi safar sizni ko'raman.
    Dastur kod ko`rinishi
    Foydalanilgan adabiyotlar:

    1.https://www.arduino.cc/reference/en/libraries/qrcode/


    2.https://wokwi.com/projects/318641692720759379
    3.https://circuitdigest.com/microcontroller-projects/arduino-qr-code-generator
    4.https://www.hackster.io/Hack-star-Arduino/arduino-simulator-qr-code-generation-on-arduino-ssd1306-786044
    5.https://forum.arduino.cc/t/encoding-and-generating-qr-codes/292774

    Xulosa
    Bizga berilgan topshiriq orqali QR kod dasturini ishlab chiqdik va qanday ishlashini ko’rib chiqdik.QR kodini o’rganish kodlash jarayonini urganib o’tdik .


    Raqamli qulayliklar davrida QR kod generatori PDF axborot almashishni tez, samarali va tejamkor qiladigan juda qimmatli vositadir. Ammo QR kod generatorlarining keng doirasini hisobga olsak, tegishli vositani tanlash juda qiyin bo'lishi mumkin. QR kod generatorini tanlashda e'tiborga olish kerak bo'lgan asosiy omillarga foydalanish qulayligi, narxlash, sozlash imkoniyatlari va mijozlarni qo'llab-quvvatlash kiradi.

    Download 0,9 Mb.
    1   2   3   4   5   6




    Download 0,9 Mb.