Բովանդակություն:

Arduino 1-մետաղալար ընդհանուր հաճախորդ/ստրուկ սարք (տվիչ) ՝ 4 քայլ
Arduino 1-մետաղալար ընդհանուր հաճախորդ/ստրուկ սարք (տվիչ) ՝ 4 քայլ

Video: Arduino 1-մետաղալար ընդհանուր հաճախորդ/ստրուկ սարք (տվիչ) ՝ 4 քայլ

Video: Arduino 1-մետաղալար ընդհանուր հաճախորդ/ստրուկ սարք (տվիչ) ՝ 4 քայլ
Video: Չափել մինչև 500 Ա DC հոսանք Shdu Resistor– ով ՝ օգտագործելով Arduino 2024, Նոյեմբեր
Anonim
Arduino 1-մետաղալար ընդհանուր հաճախորդ/ստրուկ սարք (սենսոր)
Arduino 1-մետաղալար ընդհանուր հաճախորդ/ստրուկ սարք (սենսոր)

Խնդրում եմ կարդալ իմ հրահանգի ներածությունը և 2-րդ քայլը, թե ինչպես կարելի է կառուցել Arduino 1-մետաղալարով ցուցադրում (144 նիշ) `իրավիճակի և մատչելի գրադարանների մասին ավելի շատ տեղեկություններ ստանալու համար: Ինչպես բացատրված է այնտեղ, մենք կօգտագործենք OneWire-Hub գրադարանը (OneWire ստրուկի սարքի էմուլյատոր) orgua- ի կողմից (ուշադրություն դարձրեք, որ շուրջը կան այլ պատառաքաղներ) ՝ Arduino- ի միջոցով ընդհանուր 1 լարային սարքեր (օրինակ ՝ տվիչներ) կառուցելու համար:

Քայլ 1: Softwareրագրակազմ

Ամենակարևորը սարք սարքելն է, որը կարող է վերադարձնել հիմնականում ցանկացած տեսակի արժեք պարզ եղանակով: Նշանակում է, որ ստանդարտ ծրագրակազմը կարող է օգտագործվել ուղղակիորեն բոլոր արժեքները կարդալու համար (խոսակցության կամ երկուական մանիպուլյացիայի կարիք չկա): Դրա համար մեզ անհրաժեշտ է շատ պարզ լռելյայն 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 գրանշան): Եվ օգտագործել IDE տարբերակը> = 1.8.3 ՝ կոդը ձեր Arduino- ում կազմելու և վերբեռնելու համար:

Ահա որպես օրինակ `վերջերս կառուցված սարքի կոդը: Քանի որ ես ենթադրում եմ, որ դուք չեք օգտագործի սենսորների նույն համադրությունը, ինչ ես անում եմ, այստեղ այլևս չեմ մանրամասնի, ստուգեք ծածկագիրը և հարցեր տվեք, եթե օգնության կարիք ունեք:

Քայլ 2: Սարքավորումներ

Սարքավորումներ
Սարքավորումներ

Հիմնականում այն ամենը, ինչ կարող եք միացնել Arduino- ին, կարող է օգտագործվել որպես ձեր ընտրած ցուցիչ: Միակ սահմանափակումն այն է, որ սենսորը կարդալը պետք է լինի հնարավորինս արագ, որպեսզի 1-լար հաղորդակցության կայացման համար շատ ժամանակ մնա (կարգով փոխանցեք Arduino 1-մետաղալար էկրանին (144 գրաֆիկ) իմ հրահանգի 2-րդ քայլը) օրինակ ստանալու համար):

Հնարավոր սարքավորումների օրինակ կարող է լինել եղանակային կայանը, օրինակ ՝

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

Լրացուցիչ կամ ձեր փոխարեն պարզապես գուցե ցանկանաք օգտագործել Arduino- ն որպես ձեր ցուցիչ: Այդ մասին ավելին կարող եք կարդալ Arduino- ի փոքր հայտնի հնարավորությունների մասին իմ հրահանգում `հնարավոր արժեքներն են աղբյուրի լարումը և ներքին ջերմաստիճանը:

Ահա որպես օրինակ ՝ վերջերս կառուցված սարքի պատկերը: Քանի որ ես ենթադրում եմ, որ դուք չեք օգտագործի սենսորների նույն համադրությունը, ինչ ես անում եմ, այստեղ այլևս չեմ մանրամասնի, ստուգեք ծածկագիրը և հարցեր տվեք, եթե օգնության կարիք ունեք:

Քայլ 3: Փորձարկեք սարքը

Միացրեք այն ձեր ցանցին և ստուգեք ձեր ծրագրաշարը, որպեսզի առկա լինեն բոլոր ROM ID- ները և դրանք որպես ջերմաստիճան վերադարձվող արժեքները:

Քայլ 4 ՝ Հավելված ՝ ATtiny85

Հավելված ՝ ATtiny85
Հավելված ՝ ATtiny85

Միայնակ սարքերը (հիշողության սահմանափակում) կարող են կատարվել նաև ATtiny85- ով: Սա մի քանի քայլ է պահանջում, քանի որ մենք ծրագրավորում ենք ATtiny85- ը ՝ օգտագործելով Arduino Uno- ն որպես ISP ՝ 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. տեղադրել ATtiny տարբերակը IDE- ին

    1. Ֆայլ> Նախապատվություններ> Տախտակների մենեջերի լրացուցիչ հասցեներ ՝
    2. Գործիքներ> Տախտակ. ??? > Խորհուրդների կառավարիչ…
    3. որոնել ՝ "tiny" և տեղադրել
  3. վերբեռնեք ISP- ի ուրվագիծը 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. (> = 10uF կափարիչ Arduino Uno RESET քորոցի վրա կարող է անհրաժեշտ լինել)
  5. ընտրեք ATtiny85 (տես նկարը).

    • Տախտակ ՝ «ATtiny25/45/85»
    • Timամաչափ 1 ժամացույց ՝ «պրոցեսոր»
    • B. O. D.: "B. O. D. հաշմանդամ"
    • LTO (միայն 1.6.11 +). «Հաշմանդամ»
    • Չիպ ՝ «ATtiny85»
    • Clամացույց ՝ «8 ՄՀց (ներքին)» (ATtiny85 և ATtiny84 համատեղելի)
    • Clամացույց ՝ «16 ՄՀց (PLL)» (այլընտրանքային կարգավորում միայն ATtiny85- ի համար)
    • Նավահանգիստ: ???
  6. ընտրել ծրագրավորող.

    Գործիքներ> merրագրավորող. "Arduino as ISP" (NOT "ArduinoISP")

  7. սահմանել ապահովիչների կարգավորումները (ժամացույց և այլն).

    Գործիքներ> Այրել Bootloader- ը

  8. վերբեռնեք այս կոդը (ծրագրավորողի սխալ LED- ն պետք է անջատված լինի, այլապես վերակայեք այն)
  9. ATtinyX5 Pin Layout (ATtiny85):

    1. Պին 1: PB5 (RST)
    2. Պին 2. PB3 (A3) - ըստ ցանկության 220 օմ -ով միացված է 1 <-TX
    3. Պին 3 ՝ PB4 (A2) - միացված է 1 լարի Տվյալներին
    4. Pin 4: GND - միացված է GND- ին
    5. Pin 5: PB0 (PWM) - միացված է I2C SDA տվիչին
    6. Pin 6: PB1 (PWM) - միացված է LED- ին 4.7k GND- ով
    7. Pin 7: PB2 (A1) - միացված է I2C SCL սենսորին
    8. Pin 8: VCC - միացված է 5V

ATTiny85- ի հետ աշխատելը մի փոքր ավելի շատ աշխատանք է պահանջում, քանի որ ձեզ անհրաժեշտ են լրացուցիչ գրադարաններ I2C comm (adafruit/TinyWireM) և սերիական թողարկման (TinyDebugSerial) համար: Բացի այդ, քանի որ հիշողությունը բավականին սահմանափակ է, գուցե ցանկանաք շատ աշխատել #սահմանել, օրինակ. սերիական վրիպազերծումը հեռացնելու համար: Օրինակում դուք կարող եք տեսնել այս ամենը միասին նետված:

Փորձարկման համար առաջին քայլը ստուգելն է `արդյոք LED- ը թարթում է ճիշտ հաճախականությամբ` 0.5 Հց: Այնուհետեւ միացրեք այն 1 լարային ավտոբուսին եւ ստուգեք նոր սարքի առկայությունը:

Խորհուրդ ենք տալիս: