Схема подключения
- Войдите на сайт для отправки комментариев
Втр, 17/04/2018 - 17:33
Здравствуйте, недавно наткнулся на такую статью как "Автоматическая подача звонков в уч. заведении". Нашел прошивку, ну не нашел схему подключения. Прошивка от Voodoo Doll. Очень нужна эта схема.
#include <Wire.h> #include <DS3231.h> #define Relay (7) #define Green (5) // пин зеленый светодиод #define Blue (9) // пин синий светодиод #define Red (11) // пин красный светодиод DS3231 Clock; bool h12 = false; bool PM; bool Century; bool preventflag=0; unsigned long preventtime=millis(), ringtime=millis()+8000; void setup(){ Wire.begin(); pinMode(Relay, OUTPUT); digitalWrite(Relay, HIGH); pinMode(Green, OUTPUT); pinMode(Blue, OUTPUT); pinMode(Red, OUTPUT); } void loop(){ int second, minute, hour, day; day = Clock.getDoW(); hour = Clock.getHour(h12, PM); minute = Clock.getMinute(); second = Clock.getSecond(); digitalWrite(Green, HIGH); #define modemon (day >= 1 && day <= 5 && second >= 0) #define modesat (day == 6 && second >= 0) if (modemon && !preventflag && hour == 8 && minute == 30) relayfunc(); if (modemon && !preventflag && hour == 9 && minute == 15) relayfunc(); if (modemon && !preventflag && hour == 9 && minute == 25) relayfunc(); if (modemon && !preventflag && hour == 10 && minute == 10) relayfunc(); if (modemon && !preventflag && hour == 10 && minute == 25) relayfunc(); if (modemon && !preventflag && hour == 11 && minute == 10) relayfunc(); if (modemon && !preventflag && hour == 11 && minute == 30) relayfunc(); if (modemon && !preventflag && hour == 12 && minute == 15) relayfunc(); if (modemon && !preventflag && hour == 12 && minute == 30) relayfunc(); if (modemon && !preventflag && hour == 13 && minute == 15) relayfunc(); if (modemon && !preventflag && hour == 13 && minute == 25) relayfunc(); if (modemon && !preventflag && hour == 14 && minute == 10) relayfunc(); if (modemon && !preventflag && hour == 14 && minute == 20) relayfunc(); if (modemon && !preventflag && hour == 15 && minute == 5 ) relayfunc(); if (modemon && !preventflag && hour == 15 && minute == 25) relayfunc(); if (modemon && !preventflag && hour == 16 && minute == 10) relayfunc(); if (modemon && !preventflag && hour == 16 && minute == 30) relayfunc(); if (modemon && !preventflag && hour == 17 && minute == 15) relayfunc(); if (modemon && !preventflag && hour == 17 && minute == 25) relayfunc(); if (modemon && !preventflag && hour == 18 && minute == 10) relayfunc(); if (modemon && !preventflag && hour == 18 && minute == 20) relayfunc(); if (modemon && !preventflag && hour == 19 && minute == 05) relayfunc(); if (modesat && !preventflag && hour == 8 && minute == 30) relayfunc(); if (modesat && !preventflag && hour == 9 && minute == 15) relayfunc(); if (modesat && !preventflag && hour == 9 && minute == 50) relayfunc(); if (modesat && !preventflag && hour == 10 && minute == 10) relayfunc(); if (modesat && !preventflag && hour == 10 && minute == 20) relayfunc(); if (modesat && !preventflag && hour == 11 && minute == 05) relayfunc(); if (modesat && !preventflag && hour == 11 && minute == 15) relayfunc(); if (modesat && !preventflag && hour == 12 && minute == 0 ) relayfunc(); if (modesat && !preventflag && hour == 12 && minute == 10) relayfunc(); if (modesat && !preventflag && hour == 12 && minute == 55) relayfunc(); if (modesat && !preventflag && hour == 13 && minute == 05) relayfunc(); if (modesat && !preventflag && hour == 13 && minute == 50) relayfunc(); if (modesat && !preventflag && hour == 14 && minute == 0 ) relayfunc(); if (modesat && !preventflag && hour == 14 && minute == 45) relayfunc(); if (modesat && !preventflag && hour == 14 && minute == 55) relayfunc(); if (modesat && !preventflag && hour == 15 && minute == 40) relayfunc(); if(millis()-ringtime<=8000){ digitalWrite(Relay, LOW); digitalWrite(Blue, HIGH); }else{ digitalWrite(Blue, LOW); digitalWrite(Relay, HIGH); } if(millis()-preventtime>=300000) preventflag=0; } void relayfunc(){ ringtime=millis(); preventtime=millis(); preventflag=1; }
Так все просто. Светодиоды - см. строки 5-7, к указаным пинам. Правда красный вобще не задействован, а зеленый всегда светит. Наверно скетч такой, недоделаный, что вобщем типично для мусора найденого в инете. Реле на пин 7. Его через ключь. Можно купить на али плату реле+ключь.
DS3231.h
на соответствующие i2c например A4, A5. Запитать от чего не жалко - вся схема. Но код стремный, так белые люди не пишут, я бы его не трогал.Так и подключал, ну в протеусе как-то не так работает
Здесь на форуме есть большая тема про подачу звонков. Ищите.
скетч не проверял в работе.
В протеусе тоже как-то странно работает, либо я что-то неправильно делаю
в протеусе как-то не так работает
В протеусе тоже как-то странно работает
так, Квон, по-быстрому взял хрустальный шар и разобрался почему раньше в протеусе работало "не так", а теперь "странно". Заодно посмотри там как именно "не так" и как именно "странно" и всё поправь!
Не видишь, человеку "очень надо"! А написать толком, что ему не нравится - религия не позволяет. Вы же не собираетесь тут оскорблять религиозные чувства?
Так что рабирайтесь и по-быстрому!
мои программы и протеус не совместимы.Но вы дерзайте. :)