Sisukord:

Arduino 1-juhtmeline üldine kliendi-/alamseade (andur): 4 sammu
Arduino 1-juhtmeline üldine kliendi-/alamseade (andur): 4 sammu

Video: Arduino 1-juhtmeline üldine kliendi-/alamseade (andur): 4 sammu

Video: Arduino 1-juhtmeline üldine kliendi-/alamseade (andur): 4 sammu
Video: L298N astmemootori juhi kasutamine 4 juhtmega astmemootori juhtimiseks 2024, November
Anonim
Arduino 1-juhtmeline üldine kliendi-/alamseade (andur)
Arduino 1-juhtmeline üldine kliendi-/alamseade (andur)

Olukorra ja saadaolevate teekide kohta lisateabe saamiseks lugege palun minu juhendi sissejuhatust ja 2. sammu Arduino 1-juhtmelise ekraani (144 tähemärki) ehitamise kohta. Nagu seal selgitatud, kasutame orgua OneWire-Hubi raamatukogu (OneWire alamseadme emulaator) (pange tähele, et ümber on ka teisi kahvleid), et ehitada Arduino abil üldisi 1-juhtmelisi seadmeid (nt andureid).

Samm: tarkvara

Kõige tähtsam on valmistada seade, mis suudab lihtsal viisil tagastada põhimõtteliselt mis tahes väärtuse. See tähendab, et standardset tarkvara saab kasutada kõigi väärtuste otse lugemiseks (pole vaja vestlust ega binaarset manipuleerimist). Selleks vajame väga lihtsat 1-juhtmelist vaikeseadet, mis suudab ujukeid tagastada ja mida laialdaselt toetatakse. Ainus valik, mida ma tean, on DS18B20 termomeeter (DS2438 aku monitor on samuti huvitav ja kasulik, kuid üsna keeruline ja seega teiste puuduste hulgas aeglane). OneWire-Hubi teek sisaldab näidet DS18B20_asInterface, mis teeb täpselt seda, mida vajame. See loob hunniku DS18B20, millest igaüks tähistab ühte ujuvväärtust, mida tahame oma andurilt tagasi saata. Piiranguteks on siin eraldusvõime ja väärtused peavad olema vahemikus -55, 0… 125, 0. Seda on lihtne saavutada - halvemal juhul skaleerida - ja see on tegelikult parem kui väärtused, mida saab esitada nt. DS2438 väärtused (1,5 kuni 10 V). Teise võimalusena saab määrata suurema väärtuste vahemiku, kasutades järgmist:

setTemperatureRaw (static_cast (väärtus * 16.0f));

kuid nende väärtuste lugemist ja töötlemist ei pruugi kõik tarkvara toetada, kuna need on spetsifikatsioonidest väljas.

Peate teadma, et esialgu on orjade maksimaalne arv piiratud 8 -ga, kuid seda saab muuta jaotises „OneWireHub_config.h”, suurendades HUB_SLAVE_LIMIT kuni 32 -ni. Samuti peate olema kindel, et kasutate vajadusel ONEWIRE_TIME_MSG_HIGH_TIMEOUT 1-juhtmeline võrk (nt x10), nagu on selgitatud Arduino 1-juhtmelise ekraani 2. etapis (144 märki). Ja kasutada IDE versiooni> = 1.8.3 koodi koostamiseks ja Arduinole üleslaadimiseks.

Siin on näitena hiljuti koostatud seadme kood. Kuna ma eeldan, et te ei kasuta sama andurite kombinatsiooni, mida mina, siis ma ei hakka siin üksikasju lähemalt uurima, kontrollige koodi ja küsige abi, kui vajate abi.

Samm: riistvara

Riistvara
Riistvara

Põhimõtteliselt saab teie valitud andurina kasutada kõike, mida saate Arduinoga ühendada. Ainus piirang on see, et anduri lugemine peaks olema võimalikult kiire, et 1-juhtmeliseks suhtlemiseks jääks palju aega (andke minu juhendi 2. samm Arduino 1-juhtmelise ekraani (144 tähemärki) kohta) näite saamiseks).

Võimaliku riistvara näide võib olla ilmajaam, näiteks:

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

Lisaks või teie asemel võiksite lihtsalt kasutada andurina Arduinot ennast. Selle kohta saate rohkem lugeda minu juhendist Arduino vähem tuntud funktsioonide kohta - võimalikud väärtused on allikapinge ja sisetemperatuur.

Siin on näitena pilt hiljuti ehitatud seadmest. Kuna ma eeldan, et te ei kasuta sama andurite kombinatsiooni, mida mina, siis ma ei hakka siin üksikasju lähemalt uurima, kontrollige koodi ja küsige abi, kui vajate abi.

Samm: testige seadet

Ühendage see oma võrguga ja kontrollige oma tarkvara, kas kõik ROM -id on olemas ja väärtused, mis need temperatuurina tagastavad.

Samm 4: Lisa: ATtiny85

Lisa: ATtiny85
Lisa: ATtiny85

Üksikuid seadmeid (mälu piiramine) saab teha ka ATtiny85 -ga. See nõuab mõningaid samme, kuna programmeerime ATtiny85, kasutades Arduino Uno Interneti -teenuse pakkujana Arduino IDE abil:

  • Lingid

    • 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. kasuta Arduino IDE> = 1.8.3
  2. installige ATtiny võimalus IDE -sse

    1. Fail> Eelistused> Täiendavate tahvlite halduri URL -id:
    2. Tööriistad> Juhatus: ??? > Juhatuse liige…
    3. otsige: "tiny" ja installige
  3. laadige ISP visand üles Uno -le

    Fail> Näited> ArduinoISP> ArduinoISP

  4. sisestage ATtiny85 programmeerimispesasse (nulljõud) ja ühendage see juhtmega:

    1. Arduino pin MOSI D11 kuni ATtiny Pin 5
    2. Arduino tihvt MISO D12 kuni ATtiny Pin 6
    3. Arduino tihvt SCK D13 kuni ATtiny Pin 7
    4. Arduino pin lähtestage D10 ATtiny pin 1 -le
    5. Arduino Pin GND kuni ATtiny Pin 4
    6. Arduino Pin VCC kuni ATtiny Pin 8
    7. (> = 10uF kork Arduino Uno RESET nööpnõelel võib olla vajalik)
  5. valige ATtiny85 (vt pilti):

    • Tahvel: "ATtiny25/45/85"
    • Taimeri 1 kell: "CPU"
    • B. O. D.: "B. O. D. puudega"
    • LTO (ainult 1.6.11 +): „puudega”
    • Kiip: "ATtiny85"
    • Kell: "8 MHz (sisemine)" (ühilduvad ATtiny85 ja ATtiny84)
    • Kell: "16 MHz (PLL)" (alternatiivne seade ainult ATtiny85 jaoks)
    • Sadam: ???
  6. Valige programmeerija:

    Tööriistad> Programmeerija: "Arduino kui ISP" (EI "ArduinoISP"!)

  7. määrake kaitsmete sätted (kell jne):

    Tööriistad> Boot Bootloader

  8. laadige see kood üles (programmeerija vea LED peab olema kustunud, muidu lähtestage see)
  9. ATtinyX5 tihvtide paigutus (ATtiny85):

    1. Pin 1: PB5 (RST)
    2. Tihvt 2: PB3 (A3) - valikuliselt ühendatud 220 oomi kaudu 1 <-TX -ga
    3. Pin 3: PB4 (A2) - ühendatud 1 -juhtmeliste andmetega
    4. Pin 4: GND - ühendatud GND -ga
    5. Pin 5: PB0 (PWM) - ühendatud anduriga I2C SDA
    6. Tihvt 6: PB1 (PWM) - ühendatud LED -iga 4,7k GND -ga
    7. Pin 7: PB2 (A1) - ühendatud anduriga I2C SCL
    8. Pin 8: VCC - ühendatud 5V -ga

Töötamine ATTiny85 -ga vajab natuke rohkem tööd, kuna peate hankima täiendavaid teeke I2C comm (adafruit/TinyWireM) ja jadaväljundi (TinyDebugSerial) jaoks. Lisaks, kuna mälu on üsna piiratud, võiksite palju töötada #define'iga, nt seeria silumise eemaldamiseks. Näites näete seda kõike koos.

Testimiseks tuleb kõigepealt kontrollida, kas LED vilgub õige sagedusega (0,5 Hz). Seejärel ühendage see 1 juhtmega siiniga ja kontrollige uue seadme olemasolu.

Soovitan: