Bincika Lambar

Kashi na 7/31-2 : gano filin maganadisu ta amfani da maɓallin reed | Kayan SunFounder

Kashi na 7/31-2 : gano filin maganadisu ta amfani da maɓallin reed | Kayan SunFounder

Gano filin maganadisu ɗaya ne daga cikin mafi sauƙi kuma mafi gamsarwa hanyoyin fara amfani da shigarwar dijital akan Arduino. A cikin wannan aikin za ka gina na'urar gano filin maganadisu ta amfani da maɓallin reed — ƙaramin maɓalli da aka lulluɓe a cikin gilashi wanda ke rufe lambobinsa duk lokacin da maganadisu ya zo kusa da shi. Domin maɓallin reed yana aiki daidai da maɓallin turawa (ko dai a buɗe yake ko a rufe), cikakkiyar gabatarwa ce ga aikin digitalRead(), kuma yana koya maka dalilin da ya sa resistor na jawo ƙasa yake da muhimmanci da kuma yadda ingantaccen pull-up na shigarwar Arduino zai iya maye gurbinsa gaba ɗaya.

reed_switch

Da zarar wannan ya fara aiki, wannan da'irar ɗaya za ta zama zuciyar gine-gine da yawa na gaske. Ga wasu ra'ayoyi masu amfani da za ka iya gwadawa:

  • Ƙararrawar ƙofa da taga — sanya maɓallin reed a kan firam da ƙaramin maganadisu a kan ƙofar; Arduino zai bayar da rahoton "a buɗe" da zarar maganadisu ya tashi.
  • Ma'aunin saurin juyi mara taɓawa — manna maganadisu a kan ƙafafun da ke juyawa sannan ka ƙidaya bugun don auna RPM.
  • Mai karanta mita na ruwa ko gas — yawancin mita na kayan aiki suna da fitarwar bugun maganadisu wanda maɓallin reed zai iya ɗauka ya rubuta.
  • Na'urar gano murfin kwamfutar tafi-da-gidanka / rumbun ajiya — gano lokacin da aka rufe murfi don kunna bacci ko LED na matsayi.
  • Ma'aunin saurin keke — maganadisu a kan magana da maɓallin reed a kan cokali yana ba ka bugu ɗaya a kowace juyawar ƙafa.
  • Gano ɓarna — ɓoye maganadisu da maɓallin reed a cikin rumbun ajiya don ka san ko an buɗe shi.

Yadda Maɓallin Reed Yake Aiki

lesson-7-reading-reed-with-magnet-multimeter

Maɓallin reed ƙaramin kwafsa ne na gilashi da ke ɗauke da siraran wuƙaƙe biyu na ferromagnetic (a cikin bidiyo a 12:38). Idan akwai filin maganadisu, wuƙaƙen suna jan juna kuma suna taɓawa, suna rufe da'irar. Cire maganadisu sai wuƙaƙen su rabu, suna buɗe da'irar kuma. Wannan shi ne dukan ƙa'idar — maɓalli ne mara maɓallin turawa mai motsi, mara lalacewa daga danna yatsa, kuma mara buƙatar taɓawa ta jiki da abin da kake ganowa.

Za ka iya tabbatar da wannan hali da multimeter a yanayin ci gaba (a cikin bidiyo a 13:59): idan babu maganadisu kusa, mita tana nuna buɗaɗɗen da'ira, kuma da zarar maganadisu ya matso sai ƙararrawar ta yi sauti kuma mita ta karanta rufaffiyar da'ira. Domin maɓallin yana daidai da maɓallin turawa ta hanyar lantarki, lambar Arduino da wayoyi iri ɗaya ne da kowane shigarwar dijital.

Shigarwar Dijital da Resistor na Jawo An Bayyana

Arduino yana karanta filin dijital a matsayin ko dai HIGH ko LOW. A kan allo na 5 V, duk abin da ya wuce kusan 2.2 V ana ɗaukarsa a matsayin HIGH kuma duk abin da ke ƙasa da kusan 1.5 V a matsayin LOW (a cikin bidiyo a 01:49). Matsalar ita ce maɓallin da aka haɗa kai tsaye tsakanin fili da 5 V yana barin filin a shawagi lokacin da maɓallin ya buɗe — ba a haɗa shi da komai ba, don haka yana ɗaukar hayaniya kuma yana bayar da ƙididdiga na bazuwar.

why_use_resistor_switch-1
why_use_resistor_switch-2
why_use_resistor_switch-3
why_use_resistor_switch-4
why_use_resistor_switch-5
why_use_resistor_switch-6
why_use_resistor_switch-7
why_use_resistor_switch-8
push button with INPUT_PULLUP

Shi ya sa ake amfani da resistor. Tsare-tsare biyu suna aiki daidai:

  • Ja-in-ƙasa: resistor 10 kΩ daga fil zuwa ƙasa. Fil ɗin yana karanta LOW lokacin da maɓalli a buɗe kuma HIGH lokacin da maɓalli ya haɗa fil ɗin zuwa 5 V.
  • Ja-in-sama: resistor 10 kΩ daga fil zuwa 5 V. Fil ɗin yana karanta HIGH lokacin da maɓalli a buɗe kuma LOW lokacin da maɓalli ya haɗa fil ɗin zuwa ƙasa.

Arduino kuma yana da resistor na ciki na ja-in-sama wanda za a iya kunna shi a cikin software tare da INPUT_PULLUP (a bidiyo a 19:52). Wannan yana kawar da buƙatar resistor na waje gaba ɗaya — fil ɗin yana zama HIGH, kuma rufe maɓalli zuwa ƙasa yana ja shi zuwa LOW. Rashin jituwa shi ne cewa hanyar tunani tana juyewa: matsi (ko magnet ɗin nan) yanzu yana karanta 0 maimakon 1.

Kayan Aiki da Abubuwan Haɗi

  • Arduino Uno (ko kowace allo mai dacewa)
  • Module na reed switch ko reed switch tsirara
  • Resistor 10 kΩ (ana buƙata kawai don sigar ja-in-ƙasa)
  • Breadboard da wayoyi na jumper
  • Ƙaramin magnet don gwaji
  • USB cable don shirye-shirye da wutar lantarki

Jagorar Haɗawa

lesson-7-reading-reed-schematic
lesson-7-reading-reed-wiring

Ana haɗa reed switch daidai kamar maɓallin turawa. Ƙafa ɗaya na reed switch tana zuwa 5 V, ɗayan ƙafar tana zuwa Arduino pin 2 kuma zuwa ƙarshen ɗaya na resistor 10 kΩ. Ɗayan ƙarshen resistor ɗin yana zuwa ƙasa (a bidiyo a 14:40). Wannan tsarin ja-in-ƙasa ne, don haka fil ɗin yana karanta LOW ba tare da magnet ba kuma HIGH lokacin da magnet ya rufe maɓalli.

A kan breadboard, sanya reed switch domin ƙafafunsa biyu su zauna a layuka daban-daban, haɗa resistor daga layin da yake daidai da ƙafa ɗaya zuwa layin ƙasa, gudu da jan waya daga ɗayan ƙafar zuwa layin 5 V, da koren waya daga mahaɗar reed switch da resistor zuwa pin 2 (a bidiyo a 15:53). Baƙi yana zuwa ƙasa, ja yana zuwa 5 V, kore yana zuwa pin 2 — ka'idar launi ɗaya da aka yi amfani da ita a duk cikin kayan SunFounder.

Idan ka fi son tsallake resistor ɗin, haɗa ƙafa ɗaya na reed switch zuwa pin 2 da ɗayan ƙafar kai tsaye zuwa ƙasa, sannan kunna INPUT_PULLUP a cikin lambar kamar yadda aka bayyana a ƙasa.

Bayanin Lambar

Sketch ɗin da gangan ƙarami ne. Duk abin da za ka so ka canza yana cikin wurare biyu a saman fayil ɗin.

int reedPin = 2;//the pin reed switch is connected to 

void setup() {
  Serial.begin(9600);
  pinMode(reedPin, INPUT);
}

reedPin — canza wannan lambar idan ka haɗa reed switch zuwa wani digital pin daban. Kowace digital pin a kan Uno tana aiki; pin 2 ana amfani da ita a nan kawai saboda ta dace a kan breadboard.

Serial.begin(9600) — yana saita saurin serial monitor. Idan ka canza wannan darajar dole ne ka canza baud rate dropdown a cikin taga Serial Monitor, in ba haka ba za ka ga haruffa marasa ma'ana (a bidiyo a 11:25).

pinMode(reedPin, INPUT) — yana saita fil ɗin a matsayin shigarwa mai tsayin juriya domin ya iya gane wutar da reed switch da resistor suka saita. Idan kana amfani da ja-in-sama na ciki maimakon, canza wannan layin zuwa pinMode(reedPin, INPUT_PULLUP); kuma ka tuna cewa karatun zai juya.

Loop ɗin yana karanta fil ɗin kawai kuma yana buga sakamakon:

void loop() {
  Serial.println(digitalRead(reedPin));
  delay(10);       
}

digitalRead(reedPin) yana mayar da 1 lokacin da fil ɗin yake HIGH da 0 lokacin da yake LOW. Saboda ana shigar da darajar kai tsaye cikin Serial.println(), babu buƙatar wani canji na tsaka-tsaki — ana buga karatun kai tsaye. Tare da haɗin ja-in-ƙasa, 0 yana nufin "babu filin maganadisu" kuma 1 yana nufin "an gano magnet" (a bidiyo a 18:31).

delay(10) yana sarrafa sau nawa ake buga karatu. Millisekundu goma suna da sauri sosai da za ka ga darajar ta canza nan take da magnet ya matso. Idan ka fi son nuni mai natsuwa za ka iya ɗaga shi zuwa 200 ms, amma lura cewa wannan yana rage saurin ganowa kuma (a bidiyo a 12:01).

Nunin Aikin Kai Tsaye

Bayan loda sketch ɗin, buɗe Serial Monitor kuma saita baud rate zuwa 9600. Ba tare da magnet kusa ba taga yana cika da sifili. Kawo ƙaramin magnet kusa da capsule ɗin gilashi kuma fitarwar nan take tana canzawa zuwa ɗaya; ja magnet ɗin nesa kuma yana komawa sifili (a bidiyo a 17:04). Amsar nan take ce kuma tana aiki ko da an riƙe magnet ɗin santimita ɗaya ko biyu nesa da maɓalli.

lesson-7-reading-reed-wiring-on-breadboard

Idan ka gina sigar ja-in-sama maimakon, hanyar tunani tana juyewa: monitor ɗin yana nuna 1 a hutawa da 0 lokacin da magnet ɗin yake nan (a bidiyo a 22:13). Ko ta yaya, yanzu kana da abin gano filin maganadisu mai aminci, mara taɓawa wanda ba ya da tsada kuma ana iya jefa shi cikin kowane ra'ayin aikin da aka jera a saman wannan labarin.

An rufe sigar maɓallin bugawa na wannan darasin karanta dijital an rufe shi daban a cikin Darasin 7/31: Karanta Maɓallin Bugawa na Dijital, gano filin maganadisu SunFounder Kit | Robojax.

Ayyukan da suka danganci wannan bidiyon

Babobi

  • [00:00] Gabatarwa: misalan karanta dijital guda biyu
  • [01:33] Abin da karanta dijital da HIGH/LOW ke nufi
  • [02:46] Yadda maɓallin bugawa ke aiki
  • [03:25] Ka'idar resistor mai ja sama da ja ƙasa
  • [05:18] Haɗa maɓallin bugawa a kan allon biredi
  • [08:21] Buɗewa da bayanin zanen maɓallin
  • [10:55] Loda da gwada misalin maɓallin
  • [12:38] Gabatar da maɓallin reed da gwada shi da multimeter
  • [14:40] Haɗa maɓallin reed zuwa fil 2
  • [16:46] Gwada maɓallin reed da maganadisu
  • [17:19] Bayanin zanen maɓallin reed
  • [19:45] Amfani da INPUT_PULLUP ba tare da resistor na waje ba

Hotuna

reed_switch
reed_switch
push button with INPUT_PULLUP
push button with INPUT_PULLUP
why_use_resistor_switch-1
why_use_resistor_switch-1
why_use_resistor_switch-2
why_use_resistor_switch-2
why_use_resistor_switch-3
why_use_resistor_switch-3
why_use_resistor_switch-4
why_use_resistor_switch-4
why_use_resistor_switch-5
why_use_resistor_switch-5
why_use_resistor_switch-6
why_use_resistor_switch-6
why_use_resistor_switch-7
why_use_resistor_switch-7
why_use_resistor_switch-8
why_use_resistor_switch-8
lesson-7-reading-reed-with-magnet-multimeter
lesson-7-reading-reed-with-magnet-multimeter
lesson-7-reading-push-button-schematic
lesson-7-reading-push-button-schematic
lesson-7-reading-push-button-wiring
lesson-7-reading-push-button-wiring
lesson-7-reading-reed-schematic
lesson-7-reading-reed-schematic
lesson-7-reading-reed-wiring
lesson-7-reading-reed-wiring
lesson-7-reading-reed-wiring-on-breadboard
lesson-7-reading-reed-wiring-on-breadboard
932-Lesson 7/31-2: Digital read, working with reed switch
Harshe: C++
/*
 * Lesson 7/31-2: Digital read, working with reed switch
Download and resource page https://robojax.com/RJT590
watch video tutorial https://www.youtube.com/watch?v=yyJrqFKn-X4
 * written/updated by Ahmad Shamshiri www.Robojax.com
 * Dec 12, 2022
 * 

*/

int reedPin = 2;//the pin reed switch is connected to 

void setup() {
  Serial.begin(9600);
  pinMode(reedPin, INPUT);
}

void loop() {
  Serial.println(digitalRead(reedPin));
  delay(10);       
}

Albarkatun da kuma shafukan da za a duba

Fayiloli📁

Littattafan Arduino (zip)

Jagoran Mai Amfani