ДВЕРНОЙ ЗВОНОК ДЛЯ НАЧИНАЮЩИХ
Представляю вашему вниманию схемку дверного звонка, которая была собрана много лет назад и столько же и находится в эксплуатации. Правильнее было бы назвать это устройство: «Отходы в доходы!». Потому что то, из чего оно собрано, буквально валялось под ногами. Это было в советское время. Я тогда работал на небольшой АТС и было много свободного времени, которое хотелось конвертировать в деньги… Тогда то и стал собирать электронные звонки на основе данной схемы и вставлять их в дисковые телефонные аппараты. Монтер городской АТС, охотно помогал мне в реализации, имея от этого свою прибыль. Устройство, имитирует звук подскакивающего шарика. Все характеристики регулируются с помощью подбора ёмкости конденсаторов и регулировкой переменным резистором.
Схема принципиальная электрическая
Собранное без ошибок, начинает работать сразу. Питание возможно от источника постоянного тока 12 вольт (тогда диоды Д1-Д4 и конденсатор С4 исключают). Звонковыми импульсами АТС переменного тока 110 вольт 25 герц – в этом случае, ёмкость конденсатора С4, должна быть 1 микрофарад на 400 вольт.
Напряжением переменного тока 220 вольт 50 герц, при использовании в качестве квартирного звонка (в этом случае, ёмкость конденсатора С4, должна быть 0,5 микрофарада на 400 вольт). Собиралось устройство, на кусках фольгированного гетинакса, которые нарезал на станочке (Умелые руки) маленькой циркулярной фрезой. Одну плату, использовал в качестве кондуктора, для сверления отверстий, но можно собирать и навесным монтажом.
Применённые детали
Транзистор Т1 – мп25-26, Т2 – кт605 или п307-309, но п605 работает лучше, диоды Д1-Д4 – Д226, но можно и другие, хотя Д226 давали лучшие результаты. Конденсаторы С1-0,1 С2-0,05, подстроечный резистор – 47к, С3 – 100 микрофарад на 100 вольт. Телефонный капсюль использовался в качестве излучателя, но только очень старые (большого диаметра).
Очень хорошие результаты давало применение чешского капсюля сопротивлением 50 ом, но у него есть одна особенность – чтобы добиться хорошей громкости, нужно вынуть пластмассовую заглушку со стороны контактных винтов, под которой находится регулировочный винт и включив устройство, небольшой отверткой, произвести регулировку, откручивая и закручивая винт, для достижения максимальной громкости звука.
Предупреждение! Если вы собираетесь применить это устройство в качестве дверного звонка, не настраивайте его подключив к сети 220 вольт! Можете попасть под высокое напряжение! Настройте подключив к постоянному току 12 вольт, уже потом подключайте сетевое напряжение.
После того, как приказал долго жить дверной звонок, откопал на антресолях старый телефон, выдрал из него этот электронный звонок, упаковал его в коробочку от ватных палочек и теперь он продолжил свою службу над дверью. Автор проекта – Вольф9405.
Форум
Как подключить дверной звонок
Для того чтобы правильно подключить дверной звонок, в первую очередь, необходимо точно знать, какая у вас в квартире реализована схема подключения и подобрать подходящий именно под нее тип звонка.
Самой распространённой схемой подключения дверных звонков, которая реализована уже при строительстве практически каждой квартиры, включая новостройки, является схема подключения проводного дверного звонка, которая представлена на изображении ниже.
Подробнее о всех основных схемах подключения квартирных звонков мы рассказывали в статье «Схема подключения дверного звонка».
Для нашего примера установки, мы выбрали проводной электромеханический дверной звонок Zamel (Замел) модель Bim Bam (Бим Бам) – двухканальный гонг. Этот электрозвонок предназначен для установки в стандартную схему подключения, поэтому комплект поставки максимально прост.
Приступаем к установке дверного звонка
Будьте внимательны! Комплект поставки не включает питающий провод с электрической вилкой для подключения к розетке для звонка. В нашем примере установки, мы покажем, как превратить отсутствие электрического шнура в преимущество, получив в результате эстетически более удачно установленный дверной звонок.
Для правильной работы звонка, по схеме подключения, требуется выведенная в подъезд управляющая кнопка.
И розетка для подключения самого звонка, которая зачастую располагается внутри квартиры рядом со входной дверью, под потолком.
В нашем случае, так как у электрозвонка Zamel отсутствует электрический шнур для включения в розетку, мы заранее сняли механизм розетки и вывели необходимые для подключения жилы питающего кабеля. В нашем случае это коричневый (Фазный провод идущий от кнопки) и голубой (ноль). С концов жил кабеля была снята изоляция на расстояние примерно 10мм — 12мм.
Как определить какой из проводов фаза, ноль, а какой заземление самостоятельно, вам поможет наша подробная инструкция — ЗДЕСЬ.
Если проводка выполнена верно, точно по схеме, напряжения на проводах быть не должно, пока не нажата кнопка. Но лучше всего принудительно выключить подачу электрического тока в учетно-распределительном щите.
Для этого в электрощите, необходимо рычаги автоматических выключателей перевести в состоянии «выкл.», обычно это положение, при котором рычаг направлен вниз. Какой именно автомат необходимо выключить, если они не подписаны, определяется опытным путем, выключая их по очереди, и проверяя, например, индикаторной отверткой, наличие напряжения проводке для выключателя.
Прокладываем жилы питающего провода в корпус звонка, с тыльной стороны, через специальное отверстие, как показано на изображении ниже.
Подключаем провода, помещая их в клеммы, расположенные непосредственно в механизме дверного звонка. В электрозвонке Zamel, для подключения используются самозажимные пружинные клеммы, что значительно ускоряет и облегчает монтаж.
Чуть выше подрозетника, из которого выводятся провода для подключения звонка, вкручиваем саморез. При этом его головка не должна входить в стену до конца, а должна выпирать на расстояние 3мм — 5мм, как показано на изображении ниже. В зависимости от материалов стен, крепеж может быть применен различный, главным условием является соответствие головки размеру посадочного места в крепеже звонка.
Обязательно убедитесь в отсутствии электропроводки в месте установки крепежа, если не уверены, безопаснее отступить от оси установки подрозетника в любую из сторон.
Одеваем корпус звонка на головку самореза, используя специальное посадочное место с его тыльной стороны. Отрегулировав расстояние, на которое торчит из стены крепеж, можно добиться максимально надежной фиксации звонка на стене.
После того как корпус квартирного звонка надежно закреплен, ставим на место крышку, как показано на изображении ниже.
На этом установка проводного электрозвонка завершена, можно включить подачу электричества и проверить его работу. Если все верно, при нажатии на управляющую клавишу (кнопку звонка), расположенную в подъезде, раздастся приятный, мелодичный звук, стихающий, если кнопку отпустить.
Как видите, звонок полностью перекрыл, находящийся за ним, подрозетник и из-за отсутствия лишних проводов выглядит в интерьере очень привлекательно.
Данный способ установки, по нашему мнению, наиболее удобный и эстетически привлекательный. Главным минусом является отсутствие простой возможности принудительного выключения дверного звонка. Выключателями звонки оборудованы редко, а просто выключить из розетки его нельзя. Другой вопрос насколько часто вам потребуется такая возможность. В любом случае, всегда можно довольно просто реализовать в звонке выключатель любого типа, например, веревочный.
Теперь вы знаете как установить дверной звонок и сможете легко справится с этим своими руками.
Если у вас появятся вопросы, по установке дверного звонка, любого типа, оставляйте в комментариях к статье, попробуем помочь.
Так же если вами были обнаружены неточности или есть какие-то дополнения к статье, обязательно пишите!
Как вызвать функцию на схеме
спросил
Изменено 7 лет, 6 месяцев назад
Просмотрено 7к раз
Я пытался протестировать небольшую часть кода и по какой-то причине у меня есть ошибки. вот код. здесь вкладка
— это просто функция, возвращающая список и перевести
это еще одна функция.
(определить р (пусть ((x (вкладка автомобиля)) (y (вкладка кадра))) (список перевести(х) у)))
- схема
Вызов функции записывается как (f args)
, где f
— имя функции, а args
— последовательность аргументов, разделенных пробелами.
Таким образом, чтобы вызвать вкладку
без аргументов, вы должны написать (вкладка)
и вызвать перевести
с аргументом x
, вы должны написать (перевести x)
.
0
+
— это обычная процедура в Scheme, и если вы оцените ее, будет оценен символ, и вы получите зависимое от реализации представление объекта процедуры:
+ ; ==> <процедура: +> (или что-то подобное)
Теперь +
— это просто переменная, которая при оценке приводит к процедуре.
(+) ; ==> 0
Происходит следующее: Scheme видит круглые скобки, затем оценивает первый аргумент +
и становится процедурой
. Поскольку это процедура, аргументы оцениваются в любом порядке, и последняя процедура применяется с этими оцененными аргументами.
Если вкладка
является процедурным объектом, к нему нельзя применить car
или cdr
. Вы можете сделать это с результатом вызова, если он оценивается как пара. Аналогично, если вы хотите вызвать процедуру перевести
с аргументом x
, он должен выглядеть как (перевести x)
. Собираем все вместе:
(определить p (let* ((вкладка-результат (вкладка)) (x (результат вкладки автомобиля)) (y (закладка кадра-результат))) (перечислите (переведите х) у)))
Зарегистрируйтесь или войдите
Зарегистрироваться через Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
lisp — Как правильно вернуть значение из рекурсивного вызова в Схеме?
Начнем отвечать на вопросы:
Моя проблема в настоящее время заключается в том, что
ref-check
действительно возвращает[#t
1
] обратно кплюс-минус
, но метод, похоже, продолжается независимо.
В случае, если ref-check
возвращает 1
вызывающей функции, дальнейшие рекурсивные вызовы не выполняются дальше от текущего стека вызовов . Итак, после ref-check
вернулся, вызывающий плюс-минус
также возвращает .
Но он возвращается к функции, которая его вызвала, которая может быть «вы» (т.е. верхний уровень), но , скорее всего, будет «самим собой». Пример может проиллюстрировать это лучше:
Давайте вызовем (плюс-минус '(3 1 2) 0 0)
: это попадет в ветвь else
cond
, вызов сначала (плюс-минус '(1 2) 3 0)
. Это также попадет в ветку else
, и поэтому сначала вызовите (плюс-минус '(2) 5 0)
(что в конечном итоге вернет #f
, поэтому мы его игнорируем), а затем (плюс-минус '(2) 5 0)
минус ‘(2) 3 1) . В этот вызов плюс-минус
попадет в ветвь cond
, которая возвращает #t
из-за ref-check
( 3-1 == 2
является частью (1 2)
). Функция возвращается к вызывающей стороне, которая на самом деле находится «в ветке else
» первого вызова плюс-минус
. Там вы отбрасываете возвращаемое значение и безоговорочно вызываете (плюс-минус '(1 2) 0 3)
, который, в свою очередь, делает дальнейшие вызовы как ref-check
, так и плюс-минус
.
Визуально, показывающая часть стека вызовов:
(плюс-минус '(3 1 2) 0 0) ;; В другом (плюс-минус '(1 2) 3 0) ;; В другом (плюс-минус '(2) 5 0) ;; Детали отбрасываются, возвращается #f ;; <== #f ;; Отбросьте #f сверху и вызовите (плюс-минус '(2) 3 1) ;; ref-check вернул 1, поэтому верните #t ;; <== #t ;; <== #t ;; Все еще в другом, получил #t, сбросьте, затем (плюс-минус '(1 2) 0 3) ;; . ..
Чтобы избавиться от этого, вам нужно сделать второй рекурсивный вызов только , если первый еще не возвращает #t
. Этого можно легко добиться, заключив оба вызова в (или...)
.
[..] как убедиться, что ref-check всегда получает исходный список,
Передайте исходный список в качестве дополнительного параметра при каждом вызове плюс-минус
.
(3 1 2 400)
всегда должен возвращать#ф
С вашей нынешней логикой этого не произойдет. Поскольку вы вызываете ref-check
также с частично вычисленными sum1
и sum2
(т. е. еще не все элементы вашего списка «решили», являются ли они отрицательными или нет), приведенное выше даст #t
.
Чтобы получить желаемое поведение, вам нужно вызвать ref-check
только , когда все элементы списка будут добавлены к sum1
или sum2
, то есть когда больше нет элементов для обработки, т.