Isi kandungan:
- Bekalan:
- Langkah 1: Tentukur Thermistor
- Langkah 2: Tetapkan Litar
- Langkah 3: Kod
- Langkah 4: Mulakan Mengukur Suhu
Baru-baru ini saya memperoleh Arduino Uno dan sedang mencari projek "memulakan" yang sejuk. Saya memutuskan untuk membuat termometer, kerana kit saya mempunyai semua bahagian yang diperlukan (thermistor, wayar, perintang, LED). Melalui beberapa lelaran, saya akhirnya tiba di projek ini: membina Thermometer Perduaan Berkembar Arduino yang memaparkan suhu (dalam C) dalam binari pada enam LED. Inilah yang anda perlukan untuk membina ini:
Arduino x1
Breadboard x1
1000 ohm resistor x1
Thermistor x1
330 ohm perintang x 6
LED x 6
Wayar pelbagai x? (bergantung pada litar anda)
Bekalan:
Langkah 1: Tentukur Thermistor
Thermistors adalah sejenis perintang yang berubah-ubah yang mengubah rintangan dengan perubahan suhu. Untuk mendapatkan bacaan yang tepat dari termistor anda, pertama anda perlu menentukurnya. Anda boleh menggunakan Persamaan Steinhart-Hart untuk memahami data input voltan daripada termistor anda. Menggunakan persamaan ini, suhu = 1 / (A + B * ln (R) + C * (ln (R)) ^ 3), di mana A, B, dan C adalah pekali yang mesti anda selesaikan dan R adalah rintangan. Cara paling mudah untuk mendapatkan nilai koefisien untuk termistor tertentu ialah mencari datasheetnya. Pada datasheet, perlu ada plot Rintangan Suhu Rintangan. Anda boleh memilih mata dari plot ini dan memasukkannya ke dalam kalkulator (seperti ini) untuk mendapatkan nilai pekali untuk A, B, dan C. Titik yang saya gunakan ditandai oleh lingkaran merah pada plot. Idealnya, anda ingin memilih nilai-nilai di atas, tengah, dan bawah julat yang anda harapkan untuk menggunakan termistor dalam untuk mendapatkan lengkung yang paling tepat. Sebaik sahaja anda mempunyai nilai ini, anda boleh memasukkannya ke fungsi "Thermistor" dalam kod.
Langkah 2: Tetapkan Litar
Bahagian ini cukup jelas. Anda akan ingin memasang 6 LED secara berasingan untuk memisahkan pin dan anda mahu wayar input dari termistor berada di antara termistor dan perintang. Ini lebih mudah untuk dilihat dalam gambarajah litar.
Langkah 3: Kod
Bahagian ini juga cukup jelas. Kebanyakan kod termistor datang dari sini. Saya telah mengulas kod untuk cuba menjadikannya lebih mudah difahami. Baris berani menunjukkan tempat memasuki nilai A, B, dan C untuk termistor:
#include
int led1 = 7; / / Tetapkan nombor pin input
int led2 = 8;
int led3 = 9;
int led4 = 10;
int led5 = 11;
int led6 = 12;
dua Thermistor (int RawADC) {
double Temp;
Temp = log (((10240000 / RawADC) - 10000));
Temp = 1 / (0.000760464581576 + (0.000231192417594 + (0.000000072965780 * Temp * Temp)) * Temp);// Ini akan menghasilkan suhu di Kelvin
Temp = Temp - 273.15; // Menukar Kelvin ke Celcius
kembali temp;
} // Fungsi untuk menukar data voltan termistor ke suhu dalam penggunaan Celcius
// Persamaan Steinhart-Hart
void setup () {
Serial.begin (115200);
pinMode (led1, OUTPUT); // Tentukan pin sebagai output
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
pinMode (led4, OUTPUT);
pinMode (led5, OUTPUT);
pinMode (led6, OUTPUT);
}
kekosongan gelung () {
int Temp = Thermistor (analogRead (0)); / / Set pembolehubah Temp sama dengan bacaan dari pin analog 0
int tempdata 6; / Buat pelbagai kosong
untuk (int i = 0; i <6; i ++) {
tempdata i = (temp >> i) & 1;
} // Kitaran melalui nombor perduaan, menyimpan setiap tempat sebagai kemasukan dalam array
Serial.println (int (Temp)); // Paparkan suhu dalam monitor siri
jika (tempdata 0 == 1) {
digitalWrite (led1, HIGH);
} // Jika / Lain-lain kenyataan pergi melalui array dengan digit binari dan menyalakan LED jika entri = 1 dan redup LED jika entri = 0
lain {
digitalWrite (led1, LOW);
}
jika (tempdata 1 == 1) {
digitalWrite (led2, HIGH);
}
lain {
digitalWrite (led2, LOW);
}
jika (tempdata 2 == 1) {
digitalWrite (led3, HIGH);
}
lain {
digitalWrite (led3, LOW);
}
jika (tempdata 3 == 1) {
digitalWrite (led4, HIGH);
}
lain {
digitalWrite (led4, LOW);
}
jika (tempdata 4 == 1) {
digitalWrite (led5, HIGH);
}
lain {
digitalWrite (led5, LOW);
}
jika (tempdata 5 == 1) {
digitalWrite (led6, HIGH);
}
lain {
digitalWrite (led6, LOW);
}
kelewatan (100); / Tunggu 100 milisaat
}
Langkah 4: Mulakan Mengukur Suhu
Sekarang anda boleh mula mengukur suhu! Itu sudah tentu jika anda boleh membaca binari …