2 minute read

vjetroturbina

Next Article
Robopas

Robopas

Lcd „DS18B20 adresa:“ Home L a zatim uspostavljamo komunikaciju s čipom DS18B20 slanjem reset signala na komunikacijsku liniju: Citaj_disp_adr: 1wreset I ovdje ćemo provjeriti stanje bita Err i prekinuti daljnje Slika 73. Ovako su varijable Ds18b20_temp_l, Ds18b20_temp_h i Ds18b20_temp izvršavanje potprograma ako je smještene u memoriji mikroupravljača postavljen: If Err = 1 Then If Err = 1 Then Lcd „DS18B20?“ Lcd „DS18B20?“ Return Return End If End If Ako je sve u redu, naredit ćemo čipu DS18B20 Još nam samo preostaje pročitati rezultat da nam pošalje svoju adresu (naredba “&H33”, mjerenja. Ponovo ćemo preskočiti adresiranje read ROM): (naredba “&HCC”) i odmah zatim narediti čipu 1wwrite &H33 DS18B20 da nam ga pošalje (naredba “&HBE”, Adresu ćemo smjestiti u niz DS18B20_adr pa read RAM). DS18B20 će nam poslati rezultat je ispisati na LCD-u obrnutim redoslijedom (ovo mjerenja “podijeljen” u dva bajta, koje ćemo je potrebno jer čip DS18B20 šalje svoju adresu smjestiti u varijable Ds18b20_temp_l i Ds18b20_ počevši od bajta najmanje važnosti): temp_h: Dim Ds18b20_adr(8) As Byte , I As Byte 1wwrite &HCC For I = 1 To 8 1wwrite &HBE Ds18b20_adr(i) = 1wread() Ds18b20_temp_l = 1wread() Next Ds18b20_temp_h = 1wread() For I = 8 To 1 Step -1 Ova dva bajta moramo u programu ponovo Lcd Hex(ds18b20_adr(i)) objediniti u jednu 16-bitnu varijablu, DS18b20_ Next temp. To ćemo najelegantnije učiniti ako sve Return tri varijable dimenzioniramo prema Slici 73.; Slika 74. prikazuje različite ispise na LCD16-bitna varijabla je “preklopila” (overlay) obje u:izmjerenu temperaturu (gore), grešku u 8-bitne varijable pa, čitajući podatke iz čipa komunikaciji (u sredini) i adresu čipa DS18B20 DS18B20 mi zapravo “punimo”njenu donju i (dolje). gornju polovinu. Varijabla DS18b20_temp mora biti tipa Integer, jer izmjerena temperatura Rješenje Arduina (program Shield-A_20.ino) može biti pozitivna ili negativna. Kako bi dobili Za komunikaciju pomoću protokola 1-wire temperaturu u °C, vrijednost ćemo podijeliti potrebno je instalirati dvije biblioteke: OneWire faktorom 16 i zatim prikladno oblikovati za autora Paula Stroffergena i DallasTemperature prikaz na displeju: autora Milesa Burtona (kako se instaliraju nove Dim Temp_s As Single biblioteke u Arudino IDE, objasnili smo u 20. Temp_s = Ds18b20_temp / 16 nastavku). Lcd Fusing(temp_s , „#.#“) ; „C“ Prva od njih nam omogućuje komunikaciju s Return komponentama 1-wire, a druga pojednostavljuje Ako je pritisnuto tipkalo SW2, izvršit će se komunikaciju s čipom DS18B20. potprogram Sw2_sub u kojem na LCD-u najprije Program ćemo započeti navođenjem ispisujemo poruku “DS18B20 adresa:” biblioteka koje ćemo koristiti: Sw2_sub: #include <LiquidCrystal.h> Cls #include <OneWire.h>

Advertisement

This article is from: