Wa Koodu

Ẹ̀kọ́ 7/31-2 : ṣíṣe àwárí pápá oofà ní lílo reed switch | SunFounder Kit

Ẹ̀kọ́ 7/31-2 : ṣíṣe àwárí pápá oofà ní lílo reed switch | SunFounder Kit

Wiwa aaye oofa jẹ́ ọ̀kan lára àwọn ọ̀nà tí ó rọrùn jùlọ àti tí ó ń tẹ́nilọ́rùn jùlọ láti bẹ̀rẹ̀ pẹ̀lú àwọn ìwọlé díjítà lórí Arduino. Nínú iṣẹ́ yìí, ìwọ yóò kọ́ ẹ̀rọ ìwárí aaye oofa kan ní lílo reed switch — yìí ni switch kékeré kan tí a fi gíláàsì bo tí ó ń ti àwọn ìkànnì rẹ̀ nígbàkígbà tí oofa kan bá súnmọ́ ọ. Nítorí pé reed switch ń hùwà gẹ́gẹ́ bí bọ́tìnì tẹ ni pátápátá (ó ti ṣí tàbí ó ti dí), ó jẹ́ ìfihàn pípé fún iṣẹ́ digitalRead(), ó sì tún kọ́ ọ ní ìdí tí resistor ìsàlẹ̀ fi ṣe pàtàkì àti bí pull-up ìwọlé tí a kọ́ sínú Arduino ṣe lè rọ́pò rẹ̀ pátápátá.

reed_switch

Nígbà tí èyí bá ń ṣiṣẹ́, ìpín-ìpín kan náà yóò di ọkàn-àyà àwọn iṣẹ́ gidi púpọ̀. Àwọn èròǹgbà tí ó wúlò tí ìwọ lè dán wò nìwọ̀nyí:

  • Ìkìlọ̀ ilẹ̀kùn àti fèrèsé — gbé reed switch sórí férémù kan àti oofa kékeré kan sórí ilẹ̀kùn; Arduino yóò sọ "ṣí" ní kété tí oofa bá kúrò.
  • Mítà ìyára tí kò fọwọ́ kàn — fi oofa kan mọ́ kẹ̀kẹ́ tí ń yí kí o sì ka àwọn ìṣẹ́lẹ̀ láti dí RPM wọn.
  • Ẹ̀rọ kíkà mítà omi tàbí gáàsì — ọ̀pọ̀ mítà ìpèsè ni ó ní ìjáde ìṣẹ́lẹ̀ oofa tí reed switch lè gbà kí ó sì ṣàkọsílẹ̀.
  • Sẹ́nsọ̀ ẹ̀gbin kọ̀mpútà tàbí àpótí — ṣàwárí nígbà tí a bá ti ẹ̀gbin kan láti dá oorun tàbí LED ipò sílẹ̀.
  • Mítà ìyára kẹ̀kẹ́ — oofa kan lórí ọ̀pá kẹ̀kẹ́ àti reed switch kan lórí ẹ̀ka kẹ̀kẹ́ yóò fún ọ ní ìṣẹ́lẹ̀ kan fún ìyí kẹ̀kẹ́ kọ̀ọ̀kan.
  • Ìwárí ìdàrúdàpọ̀ — fi oofa àti reed switch pamọ́ sínú àpótí kan kí o lè mọ̀ bí a bá ti ṣí i.

Bí Reed Switch Ṣe Ń Ṣiṣẹ́

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

Reed switch jẹ́ káàsù gíláàsì kékeré kan tí ó ní abẹ́fẹ́ ferromagnetic méjì tín-ínrín nínú (ní fídíò ní 12:38). Níwájú aaye oofa kan, àwọn abẹ́fẹ́ náà ń fà mọ́ ara wọn wọ́n sì ń kan ara wọn, èyí sì ń dí àyíká náà. Yọ oofa náà kúrò, àwọn abẹ́fẹ́ náà yóò sì pínyà, èyí yóò sì tún ṣí àyíká náà. Ìlànà náà ni gbogbo rẹ̀ — ó jẹ́ switch tí kò ní bọ́tìnì tí ń rìn, tí kò ní ìbàjẹ́ láti ọwọ́ títẹ, tí kò sì nílò ìkànnì ti ara pẹ̀lú ohun tí ìwọ ń ṣàwárí.

Ìwọ lè ṣàyẹ̀wò ìhùwà yìí pẹ̀lú multimeter ní ipò ìtẹ̀síwájú (ní fídíò ní 13:59): pẹ̀lú kò sí oofa nítòsí, mítà náà fi àyíká tí ó ṣí hàn, ní kété tí oofa bá súnmọ́, buzzer yóò dún mítà náà yóò sì kà àyíká tí ó dí. Nítorí pé switch náà jẹ́ ohun kan náà ní ti ẹ̀rọ pẹ̀lú bọ́tìnì tẹ, kóòdù Arduino àti ìsopọ̀ náà jẹ́ ohun kan náà pẹ̀lú àwọn ìwọlé díjítà mìíràn.

Àlàyé Àwọn Ìwọlé Díjítà àti Àwọn Resistor Ìsàlẹ̀

Arduino ń ka pín díjítà gẹ́gẹ́ bí HIGH tàbí LOW. Lórí pátákó 5 V, ohunkóhun tí ó ju nǹkan bí 2.2 V lọ ni a kà sí HIGH àti ohunkóhun tí ó kéré ju nǹkan bí 1.5 V lọ ni a kà sí LOW (ní fídíò ní 01:49). Ìṣòro náà ni pé switch tí a so tààràtà láàrin pín àti 5 V ń fi pín náà sílẹ̀ ní floating nígbà tí switch bá ṣí — kò so mọ́ ohunkóhun, nítorí náà ó ń gba ariwo ó sì ń ròyìn àwọn iye àìdánilójú.

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
bọ́tìnì tẹ pẹ̀lú INPUT_PULLUP

Ìdí nìyẹn tí a fi ń lo resistor. Àwọn ìṣètò méjì ń ṣiṣẹ́ dáadáa bákan náà:

  • Pull-down: a 10 kΩ resistor lati pin si ilẹ. Pin yoo ka LOW nigbati switch ba wa ni ṣiṣi ati HIGH nigbati switch ba so pin pọ mọ 5 V.
  • Pull-up: a 10 kΩ resistor lati pin si 5 V. Pin yoo ka HIGH nigbati switch ba wa ni ṣiṣi ati LOW nigbati switch ba so pin pọ mọ ilẹ.

Arduino tun ni pull-up resistor inu ti o le muu ṣiṣẹ ninu sọfitiwia pẹlu INPUT_PULLUP (ninu fidio ni 19:52). Eyi yọ iwulo fun resistor ita kuro patapata — pin duro HIGH, ati pipade switch si ilẹ fa a si LOW. Ipadanu ni pe ọgbọn naa ti yipada: titẹ (tabi oofa wa) yoo ka 0 dipo 1.

Ohun elo ati Awọn ẹya

  • Arduino Uno (tabi eyikeyi board ti o baamu)
  • Reed switch module tabi reed switch lasan
  • 10 kΩ resistor (nikan nilo fun ẹya pull-down)
  • Breadboard ati awọn waya jumper
  • Oofa kekere fun idanwo
  • USB okun fun siseto ati agbara

Itọsọna Wiwọ

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

Reed switch ti wa ni wiwọ gẹgẹ bi bọtini titẹ. Ẹsẹ kan ti reed switch lọ si 5 V, ẹsẹ keji lọ si Arduino pin 2 ati si opin kan ti 10 kΩ resistor. Opin keji ti resistor lọ si ilẹ (ninu fidio ni 14:40). Eyi jẹ iṣeto pull-down, nitorina pin yoo ka LOW laisi oofa ati HIGH nigbati oofa ba pa switch.

Lori breadboard, gbe reed switch si ki ẹsẹ meji rẹ joko ni awọn ori ila oriṣiriṣi, so resistor lati ori ila kanna bi ẹsẹ kan si isalẹ si ila ilẹ, gbe waya pupa lati ẹsẹ keji si ila 5 V, ati waya alawọ ewe lati ibi ipade reed switch ati resistor si pin 2 (ninu fidio ni 15:53). Dudu lọ si ilẹ, pupa lọ si 5 V, alawọ ewe lọ si pin 2 — ilana awọ kanna ti a lo jakejado kit SunFounder.

Ti o ba fẹ fo resistor naa, so ẹsẹ kan ti reed switch si pin 2 ati ẹsẹ keji taara si ilẹ, lẹhinna mu INPUT_PULLUP ṣiṣẹ ninu koodu gẹgẹ bi a ti ṣalaye ni isalẹ.

Alaye Koodu

Sketch naa kere ni imọọmọ. Ohun gbogbo ti iwọ yoo fẹ yi pada wa ni aaye meji ni oke faili naa.

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

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

reedPin — yi nọmba yii pada ti o ba so reed switch si pin oni-nọmba miiran. Eyikeyi pin oni-nọmba lori Uno ṣiṣẹ; pin 2 ni a lo nibi nikan nitori o rọrun lori breadboard.

Serial.begin(9600) — ṣeto iyara serial monitor. Ti o ba yi iye yii pada o gbọdọ tun yi baud rate dropdown pada ninu window Serial Monitor, bibẹẹkọ iwọ yoo ri awọn ohun kikọ idoti (ninu fidio ni 11:25).

pinMode(reedPin, INPUT) — ṣeto pin naa gẹgẹ bi input high-impedance ki o le ni imọlara foliteji ti reed switch ati resistor ṣeto. Ti o ba n lo pull-up inu dipo, yi ila yii pada si pinMode(reedPin, INPUT_PULLUP); ki o ranti pe awọn kika yoo yipada.

Loop naa kan ka pin naa ki o tẹ abajade jade:

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

digitalRead(reedPin) da 1 pada nigbati pin ba jẹ HIGH ati 0 nigbati o jẹ LOW. Nitori iye naa ti kọja taara sinu Serial.println(), ko si iwulo fun oniyipada agbedemeji — kika naa ti tẹ jade taara. Pẹlu wiwọ pull-down, 0 tumọ si "ko si aaye oofa" ati 1 tumọ si "a ti ri oofa" (ninu fidio ni 18:31).

delay(10) ṣakoso bi igba ti a ti tẹ kika jade. Milii mẹwa yara to pe iwọ yoo ri iye naa yipada ni akoko ti oofa ba sunmọ. Ti o ba fẹ ifihan ti o tutu diẹ sii o le gbe e si 200 ms, ṣugbọn ṣe akiyesi pe eyi yoo fa wiwa duro lọra pẹlu (ninu fidio ni 12:01).

Ifihan Ise Agbese Laaye

Lẹhin ti o ti gbe sketch naa soke, ṣii Serial Monitor ki o ṣeto baud rate si 9600. Laisi oofa nitosi window naa kun fun awọn odo. Mu oofa kekere kan sunmọ capsule gilasi naa ati pe abajade yipada lẹsẹkẹsẹ si awọn ọkan; fa oofa naa kuro ati pe o pada si odo (ninu fidio ni 17:04). Idahun naa jẹ lẹsẹkẹsẹ ati ṣiṣẹ paapaa nigbati oofa ba wa ni idaduro sẹntimita kan tabi meji kuro lati switch naa.

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

Ti o ba kọ ẹya pull-up dipo, ọgbọn naa ti yipada: monitor naa fihan 1 ni isinmi ati 0 nigbati oofa ba wa (ninu fidio ni 22:13). Ni ọna mejeeji, iwọ ni bayi olufiwi aaye oofa ti ko ni ifọwọkan ti o gbẹkẹle, ti ko ni idiyele pupọ ati pe o le fi sinu eyikeyi awọn imọran iṣẹ akanṣe ti a ṣe akojọ si ni oke nkan yii.

Ẹ̀yà tí a fi bọ́tìnì ṣe ti ẹ̀kọ́ kíkà oní-nọ́mbà kan náà ni a ti sọ̀rọ̀ rẹ̀ lọ́tọ̀ọ̀tọ̀ nínú Ẹ̀kọ́ 7/31: Kíkà oní-nọ́mbà Bọ́tìnì, wíwá aaye oofa SunFounder Kit | Robojax.

Àwọn iṣẹ́ tó ní í ṣe pẹ̀lú fídíò yìí

Àwọn orí ọ̀rọ̀

  • [00:00] Ìfáàrà: àwọn àpẹẹrẹ kíkà oní-nọ́mbà méjì
  • [01:33] Ohun tí kíkà oní-nọ́mbà àti HIGH/LOW túmọ̀ sí
  • [02:46] Bí yíyí bọ́tìnì ṣe ń ṣiṣẹ́
  • [03:25] Ìmọ̀ nípa pull-up àti pull-down resistor
  • [05:18] Síso bọ́tìnì pọ̀ mọ́ breadboard
  • [08:21] Ṣíṣí àti ṣàlàyé sketch bọ́tìnì
  • [10:55] Gbé e sókè àti dán àpẹẹrẹ bọ́tìnì wò
  • [12:38] Ìfáàrà reed switch àti dídán an wò pẹ̀lú multimeter
  • [14:40] Síso reed switch pọ̀ mọ́ pin 2
  • [16:46] Dídán reed switch wò pẹ̀lú magnet
  • [17:19] Ṣàlàyé sketch reed switch
  • [19:45] Lílo INPUT_PULLUP láìsí external resistor

Aworan

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
Ede: 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);       
}

Orisun & itọkasi

Fáìlìs📁

Awọn ile-ikawe Arduino (zip)

Iwe Itọsọna Olumulo