Mundarija:

Arduino 1-simli umumiy mijoz/qul qurilmasi (Sensor): 4 qadam
Arduino 1-simli umumiy mijoz/qul qurilmasi (Sensor): 4 qadam

Video: Arduino 1-simli umumiy mijoz/qul qurilmasi (Sensor): 4 qadam

Video: Arduino 1-simli umumiy mijoz/qul qurilmasi (Sensor): 4 qadam
Video: Как использовать ESP32 WiFi и Bluetooth с Arduino IDE, полная информация с примерами и кодом. 2024, Noyabr
Anonim
Arduino 1-simli umumiy mijoz/qul qurilmasi (sensor)
Arduino 1-simli umumiy mijoz/qul qurilmasi (sensor)

Vaziyat va mavjud kutubxonalar haqida ko'proq ma'lumot olish uchun Arduino 1 simli displeyni (144 ta belgilar) qanday qurish kerakligi haqidagi ko'rsatmamning kirish va 2-bosqichini o'qing. U erda tushuntirilganidek, biz Arduino yordamida umumiy 1 simli qurilmalarni (masalan, datchiklarni) yaratish uchun OneWire-Hub kutubxonasidan (OneWire qul qurilmalar emulyatori) orgua (atrofda boshqa vilkalar borligiga e'tibor bering) dan foydalanamiz.

1 -qadam: dasturiy ta'minot

Eng muhimi, har qanday qiymatni oddiy tarzda qaytaradigan qurilmani yaratishdir. Bu shuni anglatadiki, standart dasturiy ta'minot barcha qiymatlarni to'g'ridan -to'g'ri o'qish uchun ishlatilishi mumkin (suhbat yoki ikkilik manipulyatsiya kerak emas). Buning uchun bizga suzishni qaytaradigan va keng qo'llab-quvvatlanadigan oddiy 1 simli qurilma kerak. Men biladigan yagona tanlov bu DS18B20 termometridir (DS2438 batareya monitori juda qiziqarli va foydalidir, lekin juda murakkab va shuning uchun boshqa kamchiliklar orasida sekin). OneWire-Hub kutubxonasida bizga kerak bo'lgan narsani bajaradigan DS18B20_asInterface nomli misol mavjud. Bu DS18B20 to'plamini yaratadi, ularning har biri sensorlarimizdan qaytmoqchi bo'lgan bitta o'zgaruvchan qiymatni anglatadi. Bu erda cheklovlar piksellar soniga to'g'ri keladi va qiymatlar -55, 0… 125, 0 oralig'ida bo'lishi kerak. Bunga osonlik bilan erishish mumkin - eng yomoni, qayta o'lchamaslik - va aslida ko'rsatilishi mumkin bo'lgan qiymatlardan yaxshiroqdir. DS2438 qiymatlari (1,5 dan 10V gacha). Shu bilan bir qatorda katta qiymatlar diapazoni quyidagicha o'rnatilishi mumkin.

setTemperatureRaw (static_cast (qiymat * 16.0f));

lekin bu qiymatlarni o'qish va qayta ishlash hamma dasturlar tomonidan qo'llab -quvvatlanmasligi mumkin, chunki u texnik xususiyatlarga ega emas.

Siz bilishingiz kerak bo'lgan narsa shundaki, dastlab maksimal qullar soni 8 taga cheklangan, lekin "OneWireHub_config.h" da HUB_SLAVE_LIMIT ni 32 taga ko'paytirish orqali o'zgartirish mumkin. Agar kerak bo'lsa, ONEWIRE_TIME_MSG_HIGH_TIMEOUT qabul qilinganligiga ishonch hosil qilishingiz kerak. 1 simli tarmoq (masalan, x10), Arduino 1 simli displeyining 2-bosqichida (144 ta belgilar) tushuntirilganidek. Kodni kompilyatsiya qilish va Arduino -ga yuklash uchun IDE>> 1.8.3 versiyasidan foydalanish.

Misol sifatida men yaqinda qurgan qurilmaning kodi. Men sensorlar kombinatsiyasini ishlatmayman deb o'ylayman, men bu erda batafsil ma'lumot bermayman, kodni tekshiring va sizga yordam kerak bo'lsa savollar bering.

2 -qadam: Uskuna

Uskuna
Uskuna

Asosan, Arduino -ga ulanadigan har qanday narsani siz tanlagan sensor sifatida ishlatish mumkin. Faqatgina cheklov shundaki, 1 simli aloqa uchun ko'p vaqt qolishi uchun sensorni o'qish imkon qadar tezroq bo'lishi kerak (Arduino 1-simli displey (144 belgilar) haqida ko'rsatmamning 2-bosqichini o'qing). misol olish uchun).

Mumkin bo'lgan uskunalarga misol ob -havo stantsiyasi bo'lishi mumkin, masalan:

https://shop.boxtec.ch/wetter-messer-p-41289.html

Qo'shimcha yoki sizning o'rniga Arduino -ni sensor sifatida ishlatishni xohlashingiz mumkin. Siz bu haqda ko'proq ma'lumotga ega bo'lishingiz mumkin - Arduino -ning ma'lum bo'lmagan xususiyatlari - mumkin bo'lgan qiymatlar manba voltaji va ichki harorat.

Misol sifatida men yaqinda qurgan qurilmaning tasviri. Men sensorlar kombinatsiyasidan foydalanmasligingizni taxmin qilgandim, men bu erda batafsil ma'lumot bermayman, kodni tekshiring va sizga yordam kerak bo'lsa savollar bering.

3 -qadam: qurilmani sinab ko'ring

Uni tarmoqqa ulang va dasturiy ta'minotda barcha ROM identifikatorlari mavjudligini va ular harorat sifatida qaytariladigan qiymatlarni tekshiring.

4 -qadam: Qo'shimcha: ATtiny85

Qo'shimcha: ATtiny85
Qo'shimcha: ATtiny85

Yagona qurilmalar (xotirani cheklash) ATtiny85 da ham amalga oshirilishi mumkin. Bu ATDiny85 -ni Arduino Uno -dan ISP sifatida Arduino IDE yordamida dasturlashda bir necha qadamlarni talab qiladi.

  • Havolalar

    • https://playground.boxtec.ch/doku.php/arduino/att…
    • https://sebastian.expert/could-not-find-usbtiny-d…
    • https://learn.sparkfun.com/tutorials/tiny-avr-pro…
    • https://forum.arduino.cc/index.php?topic=425532.0
    • https://forum.arduino.cc/index.php?topic=128963.0
  1. Arduino IDE -dan foydalaning> = 1.8.3
  2. IDE -ga ATtiny -ni o'rnating

    1. Fayl> Tanlovlar> Qo'shimcha boshqaruv paneli URL manzillari:
    2. Asboblar> Kengash: ??? > Kengash menejeri …
    3. "kichik" ni qidiring va o'rnating
  3. Internet -provayder eskizini Uno -ga yuklang

    Fayl> Misollar> ArduinoISP> ArduinoISP

  4. ATtiny85-ni dasturlash (nol-quvvat) rozetkasiga joylashtiring va sim bilan ulang:

    1. Arduino Pin MOSI D11 - ATtiny Pin 5
    2. Arduino Pin MISO D12 dan ATtiny Pin 6gacha
    3. Arduino Pin SCK D13 dan ATtiny Pin 7gacha
    4. Arduino Pin D10 -ni ATtiny Pin 1 -ga qaytaring
    5. Arduino Pin GND dan ATtiny Pin 4gacha
    6. Arduino Pin VCC dan ATtiny Pin 8gacha
    7. (> Arduino Uno RESET pinidagi 10uF qopqoq kerak bo'lishi mumkin)
  5. ATtiny85 -ni tanlang (rasmga qarang):

    • Kengash: "ATtiny25/45/85"
    • Taymer 1 soat: "CPU"
    • B. O. D.: "B. O. D. nogironlar"
    • LTO (faqat 1.6.11 +): "O'chirilgan"
    • Chip: "ATtiny85"
    • Soat: "8 MGts (ichki)" (ATtiny85 va ATtiny84 mos keladi)
    • Soat: "16 MGts (PLL)" (faqat ATtiny85 uchun muqobil sozlash)
    • Port: ???
  6. Dasturchi -ni tanlang:

    Asboblar> Dasturchi: "Arduino ISP sifatida" ("ArduinoISP" EMAS!)

  7. sug'urta sozlamalarini o'rnating (soat va boshqalar):

    Asboblar> Bootloader -ni yoqish

  8. ushbu kodni yuklang (dasturchi xato LEDini o'chirib qo'yishi kerak, aks holda uni qayta o'rnating)
  9. ATtinyX5 pin tartibi (ATtiny85):

    1. 1 -pin: PB5 (RST)
    2. 2 -pin: PB3 (A3) - ixtiyoriy ravishda 220 ohm orqali 1 <-TX ga ulanadi
    3. 3 -pin: PB4 (A2) - 1 simli DATA ga ulangan
    4. 4 -pin: GND - GND ga ulangan
    5. 5 -pin: PB0 (PWM) - I2C SDA sensoriga ulangan
    6. 6 -pin: PB1 (PWM) - LEDga 4,7k GND ga ulangan
    7. 7 -pin: PB2 (A1) - I2C SCL sensoriga ulangan
    8. 8 -pin: VCC - 5V ga ulangan

ATTiny85 bilan ishlash biroz ko'proq ishlashni talab qiladi, chunki sizga I2C comm (adafruit/TinyWireM) va ketma -ket chiqish (TinyDebugSerial) uchun qo'shimcha kutubxonalar kerak bo'ladi. Bundan tashqari, xotira cheklanganligi sababli siz #define bilan ko'p ishlashni xohlashingiz mumkin. ketma -ket disk raskadrovka olib tashlash uchun. Misolda bularning barchasini bir joyga to'planganini ko'rishingiz mumkin.

Sinov uchun, birinchi navbatda, LED to'g'ri chastotada, 0,5 Gts yonib -o'chmasligini tekshirish kerak. Keyin uni 1wire avtobusiga ulang va yangi qurilmani tekshiring.

Tavsiya: