Мазмұны:

Arduino 1 сымды жалпы клиент/қосалқы құрылғы (сенсор): 4 қадам
Arduino 1 сымды жалпы клиент/қосалқы құрылғы (сенсор): 4 қадам

Бейне: Arduino 1 сымды жалпы клиент/қосалқы құрылғы (сенсор): 4 қадам

Бейне: Arduino 1 сымды жалпы клиент/қосалқы құрылғы (сенсор): 4 қадам
Бейне: Биология / Онлайн-сабақ №4 / ҰБТ 2024, Қараша
Anonim
Arduino 1 сымды жалпы клиент/қосалқы құрылғы (сенсор)
Arduino 1 сымды жалпы клиент/қосалқы құрылғы (сенсор)

Қол жетімді жағдай мен кітапханалар туралы қосымша ақпарат алу үшін Arduino 1 сымды дисплейін (144 таңба) қалай құру керектігі туралы нұсқаулығымның кіріспесін және 2-қадамын оқыңыз. Онда түсіндірілгендей, біз Arduino көмегімен жалпы 1 сымды құрылғыларды (мысалы, сенсорларды) құру үшін OneWire-Hub кітапханасын (OneWire slave device emulator) orgua арқылы қолданамыз (айналасында басқа шанышқылар бар).

1 -қадам: Бағдарламалық қамтамасыз ету

Ең бастысы - кез келген құндылықты қарапайым түрде қайтаратын құрылғы жасау. Бұл стандартты бағдарламалық қамтамасыз етуді барлық мәндерді тікелей оқу үшін қолдануға болатынын білдіреді (әңгіме немесе екілік манипуляция қажет емес). Ол үшін бізге қалтқыларды қайтара алатын және кең қолдайтын қарапайым 1 әмбебап құрылғы қажет. Мен білетін жалғыз таңдау - DS18B20 термометрі (DS2438 батарея мониторы өте қызықты және пайдалы, бірақ өте күрделі, сондықтан басқа кемшіліктер арасында баяу). OneWire-Hub кітапханасында бізге қажет нәрсені жасайтын DS18B20_asInterface деп аталатын мысал бар. Ол DS18B20 жиынтығын жасайды, олардың әрқайсысы сенсорларымыздан қайтарғымыз келетін бір өзгермелі мәнді білдіреді. Мұндағы шектеулер ажыратымдылық болып табылады және мәндер -55, 0… 125, 0 диапазонында болуы керек. Бұған оңай қол жеткізуге болады - ең нашар жағдайда масштабтау - және мәнмен ұсынылатын мәндерге қарағанда жақсы. DS2438 мәндері (1,5 -тан 10 В -қа дейін). Немесе үлкен мәндер диапазонын келесі жолмен орнатуға болады:

setTemperatureRaw (static_cast (мән * 16.0f));

бірақ бұл мәндерді оқу мен өңдеуді барлық бағдарламалық қамтамасыз ету қолдамауы мүмкін, себебі ол ерекшеліктерден тыс.

Сіз білуіңіз керек, бастапқыда құлдардың максималды саны 8 -ге дейін шектелген, бірақ оларды «OneWireHub_config.h» ішінде HUB_SLAVE_LIMIT -ті 32 -ге дейін көбейту арқылы өзгертуге болады. Сонымен қатар, қажет болған жағдайда ONEWIRE_TIME_MSG_HIGH_TIMEOUT қабылдағаныңызға көз жеткізіңіз. 1 сымды желі (мысалы, x10), Arduino 1 сымды дисплейінің 2-қадамында түсіндірілгендей (144 таңба). Ал кодты құрастыру және Arduino -ға жүктеу үшін IDE нұсқасын> = 1.8.3 пайдалану.

Мысал ретінде мен жақында жасаған құрылғының коды. Мен сенсорлардың комбинациясын қолданбаймын деп ойлаймын, мен бұл жерде толығырақ тоқталмаймын, кодты тексеріп, сізге көмек қажет болса сұрақтар қойыңыз.

2 -қадам: Жабдық

Аппараттық құрал
Аппараттық құрал

Негізінде Arduino -ға қосуға болатын кез келген нәрсені сенсор ретінде қолдануға болады. Жалғыз шектеу-бұл 1 сымды байланысқа көп уақыт қалу үшін сенсорды оқу мүмкіндігінше жылдам болуы керек (менің нұсқаулығымның 2-қадамын Arduino 1 сымды дисплейі (144 таңба) бойынша реттеңіз). мысал алу үшін).

Мүмкін болатын жабдықтың мысалы ауа райы станциясы болуы мүмкін, мысалы:

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

Қосымша немесе сіздің орнына Arduino -ді сенсор ретінде қолданғыңыз келуі мүмкін. Сіз бұл туралы толығырақ Arduino Lesser Known функциялары туралы нұсқаулықтан оқи аласыз - мүмкін мәндер - кернеу мен ішкі температура.

Мысал ретінде мен жақында жасаған құрылғының суретін келтірдім. Мен сенсорлардың комбинациясын қолданбаймын деп ойлаймын, мен бұл жерде толығырақ тоқталмаймын, кодты тексеріп, сізге көмек қажет болса сұрақтар қойыңыз.

3 -қадам: құрылғыны тексеріңіз

Оны желіге қосыңыз және бағдарламалық жасақтамада барлық ROM идентификаторларының болуын және температура ретінде қайтарылатын мәндерді тексеріңіз.

4 -қадам: Қосымша: ATtiny85

Қосымша: ATtiny85
Қосымша: ATtiny85

Жалғыз құрылғыларды (жадты шектеу) ATtiny85 -те де жасауға болады. ATdiny85 бағдарламасын Arduino Uno көмегімен провайдер ретінде Arduino IDE көмегімен бағдарламалау кезінде бірнеше қадамдар қажет:

  • Сілтемелер

    • 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> = 1.8.3 пайдаланыңыз
  2. IDE -ге ATtiny опциясын орнатыңыз

    1. Файл> Параметрлер> Қосымша тақта менеджерінің URL мекенжайлары:
    2. Құралдар> Тақта: ??? > Тақта менеджері …
    3. «кішкентай» деп іздеңіз және орнатыңыз
  3. провайдердің эскизін Uno -ға жүктеңіз

    Файл> Мысалдар> ArduinoISP> ArduinoISP

  4. ATtiny85 бағдарламалау (нөлдік күш) ұясына салыңыз және оны сыммен қосыңыз:

    1. Arduino Pin MOSI D11 ATtiny Pin 5 -ке
    2. Arduino Pin MISO D12 - ATtiny Pin 6
    3. Arduino Pin SCK D13 - ATtiny Pin 7
    4. Arduino Pin D10 ATtiny Pin 1 -ге қалпына келтірілді
    5. Arduino Pin GND - ATtiny Pin 4
    6. Arduino Pin VCC - ATtiny Pin 8
    7. (> Arduino Uno RESET түйреуішіндегі 10uF қақпағы қажет болуы мүмкін)
  5. ATtiny85 таңдаңыз (суретті қараңыз):

    • Тақта: «ATtiny25/45/85»
    • Таймер 1 Сағат: «CPU»
    • B. O. D.: «B. O. D. мүгедек»
    • LTO (тек 1.6.11 +): «Өшірілген»
    • Чип: «ATtiny85»
    • Сағат: «8 МГц (ішкі)» (ATtiny85 және ATtiny84 үйлесімді)
    • Сағат: «16 МГц (PLL)» (тек ATtiny85 үшін балама параметр)
    • Порт: ???
  6. Бағдарламашы таңдаңыз:

    Құралдар> Бағдарламалаушы: «Arduino провайдер ретінде» («ArduinoISP» ЕМЕС!)

  7. сақтандырғыш параметрлерін орнатыңыз (сағат және т.б.):

    Құралдар> Жүктеушіні жазу

  8. осы кодты жүктеңіз (бағдарламашының қате светодиодын өшіру қажет, әйтпесе оны қалпына келтіріңіз)
  9. ATtinyX5 пин орналасуы (ATtiny85):

    1. 1 -түйреуіш: PB5 (RST)
    2. 2 -түйреуіш: PB3 (A3) - міндетті түрде 220 Ом арқылы 1 <-TX -ке қосылады
    3. 3 -түйреуіш: PB4 (A2) - 1 сымды DATA -ға қосылған
    4. 4 -түйреуіш: GND - GND -ге қосылған
    5. 5 -түйреуіш: PB0 (PWM) - I2C SDA сенсорына қосылған
    6. 6 -түйреуіш: PB1 (PWM) - GND -ге 4.7k светодиодқа қосылған
    7. 7 түйреуіш: PB2 (A1) - I2C SCL датчигіне қосылған
    8. 8 -түйреуіш: VCC - 5В қосылған

ATTiny85 -пен жұмыс істеу үшін көп жұмыс қажет, себебі I2C comm (adafruit/TinyWireM) және сериялық шығыс (TinyDebugSerial) үшін қосымша кітапханаларды алу қажет. Сонымен қатар, жады шектеулі болғандықтан, #define көмегімен көп жұмыс істегіңіз келуі мүмкін. сериялық отладтауды жою үшін. Мысалда сіз мұның бәрін біріктіргенін көре аласыз.

Тестілеу үшін бірінші қадам - жарық диоды 0,5 Гц дұрыс жиілікте жыпылықтайтынын тексеру. Содан кейін оны 1wire шинасына қосыңыз және жаңа құрылғыны тексеріңіз.

Ұсынылған: