როგორ ავაწყოთ ტემპერატურის მონიტორინგის სისტემა ?
მოცემული პროექტი წარმოადგენს ტემპერატურის მზომ სისტემას, რომელიც გათვლილია ოთახის პირობებზე, თუმცა მისი გამოყენება ნებისმიერ ადგილას არის შესაძლებელი. პროექტი დაფუძნებული Arduino pro mini-ზე, თუმცა კონტროლერის არჩევა თვქნი სურვილითაც შეგიძლიათ, ჩვენ გირჩევთ arduino nano-ს გამოყენებას. მონაცემების გამოსატანად გამოყენებულია 7 სეგმენტა ოთხი დისპლეი. ტემპერატურის გაზომვა კი ხდება თერმისტორის გამოყენებით, თერმისტორის ნაცვლად შესაძლებელია lm35-ის გამოყენებაც.
გამოყენებული მასალები
საჭირო ხელსაწყოები
სქემის გაკეთებისას პირველი უნდა გავუკეთოთ სადენები 7 სეგმენტა დისპლეის.
შემდეგი ნაბიჯი არის 7 სეგმენტა დისპლეის ფეხების მიერთება არდუინოზე. ფეხების მიერთების განლაგების ნახვა შეგიძლიათ ზემოთ მოცემულ სქემაზე. არდუინოზე 7 სეგმენტა დისპლეის დაერთების შემდეგ უნდა მივაერთოთ 10k ომიანი წინაღობა და 10k ომიანი თერმისტორი ძაბვის გამყოფის პრინციპით, იმ შემთხვევაში თუ გამოიყენებთ სხვა წინაღობის თერმისტორს წინაღობაც შესაბამისად იგივე ნომინალის უნდა შეირჩეს. მათი ფეხების დაფარვა შეგიძლიათ თერმოკუმშვადი იზოლატორით.
არდუინოზე 7 სეგმენტა დიპლეისა და ძაბვის გამყოფი, თერმისტორიანი წყვილის დაერთების შემდეგ საჭიროა სქემის კვებაზეც ვიფიქროთ. ჩვენ გამოვიყენეთ ბატარეა და ბატარეის დამტენი მოდული რათა სქემა უსადენოდაც ემუშავა. შეგიძლიათ სქემა ბატარეის გარეშეც ააწყოთ და მუდმივად კვებოთ სქემა usb სადენით. აკუმულატორის დამტენი მოდულის მიერთების სქემა მოცემულია ზემოთ.
ბატარეის დამტენი მოდულის მიერთების შემდეგ საჭიროა არდუინოში გავუშვათ კოდი რომელიც თერმისტორიდან მიღებულ ინფორმაციას დაამუშავებს და 7 სეგმენტა დისპლეიზე გამოსახავს ციფრების სახით.
Arduino-ს კოდი
#include "SevSeg.h" // 7 სეგმენტა დისპლეის ბიბლიოთეკა
SevSeg sevseg;
int ThermistorPin = 0;
int Vo;
float R1 = 10000;
float logR2, R2, T;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
void setup() {
// 7 სეგმენტა დისპლეის პინების განსაზღვრა
byte numDigits = 4;
byte digitPins[] = {10, 11, 12, 13};
byte segmentPins[] = {9, 2, 3, 5, 6, 8, 7, 4};
bool resistorsOnSegments = true;
byte hardwareConfig = COMMON_CATHODE;
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
}
void loop() {
// მონაცემების მიღება და ეკრანზე გამოტანა
Vo = analogRead(ThermistorPin);
R2 = R1 * (1023.0 / (float)Vo - 1.0);
logR2 = log(R2);
T = (1.0 / (c1 + c2 * logR2 + c3 * logR2 * logR2 * logR2));
T = T - 273.15;
static unsigned long timer = millis();
if (millis() >= timer) {
timer += 300;
sevseg.setNumber(T, 2);
}
sevseg.refreshDisplay();
}
არდუინოში კოდის ატვირთვის შემდეგ სქემა დაიწყებს მუშაობას და ტემპერატურის ცვლილებასთან ერთად მოხდება მონაცემების განახლება 7 სეგმენტა დისპლეიზე.
სქემისთვის შეგიძლიათ კარკასი თქვენი სურვილის მიხედვით შექმნათ, 3დ პრინტერით, ხისგან, სადენებით …. შეგახსენებთ რომ ყველა საჭირო კომპონენტის შეძენა შეგიძლიათ DAC.ge-ზე