Мазмұны:

8 арналы бағдарламаланатын таймер: 13 қадам
8 арналы бағдарламаланатын таймер: 13 қадам

Бейне: 8 арналы бағдарламаланатын таймер: 13 қадам

Бейне: 8 арналы бағдарламаланатын таймер: 13 қадам
Бейне: Тестирование печатной платы кондиционера Fujitsu: она не включается 2024, Қараша
Anonim
8 арналы бағдарламаланатын таймер
8 арналы бағдарламаланатын таймер
8 арналы бағдарламаланатын таймер
8 арналы бағдарламаланатын таймер
Бағдарламаланатын 8 арналы таймер
Бағдарламаланатын 8 арналы таймер

Кіріспе

Мен 1993 жылдан бастап өз жобаларым үшін Microchip PIC микроконтроллерлер диапазонын қолданамын және Microchip MPLab IDE көмегімен барлық бағдарламалауды ассемблер тілінде жасадым. Менің жобаларым қарапайым бағдаршам мен жыпылықтайтын светодиодтан бастап, R/C модельдеріне арналған USB джойстик интерфейстеріне дейін және өнеркәсіпте қолданылатын коммутаторлық анализаторларға дейін болды. Әзірлеуге бірнеше күн қажет болды, ал кейде ассемблер кодының мыңдаған жолдары.

Matrix Multimedia Flowcode 4 Professional алғаннан кейін мен бағдарламалық жасақтамаға күмәнмен қарадым. Сену тым оңай болып көрінді. Мен оны сынап көруді шештім және әр түрлі компонентті макростарды сынап көрдім, барлығы сәтті болды. Flowcode қолданудың ең жақсы жағы қарапайым жобаларды бір түнде кодтауға болатындығы болды. I²C және DS1307 нақты сағатымен ойнағаннан кейін мен Flowcode көмегімен 8 арналы таймерді жобалауды шештім. Кішкентай және жеңіл жоба болмағандықтан, бұл Flowcode -ды өзіме үйрететін тамаша жоба болатынына сендім.

Микропроцессорды және басқа компоненттерді таңдау

Қажетті енгізу -шығару түйреуіштерінің санына байланысты 40 істікшелі құрылғы қажет болатыны анық болды. PIC 18F4520 негізінен 32K бағдарламалық жады мен 1536 байт деректер жады үшін таңдалды. Қолданылатын барлық компоненттер тесік арқылы өтетін стандартты құрылғылар болып табылады, бұл қажет болған жағдайда Vero тақтасында схеманы құруға мүмкіндік береді. Бұл сонымен қатар тақтаны дамытуға көмектесті.

1 -қадам: Жобаның мақсаттары

Жобаның мақсаттары
Жобаның мақсаттары

Мақсаттар

- Батареяның резервтік көшірмесімен дәл уақытты сақтау.

- Барлық бағдарламалар мен деректер қуат жоғалғаннан кейін де сақталуы керек.

- Қарапайым пайдаланушы интерфейсі.

- Бағдарламалаудың икемділігі.

Уақытты сақтау

Электр қуатының үзілуіне бейім ауданда өмір сүру, электр желілерінен алынған 50/60Гц стандартты уақытты дәл сақтау үшін жеткіліксіз болады. Нақты уақыттағы сағат өте маңызды болды, және бірнеше RTC чиптерін тексергеннен кейін мен оның осцилляторы мен батареяның резервтік конфигурациясына байланысты DS1307-ді таңдадым. Дәл уақытты сақтау DS1307 -ге қосылған 32,768 кГц кристалды қолдану арқылы алынды. Дәлдік 2 түрлі сынақ кезеңінде 4 секундтық кристалдардың көмегімен 2 секунд ішінде болды.

Деректерді сақтау

Таймер бағдарламасының барлық деректері электр қуаты үзілген кезде де сақталуы керек. 100-ге дейін әр түрлі бағдарламалар мен әр түрлі конфигурация деректерінің көмегімен 256 байтты PIC борттық EEPROM көлемі жеткіліксіз болатыны белгілі болды. 24LC256 I²C EEPROM барлық бағдарламалау ақпаратын сақтау үшін қолданылады.

Қарапайым пайдаланушы интерфейсі

Қолданушы интерфейсі тек 2 элементтен, 16 х 4 жолақты жарықдиодты жарық диодты дисплейден және 4 х 3 пернетақтадан тұрады. Барлық бағдарламалауды бірнеше түймені басу арқылы жасауға болады. Интерфейске дыбыстық пьезо дыбысы мен визуалды жыпылықтаған СКД артқы жарығы қосылады.

2 -қадам: Бағдарламалаудың икемділігі

Бағдарламалау икемділігі
Бағдарламалау икемділігі

Бағдарламаның жеткілікті икемділігін қамтамасыз ету үшін таймерде жеке орнатуға болатын 100 бағдарлама бар. Әр бағдарлама үшін Қосылу уақытын, Өшіру уақытын, Шығу арналарын және Аптаның күнін орнатуға болады. Әр бағдарламаның үш режимі бар:

- Авто: Қосылу уақыты, Өшіру уақыты, Шығу арнасы мен апта күні орнатылады.

- Өшірулі: жеке бағдарламаны параметрлерді жоймай -ақ өшіруге болады. Бағдарламаны қайтадан қосу үшін, басқа режимді таңдау жеткілікті.

- Күндіз/Түн: Уақыт бойынша, өшіру уақыты, шығыс арнасы мен апта күні. Автоматты режиммен бірдей жұмыс істейді, бірақ болады

тек қараңғыда қосу және өшіру уақыттары арасында шығуларды қосыңыз. Бұл күндізгі/түнгі режимді толық басқаруға мүмкіндік береді

күн батқанда шамдарды қосудың қосымша икемділігі ретінде.

1 -мысал: Жарық 20: 00 -ден кейін қосылады, ал күн шыққан кезде сөнеді.

Сағат: 20:00, Өшіру: 12: 00, 2 -мысал: күн батқанда жарықты қосады, ал 23.00 -де жарықты өшіреді.

Сағат: 12:00

Өшіру: 23:00

3 -мысал: күн батқанда жарықты қосады, ал күн шыққан кезде жарықты өшіреді.

Күні: 12:01

Өшіру: 12:00

Қосымша опциялар бар, барлығы 100 қосу/өшіру бағдарламасынан тәуелсіз жұмыс істейді.

Бағдарламалық арналар белсенді: Бірнеше бағдарламаны өшірудің орнына, жеке шығыс арналарын бағдарламаларды өзгертпей -ақ өшіруге болады.

Көмекші кірістер: белгілі бір шығыс арналарын белгілі бір уақытқа қосуға мүмкіндік беретін екі сандық кіріс бар. Ол, мысалы, үйге түнде келгенде, пульттегі түйме басылғанда немесе үй дабылын қосқанда басқа шамдарды қосу үшін белгілі бір шамдарды қосуға болады.

Көмекші шығыс: Қосымша екі шығыс (8 шығыс арнасынан басқа) қол жетімді. Оларды белгілі бір шығыс арналарымен немесе цифрлық кірістермен қосуға бағдарламалауға болады. Менің қондырғымда суаруды басқаратын 6-8 шығыс бар, ол 24В жұмыс істейді. Мен 6-8 арналарын қосалқы шығулардың бірін қосу үшін, суару жүйесіне 24В қуат көзін қосу үшін қолданамын.

Қолмен қосу: Негізгі экранда болғанда, 1-8 түймелерін арналарды қолмен қосу немесе өшіру үшін пайдалануға болады.

3 -қадам: Жабдық

Аппараттық құрал
Аппараттық құрал

Қуат көзі: қуат көзі түзеткіштен, тегістейтін конденсатордан және шамадан тыс жүктемеден қорғауға арналған 1 амперлік сақтандырғыштан тұрады. Содан кейін бұл жабдық 7812 және 7805 реттегішімен реттеледі. 12В кернеуі шығыс релесін жүргізу үшін пайдаланылады, ал қалған барлық тізбектер 5В кернеуден қоректенеді. 7805 реттегіш 7812 реттегішінің шығысына қосылғандықтан, жалпы ток 7812 реттегіш арқылы 1 ампермен шектелуі керек. Бұл реттегіштерді қолайлы жылу қабылдағышқа орнатқан жөн.

I²C шинасы: Flowcode I²C аппараттық құралын басқаруға мүмкіндік берсе де, мен I²C бағдарламалық жасақтамасын қолдануды шештім. Бұл түйреуіштерді тағайындаудың икемділігіне мүмкіндік береді. Баяу болса да (50 кГц), ол I²C аппараттық аппаратымен салыстырғанда жақсы жұмыс істейді. DS1307 және 24LC256 екеуі де осы I²C шинасына қосылған.

Нақты уақыт сағаты (DS1307): Іске қосу кезінде 0 және 7 RTC регистрі оқылады, онда оның жарамды уақыт пен конфигурация деректері бар-жоғын анықтау үшін. Орнату дұрыс болғаннан кейін, RTC уақыты оқылады және PIC -ге жүктелген уақыт. Бұл уақыт РТЖ -дан оқылатын жалғыз уақыт. Іске қосылғаннан кейін РТЖ 7 -ші штырында 1 Гц импульс болады. Бұл 1Гц сигнал RB0/INT0 -ға қосылады, және үзіліс қызметі арқылы PIC уақыты әр секунд сайын жаңартылып отырады.

Сыртқы EEPROM: барлық бағдарлама деректері мен опциялары сыртқы EEPROM -де сақталады. EEPROM деректері іске қосылған кезде жүктеледі, ал деректердің көшірмесі PIC жадында сақталады. EEPROM деректері бағдарлама параметрлері өзгерген кезде ғана жаңартылады.

Күндізгі/түнгі сенсор: Күндізгі/Түнгі сенсор ретінде жарыққа тәуелді стандартты резистор (LDR) қолданылады. LDR -лер көптеген пішіндер мен сорттарда болғандықтан, олардың әрқайсысы бірдей жарық жағдайында әртүрлі қарсылық мәніне ие болғандықтан, мен жарық деңгейін оқу үшін аналогты кіріс арнасын қолдандым. Күндізгі және түнгі деңгейлер реттеледі және әр түрлі сенсорларға икемділік береді. Гистерезис орнату үшін күн мен түннің жеке мәндерін орнатуға болады. Жарық деңгейі күндізден төмен немесе түнгі нүктелерден жоғары болса, 60 секундтан артық болғанда ғана күй өзгереді.

СКД дисплейі: 4 жолды, 16 таңбалы дисплей қолданылады, өйткені барлық деректерді 2 жолды дисплейде көрсету мүмкін болмады. Жоба LCD_Custom_Char макросында анықталған кейбір реттелетін таңбаларды қамтиды.

Көмекші кірістер: екі кіріс те NPN транзисторымен буферленген. +12в және 0В қосқышта да бар, бұл сыртқы байланыстарға икемді қосылуға мүмкіндік береді. Мысал ретінде, қашықтан басқару пультін қабылдағышқа қосуға болады.

Шығу: барлық шығулар 12В релесі арқылы тізбектен электрлік оқшауланған. Қолданылатын релелер 250 В айнымалы токқа, 10 амперге есептелген. Әдетте ашық және жабық контактілер терминалдарға шығарылады.

Пернетақта: 3 x 4 матрицалық пернетақта қолданылады және PORTB: 2..7 қосылған.

4 -қадам: пернетақтаның үзілуі

Пернетақтаның үзілуі
Пернетақтаның үзілуі
Пернетақтаның үзілуі
Пернетақтаның үзілуі
Пернетақтаның үзілуі
Пернетақтаның үзілуі

Мен кез келген пернені басу арқылы PORTB өзгертудегі үзілісті қолданғым келді. Ол үшін PORTB бағыты мен деректерінің әр пернетақта үзілісінен бұрын және кейін дұрыс орнатылғанына көз жеткізу үшін Flowcode -де Custom Interrupt құру қажет болды. Түйме басылған немесе босатылған сайын үзіліс пайда болады. Үзіліс тәртібі тек перне басылғанда ғана жауап береді.

РЕЖИМДІК КІРІСУ

Кодты қосу

portb = 0b00001110; trisb = 0b11110001;

intcon. RBIE = 1;

intcon2. RBIP = 1;

intcon2. RBPU = 1;

rcon. IPEN = 0;

Өңдеуші коды

if (intcon & (1 << RBIF))

{FCM_%n ();

portb = 0b00001110;

trisb = 0b11110001;

wreg = portb;

clear_bit (intcon, RBIF);

}

Табылған мәселелер

Үзіліс кезінде үзіліс қызмет көрсету тәртібі NO шартында, бағдарламаның қалған бөлігінде қолданылуы мүмкін кез келген басқа макросты шақыруы керек. Бұл ақыр соңында стек толып кету проблемаларына әкеледі, себебі үзіліс негізгі бағдарлама сол ішкі бағдарламада болатын кезде орын алуы мүмкін. Бұл кодты құрастыру кезінде Flowcode арқылы МАҢЫЗДЫ ҚАТЕ ретінде де анықталады.

GetKeyPadNumber астындағы Пернетақтаның реттелетін кодында Delay_us макросына шақыру бар, ол стектің толып кетуіне әкеледі. Бұны жеңу үшін мен Delay_us (10) пәрменін алып тастадым және оның орнына 25 жолды “wreg = porta;” қойдым. командалар. Бұл команда PORTA -ды оқиды және оның мәнін W регистріне енгізеді. Бұл команда movf porta 0 құрастырушыға ұқсас бір нұсқаулыққа құрастырылады. Жобада қолданылатын 10 МГц сағаты үшін әр нұсқаулық 400нс болады, ал 10ус кідіріс алу үшін маған осы нұсқаулықтардың 25 -і қажет болды.

3 -суреттің екінші жолындағы ескерту: GetKeypadNumber реттелетін коды, түпнұсқалық delay_us (10) пәрмені «//» арқылы өшірілгенін көрсетеді. Бұның астына мен 25 «wreg = porta;» қостым. жаңа 10us кідірісін алуға пәрмен береді. Keypad_ReadKeypadNumber реттелетін коды ішіндегі кез келген макростарға қоңырау шалусыз, енді пернетақта макросы үзіліс қызмет көрсету тәртібінде қолданыла алады.

Flowcode пернетақтасы мен eBlocks компоненттері кіріс жолдарында стандартты тартылатын резисторларды қолданбайтынын атап өткен жөн. Оның орнына ол 100K тартылатын резисторларды қолданады. Әзірлеу кезінде пернетақтада кейбір кедергілерге байланысты 100K резисторларының барлығы 10K -қа ауыстырылды, ал барлық 10K резисторлары 1K5 -ке ауыстырылды. Пернетақта 200 мм сымдармен дұрыс жұмыс жасау үшін сыналды.

5 -қадам: Таймерді пайдалану

Таймерді қолдану
Таймерді қолдану
Таймерді қолдану
Таймерді қолдану
Таймерді қолдану
Таймерді қолдану

Барлық экрандар пайдаланушыға параметрлерді жылдам өзгерту үшін барлық қажетті ақпаратты көрсету үшін орнатылған. 4 -жол мәзірлер мен бағдарламаның нұсқалары бойынша шарлауға көмектесу үшін қолданылады. Қалыпты жұмыс кезінде барлығы 22 экран бар.

1 -ЖОЛ: Уақыт және күй

Ағымдағы күн мен уақытты көрсетеді, содан кейін күй белгішелері:

A - Aux Input A іске қосылғанын және Aux Input A таймері жұмыс істеп тұрғанын көрсетеді.

B - Aux Input B іске қосылғанын және Aux Input B таймері жұмыс істеп тұрғанын көрсетеді.

C - C Aux Output C қосылғанын көрсетеді.

D - Aux Output D қосылғанын көрсетеді.

} - Күндізгі/Түнгі сенсордың күйі. Егер бар болса, бұл түн екенін көрсетеді.

2 -ЖОЛ: Бағдарламаның шығуы

Әр түрлі бағдарламалар қосылған арналарды көрсетеді. Арналар олардың шығыс нөмірлерінде көрсетіледі және «-» нақты шығыс қосылмағанын көрсетеді. «Бағдарламалық шығыс белсенді» режимінде өшірілген арналар әлі де көрсетіледі, бірақ нақты шығулар орнатылмайды.

3 -ЖОЛ: Нақты нәтижелер

Әр түрлі бағдарламалар, Aux Inputs A & B немесе қолданушы орнатқан қолмен шығатын арналар қандай арналар қосылғанын көрсетеді. 0 түймесін басу қолмен қосылған барлық шығуларды өшіреді және Aux B және Aux Output таймерлерін қалпына келтіреді.

4 -ЖОЛ: Мәзір мен негізгі опциялар (барлық мәзірлерде)

«*» Және «#» пернелерінің қызметін көрсетеді.

Орталық бөлік таңдалған экран үшін қандай сандық пернелер (0-9) белсенді екенін көрсетеді.

Aux Input A & B кіріс күйі Ашық немесе жабық қосқыш белгішесі арқылы да көрсетіледі.

Пернетақтадағы сәйкес пернені басу арқылы шығуды қолмен қосуға/өшіруге болады.

Мәзірлерде Star және Hash пернелері бағдарламаның әр түрлі нұсқаларында шарлау үшін қолданылады. Параметрлерді орнату үшін 0-9 пернелері қолданылады. Бір экранда немесе бағдарламалау мәзірінде бірнеше опция қол жетімді болса, Hash пернесі әр түрлі опцияларды қарау үшін қолданылады. Ағымдағы таңдалған опция әрқашан экранның сол жағындағы «>» белгісімен көрсетіледі.

0-9 Уақыт мәндерін енгізіңіз

1-8 Арна таңдауын өзгерту

14 36 Бағдарламалар бойынша қадам, 1-қадам артқа, 4-қадам артқа 10 бағдарлама, 3-қадам алға, 6-қадам алға 10

бағдарламалар

1-7 Аптаның күндерін орнатыңыз. 1 = жексенбі, 2 = дүйсенбі, 3 = сейсенбі, 4 = сәрсенбі, 5 = бейсенбі, 6 = жұма, 7 = сенбі

0 Негізгі экранда барлық қолмен қайта анықтауды және A және Input B таймерлерін өшіріңіз. Басқа мәзірлерде өзгерістер болады

таңдалған опциялар

# Негізгі экранда барлық қолмен қайта анықтауды, A енгізу және В енгізу таймерін және бағдарлама шығысын өшіреді.

келесі оқиға.

* және 1 Таймерді қайта жүктеңіз

* және 2 Барлық бағдарламалар мен опцияларды тазалаңыз, параметрлерді әдепкі бойынша қалпына келтіріңіз.

* және 3 Таймерді күту режиміне қойыңыз. Таймерді қайта қосу үшін кез келген пернені басыңыз.

Кез келген уақыт мәнін қате енгізу кезінде, СКД артқы жарығы 5 рет жыпылықтайды және қатені көрсетеді. Бұл кезде дыбыстық сигнал шығады. Exit және Next командалары ағымдағы жазба дұрыс болған кезде ғана жұмыс істейді.

СКД артқы жарығы

Алғашқы іске қосу кезінде СКД артқы жарығы 3 минутқа қосылады, егер:

- Аппараттық ақаулық бар (EEPROM немесе RTC табылмады)

- RTC уақыт белгіленбеген

СКД артқы жарығы 3 минут бойы пернетақтадағы кез келген пайдаланушыға қосылады. Егер СКД артқы жарығы өшірулі болса, кез келген пернетақта пәрмені алдымен СКД артқы жарығын қосады және басылған пернені елемейді. Бұл пайдаланушыға пернетақтаны қолданар алдында СКД дисплейін оқуға мүмкіндік береді. Егер Aux Input A немесе Aux Input B қосулы болса, СКД артқы жарығы 5 секундқа қосылады.

6 -қадам: Мәзір экран суреттері

Мәзір экран суреттері
Мәзір экран суреттері
Мәзір экран суреттері
Мәзір экран суреттері
Мәзір экран суреттері
Мәзір экран суреттері

Пернетақтаның көмегімен опциялардың әрқайсысын оңай бағдарламалауға болады. Суреттер әр экранның не істейтіні туралы ақпарат береді.

7 -қадам: Жүйенің дизайны

Жүйенің дизайны
Жүйенің дизайны

Барлық әзірлеу мен тестілеу тақтада жүргізілді. Жүйенің барлық бөлімдеріне қарап, мен жүйені үш модульге бөлдім. Бұл шешім негізінен Eagle тегін нұсқасының ПХД өлшемдерінің шектеулеріне (80 x 100 мм) байланысты болды.

Модуль 1 - Қуат көзі

2 -модуль - процессор тақтасы

3 -модуль - Эстафеталық тақта

Мен барлық компоненттер оңай алынуы керек деп шештім, және мен жер үсті компоненттерін қолданғым келмеді.

Олардың әрқайсысына тоқталайық.

8 -қадам: Қуат көзі

Нәр беруші
Нәр беруші
Нәр беруші
Нәр беруші
Нәр беруші
Нәр беруші
Нәр беруші
Нәр беруші

Қуат көзі тікелей алға жылжып, процессор мен реле тақталарын 12В және 5В кернеуімен қамтамасыз етеді.

Мен кернеу реттегіштерін лайықты жылу қабылдағыштарға қойдым, сонымен қатар жеткізу үшін шамадан тыс конденсаторларды қолдандым.

9 -қадам: CPU тақтасы

CPU тақтасы
CPU тақтасы
CPU тақтасы
CPU тақтасы
CPU тақтасы
CPU тақтасы
CPU тақтасы
CPU тақтасы

СКД экраны, пернетақта мен реле қоспағанда, барлық компоненттер процессор тақтасына орнатылған.

Терминалды блоктар жеткізу, екі сандық кіріс және жарық сенсоры арасындағы байланысты жеңілдету үшін қосылды.

Үстіңгі түйреуіштер/розеткалар СКД мен пернетақтаға оңай қосылуды қамтамасыз етеді.

Реле шығысы үшін мен ULN2803 қолдандым. Ол қазірдің өзінде барлық қажетті қозғалыс резисторлары мен диодтарды қамтиды. Бұл процессор тақтасын Eagle -дің ақысыз нұсқасын қолдана отырып жасауға болатынын қамтамасыз етті. Реле екі ULN2803 -ке қосылған. Төменгі ULN2803 8 шығыс үшін, ал жоғарғы қос ULN2803 қосалқы шығыс үшін қолданылады. Әрбір қосалқы шығысында төрт транзистор бар. Релеге қосылу сонымен қатар тақырып түйреуіштері/розеткалары арқылы жүзеге асады.

PIC 18F4520 PicKit 3 бағдарламашысы арқылы оңай бағдарламалауға мүмкіндік беретін бағдарламалау розеткасымен жабдықталған.

ЕСКЕРТУ:

Сіз тақтада қосымша 8 істікшелі IC бар екенін байқайсыз. Жоғарғы IC - бұл PIC 12F675 және сандық кіріске қосылған. Бұл ПХД дизайны кезінде қосылды. Бұл цифрлық кірісті алдын ала өңдеуді жеңілдетеді. Менің қосымшамда цифрлық кірістердің бірі менің дабыл жүйеме қосылған. Егер дабыл шықса, менің үйімде белгілі бір шамдар қосылады. Менің дабыл жүйесін қаруландыру мен қарусыздандыру сиренада әр түрлі дыбыстық сигнал береді. PIC 12F675 қолдана отырып, мен қазір қару -жарақ пен нақты дабылды ажырата аламын. 12F675 сонымен қатар бағдарламалау розеткасымен жабдықталған.

Мен сондай -ақ I2C портын тақырып түйреуіш/розетка арқылы қамтамасыз еттім. Бұл кейінірек реле тақталары үшін пайдалы болады.

Тақтада бірнеше розеткалар бар, оларды IC розеткаларын орнатпас бұрын дәнекерлеу керек.

10 -қадам: ағын кодының қорытындысы

Ағын кодының қорытындысы
Ағын кодының қорытындысы
Ағын кодының қорытындысы
Ағын кодының қорытындысы
Ағын кодының қорытындысы
Ағын кодының қорытындысы

Мен жинауда регистр деңгейінде жұмыс істегендіктен, компоненттер макростарын пайдалану кейде қиын және көңілсіз болды. Бұл негізінен Flowcode бағдарламалау құрылымын білмеуімнен болды. Мен C немесе ASM блоктарын қолданған жалғыз орын - үзіліс тәртібінде шығуларды қосу, ал Do_KeyPressed режимінде пернетақта үзілісін өшіру/қосу. PIC сонымен қатар EEPROM немесе RTC табылмаса, ASM блогы арқылы SLEEP режиміне орналастырылады.

Әр түрлі I²C командаларын қолдану бойынша көмек Flowcode анықтамалық файлдарынан алынды. Командалар сәтті қолданылмас бұрын әр түрлі I²C құрылғыларының қалай жұмыс істейтінін білу қажет. Схеманы құру үшін дизайнер барлық сәйкес деректер кестелерінің болуын талап етеді. Бұл Flowcode -тің кемшілігі емес.

Flowcode шынымен де сынаққа төтеп берді және микропроцессорлардың Microchip диапазонымен жұмыс істегісі келетіндерге өте ұсынылады.

PIC үшін ағындық кодты бағдарламалау мен конфигурация суреттерге сәйкес орнатылды

11 -қадам: Қосымша I2C реле тақтасы

Қосымша I2C реле тақтасы
Қосымша I2C реле тақтасы
Қосымша I2C реле тақтасы
Қосымша I2C реле тақтасы
Қосымша I2C реле тақтасы
Қосымша I2C реле тақтасы

CPU тақтасында 16 реле үшін тақырыптық қосылымдар бар. Бұл шығыс екі ULN2803 чипі арқылы ашық коллекторлық транзисторлар болып табылады, бұл релелерді тікелей қосу үшін пайдаланылуы мүмкін.

Жүйенің алғашқы сынақтарынан кейін маған процессор тақтасы мен реле арасындағы барлық сымдар ұнамады. Мен CPU тақтасына I2C портын енгізгендіктен, I2C портына қосылу үшін реле тақтасын жобалауды шештім. 16 арналы MCP23017 I/O Port Expander чипі мен ULN2803 транзисторлық массивін қолдана отырып, мен процессор мен реле арасындағы байланысты 4 сымға дейін қысқарттым.

Мен 80 х 100 мм ПХД -ге 16 релені сыйдыра алмағандықтан, мен екі тақта жасауға шешім қабылдадым. Әр MCP23017 16 порттан 8 -ін ғана пайдаланады. 1 -ші тақта 8 шығуды, ал 2 -ші тақта қосалқы шығуды басқарады. Тақтадағы жалғыз айырмашылық - әр тақтаның мекен -жайы. Бұл шағын секіргішпен оңай орнатылады. Әр тақтада басқа тақтаға қуат пен I2C деректерін беру үшін қосқыштар бар.

ЕСКЕРТУ:

Қажет болса, бағдарламалық қамтамасыз ету барлық 16 портты қолдана алатын тек бір тақтаны қамтамасыз етеді. Барлық шығыс реле деректері бірінші тақтада қол жетімді.

Схема міндетті емес және өте қарапайым болғандықтан, мен схеманы құрған жоқпын. Егер сұраныс жеткілікті болса, оны кейін қосуға болады.

12 -қадам: Қосымша RF сілтемесі

Қосымша RF сілтемесі
Қосымша RF сілтемесі
Қосымша RF сілтемесі
Қосымша RF сілтемесі
Қосымша RF сілтемесі
Қосымша RF сілтемесі

Жоба аяқталғаннан кейін мен көп ұзамай таймерге 220 В айнымалы ток сымын тартуым керек екенін түсіндім. Мен 315 МГц стандартты модульдерді қолдана отырып, РЖ байланысын әзірледім, ол таймерді шкафтың ішіне, ал реле тақталарын шатырдың ішіне, 220 В сымдарының бәріне жақын орналастыруға мүмкіндік берді.

Сілтеме 16 МГц жиілікте жұмыс істейтін AtMega328P пайдаланады. Таратқыштың да, қабылдағыштың да бағдарламалық қамтамасыз етуі бірдей, ал режим шағын секіргішпен таңдалады.

Таратқыш

Таратқыш жай CPU I2C портына қосылады. Қосымша орнату қажет емес, өйткені AtMega328P I2C релелік тақталарымен бірдей деректерді тыңдайды.

I2C портында деректер секундына бір рет жаңартылады, ал таратқыш бұл ақпаратты РЖ сілтемесі арқылы жібереді. Егер таратқыш I2C деректерін шамамен 30 секунд қабылдамаса, таратқыш барлық реле қабылдағыш блокқа өшіру үшін мәліметтерді үздіксіз жібереді.

Таратқыш модулінің қуатын компьютердің тақтасындағы шағын секіргішпен 12В пен 5В аралығында таңдауға болады. Мен таратқышты 12 В кернеуімен қоректендіремін.

Қабылдағыш

Қабылдағыш таратқыштан кодталған деректерді тыңдайды және I2C портына деректерді орналастырады. Реле тақтасы осы портқа қосылады және ол процессор тақтасына қосылған сияқты жұмыс істейді.

Егер қабылдағыш 30 секунд ішінде жарамды деректерді алмаса, ресивер I2C порты бойынша деректерді үздіксіз жібереді, бұл реле тақталарындағы барлық реле.

Схемалар

Бір күні, егер оған сұраныс болса. Arduino эскизінде схеманысыз схеманы құруға қажетті барлық ақпарат бар.

Ауқымы

Менің қондырғымда таратқыш пен қабылдағыш бір -бірінен шамамен 10 метр қашықтықта орналасқан. Таймер шкафтың ішінде, ал реле қондырғысы төбенің жоғарғы жағында.

13 -қадам: соңғы өнім

Соңғы өнім
Соңғы өнім
Соңғы өнім
Соңғы өнім
Соңғы өнім
Соңғы өнім

Негізгі блок жобаның ескі қорабына орнатылды. Ол мыналарды қамтиды:

- 220 В/12 В трансформаторы

- Қуатпен қамтамасыз ету тақтасы

- CPU тақтасы

- СКД дисплей

- Пернетақта

- RF байланыс таратқышы

- Қашықтан басқару пульті арқылы жарықты қосуға/өшіруге мүмкіндік беретін үйдегі қосымша қашықтан қабылдағыш қондырғы

Реле қондырғысы мыналардан тұрады:

- 220 В/12 В трансформаторы

- Қуатпен қамтамасыз ету тақтасы

- RF сілтеме қабылдағышы

- 2 x I2C реле тақтасы

Барлық тақталар бірдей өлшемде жасалған, бұл оларды 3 мм аралықтармен бір -бірінің үстіне қоюды жеңілдетеді.

Ұсынылған: