Orodha ya maudhui:
- Vifaa
- Hatua ya 1: Jinsi Utazamaji wa Dijiti Unavyofanya Kazi
- Hatua ya 2: Mashine ya Serikali
- Hatua ya 3: Shield Keypad Shield
- Hatua ya 4: Kuingilia Mashine ya Serikali
- Hatua ya 5: Mambo ya Wiring Pamoja
- Hatua ya 6: Pata Mfano
Video: Kuangalia kwa dijiti juu ya Arduino Kutumia Mashine ya Jimbo La Mwisho: Hatua 6
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
Haya hapo, nitakuonyesha jinsi saa ya dijiti inaweza kubuniwa na Zana za Jimbo la YAKINDU na kukimbia kwenye Arduino, ambayo hutumia Ngao ya Keypad ya LCD.
Mfano wa asili wa saa ya dijiti ilichukuliwa kutoka kwa David Harel. Amechapisha jarida kuhusu
"[…] Upanuzi mpana wa utaratibu wa kawaida wa mashine za serikali na michoro ya serikali."
Katika jarida hili, alitumia mfano wa saa ya dijiti kwa utafiti wake. Nimetumia kama msukumo na kujenga tena saa na Zana za Jimbo la Jimbo la YAKINDU (chombo cha kuunda modeli za picha za mashine za serikali na kutoa nambari ya C / C ++ nayo) na kuifufua kwenye Arduino.
Vifaa
Vifaa:
- Arduino Uno au Mega
- Ngao ya keypad ya LCD
Programu:
- Zana za Jimbo la YAKINDU
- Eclipse C ++ IDE ya Arduino
Hatua ya 1: Jinsi Utazamaji wa Dijiti Unavyofanya Kazi
Wacha tuanze kwa kufafanua jinsi saa ya dijiti inapaswa kufanya kazi. Je! Unakumbuka hizi… wacha tuseme… "saa bora zaidi" za dijiti kila mtu alikuwa na miaka ya 90? Saa iliyojumuishwa, kengele tofauti na sauti yake ya kukasirisha kila saa kamili. Ikiwa sio, angalia: saa 90 za dijiti.
Kwa hivyo kimsingi ni saa inayoweza kusanidiwa na njia tofauti. Hasa, wakati wa sasa utaonyeshwa, lakini kuna huduma zingine. Kama pembejeo, umewasha / kuzima, hali na kitufe cha kuweka. Kwa kuongeza, unaweza kuwasha na kuzima taa. Kwa kitufe cha hali unaweza kutofautisha kati ya njia na kuamsha / kulemaza huduma za saa:
- Onyesha saa (Saa)
- Onyesha tarehe (Tarehe)
- Weka kengele (Alarm 1, Alarm 2)
- Wezesha / afya chime (Weka Chime)
- Tumia saa ya saa (Stop Watch)
Ndani ya menyu, unaweza kutumia kitufe cha kuwasha / kuzima kusanidi hali. Kitufe cha kuweka hukuruhusu kuweka wakati - k.v. kwa saa au kengele. Saa ya saa inaweza kudhibitiwa - kuanza na kusimamishwa - kwa kutumia kitufe cha kuwasha na kuzima. Unaweza pia kutumia kaunta ya lap
Kwa kuongezea, kuna chime, ambayo hupiga kengele kila saa kamili, na taa inayoweza kudhibitiwa kuunganishwa. Katika hatua ya kwanza, sikuwatia waya kwa Arduino.
Hatua ya 2: Mashine ya Serikali
Sitaki kwenda kwa undani zaidi kwa ufafanuzi wa mfano huu. Sio kwa sababu ni ngumu sana, ni kubwa kidogo tu. Nitajaribu kuelezea wazo la kimsingi la jinsi inavyofanya kazi. Utekelezaji unapaswa kujifafanua mwenyewe, kwa kuangalia mfano au kupakua na kuiga. Sehemu zingine za mashine ya serikali zinajumuishwa katika mikoa ndogo, kama eneo la wakati uliowekwa. Na hii, usomaji wa mashine ya serikali unapaswa kuhakikisha.
Mfano umegawanywa katika sehemu mbili - picha na maandishi. Katika sehemu ya maandishi matukio, vigeugeu, nk vitafafanuliwa. Katika sehemu ya picha - mchoro wa serikali - utekelezaji wa kimantiki wa mfano umeainishwa. Ili kuunda mashine ya serikali, inayotimiza tabia maalum, hafla zingine za uingizaji zinahitajika, ambazo zinaweza kutumika kwa mfano: onoff, set, mode, light, and light_r. Ndani ya sehemu ya ufafanuzi tukio la ndani linatumiwa, ambalo huongeza thamani ya wakati kila ms 100:
kila ms 100 / wakati + = 1
Kulingana na hatua 100 ms wakati wa sasa utahesabiwa katika fomati ya HH: MM: SS:
onyesha. kwanza = (wakati / 36000)% 24;
onyesha.sekunde = (wakati / 600)% 60; onyesha.tatu = (wakati / 10)% 60;
Maadili yataunganishwa kwa onyesho la LCD kwa kutumia sasisho la operesheniLCD kila wakati mashine ya serikali itaitwa:
onyesha.sasishaLCD (onyesha kwanza, onyesha.pili, onyesha.tatu, onyesha maandishi)
Utekelezaji wa kimsingi wa mashine ya serikali tayari umefafanuliwa katika sehemu Jinsi Dalili za Dijiti inavyofanya kazi. Ndani ya zana hiyo nimetumia vitu "maalum" vya uundaji kama CompositeState, Historia, Michoro ndogo, ExitNode, nk. Maelezo ya kina yanaweza kupatikana katika Mwongozo wa Mtumiaji.
Hatua ya 3: Shield Keypad Shield
Shield ya Keypad Shield ni nzuri kabisa kwa miradi rahisi, ambayo inahitaji skrini ya taswira na vifungo vingine kama pembejeo - HMI ya kawaida, rahisi (Kiunganishi cha Mashine ya Binadamu). Keypad Shield ya LCD ina vifungo vitano vya mtumiaji na kingine cha kuweka upya. Vifungo vitano vyote kwa pamoja vimeunganishwa na pini ya A0 ya Arduino. Kila mmoja wao ameunganishwa na mgawanyiko wa voltage, ambayo inaruhusu kutofautisha kati ya vifungo.
Unaweza kutumia AnalogRead (0) kupata maadili maalum, ambayo kwa kweli yanaweza kutofautiana na mtengenezaji. Mradi huu rahisi unaonyesha thamani ya sasa kwenye LCD:
# pamoja na "Arduino.h"
# pamoja na "LiquidCrystal.h" LiquidCrystal LCD (8, 9, 4, 5, 6, 7); kuanzisha batili () {lcd.anza (16, 2); lcd.setCursor (0, 0); andika ("Thamani iliyopimwa"); } kitanzi batili () {lcd.setCursor (0, 1); lcd.print (""); lcd.setCursor (0, 1); lcd.print (AnalogSoma (0)); kuchelewesha (200); }
Haya ni matokeo yangu yaliyopimwa:
- Hakuna: 1023
- Chagua: 640
- Kushoto: 411
- Chini: 257
- Juu: 100
- Kulia: 0
Kwa vizingiti hivi inawezekana kusoma vifungo:
#fafanua HAKUNA 0 # fafanua CHAGUA 1 #fafanua KUSHOTO 2 #fafanua CHINI 3 #fafanua UP 4 #fafanua HAKI 5 tuli tuli kusomaButton () {int result = 0; matokeo = AnalogSoma (0); ikiwa (matokeo <50) {kurudi KULIA; } ikiwa (matokeo <150) {kurudi UP; } ikiwa (matokeo <300) {rudi chini; } ikiwa (matokeo <550) {kurudi KUSHOTO; } ikiwa (matokeo <850) {kurudi CHAGUA; } kurudi HAKUNA; }
Hatua ya 4: Kuingilia Mashine ya Serikali
Nambari ya C ++ iliyozalishwa ya mashine ya serikali hutoa viunga, ambavyo lazima vitekelezwe kudhibiti mashine ya serikali. Hatua ya kwanza ni kuunganisha katika hafla na funguo za Keypad Shield. Nimeonyesha tayari jinsi ya kusoma vitufe, lakini kwa kuziunganisha kwenye mashine ya serikali, kuondoa vifungo kunahitajika - vinginevyo, hafla hizo zingeinuliwa mara nyingi, ambayo husababisha tabia isiyotabirika. Dhana ya utenguaji wa programu sio mpya. Unaweza kuangalia nyaraka za Arduino.
Katika utekelezaji wangu, hugundua ukingo unaoanguka (ikitoa kitufe). Nilisoma thamani ya kitufe, subiri ms 80 (nilipata matokeo bora na 80 badala ya 50), sahau matokeo na soma thamani mpya. Ikiwa the OldResult haikuwa (haikufutwa) na matokeo mapya sio, najua, kwamba kitufe kilikuwa kimeshinikizwa hapo awali na sasa kimetolewa. Halafu, ninainua tukio la kuingiza kulingana na mashine ya serikali.
int oldState = HAPANA; kuchelewesha (80); oldState = kifungoBonyeza; ikiwa (oldState! = HAKUNA && readButton () == HAKUNA) {switch (oldState) {case SELECT: {stateMachine-> getSCI_Button () -> raise_mode (); kuvunja; } kesi KUSHOTO: {stateMachine-> getSCI_Button () -> raise_set (); kuvunja; } kesi chini: {stateMachine-> getSCI_Button () -> raise_light (); kuvunja; } kesi UP: {stateMachine-> getSCI_Button () -> raise_light_r (); kuvunja; } kesi HAKI: {stateMachine-> getSCI_Button () -> raise_onoff (); kuvunja; } chaguomsingi: {break; }}}}
Hatua ya 5: Mambo ya Wiring Pamoja
Programu kuu hutumia sehemu tatu:
- Mashine ya Serikali
- Wakati
- Kishikishi cha Kuonyesha (kawaida lcd.print (…))
DigitalWatch * stateMachine = mpya DigitalWatch (); CPPTimerInterface * timer_sct = mpya CPPTimerInterface (); DisplayHandler * displayHandler = new DisplayHandler ();
Mashine ya serikali hutumia kiboreshaji cha onyesho na imepata kipima muda, ambacho kitasasishwa kudhibiti hafla za wakati. Baadaye, mashine ya serikali huanza na kuingizwa.
kuanzisha batili () {stateMachine-> setSCI_Display_OCB (displayHandler); stateMachine-> setTimer (timer_sct); stateMachine-> init (); stateMachine-> ingiza (); }Kitanzi hufanya mambo matatu:
- Ongeza hafla za kuingiza data
- Hesabu muda uliopita na usasishe kipima muda
- Piga mashine ya serikali
muda wa sasa_wa muda = 0; mwendo wa mwisho_mzunguko_mwingine = 0; kitanzi batili () {raiseEvents (); wakati_ wa mwisho_wakati = wakati_wa sasa; wakati_wa sasa = millis (); timer_sct-> sasishaActiveTimer (stateMachine, time_time - last_cycle_time); stateMachine-> runCycle (); }
Hatua ya 6: Pata Mfano
Hiyo ndio. Labda, sijataja kila undani wa utekelezaji, lakini unaweza kuangalia mfano au kuacha maoni.
Ongeza mfano kwa IDE inayoendesha na: Faili -> Mpya -> Mfano -> Mifano ya Jimbo la YAKINDU -> Ifuatayo -> Arduino - Kutazama kwa Dijiti (C ++)
> Unaweza kupakua IDE hapa <<
Unaweza kuanza na jaribio la siku 30. Baadaye, lazima upate leseni, ambayo ni bure kwa matumizi yasiyo ya kibiashara!
Ilipendekeza:
Dimmer yenye nguvu ya Dijiti ya Dijiti Kutumia STM32: Hatua 15 (na Picha)
Nguvu ya Dijiti ya Dijiti yenye nguvu Kutumia STM32: Na Hesam Moshiri, [email protected] Mizigo ya AC hukaa nasi! Kwa sababu wako kila mahali karibu nasi na angalau vifaa vya nyumbani hutolewa na nguvu kuu. Aina nyingi za vifaa vya viwandani pia zinaendeshwa na awamu moja ya 220V-AC.
Ingia kwa kasi ya juu ECG au Takwimu zingine, Kwa kuendelea kwa Zaidi ya Mwezi: Hatua 6
Ingia kwa kasi ya juu ECG au Takwimu Nyingine, Kwa kuendelea kwa Zaidi ya Mwezi: Mradi huu ulibuniwa kusaidia timu ya utafiti wa matibabu ya chuo kikuu, ambaye alihitaji kuvaa ambayo inaweza kuingiza ishara 2 x ECG kwa sampuli 1000 / sec kila moja (sampuli 2K kwa sekunde) kuendelea kwa siku 30, ili kugundua arrhythmias. Mradi wa mradi
Utambuzi wa Uso wa wakati halisi: Mradi wa Mwisho-Mwisho: Hatua 8 (na Picha)
Utambuzi wa Uso wa wakati halisi: Mradi wa Mwisho: Kwenye mafunzo yangu ya mwisho ya kuchunguza OpenCV, tulijifunza Ufuatiliaji wa DIRA YA AUTOMATIC OBJECT. Sasa tutatumia PiCam yetu kutambua nyuso katika wakati halisi, kama unaweza kuona hapa chini: Mradi huu ulifanywa na hii ya ajabu " Maktaba ya Maono ya Kompyuta ya Open Source & qu
Simama Mtaalamu wa Kuangalia Mini juu ya Nafuu na kwa Haraka: Hatua 7 (na Picha)
Mtaalamu wa Kuangalia Mini Mic Simama kwa bei rahisi na kwa Haraka: Kwa hivyo nilijiingiza kwenye kachumbari. Nilikubali kurekodi kikao cha D & D Jumamosi, leo ni Jumatano. Wiki mbili kabla nilichukua Kiunga cha Sauti (angalia), wiki iliyofuata nilipata mpango mzuri sana kwa maikrofoni fulani (angalia), mwishoni mwa wiki iliyopita mimi
Udhibiti Mkuu wa PC rahisi ya Vac 110 Kutumia Kupokea kwa Jimbo Mango-Jimbo: Hatua 3 (na Picha)
Super Easy PC Udhibiti wa Vac 110 Kutumia Kilio Relay Solid-State: Ninajitayarisha kujaribu mkono wangu kwa kufanya sahani moto moto. Kwa hivyo, nilihitaji njia ya kudhibiti 110Vac kutoka kwa PC yangu. Mafundisho haya yanaonyesha jinsi ya kudhibiti 110Vac kwa urahisi kutoka kwa bandari ya pato la serial kwenye PC. Bandari ya serial niliyotumia ilikuwa aina ya USB