- Nepieciešamās sastāvdaļas:
- Ķēdes skaidrojums:
- Signāla ģenerators, izmantojot 555 taimera IC:
- Šmita trigera vārti:
- Arduino frekvences skaitītāja koda skaidrojums:
Gandrīz katram elektroniskajam hobijam ir jāsaskaras ar scenāriju, kurā viņam vai viņai jāmēra pulksteņa, skaitītāja vai taimera radītā signāla biežums. Mēs varam izmantot osciloskopu, lai veiktu šo darbu, taču ne visi no mums var atļauties osciloskopu. Mēs varam iegādāties aprīkojumu frekvences mērīšanai, taču visas šīs ierīces ir dārgas un nav piemērotas visiem. Paturot to prātā, mēs izstrādāsim vienkāršu, bet efektīvu frekvenču skaitītāju, izmantojot Arduino Uno un Schmitt trigera vārtus.
Šis Arduino frekvenču skaitītājs ir rentabls un to var viegli izgatavot. Mēs izmantosim ARDUINO UNO signāla biežuma mērīšanai, UNO šeit ir projekta sirds.
Lai pārbaudītu frekvences mērītāju, mēs izgatavosim fiktīvu signālu ģeneratoru. Šis manekena signāla ģenerators tiks izgatavots, izmantojot taimera mikroshēmu 555. Taimera ķēde ģenerē kvadrātveida vilni, kas tiks piegādāta UNO testēšanai.
Kad viss ir uz vietas, mums būs Arduino frekvences mērītājs un kvadrātveida viļņu ģenerators. Arduino var izmantot arī, lai radītu cita veida viļņu formas, piemēram, sinusa vilni, zāģa zobu vilni utt.
Nepieciešamās sastāvdaļas:
- 555 taimera IC un 74LS14 Schmitt sprūda vārti vai NAV vārti.
- 1K Ω rezistors (2 gab.), 100Ω rezistors
- 100nF kondensators (2 gab.), 1000µF kondensators
- 16 * 2 LCD,
- 47KΩ katls,
- Maizes dēlis un daži savienotāji.
Ķēdes skaidrojums:
Frekvences mērīšanas shēma, izmantojot Arduino, parādīta zemāk redzamajā attēlā. Shēma ir vienkārša, LCD displejs ir savienots ar Arduino, lai parādītu izmērīto signāla frekvenci. 'Viļņu ievade' notiks signālu ģeneratora ķēdē, no kuras mēs padodam signālu Arduino. Schmitt sprūda vārti (IC 74LS14) tiek izmantoti, lai nodrošinātu, ka Arduino tiek padots tikai taisnstūrveida vilnis. Trokšņa filtrēšanai esam pievienojuši pāris kondensatorus pāri jaudai. Šis frekvences mērītājs var izmērīt frekvences līdz 1 MHz.
Signāla ģeneratora ķēde un Schmitt sprūda ir paskaidroti zemāk.
Signāla ģenerators, izmantojot 555 taimera IC:
Pirmkārt, mēs runāsim par 555 IC balstītu kvadrātveida viļņu ģeneratoru, vai man jāsaka 555 Astable Multivibrator. Šī shēma ir nepieciešama, jo, kad ir uzstādīts frekvences mērītājs, mums ir jābūt signālam, kura frekvence mums ir zināma. Bez šī signāla mēs nekad nevarēsim pateikt frekvences mērītāja darbību. Ja mums ir kvadrāts ar zināmu frekvenci, mēs varam izmantot šo signālu, lai pārbaudītu Arduino Uno frekvences mērītāju, un mēs varam to pielāgot precizitātes pielāgošanai jebkādu noviržu gadījumā. Signālu ģeneratora attēls, izmantojot 555 taimera IC, ir sniegts zemāk:
Tipiska 555 shēma Astable režīmā ir dota zemāk, no kuras mēs esam ieguvuši iepriekš norādīto signāla ģeneratora shēmu.
Izejas signāla frekvence ir atkarīga no RA, RB rezistoriem un kondensatora C. Vienādojums ir norādīts kā
Frekvence (F) = 1 / (Laika periods) = 1,44 / ((RA + RB * 2) * C).
Šeit RA un RB ir pretestības vērtības, un C ir kapacitātes vērtība. Ievietojot pretestības un kapacitātes vērtības iepriekš vienādojumā, mēs iegūstam izejas kvadrātveida viļņu biežumu.
Var redzēt, ka iepriekšējās diagrammas RB tiek aizstāts ar podu Signālu ģeneratora ķēdē; tas tiek darīts, lai mēs varētu iegūt mainīgas frekvences kvadrātveida vilni pie izejas labākai pārbaudei. Vienkāršības labad katlu var aizstāt ar vienkāršu rezistoru.
Šmita trigera vārti:
Mēs zinām, ka visi testēšanas signāli nav kvadrātveida vai taisnstūrveida viļņi. Mums ir trīsstūrveida viļņi, zobu viļņi, sinusa viļņi un tā tālāk. Tā kā UNO spēj noteikt tikai kvadrātveida vai taisnstūrveida viļņus, mums ir nepieciešama ierīce, kas visus signālus varētu mainīt uz taisnstūrveida viļņiem, tāpēc mēs izmantojam Schmitt Trigger Gate. Schmitt trigera vārti ir digitālās loģikas vārti, kas paredzēti aritmētiskām un loģiskām operācijām.
Šie vārti nodrošina OUTPUT, pamatojoties uz INPUT sprieguma līmeni. Schmitt trigerim ir THERSHOLD sprieguma līmenis, kad vārtiem pievienotā INPUT signāla sprieguma līmenis ir lielāks nekā loģisko vārtu THRESHOLD, OUTPUT iet HIGH. Ja INPUT sprieguma signāla līmenis ir zemāks par THRESHOLD, vārtu izeja būs LOW. Mēs parasti nesaņemam Schmitt trigeri atsevišķi, mums vienmēr ir NOT vārti, kas seko Schmitt trigerim. Schmitt Trigger darbība ir izskaidrota šeit: Schmitt Trigger Gate
Mēs izmantosim mikroshēmu 74LS14, šai mikroshēmai ir 6 Schmitt Trigger vārti. Šie seši vārti ir savienoti iekšēji, kā parādīts attēlā.
Patiesība tabula Invertēts Schmitt Trigger vārtiem ir parādīt zemāk attēlā, ar šo mums ir ieprogrammēt UNO lai apgriežot pozitīvās un negatīvās periodus pie tās termināļiem.
Tagad mēs piegādāsim jebkura veida signālu ST vārtiem, pie izejas būs taisnstūrveida apgrieztu laika periodu vilnis, mēs piegādāsim šo signālu UNO.
Arduino frekvences skaitītāja koda skaidrojums:
Šīs frekvences mērīšanas kods, izmantojot arduino, ir diezgan vienkāršs un viegli saprotams. Šeit mēs izskaidrojam funkciju pulseIn, kas galvenokārt ir atbildīga par frekvences mērīšanu. Uno ir īpaša funkcija pulseIn , kas ļauj mums noteikt konkrēta taisnstūra viļņa pozitīvā stāvokļa vai negatīvā stāvokļa ilgumu:
Htime = pulssIn (8, HIGH); Ltime = pulssIn (8, LOW);
Dotā funkcija mēra laiku, kurā Uno PIN8 ir augsts vai zems līmenis. Tātad vienā viļņa ciklā pozitīvā un negatīvā līmeņa ilgums būs mikro sekundēs. PulseIn funkcija mēra laiku mikro sekundēs. Dotajā signālā mums ir augsts laiks = 10mS un zems laiks = 30ms (ar frekvenci 25 HZ). Tātad 30000 tiks saglabāts vesels skaitlis Ltime un 10000 Htime. Pievienojot tos kopā, mums būs cikla ilgums, un, apgriežot to, mums būs frekvence.
Pilns šī frekvences mērītāja kods un video, izmantojot Arduino, ir sniegts zemāk.