Dobar dan, i dalje radim Težak u slobodno vrijeme, a ovaj je put napisao upute za izradu male vremenske stanice. On će djelovati kao sat s datumom i pokazivati temperature unutar i izvan prostorije. Kao glavni kontroler koristit ćemo Arduino UNO, ali bit će druga ploča s Atmega328p na brodu. Za prikaz koristimo grafički ekran WG12864B. Povezujemo i dva senzora temperature ds18b20. Jedno iznutra, drugo vadimo vani. Počnimo.
U procesu proizvodnje domaći trebat će nam:
- Arduino UNO (ili bilo koji drugi Arduino kompatibilni odbor)
- WG12864B grafički ekran
- senzor temperature ds18b20, 2kom
- Napajanje 6 - 12 V
- Otpornici 4,7 Kom 0,25 W, 2 kom.
- Otpornici 100 ohma 0,25 W
- Akumulatorski pretinac za 4 AAA „pinky“ baterije
- Kutija iz uloška konzole SEGA
- električna vrpca
- povezivanje žica
- pločica
- Gumbi
- pribora za nož
- lemljenje željeza
- lem, kolofonija
- Dvostrana traka
Korak 1 Priprema WG12864B3.
Oni koji prije nisu radili sa ekranima mogu se uplašiti velikim brojem izmjena, koje su, čini se, iste, zaslona. Malo ću objasniti. Većina zaslona ove vrste radi na ks0107 / ks0108 čipovima. Svi se zasloni mogu podijeliti u 4 vrste:
Opcija A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Opcija B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ prikazuje AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG12864YJ QQ, Q12864YJ, Q12864J-1, Q12, Q11
Opcija C: Shenzhen Jinghua prikazuje Co Ltd. JM12864
Opcija D: Wintek-kaskade WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202
Izgledaju gotovo isto. Ali imaju različite igle za spajanje. Odabrao sam i preporučujem vam, WG12864B3 V2.0, ali ako je zaslon drugačiji ili ga jednostavno nemate pri ruci, lako možete shvatiti pomoću tablice:
Kratke karakteristike:
Na internetu postoji mnogo različitih shema povezivanja, a čini se da sve djeluje. Stvar je u tome što ne postoje samo različiti zasloni, već i dva načina da ih povežete: serijski i paralelni. Kad koristimo serijsku vezu, potrebna su nam samo 3 izlaza mikrokontrolera. S paralelnim minimumom 13. Izbor u ovom slučaju je očit, Arduino ima nekoliko zaključaka. Za paralelno povezivanje, dijagram veze je sljedeći:
Za serijsku vezu, koju ćemo koristiti, shema je sljedeća:
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5 V
4 (RS) - 10
5 (R / Ž) - 11
6 (E) - 13
15 (PSB) - BND
19 (BLA) - putem otpornika 100 Ohm - + 5V
20 (BLK) - BND
Za podešavanje kontrasta na zaslonu bi trebao biti potenciometar. Postoje zasloni bez njega, ali sada je rijetkost:
Potreban je otpornik od 100 ohma, tako da napon od 5 volti slučajno ne izgori diode s pozadinskim osvjetljenjem.
Korak 2 Izrada slučaja.
U slučaju, uzmite kutiju s prefiksom spremnika Sega. Ako ne pronađete ovaj okvir pri ruci, možete upotrijebiti drugi slučaj. Glavna stvar je da se ekran i Arduino uklapaju u njega.
Izrežite prozirni film na vrhu kutije tako da nema preostalih komada:
Zatim pomoću klerikalnog noža izrežite prozor s veličinom 37x69 za ekran.
Na poleđini, uz rub reza, zalijepimo dvostranu traku, po mogućnosti crnu:
Skinite zaštitni papir sa ljepljive trake i ljepite naš ekran na njega:
Izvana bi trebao izgledati ovako:
Ispod zaslona, također na dvostranu vrpcu, pričvršćujemo Arduino, praveći preliminarne rezove za USB priključak i utičnicu:
Izrezi za Arduino utičnice moraju biti izvedeni s obje strane kutije kako bi se slobodno moglo zatvoriti:
Korak 3 Senzori temperature.
Koristit ćemo digitalne temperaturne senzore DS18B20. Pomoću njih dobivamo veliku točnost mjerenja, pogreška nije veća od 0,5 ° C, u širokom temperaturnom području -55 ... + 125 ° C. Osim toga, digitalni senzor obavlja sve proračune sam, a Arduino jednostavno prima gotova očitanja. Kad spajate ovaj senzor, nemojte zaboraviti na povlačni otpornik od 4,7 kΩ između DQ i VDD kontakata. Moguće je i nekoliko opcija povezivanja. Koristit ćemo ga s vanjskom snagom, prema najboljem izboru:
Ako želite, možete koristiti modus parazitske snage:
Ili poboljšana opcija za hranu od parazita:
S bilo kojim napajanjem, senzori su paralelno povezani:
Senzor za mjerenje temperature smjestit ćemo na malu ploču zajedno s dva gumba koja ćemo upotrijebiti za podešavanje vremena i datuma sata:
Uobičajena žica s oba gumba povezana je s GND-om, žica s prvog gumba povezana je s A0, s drugog na A1.
Pričvrstite na dvostranu vrpcu pokraj Arduina:
Senzor, koji bi trebao biti postavljen izvan prostorije, bolje je odabrati u metalnom, kućištu otpornom na prašinu i vlagu:
Izračunajte žicu potrebne duljine kako bi senzor mogao biti obješen izvan prozora, glavna stvar je da ne smije biti veća od 5 metara, ako vam treba veća duljina, morat ćete smanjiti vrijednost vučnog otpornika.
Žica iz DQ sabirnice podataka oba senzora povezana je na kontakt 5 Arduino.
Vdd - +5 Arduino.
GND - GND Arduino.
Korak 4 Snaga.
Za napajanje možete koristiti napajanje s naponom od 6 do 12 volti. Na kraju žice za napajanje, lepite utikač prikladan za Arduino utičnicu:
Ili u kućište možete staviti odjeljak za baterije za četiri "AAA", "pinky" baterije. I spojite pozitivnu žicu iz odjeljka na Vin Arduino, a minus na GND.
Korak 5 Priprema programskog okruženja.
Prvo trebate preuzeti i instalirati Arduino IDE sa službena stranica
I također dodajte dvije knjižnice potrebne za skicu. OneWire - potreban za komunikaciju sa ds18b20 senzorima:
U8glib - koristi se za prikaz informacija na zaslonu:
Preuzmite knjižnicu. Zatim otpakujemo arhive i premještamo sadržaj arhiva u mapu "biblioteke" koja se nalazi u mapi s instaliranim Arduino IDE. Knjižnice možete dodati i putem Arduino IDE-a. Da biste to učinili, bez otpakiranja arhive, pokrenite Arduino IDE, odaberite Sketch - Poveži biblioteku s izbornika Sketch. Na samom vrhu padajućeg popisa odaberite stavku "Dodaj. Zip knjižnicu". Označavamo lokaciju preuzetih arhiva. Nakon svih koraka, trebate ponovo pokrenuti Arduino IDE.
Korak 6 Uređivanje skice.
Senzori temperature rade pomoću protokola One Wire i imaju jedinstvenu adresu za svaki uređaj - 64-bitni kod. Dodavanje naredbi za pretraživanje senzora u skicu nije preporučljivo. Nema potrebe svaki put učitavati Arduino senzore za štucanje.Stoga, prvo, sastavite sve zajedno, ispunite skicu u Arduinu koja se nalazi u izborniku Datoteka - Primjeri - Temperatura u Dallasu - OneWireSearch. Zatim pokrenite Alati - Port Monitor. Arduino bi trebao pronaći naše senzore, upisati adrese i očitanja temperature. Te adrese trebaju biti zapisane ili negdje kopirane. Sada otvorite skicu Ard_Tic_Tak_WG12864B_2_x_Term_Serial i potražite linije:
byte addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // interna adresa
byte addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // adresa vanjskog senzora
Adresama koje odgovaraju lokaciji senzora zamijenimo s našim adresama.
Naši satovi ne koriste RTC modul (sat u realnom vremenu), tako da morate prilagoditi sat. Radi praktičnosti, komentirajte liniju (na zaslonu će se pojaviti sekunde):
//u8g.setPrintPos (44, 50); u8g.print (sek); // Ispis sekunde za provjeru ispravnosti kursa
Postavite ispravno vrijeme kroz monitor priključka. Da biste to učinili, otvorite monitor vrata, pričekajte da se završe početna mjerenja temperature i unesite trenutni datum i vrijeme u obliku „dan, mjesec, godina, sati, minute, sekunde“. Bez razmaka, dijelite brojeve zarezima ili točkama.
Ako se sat žuri, promijenite vrijednost u veću, preporučujem eksperimentiranje u koracima od 100 jedinica. Ako zaostajete, umanjite vrijednost u retku:
ako je (micros () - prevmicros> 494000) {// promjena za drugu za prilagodbu iznosila 500.000
Empirijski odredite broj na koji sat ide prilično točno. Da biste odredili točnost tečaja i potrebne su vam sekunde zaključka. Nakon preciznog umjeravanja broja, sekunde se mogu komentirati i tako ukloniti sa zaslona.
Ispunite skicu.