Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Arduino, iqtisadi cəhətdən yüksək səmərəli və funksional bir vasitə olduğundan, onu C -də proqramlaşdırmaq, layihələri yorucu hala gətirir! Python'un Arduino_Master modulu bunu asanlaşdırır və hesablamalar aparmağımıza, zibil dəyərlərini çıxarmağımıza və məlumatların vizual şəkildə təqdim edilməsi üçün bir qrafik qurmağımıza imkan verir.
Bu modulu hələ bilmirsinizsə, Arduino_Master pip install əmrindən istifadə edərək qurun
Bu modulu necə istifadə edəcəyinizi bilmirsinizsə narahat olmayın, bu linki ziyarət edin => Arduino_Master
Bununla birlikdə, bu layihənin kodu həmişə bu təlimatda mövcud olacaq.
Təchizat
Bu layihə üçün aşağıdakılara ehtiyacınız olacaq:
- Bir Arduino
- İşıqdan asılı bir rezistor (LDR) və
- Python 3 kompüterinizə quraşdırılmışdır.
Addım 1: Dövrünüzü qurun:
Giriş məlumatlarını əldə etmək üçün Arduino pin A1 istifadə edəcəyik. Batareya yerinə Arduinonun 5V və GND pinlərindən də istifadə edə bilərsiniz. Bağlantıyı aşağıdakı kimi qurun:
- LDR -nin bir ucunu 5V batareyanın müsbət terminalına və ya Arduinonun 5V pininə qoşun.
- LDR -nin digər ucunu A1 pininə və batareyanın mənfi terminalına və ya Arduinonun GND pininə paralel olaraq bağlayın.
- Bütün cərəyanın GND -yə axmadığından əmin olmaq üçün bir rezistor istifadə edin ki, bu da Arduinonun A1 terminalında hiss etmək üçün kifayət qədər güclü siqnal almamağınıza səbəb olacaq. (10k ohm rezistor istifadə edirəm).
Addım 2: Arduino proqramlaşdırma:
Arduino_Master modulu məlumat göndərmək və almaq üçün Arduino Serial Monitorundan istifadə edir. Bu moduldan istifadə etmənin üstünlüyü ondan ibarətdir ki, Arduino proqramlaşdırdıqdan sonra, python proqramlaşdırması nisbətən asan olduğundan fərqli layihələr üçün tək python proqramını dəyişə bilərsiniz!
Kod:
// LDR_1 dəyişən Arduino A1 pinini ifadə etmək üçün istifadə olunur.
int LDR_1 = A1;
// A1 -dən alınan məlumatlar LDR_Value_1 -də saxlanılacaq.
float LDR_Value_1;
String girişi;
boş quraşdırma ()
{pinMode (LDR_1, GİRİŞ); // LDR_1 INPUT pin kimi təyin edilmişdir. Serial.begin (9600); // Əlaqə ötürmə dərəcəsi 9600 olaraq təyin edilmişdir.}
boşluq döngəsi ()
{if (Serial.available ()> 0) // serial monitorda hər hansı bir giriş varsa, davam edin. {giriş = Serial.readString (); // Girişi simli olaraq oxuyun. əgər (giriş == "VERİ") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) Voltda dəyər əldə etmək üçün dönüşüm faktorudur. Serial.println (LDR_Value_1); // Giriş "DATA" ya bərabərdirsə, LDR_1 -dən daxil olan məlumatları oxuyun və Serial Monitorda çap edin. } başqa int i = 0; // əgər giriş "DATA" ya bərabər deyilsə, heç nə etməyin! }
}
Addım 3: Arduinodan məlumatları qrafikləşdirmək üçün Python proqramlaşdırma:
Hər bir LDR -nin öz müqavimət dəyərləri olardı və yadda saxlamalıyıq ki, heç bir elektron komponent heç bir zaman tam eyni deyil. Beləliklə, əvvəlcə işığın müxtəlif intensivliyindəki gərginliyi tapmalıyıq.
Aşağıdakı proqramı python IDE -yə yükləyin və işə salın:
Bunu müxtəlif işığın intensivliyi üçün edin və qrafikdən istifadə edərək bir nəticə çıxarın, məsələn, intensivlik 1 -dən azdırsa, otaq çox qaranlıqdır. 1 ilə 2 arasındakı intensivlik üçün otaq xeyli qaranlıqdır. 2 -dən çox intensivlik üçün işıq yandırılır.
# Arduino_Master modulu idxal olunur
Arduino_Master idxalından *
# məlumat toplamaq
data = filter (ardata (8, squeeze = Yanlış, dinamik = Doğru, msg = "VERİLƏR", sətirlər = 30), gözlənilən_tip = 'num', limit = [0, 5])
5V batareya istifadə etdiyimiz üçün # limit 5 olaraq təyin edilmişdir.
# Dəyərlərin qurulması
Qrafik (data, stl = 'dark_background', label = 'İşıq intensivliyi')
Addım 4: Otaqda İşığın Yoğunluğunu Yoxlamaq üçün Son Proqram
Əldə etdiyiniz məlumatlardan bir nəticəyə gəldikdən sonra, aşağıdakı proqramı yükləyin və nəticəyə görə məhdudiyyətləri dəyişdirdiyinizə əmin olun.
# Arduino_Master modulu idxal olunur
from Arduino_Master import # data data toplama = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", xətlər = 50), gözlənilən_tip = 'num', limit = [0, 5]) # təsnifat məlumatları nəticəyə əsaslanaraq info = i aralığında (len (data)): intensivlik = data intensivlik 1 və intensivlik = 2 olduqda: info.append ('İşıq AÇIK') # Qrafiki Çizmək. compGraph (data, info, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')
Addım 5: Nəticə:
Arduinodan 50 ani dəyər oxuduğunuz üçün proqramın işləməsi bir -iki dəqiqə çəkəcək.
Prosesi sürətləndirmək istəyirsinizsə ardata funksiyasının xətlər parametrini dəyişməyə çalışın. Ancaq unutmayın ki, müşahidələr nə qədər az olarsa, məlumatların keyfiyyəti də o qədər aşağı olar.
Qeyd: Yuxarıdakı şəkildəki tam qrafika görünmürsə, Giriş bölməsinin üstündəki qrafikə baxın.