Orodha ya maudhui:
- Hatua ya 1: Malengo ya Mradi
- Hatua ya 2: Kubadilisha programu
- Hatua ya 3: Vifaa
- Hatua ya 4: Kukatisha keypad
- Hatua ya 5: Kutumia Timer
- Hatua ya 6: Menyu ya Picha Shots
- Hatua ya 7: Ubunifu wa Mfumo
- Hatua ya 8: Ugavi wa Umeme
- Hatua ya 9: Bodi ya CPU
- Hatua ya 10: Hitimisho la Flowcode
- Hatua ya 11: Bodi ya Uwasilishaji ya I2C hiari
- Hatua ya 12: Kiungo cha hiari cha RF
- Hatua ya 13: Bidhaa ya Mwisho
Video: 8 Channel kipanga Timer: 13 Hatua
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:53
Utangulizi
Nimekuwa nikitumia anuwai ya Microcontroller ya PIC ya Microchip kwa miradi yangu tangu 1993, na nimefanya programu yangu yote kwa lugha ya kukusanyika, nikitumia Microchip MPLab IDE. Miradi yangu ilitoka kwa taa nyepesi za trafiki na taa za kuwaka, kwa viunga vya kufurahisha vya USB kwa mifano ya R / C, na wachambuzi wa switchgear wanaotumika kwenye tasnia. Maendeleo yalichukua siku nyingi, na wakati mwingine maelfu ya mistari ya nambari ya kukusanyika.
Baada ya kupokea Matrix Multimedia Flowcode 4 Professional, nilikuwa na wasiwasi kabisa wa programu hiyo. Ilionekana kuwa rahisi sana kuamini. Niliamua kujaribu, na nikajaribu kila sehemu tofauti za Macros, zote kwa mafanikio makubwa. Sehemu bora ya kutumia Flowcode ilikuwa kwamba miradi rahisi inaweza kuorodheshwa kwa usiku mmoja. Baada ya kucheza na I²C na saa halisi ya DS1307, niliamua kubuni Saa 8 ya Channel kwa kutumia Flowcode. Sio mradi mdogo na rahisi, niliamini kuwa huu utakuwa mradi mzuri wa kujifundisha Flowcode.
Kuchagua microprocessor na vifaa vingine
Kwa sababu ya idadi ya pini za I / O zinazohitajika, ilikuwa wazi kwamba kifaa 40 cha pini kitahitajika. PIC 18F4520 ilichaguliwa, haswa kwa kumbukumbu ya programu ya 32K, na ka 1536 za kumbukumbu ya data. Vipengele vyote vilivyotumiwa, ni vifaa vya kawaida vya shimo, na kuifanya iwezekane kujenga mzunguko kwenye bodi ya Vero ikiwa inahitajika. Hii pia ilisaidia maendeleo kwenye ubao wa mkate.
Hatua ya 1: Malengo ya Mradi
Malengo
- Sahihi ya utunzaji wa wakati, na kuhifadhi nakala ya betri.
- Programu na data zote zitahifadhiwa, hata baada ya kupoteza nguvu.
- Kielelezo rahisi cha mtumiaji.
- Kubadilika kwa programu.
Kutunza muda
Kuishi katika eneo linalokabiliwa na shida ya umeme, kiwango cha 50 / 60Hz kutoka kwa laini za umeme hakitatosha kwa utunzaji wa wakati sahihi. Saa halisi ilikuwa muhimu, na baada ya kujaribu vidonge kadhaa vya RTC, niliamua DS1307 kwa sababu ya oscillator yake rahisi na usanidi wa kurudisha betri. Utunzaji wa wakati sahihi ulipatikana kwa kutumia tu glasi 32.768 kHz iliyounganishwa na DS1307. Usahihi ulikuwa ndani ya sekunde 2 juu ya kipindi cha majaribio cha miezi 2 ukitumia aina 4 tofauti za fuwele.
Uhifadhi wa data
Takwimu zote za programu ya wakati lazima zihifadhiwe, hata wakati wa kufeli kwa umeme. Na hadi programu 100 tofauti na data anuwai ya usanidi, ikawa wazi kuwa kaiti 256 za bodi ya EEPROM ya PIC haitakuwa kubwa vya kutosha. 24LC256 I²C EEPROM hutumiwa kuhifadhi habari zote za programu.
Rahisi interface ya mtumiaji
Muunganisho wa mtumiaji una vitu 2 tu, onyesho la LCD la 16 x 4 na mwangaza wa mwangaza wa LED, na keypad ya 4 x 3. Programu zote zinaweza kufanywa na waandishi wa habari wa vitufe vichache tu. Nyongeza kwenye kiunga ni buzzer inayosikika ya piezo, na taa ya mwangaza ya LCD inayoonekana.
Hatua ya 2: Kubadilisha programu
Ili kuhakikisha kubadilika kwa programu ya kutosha, kipima muda kina programu 100 ambazo zinaweza kuwekwa peke yake. Kwa kila programu, Wakati, Wakati wa Kuzima, Njia za Pato, na Siku ya Wiki zinaweza kuwekwa. Kila mpango una njia tatu:
- Auto: Kwa Wakati, Wakati wa Kuzima, Kituo cha Pato na Siku ya wiki imewekwa.
- Mbali: Programu ya mtu binafsi inaweza kuzimwa, bila kufuta mipangilio. Ili kuwezesha programu tena, chagua tu hali tofauti.
- Mchana / Usiku: Kwa Wakati, Saa za nje, Kituo cha Pato na Siku ya wiki imewekwa. Inafanya kazi sawa na hali ya Auto, lakini itafanya
washa tu matokeo kati ya nyakati za On na Off wakati ni giza. Hii inawezesha udhibiti kamili wa Mchana / Usiku, vile vile
kama mabadiliko ya kugeuza taa wakati wa jua, na kuzima wakati wa jua.
Mfano 1: Itawasha taa baada ya 20:00, na kuzima taa wakati jua linapochomoza.
Mnamo: 20:00, Mbali: 12:00, Mfano 2: Itawasha taa wakati wa jua, na kuzima taa saa 23:00.
Mnamo: 12:00
Nje: 23:00
Mfano 3: Itawasha mwangaza wakati wa jua, na kuzima taa wakati wa jua.
Kwenye: 12:01
Nje: 12:00
Chaguzi za ziada zinapatikana, wote wakifanya kazi kwa kujitegemea kutoka kwa programu 100 za On / Off.
Vituo vya Programu Vinavyofanya kazi: Badala ya kuzima programu kadhaa, njia za pato za kibinafsi zinaweza kuzimwa bila hitaji la kubadilisha programu.
Pembejeo za msaidizi: Pembejeo mbili za dijiti zinapatikana, kuruhusu njia fulani za pato kuwashwa kwa muda maalum. Kwa mfano inaweza kutumika kuwasha taa fulani unapofika nyumbani usiku sana, wakati kitufe kwenye rimoti kinabanwa, au kuwasha taa tofauti wakati kengele ya nyumba inasababishwa.
Matokeo ya msaidizi: Matokeo mawili ya ziada (mbali na njia 8 za pato) zinapatikana. Wanaweza kusanidiwa kuwasha na njia fulani za pato, au na pembejeo za dijiti. Katika usanikishaji wangu, nina matokeo 6-8 ya kudhibiti umwagiliaji wangu, ambao hufanya kazi kwenye 24V. Ninatumia njia 6-8 kuwasha moja ya matokeo ya msaidizi, kuwasha umeme wa 24V kwa mfumo wa umwagiliaji.
Mwongozo Umewashwa: Ukiwa kwenye skrini kuu, vifungo 1-8 vinaweza kutumiwa kuwasha au kuzima njia kwa mikono.
Hatua ya 3: Vifaa
Ugavi wa Nguvu: Ugavi wa umeme una kisuluhishi, laini ya kutuliza, na fuse ya 1 Amp kwa ulinzi wa kupindukia. Ugavi huu unasimamiwa na mdhibiti wa 7812 na 7805. Ugavi wa 12V hutumiwa kwa kuendesha upelekaji wa pato, na mizunguko mingine yote inaendeshwa kutoka kwa usambazaji wa 5V. Kama mdhibiti wa 7805 ameunganishwa na pato la mdhibiti wa 7812, jumla ya sasa lazima iwe mdogo kwa 1 amp kupitia mdhibiti wa 7812. Inashauriwa kuweka wadhibiti hawa kwenye bomba linalofaa la joto.
Basi la I²C: Ingawa Flowcode inaruhusu udhibiti wa vifaa vya I²C, niliamua kutumia usanidi wa programu ya I²C. Hii inaruhusu kubadilika zaidi kwa kazi za pini. Ingawa polepole (50 kHz), bado hufanya vizuri ikilinganishwa na basi ya vifaa vya I²C. Zote DS1307 na 24LC256 zimeunganishwa na basi hii ya I²C.
Saa Saa Saa (DS1307): Wakati wa kuanza, rejista ya RTC 0 na 7 inasomwa ili kubaini ikiwa ina wakati halali na data ya usanidi. Mara baada ya kuanzisha sahihi, wakati wa RTC unasomwa na wakati uliowekwa kwenye PIC. Huu ndio wakati pekee wakati huo unasomwa kutoka kwa RTC. Baada ya kuanza, mapigo ya 1Hz yatakuwapo kwenye pin 7 ya RTC. Ishara hii ya 1Hz imeunganishwa na RB0 / INT0, na kupitia utaratibu wa huduma ya kusumbua, wakati wa PIC unasasishwa kila sekunde.
EEPROM ya nje: Takwimu zote za programu na chaguzi zinahifadhiwa kwenye EEPROM ya nje. Takwimu za EEPROM zimepakiwa wakati wa kuanza, na nakala ya data imehifadhiwa kwenye kumbukumbu ya PIC. Takwimu za EEPROM zinasasishwa tu wakati mipangilio ya programu inabadilishwa.
Sensorer ya Mchana / Usiku: Kizuizi cha kawaida kinachotegemea mwanga (LDR) hutumiwa kama sensa ya Mchana / Usiku. LDRs zinapokuja katika maumbo na aina nyingi, zote zikiwa na viwango tofauti vya upinzani chini ya hali sawa ya nuru, nilitumia kituo cha kuingiza analogi kusoma kiwango cha nuru. Viwango vya Mchana pamoja na Usiku vinaweza kubadilishwa, na huruhusu kubadilika kwa sensorer tofauti. Kuanzisha hysteresis kadhaa, maadili ya kibinafsi ya Mchana na Usiku yanaweza kuwekwa. Hali itabadilika tu ikiwa kiwango cha mwanga kiko chini ya Mchana, au juu ya alama za Usiku, kwa zaidi ya sekunde 60.
Onyesho la LCD: laini 4, onyesho la herufi 16 hutumiwa, kwani data zote hazikuweza kuonyeshwa kwenye onyesho la laini-2. Mradi huo unajumuisha wahusika wa kawaida, ambayo hufafanuliwa katika jumla ya LCD_Custom_Char.
Pembejeo za msaidizi: Pembejeo zote mbili zimepigwa na transistor ya NPN. + 12v na 0V pia inapatikana kwenye kontakt, ikiruhusu unganisho rahisi zaidi kwa unganisho la nje. Kama mfano, mpokeaji wa kudhibiti kijijini anaweza kushikamana na usambazaji.
Matokeo: Matokeo yote yametengwa kwa umeme kutoka kwa mzunguko kwa njia ya relay ya 12V. Relays zilizotumiwa, zimepimwa kwa 250V AC, kwa amps 10. Anwani za kawaida zilizo wazi na kawaida hufungwa huletwa kwenye vituo.
Keypad: Kitufe kilichotumiwa ni kitufe cha matrix 3 x 4, na imeunganishwa PORTB: 2..7.
Hatua ya 4: Kukatisha keypad
Nilitaka kutumia Usumbufu wa PORTB juu ya Mabadiliko kukatiza kwenye media yoyote muhimu. Kwa hili, Usumbufu wa Desturi ulipaswa kuundwa katika Flowcode, ili kuhakikisha kuwa mwelekeo wa PORTB na data imewekwa sahihi kabla na baada ya kila kitufe kukatiza. Usumbufu hutengenezwa kila wakati kitufe kinabonyeza, au kutolewa. Utaratibu wa kukatiza hujibu tu wakati kitufe kinabanwa.
UINGILIZAJI WA TABIA
Washa Msimbo
bandari = 0b00001110; trisb = 0b11110001;
intcon. RBIE = 1;
intcon2. RBIP = 1;
intcon2. RBPU = 1;
rcon. IPEN = 0;
Msimbo wa kushughulikia
ikiwa (intcon & (1 << RBIF))
{FCM_% n ();
bandari = 0b00001110;
trisb = 0b11110001;
wreg = bandari;
clear_bit (intcon, RBIF);
}
Shida zimepatikana
Wakati wa usumbufu, utaratibu wa huduma ya kusumbua lazima iwe chini ya hali NO, piga simu nyingine yoyote ambayo inaweza kutumika mahali pengine katika programu yote. Hii mwishowe itasababisha shida ya kufurika kwa mpororo, kwani usumbufu unaweza kutokea wakati huo huo kwamba programu kuu pia iko kwenye subroutine hiyo hiyo. Hii pia hutambuliwa kama KOSA MZITO na Nambari ya mtiririko wakati nambari imekusanywa.
Katika nambari maalum ya Keypad chini ya GetKeyPadNumber, kuna simu kama hiyo kwa Delay_us macro, ambayo itasababisha kufurika kwa stack. Ili kushinda hili, nimeondoa amri ya Delay_us (10), na kuibadilisha na mistari 25 ya "wreg = porta;" amri. Amri hii inasoma PORTA, na inaweka thamani yake kwenye rejista ya W, ili tu kucheleweshwa. Amri hii itajumuishwa kwa maagizo moja sawa na mkusanyiko wa movf porta, 0. Kwa saa ya 10MHz inayotumika katika mradi huo, kila maagizo yatakuwa 400ns, na kupata ucheleweshaji wa 10us, nilihitaji 25 ya maagizo haya.
Kumbuka kwenye mstari wa pili wa Kielelezo 3: GetKeypadNumber Custom Code, kwamba amri ya awali ya kuchelewesha (10) imelemazwa na "//". Chini ya hii, nimeongeza 25 yangu "wreg = porta;" amri ya kupata ucheleweshaji mpya wa 10us. Bila kupiga simu kwa macros yoyote ndani ya nambari maalum ya Keypad_ReadKeypadNumber, jumla ya keypad sasa inaweza kutumika ndani ya utaratibu wa usumbufu wa huduma.
Ikumbukwe kwamba vitufe vya Flowcode Keypad na eBlocks haitumii vipingamizi vya kawaida vya kuvuta kwenye laini za kuingiza. Badala yake, hutumia vipinga-100K vya kuvuta-chini. Kwa sababu ya usumbufu fulani uliopatikana kwenye keypad wakati wa maendeleo, vizuizi vya 100K vyote vilibadilishwa na 10K, na vipinga vyote 10K vilibadilishwa na 1K5. Kitufe kilijaribiwa kufanya kazi sahihi na viongozi vya 200mm.
Hatua ya 5: Kutumia Timer
Skrini zote zimewekwa ili kuonyesha habari zote zinazohitajika kwa mtumiaji kufanya mabadiliko ya haraka kwenye mipangilio. Mstari wa 4 hutumiwa kusaidia kwa urambazaji kupitia menyu na chaguzi za programu. Jumla ya skrini 22 zinapatikana wakati wa operesheni ya kawaida.
MSTARI 1: Wakati na Hali
Inaonyesha siku na saa ya sasa, ikifuatiwa na aikoni za hali:
A - Inaonyesha kuwa Aux Input A ilisababishwa, na Aux Input A timer inaendesha.
B - Inaonyesha kuwa Aux Input B ilisababishwa, na Aux Input B timer inaendesha.
C - Inaonyesha kuwa Pato la Aux limewashwa.
D - Inaonyesha kuwa Pato la Aux limewashwa.
} - Hali ya sensa ya Mchana / Usiku. Ikiwa iko, inaonyesha kuwa ni usiku.
MSTARI 2: Matokeo ya Programu
Inaonyesha vituo ambavyo vimewashwa na programu tofauti. Vituo vinaonyeshwa kwa nambari zao za pato, na "-" inaonyesha kuwa pato maalum halijawashwa. Vituo ambavyo vimezimwa katika "Matokeo ya Programu yanayotumika" bado vitaonyeshwa hapa, lakini matokeo halisi hayatawekwa.
MSTARI 3: Matokeo halisi
Inaonyesha ni vituo vipi vinawashwa na programu tofauti, Pembejeo za Aux A & B, au matokeo ya mwongozo yaliyowekwa na mtumiaji. Kubonyeza 0 itarudisha matokeo yote yaliyoamilishwa kwa mikono, na kuweka upya vipima muda vya Aux Output A & B.
MSTARI 4: Menyu na chaguzi muhimu (kwenye menyu zote)
Inaonyesha utendaji wa vitufe vya "*" na "#".
Sehemu ya katikati inaonyesha ni funguo gani za nambari (0-9) zinazotumika kwa skrini iliyochaguliwa.
Hali ya pembejeo ya Aux Input A & B pia imeonyeshwa kupitia ikoni ya swichi iliyofunguliwa au iliyofungwa.
Matokeo yanaweza kuwashwa / kuzimwa kwa mikono kwa kubonyeza kitufe kinacholingana kwenye kitufe.
Katika menyu zote, funguo za Star na Hash hutumiwa kuzunguka kupitia chaguzi tofauti za programu. Funguo 0-9 hutumiwa kuweka chaguzi. Ambapo chaguzi nyingi zinapatikana kwenye skrini moja au menyu ya programu, kitufe cha Hash hutumiwa kupitia chaguzi tofauti. Chaguo la sasa lililochaguliwa litaonyeshwa kila wakati na herufi ">" upande wa kushoto wa skrini.
Ingiza nambari za wakati
1-8 Badilisha chaguo la kituo
14 36 Hatua kupitia programu, hatua 1 nyuma, hatua 4 nyuma mipango 10, hatua 3 mbele, 6-hatua mbele 10
mipango
1-7 Weka siku za wiki. 1 = Jumapili, 2 = Jumatatu, 3 = Jumanne, 4 = Jumatano, 5 = Alhamisi, 6 = Ijumaa, 7 = Jumamosi
0 Katika skrini kuu, futa matoleo yote ya mwongozo na vipengee vya Kuingiza A & Ingiza B. Katika menyu zingine, mabadiliko
chaguzi zilizochaguliwa
# Kwenye skrini kuu, italemaza ubatilishaji wote wa mwongozo, Pembejeo A & Vipima muda B na Matokeo ya Programu, hadi
tukio linalofuata.
* na 1 Washa tena kipima muda
* na 2 Futa mipango na chaguzi zote, rejesha mipangilio kuwa chaguomsingi.
* na 3 Weka kipima saa katika hali ya kusubiri. Ili kuwasha kipima muda tena, bonyeza kitufe chochote.
Wakati wa maandishi yasiyo sahihi ya wakati wowote, taa ya nyuma ya LCD itaangaza mara 5 kuonyesha hitilafu. Wakati huo huo, buzzer itasikika. Amri za Toka na Zifuatazo zitafanya kazi tu wakati kiingilio cha sasa ni sahihi.
Mwangaza wa LCD
Wakati wa kuanza, mwangaza wa LCD utawashwa kwa dakika 3, isipokuwa:
- Kuna kutofaulu kwa vifaa (EEPROM au RTC haipatikani)
- Wakati haujawekwa katika RTC
Taa ya nyuma ya LCD itawasha tena kwa dakika 3 kwa pembejeo yoyote ya mtumiaji kwenye kitufe. Ikiwa taa ya taa ya LCD imezimwa, amri yoyote ya vitufe itawasha taa ya mwangaza ya LCD, na kupuuza kitufe kilichobanwa. Hii inahakikisha kuwa mtumiaji ataweza kusoma onyesho la LCD kabla ya kutumia keypad. Taa ya nyuma ya LCD pia itawashwa kwa sekunde 5 ikiwa Aux Input A au Aux Input B imeamilishwa.
Hatua ya 6: Menyu ya Picha Shots
Kutumia keypad, kila chaguzi zinaweza kusanidiwa kwa urahisi. Picha hizo zinatoa habari kuhusu kila skrini inafanya nini.
Hatua ya 7: Ubunifu wa Mfumo
Maendeleo yote na upimaji ulifanywa kwenye ubao wa mkate. Kuangalia sehemu zote za mfumo, nilivunja mfumo kwa moduli tatu. Uamuzi huu ulitokana na upungufu wa saizi ya PCB (80 x 100mm) ya toleo la bure la Tai.
Moduli 1 - Ugavi wa Umeme
Moduli 2 - Bodi ya CPU
Moduli 3 - Bodi ya kupeleka tena
Niliamua kuwa vifaa vyote lazima vipatikane kwa urahisi, na kwamba sikutaka kutumia vifaa vya mlima wa uso.
Wacha tupitie kila moja yao.
Hatua ya 8: Ugavi wa Umeme
Ugavi wa umeme uko mbele moja kwa moja, na unapeana bodi za CPU na relay na 12V na 5V.
Niliweka vidhibiti vya voltage kwenye visima vya joto vyenye joto, na pia nilitumia capacitors zilizozidi kwa usambazaji.
Hatua ya 9: Bodi ya CPU
Vipengele vyote, isipokuwa skrini ya LCD, keypad na relays zimewekwa kwenye bodi ya CPU.
Vitalu vya terminal viliongezwa ili kurahisisha unganisho kati ya usambazaji, pembejeo mbili za dijiti, na sensa ya mwanga.
Pini / soketi za kichwa hufanya utoaji wa unganisho rahisi kwenye skrini ya LCD na keypad.
Kwa matokeo ya relays, nilitumia ULN2803. Tayari ina vizuizi vyote vya kuendesha gari na diode za kurudi nyuma. Hii ilihakikisha kuwa bodi ya CPU bado inaweza kufanywa kwa kutumia toleo la bure la Tai. Relays zimeunganishwa na ULN2803 mbili. ULN2803 ya chini hutumiwa kwa matokeo 8, na juu ULN2803 kwa matokeo mawili ya msaidizi. Kila pato la msaidizi lina transistors nne. Uunganisho kwa relays pia ni kupitia pini / soketi za kichwa.
PIC 18F4520 iliwekwa na tundu la programu, kama kuruhusu programu rahisi kupitia programu ya PicKit 3.
KUMBUKA:
Utaona kwamba bodi hiyo ina nambari 8 ya ziada ya IC. IC ya juu ni PIC 12F675, na imeunganishwa na pembejeo ya dijiti. Hii iliongezwa wakati wa muundo wa PCB. Hii inafanya iwe rahisi kusindika mapema pembejeo ya dijiti. Katika maombi yangu, moja ya pembejeo za dijiti imeunganishwa na mfumo wangu wa kengele. Ikiwa kengele inasikika, taa zingine zinawashwa ndani ya nyumba yangu. Silaha na kupokonya silaha mfumo wangu wa kengele hutoa beeps tofauti kwenye siren. Kwa kutumia PIC 12F675, sasa naweza kutofautisha kati ya mkono / silaha na kengele halisi. 12F675 pia imewekwa na tundu la programu.
Nilifanya pia utoaji wa bandari ya I2C kupitia pini / tundu la kichwa. Hii itakuja baadaye baadaye na bodi za relay.
Bodi ina kuruka chache, ambazo zinapaswa kuuzwa kabla ya kuweka soketi za IC.
Hatua ya 10: Hitimisho la Flowcode
Kama nilivyozoea kufanya kazi kwa kiwango cha rejista katika kusanyiko, wakati mwingine ilikuwa ngumu na ya kukatisha tamaa kutumia sehemu ya macros. Hii ilitokana sana na ukosefu wangu wa ujuzi wa muundo wa programu ya Flowcode. Maeneo pekee ambayo nimetumia vizuizi vya C au ASM, ilikuwa kuwasha matokeo ndani ya utaratibu wa kukatiza, na katika utaratibu wa Do_KeyPressed kuzima / kuwezesha kitufe kukatiza. PIC pia imewekwa kwenye SLEEP kwa kutumia kizuizi cha ASM, wakati EEPROM au RTC haipatikani.
Msaada karibu na utumiaji wa amri tofauti za I²C, zote zilipatikana kutoka ndani ya faili za Usaidizi za Flowcode. Inahitajika kujua haswa jinsi vifaa anuwai vya I²C hufanya kazi, kabla ya amri kutumika vizuri. Kubuni mzunguko inahitaji muumbaji kuwa na data zote zinazohusika zinazopatikana. Huu sio upungufu wa Flowcode.
Flowcode kweli ilisimama kwenye jaribio, na inapendekezwa sana kwa watu wanaotaka kuanza kufanya kazi na anuwai ya Microchip ya microprocessors.
Programu ya Flowcode na usanidi wa PIC ziliwekwa kulingana na picha
Hatua ya 11: Bodi ya Uwasilishaji ya I2C hiari
Bodi ya CPU tayari ina unganisho la kichwa kwa relays 16. Matokeo haya ni transistors ya ushuru wazi kupitia chips mbili za ULN2803. Hii inaweza kutumika kutia nguvu relays moja kwa moja.
Baada ya majaribio ya kwanza ya mfumo, sikupenda waya zote kati ya bodi ya CPU na relays. Kama nilivyojumuisha bandari ya I2C kwenye bodi ya CPU, niliamua kuunda bodi ya kupeleka ili kuungana na bandari ya I2C. Kutumia chaneli 16 ya MCP23017 I / O Port Expander chip na safu ya transistor ya ULN2803, nilipunguza unganisho kati ya CPU na kurudi kwa waya 4.
Kwa kuwa sikuweza kutoshea upeanaji 16 kwenye PCB ya x x 100mm, niliamua kutengeneza bodi mbili. Kila MCP23017 hutumia bandari 8 tu kati ya 16. Bodi ya 1 inashughulikia matokeo 8, na bodi 2 matokeo mawili ya msaidizi. Tofauti pekee kwenye bodi ni anwani za kila bodi. Hii imewekwa kwa urahisi na jumper mini. Kila bodi ina viunganisho vya kusambaza umeme na data ya I2C kwa bodi nyingine.
KUMBUKA:
Ikiwa inahitajika, programu huandaa bodi moja tu ambayo inaweza kutumia bandari zote 16. Takwimu zote za relay za pato zinapatikana kwenye ubao wa kwanza.
Kwa kuwa mzunguko ni wa hiari na rahisi sana, sikuunda skimu. Ikiwa kuna mahitaji ya kutosha, naweza kuiongeza baadaye.
Hatua ya 12: Kiungo cha hiari cha RF
Baada ya kukamilisha mradi huo, hivi karibuni niligundua kuwa lazima nivute waya nyingi za 220V AC kwa kipima muda. Nilitengeneza kiunga cha RF kwa kutumia moduli za kawaida 315MHz ambazo ziliruhusu kipima muda kuwekwa ndani ya kabati, na bodi za kupeleka ndani ya paa, karibu na nyaya zote za 220V.
Kiungo hutumia AtMega328P inayoendesha 16MHz. Programu ya mpitishaji na mpokeaji ni sawa, na hali hiyo imechaguliwa na jumper mini.
Transmitter
Mtumaji ameingizwa tu kwenye bandari ya CPU I2C. Hakuna usanidi wa ziada unahitajika, kwani AtMega328P inasikiliza data sawa na bodi za kupeleka za I2C.
Takwimu husasishwa mara moja kwa sekunde kwenye bandari ya I2C, na mtumaji hutuma habari hii juu ya kiunga cha RF. Ikiwa mtumaji hatapokea data ya I2C kwa sekunde 30, mtumaji ataendelea kusambaza data kuzima upelekaji wote kwa kitengo cha mpokeaji.
Nguvu kwa moduli ya kusambaza inaweza kuchaguliwa kati ya 12V na 5V na jumper ndogo kwenye bodi ya PC. Ninawasha mtumaji wangu kutumia 12V.
Mpokeaji
Mpokeaji husikiliza data iliyosimbwa kutoka kwa mtumaji, na huweka data kwenye bandari ya I2C. Bodi ya relay inaingiza tu kwenye bandari hii, na inafanya kazi sawa na ilivyowekwa kwenye bodi ya CPU.
Ikiwa mpokeaji hatapokea data halali kwa sekunde 30, mpokeaji ataendelea kutuma data kwenye bandari ya I2C kuzima upelekaji wote kwenye bodi za kupeleka.
Skimatiki
Siku moja, ikiwa kuna mahitaji yake. Mchoro wa Arduino una habari zote zinazohitajika kujenga mzunguko bila mchoro wa mzunguko.
Mbalimbali
Katika usanikishaji wangu, mtoaji na mpokeaji ni karibu mita 10 mbali. Kipima muda kiko ndani ya kabati, na kitengo cha kupeleka juu ya dari.
Hatua ya 13: Bidhaa ya Mwisho
Kitengo kuu kilikuwa kimewekwa kwenye sanduku la zamani la mradi. Inayo yafuatayo:
- Transformer ya 220V / 12V
- Bodi ya Ugavi wa Umeme
- Bodi ya CPU
- Onyesho la LCD
- Keypad
- Kifurushi cha Kiunga cha RF
- Kitengo cha ziada cha kipokeaji cha nyumbani ili kuniwezesha kuwasha / kuzima taa kupitia kijijini
Kitengo cha kupeleka kinajumuisha yafuatayo:
- Transformer ya 220V / 12V
- Bodi ya Ugavi wa Umeme
- Mpokeaji wa Kiunga cha RF
- 2 x I2C Bodi za Kupeleka
Bodi zote zilibuniwa na mwelekeo sawa, na kuifanya iwe rahisi kuziweka juu ya kila mmoja na spacers 3mm.
Ilipendekeza:
Timer Brush Timer: 4 Hatua
Timer Brush Timer: wazo ni kuunda kipima muda cha watu 2 kwa mswaki kwa hili, nilitumia microbit V1. Inasaidia watoto wangu kupiga mswaki kwa muda uliopendekezwa. Ikiwa una watoto na micr: kidogo na unataka kuhakikisha wana meno safi; usisite
Kupeleka Channel 4: Hatua 14
Kupitishwa kwa Channel 4: - na Bhawna Singh, Prerna Gupta, Maninder Bir Singh Gulshan
Timer Reaction Timer (na Arduino): Hatua 5
Timer Reaction Timer (na Arduino): Katika mradi huu, utaunda kipima muda ambacho kinatumia Arduino. Inafanya kazi kwenye milisiti ya Arduino () ambapo processor hurekodi wakati tangu programu ianze kufanya kazi. Unaweza kuitumia kupata tofauti ya wakati kati ya whe
Mdhibiti mdogo wa AVR. LEDs Flasher Kutumia Timer. Timers Kukatizwa. Njia ya CTC ya Timer: 6 Hatua
Mdhibiti mdogo wa AVR. LEDs Flasher Kutumia Timer. Timers Kukatizwa. Njia ya CTC ya Timer: Halo kila mtu! Vipima muda ni wazo muhimu katika uwanja wa umeme. Kila sehemu ya elektroniki inafanya kazi kwa msingi wa wakati. Msingi huu wa wakati husaidia kuweka kazi zote zikiwa zimesawazishwa. Wadhibiti wote wadogo hufanya kazi kwa masafa ya saa yaliyotanguliwa,
Timer-like Timer (v1): 4 Hatua
Timer-like Timer (v1): Huu ni utangulizi mfupi wa mradi unaofanana na bomu ambao ninafanya kazi, ninaweka kila kitu kwenye bomba la akriliki na nambari kubwa ya wakati wa Big Red iliyoongozwa ili kuifanya ionekane ikiwa iko chini kabisa . (muda unakaribia ……) wengi wa hardwa