Turinys:
- 1 žingsnis: programinė įranga
- 2 žingsnis: Aparatūra
- 3 veiksmas: išbandykite įrenginį
- 4 žingsnis: Priedas: ATtiny85
Video: „Arduino“1 laidų bendrasis klientas/pavaldus įrenginys (jutiklis): 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Perskaitykite mano instrukcijos įvadą ir 2 žingsnį, kaip sukurti „Arduino“1 laidų ekraną (144 simboliai), kad gautumėte daugiau informacijos apie situaciją ir galimas bibliotekas. Kaip paaiškinta ten, mes naudosime „OneWire-Hub“biblioteką („OneWire“verginio įrenginio emuliatorių), kurią sukūrė „orgua“(atkreipkite dėmesį, kad aplink yra ir kitų šakių), kad sukurtume bendrus 1 laidų įrenginius (pvz., Jutiklius) naudodami „Arduino“.
1 žingsnis: programinė įranga
Svarbiausia yra sukurti įrenginį, kuris paprastai galėtų grąžinti bet kokią vertę. Tai reiškia, kad naudojant standartinę programinę įrangą galima tiesiogiai nuskaityti visas reikšmes (nereikia jokių pokalbių ar dvejetainių manipuliacijų). Tam mums reikia labai paprasto numatytojo 1 laido įrenginio, kuris gali grąžinti plūdes ir yra plačiai palaikomas. Vienintelis pasirinkimas, kurį žinau, yra DS18B20 termometras (DS2438 akumuliatoriaus monitorius taip pat įdomus ir naudingas, tačiau gana sudėtingas ir todėl lėtas, be kitų trūkumų). „OneWire-Hub“bibliotekoje yra pavyzdys, vadinamas DS18B20_asInterface, kuris daro būtent tai, ko mums reikia. Tai sukuria daugybę DS18B20, iš kurių kiekvienas reiškia vieną plūdės vertę, kurią norime grąžinti iš savo jutiklio (-ių). Apribojimai yra skiriamoji geba, o vertės turi būti diapazone -55, 0… 125, 0. Tai galima lengvai pasiekti - blogiausiu atveju - keisti mastelį - ir iš tikrųjų yra geriau nei vertės, kurias gali pavaizduoti pvz. DS2438 vertės (nuo 1,5 iki 10 V). Arba galite nustatyti didesnį verčių diapazoną naudodami:
setTemperatureRaw (static_cast (vertė * 16.0f));
tačiau šių reikšmių skaitymo ir apdorojimo gali nepalaikyti visos programinės įrangos, nes jos specifikacijos neatitinka.
Turite žinoti, kad iš pradžių maksimalus vergų skaičius yra apribotas iki 8, tačiau jį galima pakeisti „OneWireHub_config.h“, padidinant HUB_SLAVE_LIMIT iki 32. Taip pat turite įsitikinti, kad prireikus pritaikysite ONEWIRE_TIME_MSG_HIGH_TIMEOUT 1 laidų tinklas (pvz., X10), kaip paaiškinta „Arduino“1 laidų ekrano 2 veiksme (144 simboliai). Ir naudoti IDE versiją> = 1.8.3, norint surinkti ir įkelti kodą į „Arduino“.
Štai kaip pavyzdys neseniai sukurto įrenginio kodas. Kadangi darau prielaidą, kad nenaudosite to paties jutiklių derinio, kurį aš naudoju, čia daugiau nesigilinsiu, patikrinkite kodą ir užduosiu klausimus, jei jums reikia pagalbos.
2 žingsnis: Aparatūra
Iš esmės viskas, ką galite prijungti prie „Arduino“, gali būti naudojamas kaip jūsų pasirinktas jutiklis. Vienintelis apribojimas yra tas, kad jutiklis turėtų būti nuskaitytas kuo greičiau, kad liktų daug laiko 1 laido ryšiui įvykdyti (nurodykite mano 2 nurodytą žingsnį apie 1 laido „Arduino“ekraną (144 simboliai) gauti pavyzdį).
Galimos aparatinės įrangos pavyzdys gali būti orų stotis, pvz.:
https://shop.boxtec.ch/wetter-messer-p-41289.html
Be to, vietoj jūsų galbūt norėsite naudoti patį „Arduino“kaip jutiklį. Daugiau apie tai galite perskaityti mano instrukcijoje apie mažiau žinomas „Arduino“funkcijas - galimos vertės yra šaltinio įtampa ir vidinė temperatūra.
Štai kaip pavyzdys įrenginio, kurį sukūriau visai neseniai. Kadangi darau prielaidą, kad nenaudosite to paties jutiklių derinio, kurį aš naudoju, čia daugiau nesigilinsiu, patikrinkite kodą ir užduosiu klausimus, jei jums reikia pagalbos.
3 veiksmas: išbandykite įrenginį
Prijunkite jį prie savo tinklo ir patikrinkite, ar programinėje įrangoje yra visi ROM ID ir ar jie pateikiami kaip temperatūra.
4 žingsnis: Priedas: ATtiny85
Atskirus įrenginius (atminties apribojimą) taip pat galima atlikti naudojant „ATtiny85“. Tam reikia atlikti kelis veiksmus, nes mes programuojame „ATtiny85“naudodami „Arduino Uno“kaip interneto paslaugų teikėją naudodami „Arduino IDE“:
-
Nuorodos
- 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
- naudoti „Arduino IDE“> = 1.8.3
-
Įdiekite „ATtiny“parinktį į IDE
- Failas> Nuostatos> Papildomų lentų tvarkyklės URL:
- Įrankiai> Lenta: ??? > Valdybos vadovas …
- ieškokite: „tiny“ir įdiekite
-
įkelti IPT eskizą į „Uno“
Failas> Pavyzdžiai> ArduinoISP> ArduinoISP
-
įdėkite ATtiny85 į programavimo (nulinės jėgos) lizdą ir prijunkite:
- „Arduino“kaištis „MOSI D11“į „ATtiny Pin 5“
- „Arduino“kaištis „MISO D12“į „ATtiny Pin 6“
- „Arduino“kaištis SCK D13 į „ATtiny Pin 7“
- „Arduino Pin“iš naujo nustatykite D10 į „ATtiny Pin 1“
- „Arduino Pin GND“į „ATtiny Pin 4“
- „Arduino Pin VCC“į „ATtiny Pin 8“
- (> = Gali prireikti 10uF dangtelio ant „Arduino Uno RESET“kaiščio)
-
pasirinkite ATtiny85 (žr. paveikslėlį):
- Lenta: "ATtiny25/45/85"
- 1 laikmačio laikrodis: „CPU“
- B. O. D.: „B. O. D. neįgalus“
- LTO (tik 1.6.11 +): „Išjungta“
- Lustas: „ATtiny85“
- Laikrodis: „8 MHz (vidinis)“(suderinamas su „ATtiny85“ir „ATtiny84“)
- Laikrodis: "16 MHz (PLL)" (alternatyvus nustatymas tik ATtiny85)
- Uostas: ???
-
pasirinkite programuotoją:
Įrankiai> Programuotojas: „Arduino kaip IPT“(NE „ArduinoISP“!)
-
nustatyti saugiklių nustatymus (laikrodis ir pan.):
Įrankiai> Įrašyti įkrovos tvarkyklę
- įkelti šį kodą (programuotojo klaidos šviesos diodas turi būti išjungtas, kitu atveju jį iš naujo nustatykite)
-
ATtinyX5 kaiščių išdėstymas (ATtiny85):
- 1 kaištis: PB5 (RST)
- 2 kaištis: PB3 (A3) - pasirinktinai prijungtas per 220 omų prie 1 <-TX
- 3 kaištis: PB4 (A2) - prijungtas prie 1 laidų DATA
- 4 kaištis: GND - prijungtas prie GND
- 5 kaištis: PB0 (PWM) - prijungtas prie jutiklio I2C SDA
- 6 kaištis: PB1 (PWM) - prijungtas prie šviesos diodo su 4,7 k iki GND
- 7 kaištis: PB2 (A1) - prijungtas prie jutiklio I2C SCL
- 8 kaištis: VCC - prijungtas prie 5 V.
Darbui su ATTiny85 reikia šiek tiek daugiau darbo, nes jums reikia gauti papildomų bibliotekų, skirtų I2C comm (adafruit/TinyWireM) ir serijinei išvestims (TinyDebugSerial). Be to, kadangi atmintis yra gana ribota, galbūt norėsite daug dirbti su #define, pvz. pašalinti serijinį derinimą. Pavyzdyje galite pamatyti visa tai kartu.
Norėdami išbandyti, pirmiausia turite patikrinti, ar šviesos diodas mirksi teisingu 0,5 Hz dažniu. Tada prijunkite jį prie 1wire magistralės ir patikrinkite, ar nėra naujo įrenginio.
Rekomenduojamas:
ASS įrenginys (antisocialinis socialinis įrenginys): 7 žingsniai
ASS įrenginys (antisocialinis socialinis įrenginys): pasakykite, kad esate tas žmogus, kuriam patinka būti šalia žmonių, bet nepatinka, kad jie artėja. Jūs taip pat mėgstate žmones ir jums sunku pasakyti „ne“žmonėms. Taigi jūs nežinote, kaip liepti jiems atsitraukti. Na, įveskite - ASS įrenginys! Y
ARUPI - nebrangus automatinis įrašymo įrenginys/autonominis įrašymo įrenginys (ARU), skirtas garsų kraštovaizdžio ekologams: 8 žingsniai (su nuotraukomis)
ARUPI - pigių automatinių įrašų įrenginys/autonominis įrašymo įrenginys (ARU) garso peizažo ekologams: šią instrukciją parašė Anthony Turneris. Projektas buvo sukurtas padedant Kento universiteto Kompiuterijos mokyklos „Shed“(ponas Daniel Knox buvo puiki pagalba!). Jis parodys, kaip sukurti automatizuotą garso įrašymo
Visada ĮJUNGTA Raspberry Pi DLNA serveris ir „Torrent“klientas su būsenos šviesos diodais: 6 žingsniai
Visada ĮJUNGTA „Raspberry Pi DLNA“serveris ir „Torrent“klientas su būsenos šviesos diodais: bandžiau pasigaminti sau ir jis puikiai veikia. Jis gali transliuoti HD vaizdo įrašus be jokio atsilikimo, o būsenos šviesos diodai suteikia man greitą jo būseną. Žemiau pridėjau veiksmus, kurių ėmiausi, kad jį sujungčiau. Prašome perskaityti, jei esate įdomus
ESP32 fotoaparato nuotraukų registravimo klientas: 5 žingsniai
ESP32 fotoaparato paveikslėlių registravimo klientas: ESP32 fotoaparato nuotraukų registravimo kliento projektas yra skirtas naudoti ESP32 mikrovaldiklį fotografavimui ir siųsti jį į centrinį serverį internetu naudojant ESP32 modulio „WiFi“funkciją. Pagrindinė PCB plokštė buvo sukurta atsižvelgiant į du pagrindinius tikslus:
5 laidų atsparus jutiklinis jutiklis: 10 žingsnių
5 laidų atsparus jutiklinis jutiklis: Sveiki! Sveiki! Jau kurį laiką dirbau šioje svetainėje ir atrodo, kad daug kas pasikeitė! Pagaliau esu pasiruošęs vėl sėsti prie vairo kitam projektui, ir manau, kad pats laikas šiek tiek pakeisti savo reikalus