BajardiKerakli elementlar : Tranzistor , Fotorezistor, Motor , Lampa , 9 V lik batareya , temperatora datchigi , resistor , arduino , breadboard// C++ code // int baselineTemp = 0; int celsius = 0; int fahrenheit = 0;Serial.print(" C, "); Serial.print(fahrenheit); Serial.println(" F"); if (celsius digitalWrite(2, LOW); |
O‘rnatilgan tizimlari fanidan 4-topshiriq mavzu
|
Sana | 14.05.2024 | Hajmi | 149,97 Kb. | | #230758 |
Bog'liq o\'rnatilgan tizimBu sahifa navigatsiya:
- Bajardi
- Kerakli elementlar : Tranzistor , Fotorezistor, Motor , Lampa , 9 V lik batareya , temperatora datchigi , resistor , arduino , breadboard
- // C++ code // int baselineTemp = 0; int celsius = 0; int fahrenheit = 0;
- Serial.print(" C, "); Serial.print(fahrenheit); Serial.println(" F"); if (celsius digitalWrite(2, LOW);
O‘ZBEKISTON RESPUBLIKASI
RAQAMLI TEXNOLOGIYALAR VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Kompyuter injiniringi fakulteti
Sun’iy intellekt kafedrasi
O‘rnatilgan tizimlari fanidan
4-TOPSHIRIQ
Mavzu: Tranzistor, fotoqarshilik va harorat datchigi bilan ishlash
Bajardi: 211-21 guruh talabasi
Shermatov Jamoliddin
Tekshirdi: Asqaraliyev Odilbek
TOSHKENT – 2024
Ishdan maqsad: Talabalarga Arduino, datchiklar haqida ma’lumot berish. Ular bilan ishlash ko‘nikmalarini hosil qilish. Tranzistorlar, fotoqarshiliklar harorat datchiklarini o‘rganish.
Vazifalar:
Tranzistor ishlash prinsipini o‘rganish
Fotoqarshilikni ishlash prinsipini o‘rganish
Harorat datchigini ishlash prinsipini o‘rganish
Ular asosida tizimli ravishda bironta loyiha ishlab chiqish
Nazariy ma’lumot :
LM335 -40 °S dan +100 °S oraliqdagi haroratga sezgir element. LM335 datchigi ishlash tamoyili bo‘yicha stablitron bo‘lib, unda kuchlanishni stabillashtirish haroratga bog‘liq bo‘ladi. Harorat bir gradus Kelvinga oshganda stabillashtirish kuchlanishi 10 millivoltga oshadi. Haroratni o‘lchash uchun 2 ta oyoqcha ishlatiladi, uchinchisi datchikni kolibrovkalash uchun kerak bo‘ladi. Misol tariqasida LM335 datchigini RGByorug‘lik diodida atrof muhit harorat indikatorini yaratish orqali ko‘riladi
Arduino ning oyoqchalari OUTPUT kabi o‘zgartirilgan, past impedans holatga ega va yuklamaga 40 mA berishi mumkin va quvvatli yuklamani manbasini hamda katta kuchlanishni ta’minlab bera olmaydi.Kuchli yuklamani boshqarishning bitta usuli MOSFET-maydon tranzistorlaridan foydalanishdir. MOSFET- tranzistori 259 – uncha katta bo‘lmagan kuchlanish orqali (toklar bilan boshqariluvchi bipolyar tranzistorlardan farqli) katta toklarni boshqarish uchun kalitdir. Bu mashg‘ulotda motorning aylanish tezligini kuchlanishni o‘zgartirish orqali boshqariladi. MOSFET berilayotgan kuchlanishni boshqarishni KIM (keng-impulsli modulyatsiya) yordamida amalga oshiriladi. 5 mashg‘ulotda KIM ni raqamli signal yordamida o‘zgaruvchan analog qiymatni olish uchun ishlatilishi bilan tanishilgan. Yuritma tezligini boshqarish uchun o‘zgaruvchan qarshilikni ishlatiladi
Kerakli elementlar :
Tranzistor , Fotorezistor, Motor , Lampa , 9 V lik batareya ,
temperatora datchigi , resistor , arduino , breadboard
Amaliy qism:
Natija :
Link:
https://www.tinkercad.com/things/2AqhFCZeNnZ-temperature-sensor-analog-input/editel?lessonid=EMVT9T9JD0K5DNO&projectid=ON9M69XL26F9H15#/lesson-viewer
Kodi :
// C++ code
//
int baselineTemp = 0;
int celsius = 0;
int fahrenheit = 0;
void setup()
{
pinMode(A0, INPUT);
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
}
void loop()
{
// set threshold temperature to activate LEDs
baselineTemp = 40;
// measure temperature in Celsius
celsius = map(((analogRead(A0) - 20) * 3.04), 0, 1023, -40, 125);
// convert to Fahrenheit
fahrenheit = ((celsius * 9) / 5 + 32);
Serial.print(celsius);
Serial.print(" C, ");
Serial.print(fahrenheit);
Serial.println(" F");
if (celsius < baselineTemp) {
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
if (celsius >= baselineTemp && celsius < baselineTemp + 10) {
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
if (celsius >= baselineTemp + 10 && celsius < baselineTemp + 20) {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
}
if (celsius >= baselineTemp + 20 && celsius < baselineTemp + 30) {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
}
if (celsius >= baselineTemp + 30) {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
}
delay(1000); // Wait for 1000 millisecond(s)
}
|
| |