Схема звонка: Схема подключения дверного звонка на 220 вольт

Как подключить дверной звонок

Для того чтобы правильно подключить дверной звонок, в первую очередь, необходимо точно знать, какая у вас в квартире реализована схема подключения и подобрать подходящий именно под нее тип звонка.

Самой распространённой схемой подключения дверных звонков, которая реализована уже при строительстве практически каждой квартиры, включая новостройки, является схема подключения проводного дверного звонка, которая представлена на изображении ниже.


Подробнее о всех основных схемах подключения квартирных звонков мы рассказывали в статье «Схема подключения дверного звонка».
 

Для нашего примера установки, мы выбрали проводной электромеханический дверной звонок Zamel (Замел) модель Bim Bam (Бим Бам) – двухканальный гонг. Этот электрозвонок предназначен для установки в стандартную схему подключения, поэтому комплект поставки максимально прост.

Приступаем к установке дверного звонка

Будьте внимательны! Комплект поставки не включает питающий провод с электрической вилкой для подключения к розетке для звонка. В нашем примере установки, мы покажем, как превратить отсутствие электрического шнура в преимущество, получив в результате эстетически более удачно установленный дверной звонок.

Для правильной работы звонка, по схеме подключения, требуется выведенная в подъезд управляющая кнопка.

И розетка для подключения самого звонка, которая зачастую располагается внутри квартиры рядом со входной дверью, под потолком.

В нашем случае, так как у электрозвонка Zamel отсутствует электрический шнур для включения в розетку, мы заранее сняли механизм розетки и вывели необходимые для подключения жилы питающего кабеля. В нашем случае это коричневый (Фазный провод идущий от кнопки) и голубой (ноль). С концов жил кабеля была снята изоляция на расстояние примерно 10мм — 12мм.

Как определить какой из проводов фаза, ноль, а какой заземление самостоятельно, вам поможет наша подробная инструкция — ЗДЕСЬ.


 

Если проводка выполнена верно, точно по схеме, напряжения на проводах быть не должно, пока не нажата кнопка. Но лучше всего принудительно выключить подачу электрического тока в учетно-распределительном щите.

Для этого в электрощите, необходимо рычаги автоматических выключателей перевести в состоянии «выкл.», обычно это положение, при котором рычаг направлен вниз. Какой именно автомат необходимо выключить, если они не подписаны, определяется опытным путем, выключая их по очереди, и проверяя, например, индикаторной отверткой, наличие напряжения проводке для выключателя. В крайнем случае, выключайте все. Но затем еще раз обязательно убедитесь, в отсутствии электрического тока, в месте установки!  

Прокладываем жилы питающего провода в корпус звонка, с тыльной стороны, через специальное отверстие, как показано на изображении ниже.

Подключаем провода, помещая их в клеммы, расположенные непосредственно в механизме дверного звонка. В электрозвонке Zamel, для подключения используются самозажимные пружинные клеммы, что значительно ускоряет и облегчает монтаж.

Чуть выше подрозетника, из которого выводятся провода для подключения звонка, вкручиваем саморез. При этом его головка не должна входить в стену до конца, а должна выпирать на расстояние 3мм — 5мм, как показано на изображении ниже. В зависимости от материалов стен, крепеж может быть применен различный, главным условием является соответствие головки размеру посадочного места в крепеже звонка.

Обязательно убедитесь в отсутствии электропроводки в месте установки крепежа, если не уверены, безопаснее отступить от оси установки подрозетника в любую из сторон.
 

 

 


Одеваем корпус звонка на головку самореза, используя специальное посадочное место с его тыльной стороны. Отрегулировав расстояние, на которое торчит из стены крепеж, можно добиться максимально надежной фиксации звонка на стене.

После того как корпус квартирного звонка надежно закреплен, ставим на место крышку, как показано на изображении ниже.

На этом установка проводного электрозвонка завершена, можно включить подачу электричества и проверить его работу. Если все верно, при нажатии на управляющую клавишу (кнопку звонка), расположенную в подъезде, раздастся приятный, мелодичный звук, стихающий, если кнопку отпустить.
 

Как видите, звонок полностью перекрыл, находящийся за ним, подрозетник и из-за отсутствия лишних проводов выглядит в интерьере очень привлекательно.

Данный способ установки, по нашему мнению, наиболее удобный и эстетически привлекательный. Главным минусом является отсутствие простой возможности принудительного выключения дверного звонка. Выключателями звонки оборудованы редко, а просто выключить из розетки его нельзя. Другой вопрос насколько часто вам потребуется такая возможность. В любом случае, всегда можно довольно просто реализовать в звонке выключатель любого типа, например, веревочный. 

Теперь вы знаете как установить дверной звонок и сможете легко справится с этим своими руками. 

Если у вас появятся вопросы, по установке дверного звонка, любого типа, оставляйте в комментариях к статье, попробуем помочь.

Так же если вами были обнаружены неточности или есть какие-то дополнения к статье, обязательно пишите!    

Подключение дверных звонков | Полезные статьи

В настоящее время на рынке бытовой электроники существует большой выбор разнообразных дверных звонков, начиная от простых моделей и заканчивая вариантами с видеокамерой и сигнализацией. Если вас заинтересовал вопрос «как подключить дверной звонок», в данной статье вы найдете информацию о методах подключения различных устройств.

 

Звонок электрический дверной – виды и особенности

Дверные звонки бывают двух видов: проводная модель, требующая подключения при помощи кабеля, а также беспроводная модель — дверной звонок на батарейках, который более простой в монтаже.

Проводные звонки работают от сети ~220В, а их корпус и кнопка соединены проводом. Звонок дверной электрический проводной при условии правильного подключения обеспечивает надежность и долговечность, а также работу при любых погодных условиях.

Беспроводной электронный дверной звонок имеет свои преимущества: для его монтажа не требуется проводов, а в случае отключения электроэнергии такой звонок продолжит работу. Однако дальность передачи сигнала такого звонка не велика, а так же возможно «не срабатывание» при плохой погоде.

Дверные звонки можно разделить по потребляемому напряжению. В настоящее время достаточно распространен, как стандартный дверной звонок 220в, так и электронные звонки от 4,5 до 60В. Последние, оснащаются батареями или понижающими трансформаторами.

На современном рынке также появился дверной звонок с камерой. Дистанционная модель включает в себя камеру скрытого наблюдения, которая записывает, как изображение, так и звук. Этот дистанционный дверной звонок не требует подключения – достаточно вставить батарейки, и закрепить элементы на стене.

Если вас не устраивают модели, реализуемые на рынке, можно собрать дверной звонок своими руками с помощью специальных наборов. Если вас интересует, как сделать дверной звонок самостоятельно, можно использовать специальные наборы, например, «Двухтональный дверной звонок». Этот набор позволяет собрать устройство, выполняющее функцию звонка и сигнализации.

Дверной звонок проводной – подключение своими руками

Для того чтобы самостоятельно осуществить подключение дверного звонка проводного типа, вам понадобятся следующие инструменты:

  • дрель или перфоратор;
  • отвертка-индикатор;
  • пассатижи;
  • отвертка с тонким жалом;
  • кусачки.

Из материалов вам потребуется сам дверной звонок, кнопка, а также два двухжильных кабеля.

Для подключения можно использовать двухжильный кабель с сечением 0,5 — 0,75 мм2. Более мощные кабели также могут использоваться в подключении дверного звонка, однако их применение не целесообразно, поскольку мощность звонка незначительна.

При подборе кабеля также стоит учитывать материал жилы – алюминий или медь. Лучше всего кабель с жилами из аналогичного материала, что и у остальной проводки общей квартирной сети.

Схема подключения дверного звонка проводного типа

Кнопка для дверного звонка устроена таким образом, что во время нажатия она замыкает контакты. Для того чтобы раздался звук дверного звонка, необходимо, чтобы на его контактах возникли и ноль, постоянно подключенный к звонку, и фаза, разомкнутая в состоянии покоя.

Схема дверного звонка, показанная на схеме, включает в себя два двухжильных кабеля, которые прокладываются от распределительной коробки к кнопке звонка, а также от коробки к месту установки самого звонка.

Как установить дверной звонок – пошаговая инструкция

Если вы используете звонок с низким напряжением, установка дверного звонка осуществляется следующим образом.

Выключите электропитание.

От распределительной коробки прокладывается кабель до кнопки звонка и самого звонка. В распределительной коробке с помощью индикатора необходимо найти провода подачи напряжения и определить фазу и ноль. Далее все необходимо соединить согласно схеме подключения.

В дверной раме или стене сверлится отверстие для вывода провода кнопку.

Провод присоединяется к клеммам кнопки, после чего она закрепляется на стене над отверстием.

Второй конец провода присоединяется к двум клеммам, расположенным на батарее звонка. Если батарея звонка находится не в корпусе устройства, а отдельно от него, необходимо протянуть провод от кнопки к звонку, разделить двухжильный кабель и каждую из жил подключить к отдельной клемме.

Если в корпусе звонка имеется трансформатор, необходимо подключить его к распределительной коробке и двум из трех клемм, соответствующих по напряжению.

После того, как вы осуществили подключение своего дверного звонка, включите электропитание и проверьте его работу.

 

устройство и назначение, советы по монтажу и схема подключения

На чтение 7 мин Просмотров 582 Опубликовано Обновлено

Электрический звонок широко применяется посторонними лицами при необходимости попадания в дома и на другие объекты. С их помощью удается передавать звуковой сигнал на значительные расстояния. Для формирования вызова в современных устройствах используется электронная схема, построенная либо на полупроводниковых элементах (транзисторах), либо на современных микросхемах.

Устройство и принцип действия

Устройство домашнего звонка

Звонок дверной электрический устроен предельно просто и состоит из ограниченного числа деталей. Его конструкция содержит следующие обязательные узлы и компоненты:

  • вызывная кнопка, вынесенная к входной двери, обычно она крепится на косяке сбоку;
  • блок формирования вызывного сигнала, расположенный внутри обслуживаемого объекта: подъезда многоквартирного дома или квартиры;
  • комплект проводов, используемый для соединения этих узлов и обеспечивающий их совместную работу.

В современных моделях электронных звонков, называемых беспроводными, вместо линейных кабелей используется радиоканал, то есть вызывной сигнал передается по эфиру.

Принцип работы дверных звонков проводного типа основан на активации электромеханического механизма или электронной схемы, на которые при нажатии кнопки подается сетевое напряжение 220 Вольт. Под его воздействием внутри исполнительного устройства происходят изменения, вызывающие формирование вызывного сигнала. В первом случае срабатывает электромагнитное реле, приводящее в действие вибрирующий молоточек, периодически ударяющий по бронзовым чашечкам.

В электронных моделях после подачи напряжения и его понижения до приемлемого уровня в схеме формируется электронный сигнал, поступающий на акустический преобразователь (динамик). Для беспроводных вызывных устройств тот же процесс повторяется в точности, за исключением того, что управляющий сигнал передается по радиоканалу.

Виды звонков

По принципу формирования вызывного сигнала звонок проводной может иметь следующие исполнения:

  • электромеханические вызывные устройства;
  • электронные звонки.

Устройства электронного типа могут иметь вынесенный на лицевую панель регулятор громкости, позволяющий изменять уровень сигнала, поступающего на встроенный динамик.

Электронный звонок

Отличия в работе электронных и электромеханических образцов проявляются в различных механизмах преобразования и подачи вызывного сигнала. Помимо этого, по способу передачи информационной посылки электронные звонки делятся на проводные устройства и их беспроводные аналоги (радиоуправляемые модели). По виду сигнала, предоставляющему пользователю информацию о вызове, они могут быть звуковыми или визуальными (под последней категорией понимаются видео-регистраторы). По месту своего размещения все существующие модели электрических вызывных устройств делятся на уличные и внутриквартирные звонки.

Анализ разновидностей звонковых механизмов и критерии выбора

Модуль для воспроизведения звучания мелодии

Звонки электромеханические дверные с ударным механизмом давно устарели и встречаются сегодня разве что у пенсионеров и в сельской местности. На смену им пришли электронные аналоги, в которых не имеется ни одного механического узла. Звонок в квартиру проводной электронного типа изготавливается в виде монтажной платы, на которой размещены элементы генераторной схемы на транзисторах, способные воспроизводить звук через динамик.

Иногда формирователь вызывного сигнала собирается на основе специализированного «музыкального» чипа, формирующего несколько мелодий. Эти звонки более предпочтительны, чем устаревшая электромеханическая модель, но в свою очередь уступают по удобству пользования радиоуправляемым аналогам. На монтаж такого изделия потребуется намного меньше времени, поскольку в этом ситуации нет необходимости в прокладке электрических проводов. Однако за все эти преимущества приходится расплачиваться высокой стоимостью беспроводных устройств.

Что важно учитывать при выборе

Таблица степеней защиты

Выбрать хороший и надежный в работе электрический проводной звонок в квартиру удается лишь после того как взвешены все «за» и «против» рассмотренных вариантов. Если нужен недорогой и простой в эксплуатации прибор, лучше всего выбрать обычный электрический звонок с электронной схемой, формирующей несколько мелодий. В ситуации, когда возиться с проводкой нет желания или ее невозможно проложить и вместе с тем вопрос расходов не беспокоит пользователя, наиболее подходящим вариантом считается радиоуправляемое устройство.

При выборе беспроводного или проводного электрического звонка в квартиру также важно учесть место установки вызывной кнопки: на улице или в подъезде. В первом случае она должна иметь высокую степень защиты от разрушающих факторов, определяемую техническим показателем IP (чем выше – тем лучше). Он характеризует уровень ее герметичности, препятствующей проникновению внутрь пыли и влаги.

В комплект изделий, устанавливаемых внутри помещений, может входить вызывное устройство, имеющее обычное исполнение с IP 20-44, например.

Особенности монтажа

Индикаторная отвертка

Порядок установки элементов вызывного устройства зависит от его модификации и комплектации, которые рассматриваются для каждого варианта отдельно. В любом случае перед началом работ потребуется подготовить следующий инструмент:

  • индикаторную отвертку;
  • отвертку обыкновенную;
  • бокорезы – необходимы для откусывания проводника нужной длины.

Из материалов нужно подготовить миниатюрные переходные колодки со шлицами под отвертку и два куска проводки необходимой длины.

Монтаж проводного устройства

Установка корпуса дверного электрозвонка Zamel bim Bam

Звонки на дверь проводного типа устанавливаются по месту своей работы в следующей последовательности:

  1. Нужно обесточить квартиру, выключив вводный автомат.
  2. Берется коробка с электронной схемой, от которой выводятся наружу два белых проводника, и навешивается на ввернутые в стенку шурупы.
  3. Необходимо один конец провода посредством миниатюрной переходной колодки соединить с жилой коричневого цвета, подведенной от фазной клеммы вводного щита или распредкоробки.
  4. Второй конец с помощью такой же колодки соединяется с длинным отрезком провода, проложенного вдоль стены до вызывной кнопки, и подсоединяется к одной из ее клемм.
  5. После этого от второго кнопочного контакта такой же проводник прокладывается рядом с первым до нулевой клеммы распредкоробки или щита.

На завершающем этапе работ останется включить вводный автомат и проверить звонок на работоспособность

При проверке цепочки прохождения сигнала нужно действовать осторожно, постоянно помня о том, что при ненажатой кнопке одна из ее клемм оказывается под напряжением 220 Вольт. Проверить его отсутствие или наличие можно с помощью приготовленной ранее индикаторной отвертки.

Беспроводное устройство

Беспроводной звонок с двумя кнопками

В случае беспроводного устройства операции по его монтажу выглядят так:

  1. На выбранном месте в квартире на стене крепится коробка с приемником, работающим от установленной в него ранее батарейки.
  2. На косяке входной двери фиксируется оформленный в виде панельки с кнопкой передатчик сигнала, также нуждающийся во встроенном элементе питания.
  3. Для тестирования устройства вызова следует нажать на кнопку звонка и прослушать звуковой сигнал.
  4. При наличии регулировки громкости нужно убедиться в том, что она работает исправно.

Если приемное устройство питается от электросети, следует подсоединить его выводы согласно цветной маркировке: красную или коричневую жилу – к фазному контакту в распредкоробке, а синюю – к нулевой клемме.

Если приемник по какой-то причине не функционирует, нужно еще раз переставить батарейки на случай, если в месте их подсоединения оказался плохой контакт.

Выключать электричество при подключении батарейного беспроводного звонка не требуется, поскольку оно не используется.

Схемы подключения и полезные советы

Схема подключения дверного звонка

В одном из вариантов подключения дверного звонка предусматривается использование двух кнопок, расположенных на некотором удалении одна от другой. Обычно это делается в частных домах, где вход в жилище по ряду причин находится в разных местах. Звонок квартирный электрический проводной с двумя кнопками монтируется по более сложной схеме. Чтобы при нажатии каждой из них срабатывало одно и тоже исполнительное устройство, вызывные цепи соединяются в параллель.

Существуют схемы звонков, в которых на панели исполнительного устройства предусмотрена лампочка подсветки, дублирующая вызов для людей с плохим слухом. Чтобы снизить опасность поражения электрическим током, в современные электронные модели встраивается трансформатор, к которому подводится 220 Вольт. С его выхода безопасное напряжение (12-36 Вольт) поступает в линию питания вызывной кнопки.

При монтаже устройства вызова рекомендуется придерживаться следующих правил:

  • проводники монтируются по возможности скрытно, что исключает возможность случайного повреждения изоляции и поражение человека напряжением 220 Вольт;
  • корпус звонка с регулировкой вызова крепится на стенке на уровне глаз;
  • при выборе места для него учитываются особенности конкретного объекта, включая наличие поблизости распределительного щита.

При выборе беспроводного звонка важно помнить о постоянном контроле состояния батареек, которые со временем разряжаются.

Мелодичный звонок для стационарного телефона. Схема звонка

Здесь размещены схемы, для начинающих, радиолюбителей, рекомендуемые для успешного старта.

При сборке предложенных схем, обращайте особое внимание на исправность применяемых радиоэлементов!!!

Описание схемы

Эта схема представляет собой простейший несимметричный мультивибратор, что приводит к прерывистому свечению светодиода. Частота вспышек светодиода определяется частотой генерации мультивибратора. При включении источника питания ток коллектора транзистора VТ 2 скачком изменится от нуля, до начального значения, которое определяется резисторами R 1, R 2 и коэффициентом h 21э транзисторов VТ 1, VТ 2. Силу начального тока коллектора VТ 2, устанавливают подбором резистора R 2, при отключенном конденсаторе C 1. При этом светодиод еще не должен светиться. Подбор начинают со значений сопротивления R 1, при котором светодиод светится, затем увеличивают сопротивление R 1, до погасания светодиода. Подбором конденсатора C 1, добиваются требуемой частоты миганий. Номиналы резисторов, могут отличаться от указанных на схеме, на +, — 10%. Транзисторы маломощные группы МП, вместо МП41, можно ставить МП39, МП42, с любым буквенным индексом. В место МП37 можно ставить МП10, МП38. Светодиод можно применить любой имеющийся в продаже. Схема неоднократно проверенна на работоспособность и если она правильно собрана, начинает работать сразу. Применить данную схему можно как сигнальное устройство, или как эмитатор сигнализационного устройства в автомобиле и дома.

Описание схемы

Эта схема представляет собой симметричный мультивибратор, частота которого зависит от номиналов конденсаторов С1, С2, а так же от резисторов R 1, R 2. Частота поочередного мигания светодиодов соответственно, зависит от частоты мультивибратора которую в свою очередь можно менять подбором конденсаторов С1, С2 и резисторов R 1, R 2. Транзисторы VT 1, VT 2, группы МП и могут быть МП39, МП40, МП41, МП42, с любым буквенным индексом. Светодиоды могут быть любые, кроме инфракрасных. Схема проста в изготовлении, неоднократно проверена на работоспособность и при правильной сборке начинает работать сразу при подаче питания. Применяться данная схема может как элемент световой индикации в различных устройствах.

Описание схемы

Генератор начинает работать при напряжении в несколько десятых долей вольта, даже с транзистором с малым статическим коэффициентом. Генерация возникает при нажатии кнопки S1, из — за действия сильной положительной обратной связи между коллектором и базой. R1 устанавливает нужную громкость и тональность звука. Трансформатор Т1 — от любого транзисторного малогабаритного радиоприемника. В качестве головных телефонов можно применить любые высокоомные телефоны типа ТМ — 2А, в крайнем случае подойдут и капсуля типа ДЭМ — 4М.

Описание схемы

При нажатии кнопки S 1, заряжается конденсатор С1. Разряжается конденсатор С1 через делитель напряжения на резисторах R 2, R 3, подключенного в цепь базы транзистора VT 1. Поскольку напряжение на конденсаторе С1, падает по мере его разрядки, то происходит уменьшение напряжения смещения на базе транзистора VT 1, в результате чего изменяется частота звучания. Из динамической головки слышен звук напоминающий вой серены. Транзистор VT 1, можно заменить на КТ315, КТ3102 с любым буквенным индексом. Транзистор VT 2, можно заменить на КТ837 с любым буквенным индексом. При сборки схемы особое внимание уделить правильности подключения кнопки. Несмотря на простоту схемы, почему то, именно подключение кнопки часто путают, в результате имитации серены не происходит, а слышен только обычный звуковой тон определенной частоты. Схема неоднократно проверена на работоспособность, при номиналах радиодеталей указанных на схеме и безошибочной сборке начинает работать сразу.

Описание схемы

Звонок состоит из двух генераторов, генератора тона, выполненного на транзисторах V 3, V 4 и симметричного мультивибратора V 1, V 2. Как известно при работе мультивибратора его транзисторы поочередно закрываются и открываются. Это свойство и использовано для управления частотой генератора тона. Выход мультивибратора соединен с генератором тона через резистор R 5 поэтому он будет периодически подключаться к общему проводу (к плюсу источника питания), т.е. параллельно резистору R 7. При этом частота генератора будет изменяться скачком, при закрытом транзисторе из динамической головки B 1, будет слышен звук одного тона, при открытом – другого. Конденсаторы С2, С3, защищают мультивибратор от импульсов, проникающих от генератора тона. При отсутствии конденсаторов частота мультивибратора будет изменяться, что приведет к появлению неприятных тонов в звучании звонка. В место указанных на схеме, можно применить любые другие маломощные низкочастотные германиевые транзисторы соответствующей структуры. Конденсаторы могут отличаться от номинала указанного в схеме на +,- 10%. Динамическая головка В1 любая, мощностью 1-2 Вт. и сопротивлением звуковой катушки постоянному току 4-10 Ом. В место конденсаторов С2, С3, можно установить один электролитический неполярный конденсатор на 1, 2 Мкф. на номинальное напряжение не ниже 6в. Детали звонка можно смонтировать на печатной плате из фольгированного гетинакса или стеклотекстолита. Схема неоднократно проверена на работоспособность, при номиналах радиоэлементов указанных на схеме и безошибочной сборки наладки не требует.

Рисунок печатной платы

Телеграфный тренажер на ИМС К155ЛА3

Описание схемы

Предлагаемый телеграфный тренажер достаточно прост в изготовлении, и предназначен для самостоятельного изучения телеграфной азбуки. Кнопкой S1 служит механический телеграфный ключ. Уст — во состоит из 4 — х элементов 2И — НЕ микросхемы К155ЛА3. Элементы DD1.1, DD1.2, DD1.3, образуют генератор импульсов, следующих с частотой 1000Гц. Элемент DD1.4, является буферным. С помощью резистора R1 подстраивают частоту генератора. В качестве источника питания может быть, маломощный блок питания напряжением 5в.

Простой регулируемый блок питания

Конструкции на транзисторах требуют для своего питания постоянное напряжение определенной величины, 1,5В, 3 В, 4,5 В, 9 В и 12 В. Чтобы во время проверки и налаживания собираемых схем, не расходовать напрасно средства на преобретение гальванических элементов и батарей, воспользуйтесь универсальным блоком питания работающим от сети переменного тока и позволяющим получить любое постоянное напряжение. Схема такого блока приведена на рисунке. Его выходное напряжение можно плавно изменять от 0,5 до 12 В. Причем оно будет оставаться стабильным не только при изменении сетевого напряжения, но и при изменении тока нагрузки от нескольких миллиампер до 0,3 А. Кроме того, блок питания не боится коротких замыканий в цепи нагрузки, которые нередки в практике радиолюбителя.

Познакомимся подробнее с работой блока питания. Включается он в сеть с помощью двухполюсной вилки ХР1. При замыкании контактов выключателя SA1 сетевое напряжение подается на первичную обмотку понижающего трансформатора Т1. На выводах вторичной обмотки появляется переменное напряжение, значительно меньшее, чем сетевое. Оно выпрямляется диодами VD1 — VD4, включенными по так называемой мостовой схеме. Чтобы выпрямленное напряжение было такое же стабильное, как напряжение батареи гальванических элементов, на выходе выпрямителя стоит электролитический конденсатор С1 большой емкости. Выпрямленное напряжение подается на несколько цепей: R1, VD5, VT1, R2, VD6, R3; VT2, VT3, R4, (R2, VD6) — это стабилитрон с балластным резистором. Они составляют параметрический стабилизатор. Как мы уже говорили выше, независимо от колебаний выпрямленного напряжения на стабилитроне VD6 будет строго определенное напряжение, равное напряжению стабилизации данного типа стабилитрона (в нашем случае от 11,5 до 14 В). Параллельно стабилитрону включен переменный резистор R 3, с помощью которого и устанавливают нужное выходное напряжение блока питания. Чем ближе к верхнему выводу находится движок резистора, тем больше выходное напряжение. С движка переменного резистора напряжение подается на усилительный каскад, собранный на транзисторах VT2 и VT3. Можно считать, что это усилитель мощности, обеспечивающий нужный ток через нагрузку при заданном выходном напряжении. Резистор R5 имитирует нагрузку блока питания, когда к зажимам ХТ1 и ХТ2 ничего не подключено. Напряжение на нем почти равно напряжению между движком переменного резистора и общим проводом (зажим ХТ2). Чтобы можно было контролировать выходное напряжение, в блок введен вольтметр, составленный из микроамперметра и добавочного резистора R 6.

Примечание: Выпрямительные диоды, диодного моста VD1 — VD4 можно заменить на более современные типа КД226 которые расчитаны на обратное напряжение более 250В или импортные аналоги. Транзисторы VT1, VT2 можно заменить на КТ361 или импортные аналоги. Транзистор VT3 можно заменить на КТ837 с любой буквой, что даже облегчит его монтаж на теплоотводе. В качестве теплоотвода подойдет дюралевая или алюминиевая пластина толщиной 2мм., ширина 40мм., высота 60мм. Монтаж радиоэлементов осуществляют на печатной плате из стеклотекстолита, хотя есть примеры что для начала монтажную плату изготавливали из плотного картона. Вся конструкция помещается в корпус из диэлектрического материала (пластмасс, пластик и т.д.).

Монтаж транзистора VT3 на теплоотводе.

При сборке нужно быть внимательным и осторожным т.к. здесь на первичной обмотке трансформатора, присутсвует напряжение опасное для жизни 220в.

Схема бестрансформаторного двухтактного УНЧ

Описание схемы

Простой бестрансформаторный двухтактный усилитель мощностью 1.5 Вт. .Высокочастотный транзистор П416 применен здесь из соображения как можно больше снизить шумы входного каскада, потому как помимо того что он высокочастотный, он еще и малошумящий. Практически его можно заменить на МП39 — 42, с ухудшением шумовых характеристик соответственно или на кремниевые транзисторы КТ361 или КТ3107 с любой буквой.. Для предотвращения искажений типа «ступенька», между базами VT2, VT3, фазоинверсного каскада включен диод VD1 — Д9, с любой буквой, благодаря чему на базах транзисторов образуется напряжение смещения. Напряжение в средней точке (минусовой вывод конденсатора С2) будет равно 4,5в. Его устанавливают подбором резисторов R2, R4. Максимально допустимое рабочее напряжение конденсатора С2 может быть 6в.

Ниже приведены принципиальные схемы и статьи по тематике «звонок» на сайте по радиоэлектронике и радиохобби сайт .

Что такое «звонок» и где это применяется, принципиальные схемы самодельных устройств которые касаются термина «звонок».

Данное устройство будет полезно тем, у кого в квартире несколько комнат, а телефонный аппарат (ТА) один и его звонок можно не услышать из соседней комнаты или кухни. Наиболее простым выходом из положения может быть подключение параллельно к ТЛ еще одного звонка в другой комнате… Устройство, схема которого показана ниже, позволяет получить довольно приятные не повторяющиеся трели. Это достигается за счет использования генератора псевдослучайной последовательности (ПСП), собранного на логических микросхемах DD1…DD3. Его построение хорошо известно… Простой мелодичный звонок для квартиры, схема которого представлена на рис. 16.3.0, содержит минимальное количество деталей и его может собрать любой радиолюбитель мало-мальски владеющий паяльником. Звучание (частоту генерируемых колебаний) звонка подбирают вращением оси… В обычный дисковый телефонный аппарат можно вдохнуть новую жизнь, если в нем заменить электромагнитный звонок на электронный, собранный по схеме ниже. После такой замены звук телефона станет более приятным и мелодичным. Схема звонка собрана на одной микросхеме K176ЛA7 и двух… Мелодичный звонок устанавливают вместо обычного квартирного электрического звонка. Звонок звучит трелями, которые можно менять путем несложной его переделки. В мелодичном звонке использованы две логические микросхемы и три транзистора. Частота колебаний генератора… Схема двухтонального звонка на микросхемах собран на двух микросхемах и одном транзисторе. Логические элементы D1.1—D1.3, резистор R1 и конденсатор С1 образуют переключающий генератор. При включении питания конденсатор С1 начинает заряжаться через резистор R1. По мере заряда конденсатора… Электрический квартирный звонок может звучать канарейкой, если смонтировать несложное устройство по следующей схеме. Звонок состоит из генератора «канарейка» (транзисторы V1, V2) и автомата задержки времени (транзисторы V3 и V4). Последнее необходимо для того, чтобы время… Описанная схема служит для создания простой мелодии приятного звучания. Может быть использована как дверной звонок, звуковой сигнализатор, будильник электронных часов. Все устройство построено с использованием одной интегральной микросхемы. Элемент А микросхемы 4093 с элементами R1, P1, С4… Представленная музыкальная шкатулка может заменить традиционный дверной звонок. Построена на интегральной микросхеме UM3482A. Воспроизводит 12 популярных мелодий. Интегральнаямикросхема построена по технологии CMOS. В своей структуре она имеет постоянную память ROM, в которой записаны мелодии…. Предлагаемый дверной звонок характеризуется очень приятным звучанием. Используемая в его конструкции специализированная интегральная схема фирмы HOLTEK HT2828D имеет сложную внутреннюю структуру, благодаря чему количество внешних элементов, необходимых для данного устройства, сведено к минимуму. Элементы комплекта позволяют собрать звуковой сигнализатор, имитирующий звучание трех тонового гонга. Особенностью схемыявляется наличие трех кнопок. Нажатие каждой из них воспроизводит звук иного звучания. Рис. 1. Внутреннее строение схемы НТ2823. Рис. 2. Принципиальная схема. … При подаче питания на схему раздается звуковой сигнал, очень похожий на птичьютрель. Питание подается через звонковую кнопку. Источник питания — батарея напряжением 9V. Режим работы транзистора по постоянному току выставляется резистором R1. Генерация зависит от С1 и С2, а так же индуктивности… Чтобы просигнализировать о том, что кто-то пришел, можноподвесить над дверью колокольчик, на такой высоте, чтобы открывающаяся дверь его задела. Конечно, можно очень осторожно открыть дверь и придержать колокольчик рукой… Но не в этом дело, просто захотелось сделать электронный эквивалент такого… Это устройство предназначено для проводного дистанционного вызова до семи абонентов. Его можно использовать как квартирный звонок в коммунальной квартире, как звонок для вызова сотрудников из разных офисов или отделов, и для других целей, например, для семикомандного дистанционного управления… Принципиальная схема звонка для дверей с гармоничным звучанием, выполнен на микросхеме MC14093CP. Квартирные звонки, сейчас, обычно бывают электрические или электронные. Электрические издают звук либо звенящей трещотки, либо колокола. А электронные воспроизводят фрагменты музыкальных… Принципиальная схема самодельного электронного звонка на микросхеме CD4060, собираем полезное устройство своими руками. Существует множество схем электронных дверных квартирных звонков. Обычно они выполнены на специализированных микросхемах — музыкальных или звуковых синтезаторах, либо… При желании заменить обычный механический звонок велосипеда электронным, можно сделать такое несложное устройство, схема которого описывается здесь. Главным достоинством этого устройства является мизерный ток потребления при достаточной громкости звучания. Достигнуто это тем, что в качестве… Схемы устройств, простроенных с применением квартирного радиозвонка, интересные самоделки для дома. Сейчас в каждом магазине электротоваров можно купить квартирный радиозвонок. Это устройство, состоящее из двух блоков, — передатчика и приемника. Передатчик «радиокнопка», представляет…

Двухтональный звонок содержит управляющий генератор, собранный на элементах D1.1-D1.3 микросхемы К155ЛАЗ и вырабатывающий управляющие импульсы, частота которых зависит от емкости конденсатора С1 и сопротивления резистора R1.

При указанных на схеме номиналах частота переключений генератора равна 0,7…0,8 Гц. Импульсы управляющего генератора подаются на генераторы тона и поочередно подключают их к усилителю звуковой частоты, собранному на транзисторе, VI. Первый генератор выполнен на элементах микросхемы D1.4, D2.2, D2.3 и вырабатывает импульсы частотой 600 Гц (регулируется подбором элементов С2, R2), второй генератор выполнен на элементах D2.1, D2.4, D2.3 и работает с частотой 1000 Гц (регулируется подбором элементов СЗ, R3). Громкость звучания регулируют резистором R5.

Детали. Резисторы типа МЛТ-0,125, подстроечный резистор типа СПЗ-16; конденсаторы С1-СЗ типа К50-6; микросхема К155ЛАЗ, К133ЛАЗ, К131ЛАЗ, К158ЛАЗ; транзисторы КТ603В, КТ608, КТ503 с любым буквенным индексом.

Двухтональный звонок на микросхемах собран на двух микросхемах и одном транзисторе.


Логические элементы D1.1-D1.3, резистор R1 и конденсатор С1 образуют переключающий генератор.

При включении питания конденсатор С1 начинает заряжаться через резистор R1. По мере заряда конденсатора повышается напряжение на его обкладке, соединенной с выводами 1, 2 логического элемента D1.2. Когда оно достигнет 1,2…1,5 В, на выходе 6 элемента D1.3 появится сигнал логической «1» (4 В), a нa выходе 11 элемента D1.1 — сигнал логического «0» (0,4 В). После этого конденсатор С1 начинает разряжаться через резистор R1 и элемент D1.1. В итоге на выходе 6 элемента D1.3 будуг формироваться прямоугольные импульсы напряжения. Такие же импульсы, но сдвинутые по фазе на 180°, будут на выводе 11 элемента D1.1, выполняющего роль инвертора.

Продолжительность заряда и разряда конденсатора С1, а значит, частота переключающего генератора, зависит от емкости конденсатора С1 и сопротивления резистора R1. При указанных на схеме номиналах этих элементов частота переключающего генератора составляет 0,7…0,8 Гц.

Импульсы переключающего генератора подаются на генераторы тона. Один из них выполнен на элементах D1.4, D2.2, D2 3, другой — на элементах D2.1, D2.4, D2.3. Частота первого генератора — 600 Гц (ее можно изменять подбором элементов С2, R2), частота второго — 1000 Гц (эту частоту можно изменять подбором элементов СЗ, R3). При работающем переключающем генераторе на выходе генераторов тона (вывод 6 элемента D2.3) будет периодически появляться то сигнал одного генератора, то сигнал другого. Затем эти сигналы поступают на усилитель мощности (транзистор V1) и преобразуются головкой В1 в звук. Резистор R4 необходим для ограничения тока базы транзистора. Подстроечным резистором R5 можно подобрать нужную громкость звучания.

Постоянные резисторы-МЛТ-0,125, подстроечный-СПЗ-1Б, конденсаторы С1-СЗ — К50-6. Логические микросхемы К155ЛАЗ можно заменить на К133ЛАЗ, К158ЛАЗ, транзистор КТ603В — на КТ608 с любым буквенным индексом. Источником питания служат четыре последовательно соединенных аккумулятора Д-0,1, батарея 3336Л или стабилизированный выпрямитель на 5 В.


Схема звонка со звуком Биг-Бена

Этот звуковой эффект можно создать схемотехнически при помощи двух микросхем таймеров.

Первый генератор настроен на частоту 1 Гц, а второй промодулирован изменяющимся сигналом с выхода первого. Частоту каждого из генераторов можно изменять сопротивлениями R1 и R2. Резистором R1 можно регулировать скорость переключения с одного тона на другой, а сопротивлением R2 — тональность звукового сигнала. Динамик рассчитан на сопротивление восемь Ом.

Сейчас в продаже встречаются самые разнообразные маломощные средства связи, доступные без регистрации, — такие как УКВ-карманные радиостанции, радиоуправляемые игрушки, а недавно появились и радио сигнализаторы. Вообще, радиолюбительская конструкция очень интересная в смысле широты применения. Состоит из двух блоков, — кнопки-пульта и собственно сигнализатора.

К аноду тиратрона подключено реле, например РЭС6), тыловые контакты которого соединяется параллельно контактам питающим обычный дверной звонок. Для защиты от ложных срабатываний сенсора и зажигания тиратрона, используется параметрический стабилизатор, построенный на стабилитроне VD1 и балластном сопротивлении R3.

Сенсор сделан из алюминиевой заклепки, сопротивление R1 и тиратрон расположены в небольшом корпусе. Для индикации срабатывания сенсора напротив тиратрона в корпусе сделано отверстие. При касании «заклепки» тиратрон ярко вспыхнет. Регулировка схемы сенсорного устройства заключается в установке переменным сопротивлением R5 напряжения 170 В на оксидном конденсаторе при минимальном сетевом напряжении такое напряжение можно подать, используя автотрансформатор. Конструкция позаимствована из №6 1990.

Конструкция состоит из управляющего генератора, на элементах D1.1-D1.3 цифровой ИМС К155ЛАЗ, вырабатывающий импульсы управления, частота которых определяется номиналом емкости С1 и сопротивления R1

При заданных номиналах частота переключений генератора 0,7…0,8 Гц. Импульсы с него поступают на генераторы тона и поочереди подсоединяют их к УНЧ, собранному на транзисторе. Первый генератор построен на элементах D1.4, D2.2, D2.3 и генерирует импульсы частотой следования 600 Гц, второй генератор состоит из D2.1, D2.4, D2.3 и работает с частотой 1000 Гц, которая регулируется подбором СЗ, R3. Громкость звучания регулируют R5.

Конструкция проста в сборке и регулировке. Основой являются три задающих генератора пилообразного напряжения, каждый из них работает на своей частоте.

F=1/(2C1R2ln(1+2R3/R1))

где C1 — в фарадах, R1, R2, R3 — в омах. Сигналы с выхода всех трех генераторов смешиваются и поступают на усилитель, которых нагружен на восьми омную нагрузку.

Первая конструкция заменяет дверной колокольчик, и срабатывает при открытии двери, реагируя даже на незначительное изменение ее положения, а в другой отпадает вопрос связанный с ее подключением

Ограничение времени звучания дверного звонка

Как известно они, включаются кнопкой у двери и работают, пока нажата кнопка. Если кнопка случайно закоротиться, что бывает при ее изготовлении из недоброкачественной пластмассы, или ее специально замкнут, например, с помощью спички, то звонок будет работать непрерывно. Звонок не рассчитан на такой режим работы. В лучшем случае он сгорит, а в худшем возможен пожар.

Когда звонящий долго держит кнопку нажатой, то долгий звон действует на нервы, поэтому желательно сделать ограничитель времени звучания до 5-7 с. Описанная ниже конструкция ограничения времени позволяет это сделать.

Работа схемы такова. При нажатии кнопки SB1 (у двери) напряжение подается через нормально замкнутые контакты К1.1 на звонок. Он начинает звучать. Одновременно напряжение подается на цепочку R1, VD1, K1, C1. В первоначальный момент С1 представляет короткое замыкание для тока, ограниченного резистором R1. Конденсатор С1 начинает заряжаться через R1, VD1. Через несколько секунд С1 зарядится до напряжения срабатывания реле К1. Реле срабатывает, контакты К1.1 размыкаются и звонок отключается от сети. При отпускании кнопки SB1 конденсатор С1 разряжается через обмотку реле К1. Когда напряжение на С1 станет меньше напряжения отпускания реле К1, оно возвратится в исходное состояние, контакты К1.1 замкнутся и можно вновь звонить. Подбором R1 и C1 можно регулировать время звучания сигнала.

Схема одного звонка на две двери

Если квартира или дом имеют два входа, не всегда понятно, откуда звонят. Эта конструкция избавит нас от этого недостатка. Когда нажимают на кнопку S2, реле самоблокируется. Одновременно светится вторая индикаторная лампа. Звонок будет звенеть до тех пор, пока есмкость С1 не зарядится до уровня напряжения питания. Если необходимо подать сигнал повторно, S2 отпускают, и С1 разряжается через обмотку. Лампа h3 продолжает гореть пока не будет разомкнута S3.


Если гости нажимают кнопку S1 звонок звучит параллельно с включением индикаторной лампы Н1. Продолжительность звучания одна секунда, пауза — 2 секунды.

Электронный звонок

При подаче питания на схему раздается звуковой сигнал, очень похожий на птичью трель. Питание подается через звонковую кнопку. Источник питания — батарея напряжением 9V. Режим работы транзистора по постоянному току выставляется резистором R1. Генерация зависит от С1 и С2, а так же индуктивности первичной обмотки трансформатора. Трансформатор взят готовый выходной от старого транзисторного приемника «Юность». В принципе подойдет трансформатор от любого транзисторного приемника с двухтактным трансформаторным УНЧ. Динамик — любой.

Кривлов П. Журнал Радиоконструктор №12-2015

Музыкальный звонок


Это устройство является самым простым и экономичным из всех, что опубликованы в литературе. В основном такой звонок предназначен для использования в качестве квартирного, хотя может найти и другие применения, например в игрушках или как звонок будильника.

Схема выполнена на основе микросхемы музыкального синтезатора BT66T-2L (рис.1). Внутри у нее есть RC-генератор и формирователь мелодии, которая состоит из 127 нот и периодически повторяется. Элементы С1, R2, VT1, VT2 задают время работы звука, a VT3 — усилитель мощности. Последний транзистор устанавливается, только если надо увеличить громкость работы звукового излучателя (ВА1 можно подключать непосредственно к выходу синтезатора, как это показано пунктиром).

Рис. 1. Электрическая схема музыкального звонка

После нажатия на кнопку SB1 время звучания сигнала зависит от емкости С1 и сопротивления R2 (с указанными на схеме номиналами составляет примерно 2…3 с). При желании можно увеличить время звучания, увеличив С1.

Питание осуществляется от двух гальванических элементов по 1,5 В. В режиме ожидания энергопотребление практически равно нулю, так как все транзисторы находятся в закрытом состоянии (будет равняться току утечки конденсатора С2), поэтому включатель не требуется.

Рис. 2. Топология печатной платы и расположение элементов

Для монтажа элементов можно воспользоваться печатной платой, показанной на рис.2. Детали подойдут любые.

Малышев С.Ю. г. Мариуполь

Сенсорный квартирный звонок

Схема сенсорного квартирного звонка приведена на рис. 1.

Звонок В1 будет включаться при прикосновении к сенсорному контакту Е1, которым может служить любой токопроводящий предмет, электрически изолированный от «земли».

При прикосновении к сенсорному контакту Е1, наведенное на базе транзистора VТ1 напряжение открывает его, вызывая открывание и транзисторов VT2 и VT3. При этом звонок В1 подает звуковой сигнал.

В схеме сенсорного квартирного звонка применены высоковольтные транзисторы, а резистор R1 должен иметь мощность не менее 1 Вт.

Внимание! При налаживании устройства необходимо помнить, что его элементы находятся под опасным сетевым напряжением!

С сайта http://radiolub.ru

Схема сенсорного дверного звонка на микросхеме

Трансформатор T1-выходной трансформатор от малогабаритного транзисторного радиоприемника. Динамическая головка ВА1 мощностью 0,05-0,5 Вт со звуковой катушкой сопротивлением 4-50 Ом.

Источник питания — батарея «Крона», «Корунд» или две батареи 3336, соединенные последовательно. Сенсорный элемент можно изготовить из фольгированного текстолита. Расстояние между контактными площадками должно быть 1,5…2 мм, а промежуток между ними защищен от грязи и влаги лаком или краской. Форма контактов сенсорного элемента может быть любой.

Налаживание звонка сводится к подбору конденсатора С1 для получения требуемой тональности звукового сигнала при конкретной конструкции сенсорного элемента.

Рис. 1. Схема сенсорного дверного звонка (а) и его монтажная плата (б)

И.А. Нечаев. Массовая Радио Библиотека, Выпуск №1172, 1992 год.

Простой дверной звонок

Встречаются ситуации, когда возникает необходимость в простейшем звонке в дверях, обладающем достаточной громкостью и содержащем минимум деталей. Схема дверного звонка , приведенная на рисунке, состоит из бестрансформаторного источника питания с гасящим конденсатором С1 и простого генератора звуковых частот, собранного на транзисторах VT1 и VT2.

Резистор R2 служит для ограничения пикового тока через диоды моста VD1…VD4. Для запуска звонка нажать кнопку SB1. Правильно собранное из исправных деталей устройство в наладке не нуждается. Конденсатор С1 используется типа МБГЧ, К42-19, К73-17, К78-4. Вместо указанных на схеме транзисторов VT1 и VT2 можно применить транзисторы типа МП40 , МП41 , МП42 и МП36 , МП38 соответственно. Динамическая головка ВА1 должна быть мощностью 1-3 Вт, типа 1ГД36 , 1ГД40 , 2ГДШ9 , ЗГДШ1 .

С сайта http://radiopill.net

Самодельный звонок на базе абонентского громкоговорителя

Предлагаемое устройство выполнено на базе обычного трансляционного громкоговорителя, содержит минимум деталей и способно подать достаточно сильный звуковой сигнал, ведь излучатель — динамик. Питание такого звонка осуществляется от автономного низковольтного источника (батарейки). Устройство не потребляет энергии в режиме ожидания и абсолютно безопасно.

Рис.1. Принципиальная электрическая схема самодельного звонка на базе абонентского громкоговорителя.

Ввиду малого количества деталей нет смысла изготавливать печатную плату. Монтаж выполняется навесным способом. В качестве опор при пайке используются выводы динамика, трансформатора, 68-килоомного потенциометра.

Регулятор громкости базового громкоговорителя — R1 на принципиальной электрической схеме выполняет функцию регулятора высоты тона генерируемого сигнала, которая устанавливается по желанию. Выключатель (тумблер, кнопка или иной контактный соединитель) размещается в удобном месте у входа в подъезд, секции на этаже или входной двери квартиры.

В качестве транзистора VT1 подойдёт любой из числа маломощных германиевых МП39 — МП42. Столь же некритичен выбор резистора R2, подойдут самые что ни на есть распространенные ВС, МЛТ, УЛМ с номинальной мощностью 0,125 Вт и более. Конденсатор — любого типа. Элементы R1, Т1 и ВА1 — от трансляционного громкоговорителя.

Случается, что правильно собранный звонок при подключении питания не работает. Тогда следует поменять местами концы одной из обмоток трансформатора Т1. Однако отсутствие генерации на звуковой частоте может быть и следствием некондиционности транзистора VT1. В таком случае придется заменить его другим, имеющим больший коэффициент усиления.

Если диапазон перестройки высоты тона потенциометром R1 не устраивает, то его легко изменить подбором емкости конденсатора С1. Но звучание данного звонка зависит и от напряжения питания. По изменению высоты тона звонка можно также судить и о степени разряженности источника питания и своевременно менять подсевший гальванический элемент или батарею. Только не следует забывать при этом о соблюдении полярности, ведь транзистор не терпит переполюсовок.

В.Беседин, г.Тюмень

Дверной звонок схема

Войти на сайт Логин:. Сделать стартовой Добавить в закладки. Мы рады приветствовать Вас на нашем сайте! Мы уверены, что у нас Вы найдете много полезной информации для себя, читайте, скачивайте, все абсолютно бесплатно и без паролей.


Поиск данных по Вашему запросу:

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

По завершению появится ссылка для доступа к найденным материалам. ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Подключение звонка

Подключение дверного звонка самостоятельно


Дверные звонки в наши дни делятся на две большие группы — проводные и беспроводные. Вторые оставим пока в стороне и рассмотрим классические звонки с питанием от сети Вольт. Несмотря на всю простоту, даже эта задача таит «ловушки», о которых мы расскажем в небольшой статье ниже.

Давайте разберёмся! Самый частый вариант. Вам понадобится кнопка , провод нужной длины и отвёртка- индикатор , чтобы искать фазу. В этой схеме, провод Вольт из щитка его нужно будет найти в коробке присоединяется одним концом к проводу кнопки , а другим — к проводу звонка. Оставшиеся свободными провода от звонка и кнопки соединяются между собой — всё очень просто.

Немало людей, купивших звонок, были поставлены в тупик тем, что на нём не две, а четыре клеммы. И как сюда прикажете присоединять два провода? Но на деле всё просто : именитые производители таким образом пытаются упростить нам жизнь хотя получается наоборот.

Назначение двух лишних клемм становится понятно, если посмотреть на схему ниже :. Здесь, по сути, роль распаечной коробки играет сам звонок: всё, что вам нужно, что подключить к нему провода от кнопки и две жилы с питающим напряжением Вольт.

В том случае, когда для включения звонка используется «красивая» металлическая кнопка , по соображениям безопасности , её запитывают пониженным напряжением — 8, 12 или 24 Вольта. Для такой схемы нужен звонок с низковольтным управлением уточните этот момент у продавца! Взгляните на схему ниже:.

В щитке устанавливается «звонковый» трансформатор , имеющий стандартные модульные размеры как у автоматов. От него, в распаечную коробку ведётся провод с низким напряжением , где соединяется с проводами от кнопки и от звонка. Обратите внимание, что к звонку подключается как провод низкого напряжения, так и обычные Вольт, от которых питается звенящий элемент.

Конечно, внешний вид звонка может отличаться, клеммы обычно спрятаны внутри , и так далее. Но, имея в голове как схемы выше, так и общий принцип подключения, вы без труда разберётесь , что к чему и успешно подключите ваш звонок. Удачного монтажа!


3 возможных схемы подключения дверного звонка

Возвестить хозяев дома о том, что к ним пришли, можно разными способами: покричать, постучать или позвонить по телефону. Но проще всего сделать это при помощи дверного звонка. Некоторые люди считают, что прибор не очень важен, и его выбору не уделяют необходимого внимания. Но к выбору дверного звонка надо подходить со знанием дела, для чего сначала следует ознакомиться с существующими видами оборудования, знать достоинства и недостатки таких приборов. Ещё совсем недавно при покупке дверного звонка не было большого выбора и можно было приобрести либо электромеханическую модель, либо электронный прибор со стандартным набором мелодий.

Схема подключения дверного звонка в квартире — подробная инструкция с фото и видео Эти простейшие элементы сигнализации монтируются.

Установка и подключение дверного звонка своими руками: 3 типа устройства

В настоящее время существует множество различных моделей дверных звонков, с разнообразным принципом работы и потребительскими характеристиками. При этом используются совершенно различные схемы подключения и соответственная проводка под них. Чаще всего звонок выбирается под уже существующие условия установки под определенную схему подключения , созданные в квартире. В случае же ремонта, когда имеется возможность прокладывать новую электропроводку, можно выбирать тип используемого электрозвонка. По способу управления все дверные звонки можно разделить на два типа:. Питание дверных звонков может быть, как автономным звонки работают от аккумуляторов или батареек , так и стационарным дверные элетрозвонки подключаются к квартирной сети в. Выбор в пользу того или иного типа звонка, зависит от существующих условий для его подключения, а именно того, какая выполнена проводка. Ведь обычно, главный блок звонка расположен внутри помещения, а управляющая кнопка снаружи, при этом между ними должна быть обеспечена связь.

Как сделать музыкальный звонок своими руками

Схема дверного звонка Категория: Разное. Схема музыкального квартирного звонка Схема мощной музыкальной сирены Схема музыкальной подставки будильника Схема музыкального звонка Схема мото сигнализации Схема комбинированного измерительного прибора Схема портативной сигнализации Схема запоминающего звонка. Чем удобнее всего паять? Паяльником W.

Схему подключения любого дверного звонка от сети вы можете видеть на рисунке, добавить можно лишь то, что кнопка в исходном состояние разомкнута, и в момент нажатия и сработает звуковой сигнал реализованный в схеме.

Как подключить дверной звонок: три схемы на все случаи жизни!

Дверные звонки в наши дни делятся на две большие группы — проводные и беспроводные. Вторые оставим пока в стороне и рассмотрим классические звонки с питанием от сети Вольт. Несмотря на всю простоту, даже эта задача таит «ловушки», о которых мы расскажем в небольшой статье ниже. Давайте разберёмся! Самый частый вариант. Вам понадобится кнопка , провод нужной длины и отвёртка- индикатор , чтобы искать фазу.

Как собрать беспроводной дверной звонок по принципиальной схеме?

При желании заменить обычный механический звонок велосипеда электронным, можно сделать такое несложное устройство, схема которого описывается здесь. Главным достоинством этого устройства является мизерный ток потребления при достаточной громкости звучания. Достигнуто это тем, что в качестве Принципиальная схема самодельного электронного звонка на микросхеме CD, собираем полезное устройство своими руками. Существует множество схем электронных дверных квартирных звонков.

Дверные звонки такие же важные по значимости элементы входных.

Дверные звонки такие же важные по значимости элементы входных конструкций, как и замочные устройства или глазки. Основная задача этих устройств — издавать звуковой сигнал, оповещающий о приходе гостей. Их устанавливают на входные блоки производственного, офисного и жилого помещения. На современном рынке бытовой электроники дверные звонки представлены в широком ассортименте.

Статья Видео. Самым простым вариантом установки квартирного звонка является подключение основного блока к одной кнопочке, находящейся у двери. Именно такой тип подсоединения используется в большинстве квартир, как старого образца, так и новостроек. Электрическая схема подключения дверного звонка предоставлена ниже:.

Нажав кнопку звонка, можно услышать неприятное дребезжание, а можно наслаждаться прекрасными звуками классических мелодий Бетховена или Моцарта.

Прикладная наука не стоит на месте. Благодаря этому наша жизнь становится комфортной и безопасной. Так в быту появляются новые приборы и гаджеты, усовершенствуются старые. Они становятся компактными, универсальными и стремительно избавляются от проводов. Аналогично дело обстоит и с дверными звонками.

Эти простейшие элементы сигнализации монтируются практически в каждом строении, и объяснять, зачем они нужны, не имеет смысла. Сделать это несложно, если разобраться с его устройством и схемой включения. Все образцы подразделяются на две большие группы — проводные звонки и модели, состоящие из передатчика и приемника.


Установка звонка в квартиру: схема и пошаговая инструкция

Среди электромонтажных работ есть такие, которые не требуют вызова специалиста. Зная принципы построения электрических цепей, можно самостоятельно заменить электрический звонок. Согласитесь, это прекрасная возможность обрести новые навыки и сэкономить.

Но даже при выполнении самых простых работ с электроустановками и проводами необходимо знать как основы, так и мелкие, но важные нюансы монтажа: выбор схемы и места установки,  в распаечной коробке, устройство электрощиты.

Мы поможем вам более детально разобраться в этапах монтажа и расскажем подробно, как выполняется установка звонка в квартиру. А для начала разберем виды устройств и несколько популярных схем.

Содержание статьи:

Конструкция и виды электрозвонков

По принципу действия и особенностям конструкции электрические модели можно разделить на 2 большие категории: электромеханические и электронные. Их объединяет принцип работы – звук раздается при нажатии на кнопку. В этот момент замыкаются контакты и подается напряжение.

Звук в электромеханических звонках раздается за счет работы электромагнитной катушки и взаимодействия ударного механизма с электрической пластиной. Регулировки у таких моделей нет, а качество и громкость звука зависят от материала и размеров пластины, молоточка и чаши.

Конструкция электромеханического звонка. Традиционное однообразное звучание раздается в момент, когда молоточек начинает ударять по чаше. Благодаря устройству чаши звук получается гулким и громким

Электронные изделия отличаются внутренней начинкой. Вместо взаимодействующих металлических деталей внутри коробки расположены электроника и громкоговоритель. Преимущество в том, что можно настроить громкость звука, а у некоторых моделей – выбрать мелодию.

Электронные модели, в свою очередь, делят на 2 группы:

  • Проводные, у которых все части соединены проводами. Плюсы: понятная конструкция, легкий монтаж, надежность. Минусы: зависят от подачи электричества, требуют сверления и штробления стен.
  • Беспроводные, подающие сигналы радиоволнами. Они работают на батарейках или аккумуляторах, реже – от сети. Плюсы: не зависят от подключения к электросети, кнопка защищена от пыли и влаги, простая установка. Минусы: ограниченное расстояние между блоками, регулярная замена элементов питания.

Еще есть видеозвонки с камерой, но об их конструкции, способе установки и принципе действия нужно говорить отдельно. Мы же остановимся на актуальных электронных моделях, которые в большом количестве присутствуют на отечественном рынке.

Обзор схем подключения

От выбора схемы зависит объем подготовительных и монтажных работ. Сама же схема подбирается с учетом нескольких критериев: вида и количества устройств, необходимости в подключении к автоматике, способа передачи сигнала. Рассмотрим самые распространенные проводные варианты.

#1 – Схема подключения старой модели

Последовательность подключения старой модели с «колоколом» или «чашей» может пригодиться, если вы затеяли смену электропроводки, но менять само устройство не хотите.

Схема простая и понятная: оба проводника сети, ноль и фаза, направлены к 2-м клеммам или проводам звонка, но фаза предварительно заведена в кнопку.

Распредкоробка соединяет три провода: один идет от звонка, второй – от кнопки, третий – от автомата защиты, который установлен в электрощите, в квартире или на лестничной площадке

Кабель, обслуживающий кнопку и идущий от распределительной коробки, проложен через отверстие в стене, чаще всего – около входной двери.

Раньше за работы по установке звонка отвечала строительная компания и прокладка сетей проектировалась изначально. Сейчас новые дома нередко сдают с недоделками, поэтому приходится самостоятельно штробить стены и проделывать отверстия в стене.

Некоторые беспроводные модели подключать легче – их не нужно интегрировать в общую сеть, так как питание идет от розетки. В этом случае придется найти или для звонка.

Нагрузки контура небольшие и кратковременные, поэтому можно использовать тонкие медные провода 2*1,5 или 3*1,5. Алюминиевые кабели малого сечения применять запрещено.

#2 – Один или два звонка на 2 кнопки

В некоторых домах планировка мест общего пользования такова, что для 2-3 квартир образуется тамбур, то есть на пути гостя возникает еще одна дверь. Чтобы можно было вызвать хозяина одной из квартир или любого жильца, звонок устанавливают и на дверь квартиры, и на общий вход.

Для разведения сети на две кнопки используют дополнительный 2-жильный кабель и параллельное соединение. В результате не нужно устанавливать 2 звонка – один и тот же будет звенеть при нажатии на любую кнопку

Может оказаться полезной и схема, при которой 2 кнопки присоединены к двум звонкам, и при нажатии любой из кнопок срабатывают оба устройства.

Отличительные черты схемы: использование 3-жильного кабеля, идущего от распредкоробки к кнопкам, и подключение 2-го звонка отдельным проводом

Фазу, идущую из распаечной коробки, соединяют перемычкой с контактами кнопок, а соединительные провода направляют отдельно – от каждой кнопки к своему звонку. Для корректного применения кнопки лучше подписать.

#3 – Схемы подключения современных моделей

Квартиры в старых домах оснащали проводкой с применением системы TN-C, сейчас же применяется TN-S/TN-C-S.

Современные сети имеют дополнительный проводник PE, обеспечивающий заземление. Все жилы типа «земля», соединенные с металлическими корпусами, соединяют в распределительной коробке и заземляют на щитке.

В инструкции к изделию указано, какие провода нужно использовать при подключении. Если необходимо заземление, нужен 3-жильный провод. Проводник «земля» обозначен желто-зеленой маркировкой

Если кнопка металлическая, ей также требуется заземление.

Для пластиковых изделий подходит более простая схема – с 2-мя контактами. Это самый востребованный вариант.

Но есть модели с 4-мя клеммами. Они не должны ставить в тупик, так как всего лишь упрощают монтаж проводки.

При установке звонка с 4-мя клеммами распределительная коробка не нужна. Ее функцию выполняет корпус звонка: к 2-м клеммам подключаются провода, идущие от кнопки, к другим 2-м – идущие от силовой линии

Если в комплекте со звонком есть трансформатор, то применяется другая схема подключения.

Схема для звонка с безопасным низковольтным управлением. Кнопку запитывают напряжением 12-24 В, а проводники соединяют в отдельной распредкоробке

В электрощите монтируют трансформатор для звонка, по размерам напоминающий обычный автомат. От него в распредкоробку направляют кабель с низким напряжением.

К звонку подключают оба провода: и с низким напряжением, и силовой на 220 В, идущий от блока с устройством, издающим звук.

Есть и другие схемы подключения – точную информацию советуем брать только из технической документации и инструкций по установке.

Пошаговая инструкция по монтажу звонка

Монтаж кнопки и внутреннего блока производят согласно инструкции, которая обязательно есть в комплекте у новых изделий. Мы предлагаем общую инструкцию, подходящую для стандартной проводной модели, состоящей из 2-х основных рабочих блоков – кнопки и самого звонка.

Шаг 1 – материалы и инструменты

Инструменты лучше приготовить сразу, чтобы не отвлекаться лишний раз во время работы. Если планируется штробить стены, пригодятся штроборез, перфоратор или дрель. При необходимости их можно позаимствовать у друзей или взять в аренду. Остальные устройства и принадлежности не такие громоздкие.

«Грязные» работы лучше выполнять вместе с ремонтом коридора или прихожей, тогда провода будут надежно «зашиты» в штукатурку и внешний вид стен в результате не пострадает

Комплект инструментов и материалов для установки звонка:

  • строительный нож;
  • набор отверток;
  • отвертка-индикатор;
  • шурупы и шуруповерт;
  • изолента;
  • клеммы.

Соединение проводов можно выполнять не только – ими просто быстрее и удобнее. Некоторые до сих пор используют пайку, тогда потребуется и паяльник.

Не рекомендуем обходиться скрутками без применения пайки – это ненадежный и опасный способ соединения жил.

Для наружного монтажа кабелей, при котором не придется штробить стены, пригодятся защитные кабель-каналы. Это вариант для прихожих со свежим ремонтом

Если в комплекте вместе со звонком нет кабеля, его нужно докупить. Перед покупкой загляните в схему монтажа и уточните, требуется: 2- или 3-жильный.

Шаг 2 – подготовительные работы

Если вы устанавливаете беспроводную модель, подготовка не нужна. Она требуется, когда необходимо проложить путь для проводов, соединяющих элементы контура.

Сложнее всего просверлить отверстие и продолбить канавки в бетонной стене. Для этого сделайте разметку, а затем воспользуйтесь специальным электроинструментом: штроборезом, перфоратором, ударной дрелью

Отверстие обычно просверливают около входной двери. Иногда его аккуратно маскируют наличниками. Провода для кнопки выводят наружу, примерно на высоте 150-160 см от пола, для корпуса звонка – к месту его установки. Обычно это зона под потолком  над дверью или чуть сбоку от нее.

Если требуется подключение к электрощитку, продумайте путь и до шины заземления. При наличии у звонка адаптера с вилкой место монтажа корпуса выбирайте так, чтобы он органично смотрелся на стене.

Провода укладывают в проделанные штробы, сверху покрывают штукатуркой. Чтобы стены и корпус звонка выглядели аккуратно, финишную отделку стен рекомендуем выполнять только по окончании установки крепежных элементов.

Шаг 3 – установка корпуса звонка

Сначала выполняем подключение проводников, а затем устанавливаем корпус на кронштейн или держатель. Иногда это просто 1-2 самореза для «ушек».

Перед подключением убираем напряжение с задействованного контура – отключаем в электрощитке защитный автомат и предупреждаем окружающих, чтобы его не включали

Торчащие из стены жилы выводим, согласно схеме, в корпус через специальное отверстие или откручиваем крышку. Находим клеммы, заводим , закручиваем.

Нередко в дорогих или импортных изделиях установлены самозажимные клеммы, провода в которых фиксируются одним нажатием.

Закрываем крышку, «насаживаем» корпус на шурупы, саморезы или болты. Если предварительно установлен специальный кронштейн – просто фиксируем на защелку

Есть изделия, корпус которых нужно прикрутить к планке. Тогда сначала вкручиваем шурупы, а уже потом закрываем крышку. В результате правильной установке видна только лицевая декоративная панель, крепеж незаметен.

Шаг 4 – монтаж кнопки

Очередность установки кнопки и внутреннего блока значения не имеет, можно сначала подключить кнопку, а затем корпус. Стандартная высота установки – 150-160 см, но иногда, по объективным причинам, ее фиксируют чуть ниже. От косяка лучше отступить 10-15 см.

Сначала так же точно заводят провода в корпус, присоединяют их к клеммам, затем защелкивают крышку и фиксируют корпус кнопки на стене

Если в комплекте вы обнаружили двусторонний скотч – он и предусмотрен для крепления кнопки к стене. Но гораздо надежнее, если ее прикрутить на шурупы или саморезы.

После установки всех элементов на щитке включают автомат и проверяют работу звонка. Если есть возможность, регулируют громкость.

Выводы и полезное видео по теме

Подробный инструктаж от российского производителя кабельной продукции:

Вариант самостоятельной установки:

С появлением домофонов и мобильных телефонов необходимость в обязательной установке дверного звонка отпала. Но он все еще остается полезным устройством, заметно облегчающим жизнь – если, например, в вашем подъезде не установлен домофон.

Самостоятельный монтаж прост и является неплохой тренировкой для дальнейших, более серьезных практик в области электрообеспечения собственного жилья. Но, работая с электричеством, не забывайте про безопасность – собственную и окружающих.

Если вам знакома установка звонка в квартире или доме – приглашаем поделиться личным опытом. Возможно, вы столкнулись с трудностями при монтаже, давайте их обсудим вместе с нашими читателями. Переходите в комментарии, задавайте вопросы нашим экспертам и другим посетителям сайта.

Схема дверного звонка » S-Led.Ru


Чтобы знать о том, что кто-то вошел на дверь вешают колокольчик, — дверь открываясь задевает колокольчик. А еще бывает электрический квартирный звонок со звуком колокола, — нажимаешь кнопку, раздается «дин», отпускаешь её — «дон». Здесь описано два варианта схем управления звонком «Дин-дон», чтобы он работал как дверной колокол. То есть, звонил не только когда нажимают кнопку, но и когда открывают дверь.

Первая схема, показанная на изображении выше, использует в качестве датчика открывания двери пару геркон-магнит. Деверь закрыта, магнит у геркона, контакты геркона притянуты и замкнуты. Дверь открывается и магнит отходит от геркона, а его контакты размыкаются.

В принципе, можно бы как-то приспособить геркон для непосредственного управления звонком, или через реле. Но, если дверь открыли и не закрыли звонок останется под током и его катушка может перегореть. Поэтому, в схеме, показанной на изображении выше, между герконом и реле включен формирователь импульсов на микросхеме D1, который ограничивает время замкнутого состояния реле одной-двумя секундами. И катушка не перегревается, и получается характерный звук «Дин-дон», а не «Дин» при открытии двери и «Дон» при её закрывании.

При открывании двери геркон SG1 размыкается и на соединенные вместе входы D1.1 поступает через R1 напряжение логической единицы. На выходе D1.2 тоже появляется единица. Цепь C1-R2 создает импульс длительностью около 1-2 секунд. Этот импульс окончательно формируется в прямоугольный элементами D1.3-D1.4 и поступает на транзистор VT1, в коллекторной цепи которого есть обмотка реле К1. А контакты этого реле подключены параллельно звонковой кнопке. Поэтому при открывании двери на звонок питание подается кратковременно, в результате получается звук «Дин-дон», как будто нажали кнопку и отпустили.

Недостаток этой схемы в том, что для её работы нужно чтобы дверь изначально была плотно закрыта. То есть, наверно, нужно делать какую-то пружину или доводчик двери, либо мириться с тем, что схема работает только таким образом. И все же, хотелось бы чтобы колокол срабатывал при любом передвижении двери. Не только из закрытого в открытое состояние, но и из приоткрытого в открытое и наоборот.

Введение в схему и ее реализацию

Введение в схему и ее реализацию — call-with-current-continuation Перейти к первому, предыдущему, следующему, последнему разделу, оглавлению.

call-with-current-continuation — очень мощный элемент управления конструкция, которая может быть использована для создания более традиционных управляющие конструкции, такие как catch и throw в Lisp (или setjmp и longjmp в C), или сопрограммы, и многие более.Он чрезвычайно мощный, потому что позволяет программа для манипулирования своим собственным «стеком» управления, поэтому вызовы и возвраты этой процедуры не обязательно должны следовать нормальное упорядочение текстовых вызовов в глубину.

Напомним, что мы сказали [ГДЕ? ] что эквивалент Схемы стека активации на самом деле представляет собой цепочку частичных продолжения (подвесные записи), и эта цепочка называется полным продолжением. А так как продолжения неизменны, они обычно образуют дерево, отражающее граф вызовов (на самом деле только не хвостовые вызовы).Обычно части этого дерева, которые не находятся в текущая цепочка продолжения является мусором и может быть собранный мусор.

Если взять указатель на текущее продолжение и поместите его в живую переменную или структуру данных, однако, то эта цепочка продолжения останется живой, а не собирать мусор. То есть можно «захватить» текущее состояние стека.

Если вы храните захваченное состояние стека и позже установите указатель на него в системном каталоге регистр продолжения, то можно вернуться через эту цепь продолжения, как если бы она была нормальное продолжение.То есть вместо возврата своему абоненту обычным способом, вы можете взять старое сохраненное продолжение и вернуться в него вместо этого!

Вы можете задаться вопросом, почему кто-то захочет сделать такое странная вещь в их «стеке», но есть некоторые полезные приложения. Один из них — сопрограммы . Это часто удобно структурировать вычисление как чередование между двумя разными процессами, возможно, одним из производит предметы и другой, который их потребляет. Это может быть неудобным для любого из этих процессов в подпрограмму, которую можно вызвать один раз, чтобы получить элемент, потому что каждый процесс может иметь сложное состояние закодирован в своей управляющей структуре.

(Вы, вероятно, не хотели бы структурировать свой программа как набор инкрементных операций, которые были вызывается последовательными вызовами процедуры do-next-increment. Возможно, программа, из которой она получает данные, не может также легко структурировать таким образом. Каждая программа вероятно, должно быть написано с его собственным естественным структура управления, каждая из которых приостанавливает свою работу, когда ему нужен другой, чтобы делать свое дело.)

Сопрограммы позволяют структурировать взаимодействующие подпрограммы таким образом, не делая никого подчиненным (и вызываемым по частям от) другого.

Сопрограммы могут быть реализованы как операции над продолжениями. Когда сопрограмма хочет приостановить себя и активировать другую (со-)подпрограмма, она просто подталкивает частичное продолжение к сохраняет свое состояние, затем фиксирует значение продолжения каким-либо образом зарегистрируйтесь, чтобы его можно было восстановить позже. Чтобы возобновить приостановленную процедуру, цепочка продолжения восстановлено, и верхнее частичное продолжение выскочило в регистры состояния системы. Чередование сопрограмм таким образом достигается путем сохранения и восстановления подпрограмм продолжения.

Обратите внимание, что в этом случае у нас может быть два (или более) дерева продолжения, которые представляют ход вычислений, и этот поток управления может чередоваться между деревья. Обычно вычисления строятся таким образом, чтобы работа выполняется в обычной процедуре поиска в глубину вызов и возвращение, с случайными скачками от одной программы деятельность в глубину к чужой.

Другое использование продолжений — реализация catch и throw , которые примерно похожи на setjmp и longjmp в C.Идея в том, что вы можете захотеть прервать вычисление, не проходя через обычная вложенная процедура возвращается. В обычном стеке lagnuage (без продолжений), это обычно выполняется путем сохранения указателя в стеке перед запуском прерываемого вычисление. Если необходимо прервать расчет, все записи активации над точкой вызова могут быть проигнорированы, и указатель стека может быть восстановлен до этой точки, как хотя все вызовы выше вернулись нормально.

Это можно реализовать с помощью call-with-current-continuation путем сохранения продолжения в точке, где прерываемый начинается вычисление. В любом месте этого вычисления это продолжение может быть восстановлено (затирание «нормального» значения регистра продолжения и т. д.), чтобы возобновить работу с этой точки.

Но вызов с текущим продолжением более мощный, чем сопрограммы или поймать и бросить. Мы можем не только уйти «вниз», из вычисления (путем извлечения нескольких частичных продолжений сразу, фактически не возвращаясь через них), мы также можем побег «вверх» обратно в вычисление, которое мы спасли раньше.Это может быть полезно при реализации исключения . обработка , где мы можем захотеть передать управление специальному сопрограмма, которая может «исправить» обнаруженную ошибку, но затем возобновите процедуру, в которой возникла ошибка, после устранения проблемы.

call-with-current-continuation также можно использовать для реализации откат , где поток управления резервируется и выполняется повторно из какого-то сохраненного продолжения. В этом случае мы можем сохранить продолжение для некоторых вычислений, но продолжайте и возвращайтесь через него нормально.Позже мы можем восстановить сохраненное продолжение и вернуться через него снова.

Обратите внимание, что в общем случае можно использовать продолжения в схеме. кратно раза. Основная идея заключается в том, что вместо использования стек, который диктует граф вызова в глубину, Схема позволяет вам просмотреть график вызовов КАК ГРАФИК, который может содержать циклы, даже направленные циклы (которые представляют собой возврат).

Синтаксис вызова с текущим продолжением довольно уродлив, но по некоторым веским причинам; в сыром виде очень мощный, но, соответственно, сложный в использовании.Как правило, это инкапсулируется в макросы или другие процедуры для реализации другие управляющие конструкции более высокого уровня.

call-with-current-continuation сам по себе является обычным первоклассным процедура, которая инкапсулирует очень низкоуровневое продолжение мануальные способности в чем-то вроде цивилизованной упаковки. Поскольку это первоклассная процедура, вы можете написать более высокий порядок процедуры, которые обрабатывают его как данные или вызывают его, или и то, и другое.

call-with-current-continuation — это процедура ровно из одного аргумент, который является еще одной процедурой, выполняемой после текущее продолжение было захвачено.Текущее продолжение будет передано той процедуре, которая может его использовать (или нет) как угодно.

Захваченное продолжение само упаковано как процедура, тоже один аргумент. Это для того, чтобы вы не могли гадить с самим продолжением любым способом, подобным структуре данных. Есть только две вещи, которые вы можете сделать с захваченным продолжения — захватить их и возобновить их. Продолжения захватываются выполнением call-with-current-continuation , который создает процедуру выхода .Они возобновляются по вызов процедуры побега. При вызове процедура выхода отказывается от любых вычислений, восстанавливает сохраненные продолжение и возобновляет выполнение сохраненного вычисления в точка, в которой произошел вызов с текущим продолжением .

Обратите внимание, что call-with-current-continuation — это процедура один аргумент. Мы назовем эту процедуру прерываемой процедура. Процедура прерывания должна быть и процедурой ровно из одного аргумента.(Если вы хотите вызвать процедуру, которая принимает кучу аргументов и все же делает его прерванным используя call-with-current-continuation , вы должны использовать трюк ниже опишу)

Аргумент прерываемой процедуры — это процедура выхода, которая инкапсулирует захваченное продолжение.

call-with-current-continuation делает следующее:

  • Создает процедуру выхода, которая фиксирует текущее продолжение. При вызове эта процедура восстановит продолжение в точка вызова на call-with-current-continuation .
  • Вызывает процедуру, переданную как ее (call-with-current-continuation’s) аргумент, передав ему процедуру выхода как его аргумент .

Если и когда процедура escape вызывается, она восстанавливает продолжение захвачено в точке вызова call-with-current-continuation . Мы называем это нелокальным возвратом — с точки зрения вызывающего абонента call-with-current-continuation , это выглядит как хотя вызов с текущим продолжением вернулся нормально.

Процедура (отменяемая), которую мы хотим вызвать, должна принимать один аргумент, который процедура выхода, которая может возобновить вычисления сразу после вызов на вызов с текущим продолжением .

Как будто это было недостаточно загадочно, процедура выхода также процедура ровно одного аргумента. Когда процедура побега используется для выполнения нелокального возврата, он возвращает значение как результат вызова call-with-current-continuation .

Аргументом escape-процедуры является значение, которое будет возвращено. как стоимость вызова. Обратите внимание, что если процедура выхода Вызывается , а не , и прерываемая процедура возвращается нормально, возвращаемое им значение возвращается как значение вызова на вызов с текущим продолжением .

Следовательно, вызов call-with-current-continuation может вернуть двумя способами. Либо прерванная процедура возвращается нормально, и call-with-current-continuation просто возвращает это значение, или процедура escape может быть вызвана, и ее аргумент возвращается как значение вызова call-with-current-continuation .

Рассмотрим следующий пример, где я дал номера строк для обратитесь позже:

 0: (определить некоторый флаг #f)

 1: (определить (my-abortable-proc escape-proc)
 2: (отображать "в моем прерываемом процессе")
 3: (если какой-то флаг
 4: (escape-процедура "ПРЕРЫВАНИЕ"))
 5: (отображать «все еще в моем прерываемом процессе»)
 6: "НЕ ПРЕВРАЩЕНО")

 7: (определить (my-resumable-proc)
 8: (сделать что-нибудь)
 9: (отображение (вызов с текущим продолжением моей прерываемой процедуры))
10: (сделай ещё))

11: (моя-возобновляемая-процедура)
 

В строке 11 мы вызываем my-resumable-procedure .Он звонит сделать что-нибудь , а затем вызвать display. Но прежде чем он позвонит display он должен оценить свой аргумент, который является вызовом на вызов с текущим продолжением .

call-with-current-continuation сохраняет продолжение при этом point и упаковывает его как процедуру выхода. (строка 9) Побег процедура, если она вызвана, вернет свой аргумент как значение формы call-with-current-continuation .

То есть, если процедура escape будет вызвана, она возобновится. выполнение процедуры отображения, которая печатает это значение, а затем выполнение продолжится, вызывая do-some-more.

После того, как call-with-current-continuation создал процедуру выхода, он вызывает свой аргумент my-abortable-proc с процедурой выхода как его аргумент .

my-abortable-proc затем отображает (распечатывает) «in my-abortable-proc». Затем он проверяет какой-то флаг , который является ложным, и выполняет ли , а не следствие , если — то есть, он не выполняет побег процедура.Он продолжает выполняться, отображая "все еще в my-abortable-proc." Затем он оценивает свой последний форма тела, строка "NOT ABORTED" , которая вычисляется сама по себе, и возвращает это как обычное возвращаемое значение вызова процедуры.

На данный момент значение, возвращаемое из my-abortable-proc печатается вызовом , отображающим в строке 9.

Но предположим, что мы установили какой-то флаг на #t вместо #f .

Затем, когда управление достигает строки 3, , если делает оценку его следствие. Это вызывает процедуру побега, передавая это строка "ABORTED" в качестве аргумента. Выход процедура возобновляет захваченное продолжение, возвращая управление вызывающей стороне call-with-current-continuation , без выполнения строк 5 и 6.

Процедура escape возвращает свой аргумент, строку "ПРЕРЫВНО" как значение вызова с текущим продолжением форма.Он восстанавливает выполнение my-resumable-proc в строка 9, отображающая строку "ПРЕРЫВНО" (как значение его формы аргумента). На данный момент "ПРЕРЫВНО" отображается, и выполнение продолжается со строки 10.

Часто мы хотим использовать call-with-current-continuation для вызвать некоторую процедуру, которая принимает аргументы, отличные от процедура побега. Например, у нас может быть процедура, которая принимает два аргумента, кроме процедура выхода, таким образом:

(определить (foo x y escape)
   ...
   (если (= х 0)
       (экранировать 'ОШИБКА))
   ...))
 

Мы можем исправить это, каррируя процедуру, сделав ее процедурой одного аргумента.

[ В одной из предыдущих глав должно быть обсуждение каррирования! ]

Предположим, мы хотим передать 0 и 1 как значения x и y, а также передать foo процедуру побега. Вместо того, чтобы говорить

   (вызов с текущим продолжением foo)
 

который не передает достаточно аргументов для вызова foo, мы говорим

   (вызов с текущим продолжением (лямбда (экранирование) (foo 0 1 escape)))
 

Лямбда-выражение создает замыкание, которое делает именно то, что мы хотим.Он вызовет foo с аргументами 0, 1 и побегом процедура, созданная call-with-current-continuation .


Перейти к первому, предыдущему, следующему, последнему разделу, оглавлению.

Введение в схему и ее реализацию

Введение в схему и ее реализацию — процедуры первого класса Перейти к первому, предыдущему, следующему, последнему разделу, оглавлению.

Процедуры первого класса

В Scheme процедуры являются объектами данных — у вас может быть указатель на процедуру и сделайте то же самое, что и с любым другим значением Scheme.Технически мы говорим, что процедуры являются объектами первого класса в язык — вы можете передать процедурное значение в качестве аргумента процедуре, вернуть его как значение вызова процедуры, сохранить в переменной или поле другого объекта. Указатель процедуры — это просто значение, которое вы может передаваться как любое другое значение, например пара или логическое значение.

Процедуры, конечно, особенные, потому что это единственный вид объектов. который поддерживает операцию вызова процедуры.

В терминологии Схемы выражение вызова процедуры называется комбинацией .Оценка комбинации включает оценку выражений аргументов и приложение процедуры к аргументам, т.е. фактически вызывая его («применяя его к») этим значениям.

Необычной особенностью Scheme является то, что он использует унифицированное пространство имен , это означает, что для обеих обычных переменных существует только одно имя и процедуры — на самом деле, имена процедур на самом деле просто переменные имена, и есть только один вид переменных. Именованная процедура на самом деле просто первоклассный объект процедуры, на который ссылаются из переменной.

Вспомним определение min :

(определить (мин a b)
   (если (< а б)
       а
       б))
 

Когда вы определяете такую ​​процедуру, на самом деле вы делаете три вещи: создаете процедуру, создаете нормальная переменная (с именем min ) и инициализация переменной с помощью указатель на процедуру.

(Это означает, что у вас не может быть и процедурной переменной, и «нормальной» переменная данных с тем же именем в той же области видимости — на самом деле существует только один тип переменной, поэтому вы можете иметь только одну привязку в данной области.)

Когда вы определяете процедуру, как мы делали выше для примера мин , Не позволяйте специальному синтаксису определений процедур ввести вас в заблуждение. имя процедуры на самом деле просто имя переменной, которая содержать значение процедуры. Вы можете использовать любую переменную таким образом, сохраняя значение процедуры в нем. Вы также можете назначить новое значение процедуры в переменную, а затем использовать ее для имени новой процедуры.

Например, если вы определили мин. , как указано выше, вы можете изменить значение в привязке мин говоря (набор! мин +) .Это выражение присваивания будет искать значение переменной + , которая является процедурой добавления, и присвоить ее переменной мин .

Затем, когда вы вызываете min , как и раньше, вместо этого будет выполняться сложение, потому что это вызовет ту же процедуру, что и + . Например (мин 5 10) вернет 15 , а не 5 .

Вы также можете изменить значение + , просто назначив новый значение (привязка) переменной + .Это, вероятно, плохая идея, если у вас действительно нет веская причина, потому что, если новая процедура не выполняет сложение, любой код, вызывающий + , вернет разные ответы!

Важно понимать, как на самом деле работают вызовы процедур в Scheme. что на самом деле очень просто. Рассмотрим комбинацию (процедура выражение вызова) (+ a b) . Что это на самом деле означает

  1. найдите значение (текущую привязку) переменной + , которую мы предполагаем является процедурой,
  2. искать значения (текущие привязки) переменных и и б , и
  3. применить процедуру к этим значениям, т.е.е., вызовите его с такими значениями, как аргументы.

Первое подвыражение комбинации оценивается в точно так же, как и другие, хотя результат используется по-другому. Первое подвыражение — это просто подвыражение, которое должно возвращать значение процедуры, а остальные дают аргументы для передачи ей.

Это не сработает, если первое подвыражение не оценивается к процедурному значению. Например, вы можете изменить значение + с выражением присваивания (set! + 3) .Тогда, если вы пытаетесь позвонить + с комбинацией (+ 2 3) вы получите ошибку. Схема скажет что-то вроде "ОШИБКА: Попытка применять непроцедуру».

Тот факт, что первое (операторное) подвыражение вычисляется только как и любое другое выражение может быть очень полезным. Вместо того, чтобы дать имя конкретной процедуры для вызова, мы можем использовать любое выражение результатом которого является процедура. Например, у нас может быть таблица процедуры для использования в различных ситуациях, и искать, что таблица для процедуры, вызываемой в определенное время:

((ключ процедуры поиска) foo bar)
 

Здесь мы вызываем процедуру поиска- соответствующую- процедуру с аргументом ключ , чтобы получить процедуру, а затем применить ее к значения foo и bar .

Одно предупреждение о комбинациях: язык Scheme не указывает порядок, в котором оцениваются подвыражения комбинации. Не пишите код, который зависит от того, является ли выражение оператора оценивается первым или в порядке оценки аргумента выражения.

Вы можете задаться вопросом, что же такого особенного в первоклассных процедурах, поскольку некоторые другие языки (например, C) позволяют передавать указатели на процедуры, и вызывать их через эти указатели. Процедуры Схемы работают как Паскаль. если вы используете их для тех вещей, которые Паскаль допускает, но также позволяет вы используете их более общими способами, которые я объясню позже.


Перейти к первому, предыдущему, следующему, последнему разделу, оглавлению.

схема - вызов cc пример ракетки

Вызов (puzzle) устанавливает продолжение exit таким образом, что вызов (exit val) будет таким же, как если бы этот вызов (puzzle) только что вернул значение val .

Затем делается вызов (местный 6) . Он устанавливает продолжение local-exit таким образом, что вызов (local-exit val2) будет таким же, как если бы этот вызов (local 6) только что вернул это значение val2 .Конечно, это возвращаемое значение игнорируется, и следующим вызовом будет (выход 2) .

Теперь, после настройки local-exit , выполняется вызов (exit (print+sub e ...)) . Сначала нужно узнать значение val3 из (print+sub e ...) , чтобы передать его в вызов (exit val3) .

print+sub ожидает два параметра. Вызов имеет два выражения, которые должны быть оценены, поэтому найденные значения, если они есть, будут переданы как x и y до print+sub .

Оценить и просто. Это 6 .

Вычисление второго выражения, (call/cc (лямбда (новый-выход) ...)) , устанавливает еще одно продолжение, новый-выход , так что вызов (новый-выход y) эквивалентен чтобы вернуть этот y в этот слот {y} , ожидающий его в вызове (print+sub 6 {y}) .

Потом тело

  (лямбда (новый выход)
          (установить! выход новый-выход)
          (локальный выход #f))
  
Вводится

. (set! exit new-exit) изменяет значение любого вызова (exit val) , чтобы с этого момента он был таким же, как если бы вместо него вызывался (new-exit val) .

Теперь, наконец, вызывается (локальный выход #f) . Он выпрыгивает из вызова (local 6) , немедленно возвращает этот #f , который затем игнорируется. Выполняется вызов (выход 2) . Это то же самое, как если бы был сделан вызов (новый выход 2) . Это означает возврат 2 в этот слот {y} , поэтому теперь выполняется вызов (print+sub e 2) внутри (exit (print+sub e 2)) .

print+sub печатает то, что печатает, и возвращает 4 , так что теперь вызывается (выход 4) .

Теперь самый важный момент: какое значение exit используется здесь? Это оригинальный выход продолжение или измененный, новый выход ?

Предположим, что стандарт Scheme говорит, что в любом приложении функции (foo a1 a2 ... an) foo оценивается первым, затем ai s оцениваются в неопределенном порядке, затем функционал значение применяется к только что найденным значениям аргументов n .Это будет означать, что этот выход , который будет вызываться, является исходным продолжением выхода , и поэтому значение 4 возвращается как окончательное значение исходного вызова (головоломка) (это то, что действительно происходит в DrRacket). .

Предположим, что стандарт Схемы этого не говорит. Тогда выход теперь может быть новым выходом . Таким образом, его вызов приведет к бесконечному циклу. Это , а не , что происходит в DrRacket.

Действительно, если мы заменим выход на (лямбда (v) (выход v)) ,

  ((лямбда (v) (выход v))
                (печать+подпись
                           (звонить/cc
                            (лямбда (новый выход)
                              (установить! выход новый-выход)
                              (локальный выход #f))))))))
  

код входит в бесконечный цикл.


Продолжение похоже на прыжок ( GOTO ) со значением. Когда у нас есть некоторый код, например ...... (foo) ..... с обычной функцией foo , когда оценка foo заканчивается, возвращаемое значение используется далее в этом коде, в соответствии с к тому, что там написано.

Если головоломка используется как foo , оценка выполняется так же. Схема пытается узнать возвращаемое значение головоломки , чтобы использовать его далее в окружающем коде.

Но головоломка немедленно вызывает call/cc , поэтому он создает этот маркер, метку GOTO для перехода, так что когда / если / глубоко внутри головоломки выполняется вызов (выход 42) , элемент управления переходит к - переходит к - этот маркер, эта метка, и в качестве возвращаемого значения используется 42 .

Таким образом, когда глубоко внутри (головоломка) выполняется вызов (выход 42) , он имеет тот же эффект, как если бы этот вызов (головоломка) только что вернулся с 42 в качестве возвращаемого значения в его окружающий код, не просматривая весь оставшийся код внутри головоломки .

Так работают продолжения. Продолжение — это маркер для перехода со значением, которое будет использоваться в последующем коде, как если бы оно возвращалось обычным образом предыдущим фрагментом кода.


Код может быть немного легче читать с Racket's let/cc или эквивалентным макросом:

  (определить-синтаксис с текущим-продолжением; пусть/cc
  (синтаксис-правила ()
    ((_ такси ...)
     (вызов/cc (лямбда (c) a b ...)))))

(определить (головоломка2)
  (let/cc exit ; --->>--------------->>------------>>-------- -----.(определить (локальный e) ; |
      (let/cc local-exit ; ------------------>>----------------------------. |
        (выход (print+sub e ; | |
                         (let/cc new-exit ; -->>----. | |
                           (установить! выход новый-выход) ; | | |
                           (локальный выход #f)); | | |
                                          ;; --<<-----* | |
                         ))) ; | |
                           ;; --<<--<<--------* |
      ) ; |
    (местный 6) ; |
    (выход 2) ); |
            ;; --<<---------------<<------------------<<--------- --*
  )
  

Представьте, что вы работаете в отладчике и поставили точку останова на закрывающую скобку каждой формы let/cc .Каждое продолжение, если оно вызывается, переходит непосредственно к определяющей его let/cc закрывающей скобке, так что переданное значение используется в качестве возвращаемого значения этого выражения в последующих вычислениях. Это в основном все.

Удивительная часть заключается в том, что в Схеме вы можете перейти к закрывающей скобке из за пределами этой формы, таким образом повторно войдя в старый контекст управления.

Генератор

. Имеет ли call/cc в Scheme то же самое, что и yield в Python и JavaScript?

call/cc — гораздо более общая функция языка, чем генераторы.Таким образом, вы можете создавать генераторы с call/cc , но вы не можете создавать call/cc с помощью генераторов.

Если у вас есть программа, которая вычисляет значения и использует эти значения в других местах, это в основном пошаговая машина. Можно представить ее как программу, в которой есть одна функция для каждого шага и продолжение для остальных шагов. Таким образом:

  (+ (* 3 4) (* 5 6))
  

Можно интерпретировать как:

  ((лямбда (к)
  (k* 3 4 (лямбда (v34)
            (k* 5 6 (лямбда (v56)
                      (к+ в34 в56 к)))))
 остановка)
  

Префикс k просто указывает, что это CPS-версия примитивов.Таким образом, они вызывают последний аргумент как функцию с результатом. Обратите также внимание на то, что порядок оценки, который не определен в Схеме, фактически выбран в этой перезаписи. На этом прекрасном языке call/cc это просто:

  (определить (kcall/cc kfn k)
  (kfn (лямбда (значение игнорируется-продолжение)
         (значение k))
       к))
  

Итак, когда вы делаете:

  (+ (* 3 4) (вызов/cc (лямбда (выход) (* 5 (выход 6)))))
; ==> 18
  

Под капотом бывает:

  ((лямбда (к)
  (k* 3 4 (лямбда (v34)
            (kcall/cc (лямбда (выход k)
                        (выход 6 (лямбда (v6)
                                 (к*5в6к)))
                      к))))
 остановка)
  

Используя подстановку, мы можем доказать, что это действительно так, как предполагалось.Поскольку вызывается функция выхода, исходное продолжение никогда не вызывается, и поэтому вычисление отменяется. В отличие от call/cc , дающего нам это продолжение, которое не кажется очевидным, в CPS нет никакой магии. Таким образом, большая часть магии call/cc находится на стадии компиляции.

  (определить (процедура создания генератора)
  (определить последние возвращаемые значения)
  (определить последнее значение #f)
  (определить (последнее продолжение _)
    (пусть ((результат (выход процедуры)))
      (последний результат возврата)))

  (определить (значение доходности)
    (вызов/cc (лямбда (продолжение)
               (установить! последнее продолжение продолжения)
               (установить! последнее значение)
               (последнее возвращаемое значение))))

  (лямбда аргументы
    (вызов/cc (лямбда (возврат)
               (установить! возврат последнего возврата)
               (если (нуль? аргументы)
                   (последнее продолжение последнее значение)
                   (применить аргументы последнего продолжения)))))

(определить тест
 (сделать-генератор
   (лямбда (собирать)
     (собери 1)
     (соберите 5)
     (соберите 10)
     #ж)))

(контрольная работа) ; ==> 1
(контрольная работа) ; ==> 5
(контрольная работа) ; ==> 10
(контрольная работа) ; ==> #f (процедура завершена)
  

Можно сделать макрос, чтобы сделать синтаксис более похожим, но это просто сахар поверх этого.

Для большего количества примеров Мне нравится страница Мэтта Майтса с множеством примеров того, как использовать продолжения.

Является ли Scheme вызовом по значению?

Схема вызывается по значению?

Chapter: Является ли Scheme вызовом по значению?

Как именно Scheme создает эту ассоциацию между формальными параметры и фактические аргументы? Например, предположим, что у нас есть следующий.

(определить foo
  (лямбда (х)
    (printf "вход в foo x равен ~s~%" x)
    (комплект! х 23)
    (printf "выход из foo x равен ~s~%" x)))
(определить y 14)
(определить х 12)
 

Давайте рассмотрим различные способы вызова foo.

Вопрос 1
Оказывает ли какое-либо из следующих действий существенное влияние на данные? доступны на верхнем уровне Scheme? Попробуйте их в окне схемы.
(фу 12)
(фу (* 12 (+ 3 5)))
(foo (если (> 5 (* 2 3)) 4 6))
(foo '(а б в))
(фу г)
(фу х)
(фу #\а)
(стопа)
(foo (вектор 1 2 3))
 

В каждом из приведенных выше случаев Scheme оценивает фактический аргумент и позволяет foo ссылаться на оцениваемый аргумент с помощью имя х.Это то, что вы видите с первого раза (printf..x). Когда выполняется (set! x 23), локальное имя x сделано для обозначения атома 23. Ничего в данных верхнего уровня площадь поражена.

x — локальная переменная, изначально ссылающаяся на значение фактический аргумент. набор! просто изменяет эту привязку локального переменная х.

В. 2
Предположим, у вас есть следующие определения.
(определить bar1
  (лямбда (х)
    (printf "вход в bar1 x равен ~s~%" x)
    (векторный набор! x 1 23)
    (printf "выход из bar1 x равен ~s~%" x)))

(определить bar2
  (лямбда (х)
    (printf "вход в bar2 x равен ~s~%" x)
    (набор-машина! (cdr x) 23)
    (printf "выход из bar2 x равен ~s~%" x)))
(определить y (вектор 1 2 3))
(определить x '(a b c d))
 

Проведите несколько экспериментов.По крайней мере, примените bar1 к y и bar2 к x. Могут ли вызовы bar1 и bar2 изменить данные, доступные на верхнем уровне?


В этом смысле Scheme вызывает по ссылке. Когда структурировано данные передаются в функцию, формальный параметр функции привязан к той же структуре данных, которая существует в области вызывающего объекта. Если Ты устанавливаешь! формальный параметр, вы не влияете на область вообще - вы просто привязываете новое значение к локальной переменной.Но тем более "хирургические" операции, вроде поставили машину! и набор векторов! могут иметь эффекты, видимые в области вызывающего абонента.


Проведите эксперимент, чтобы выяснить, как Scheme передает строки. Имеет ли это проходят чисто по значению (как показано в вопросе 1) или есть элемент передачи по ссылке (как показано в вопросе 2)?

Сдайте описание вашего эксперимента, ваш код схемы для эксперимент, ваши результаты и ваши выводы.



[email protected] 341, домашняя страница зимы 2004 г. | Указатель лекций ]

Продолжение

продолжением выражения является "the вычисление, которое получит результат этого выражения". Для например, в выражении

 (+ 4 (+ 1 2)) 

результат (+ 1 2) будет добавлен к 4. дополнение к 4 является продолжением этого выражения. Если бы мы хотели представляют собой продолжение (+ 1 2) , мы могли бы написать:

 (лямбда (v) (+ 4 v)) 

То есть продолжение (+ 1 2) занимает значение и добавляет четыре к этому значению.

Каждое выражение имеет неявное продолжение. В большинстве языки, продолжения спрятаны под обложками и не доступно вообще. В Схеме текущее продолжение может быть овеществлено как функция с помощью встроенной функции call-with-current-continuation , или звонок/cc для краткости.

(вызов/cc expr ) делает следующее:

  1. Захватывает текущее продолжение.
  2. Создает функцию C , которая принимает один аргумент и применяет текущее продолжение с этим значение аргумента.
  3. Передает эту функцию как аргумент в expr --- т. е. вызывает ( expr В) .
  4. Возвращает результат вычисления ( expr C) , , если только expr звонки C , и в этом случае значение, которое передается C возвращается.

Вот пример:

 (+ 4 (звонок/копия)
    (лямбда (продолжение) (продолжение (+ 1 2))))) 

Выполняет те же вычисления, что и (+ 4 (+ 1 2)) . Однако он использует call/cc для захвата текущее продолжение, а затем передает результат оценки (+ 1 2) прямо к этому продолжению. Другой, примерно эквивалентный способ написания приведенного выше выглядит следующим образом:

 ((лямбда (продолжение) (продолжение (+ 1 2)))
    (лямбда (v) (+ 4 v)) 

Продолжения первого класса

Продолжения являются первоклассными значениями, поэтому их не обязательно сразу позвонил:

 > (определить х ())
> (определить (вставить-продолжение-в-х продолжение) (установить! х продолжение))
> (определить строку печати (лямбда (x) (отобразить x) (перевод строки)))

>(print-line (call/cc put-cont-in-x))
  #<пусто> 
> (х "привет!")
  "привет"  

Что здесь происходит? Текущее продолжение на (call/cc put-cont-in-x) — приложение строка печати .По поведению call/cc , put-cont-in-x поэтому получает продолжение, которое принимает свой аргумент и передает его в строку печати . put-cont-in-x сохраняет это продолжение как значение привязано к x . Наконец, когда мы вызываем x , список аргументов передается продолжению, которое мы захватили --- который передает свой аргумент в строку печати , которая затем печатает значение, за которым следует новая строка.

Продолжение для «раннего выхода» из вложенной оценки

Далее следует менее тривиальное использование call/cc . Рассмотрим функция, которая ищет в списке значение, удовлетворяющее некоторому предикат. Наивная реализация выглядит следующим образом:

 (определение наивного поиска
  (лямбда (пред х)
    (состояние ((нуль? х) ())
          ((пред (машина х)) (машина х))
          (иначе (наивно-найти пред(cdr x)))))
 

Предположим, что Scheme не выполнил надлежащие хвостовые вызовы.Затем, эта функция должна была бы возвращаться из каждого рекурсивного вызова, когда рекурсия прекратилась. Следующая функция исправляет это проблему, передавая окончательный результат непосредственно более раннему продолжение:

 (определить найти
  (лямбда (предварительный список)
    (вызов/cc (лямбда (продолжение)
               (letrec ((помощник (лямбда(х)
                                  (cond ((null? x) (cont ()))
                                        ((пред (машина х)) (продолжение (машина х)))
                                        (иначе (помощник пред (cdr x)))))))
                 (помощник пред алист))))) 

Этот вариант find использует call/cc привязать продолжение к cont .Затем, когда мы достигнуть конечного случая ( (null? x) или (pred (car x)) ) рекурсии, мы вызываем продолжение с некоторым значением ( () или х ). Это пропускает все рекурсивные вызовы и возвращает значение непосредственно в продолжение. Мы можем доказать это с помощью выполняя слегка модифицированную версию наивного и функции поиска с продолжением вызова:

 (определить наивную печать
  (лямбда (пред х)
    (состояние ((нуль? х) ())
          ((пред (машина х)) (машина х))
          (else (let((retval(printing-naive-find pred(cdr x))))
                  (отображать «возврат из рекурсивного вызова по адресу:»)
                  (отображение (машина х))
                  (новая линия)
                  ретвал)))))

(определить печать-найти
  (лямбда (пред х)
    (звонить/cc
      (лямбда (продолжение)
        (letrec ((помощник
                   (лямбда (пред х)
                     (cond ((null? x) (cont ()))
                           ((пред (машина х)) (продолжение (машина х)))
                           (else(let((retval(helper pred(cdr x))))
                                    (отображение «возврат с звонка по адресу:»)
                                    (отображение (машина х))
                                    (новая линия)
                                    ретвал)))))
          (помощник пред х))))) 

print-naive-find печатает значения "на пути назад" из последнего рекурсивного вызова. печать-найти версию не дает, т.к. продолжение захватывается до того, как входит в рекурсивный функция. Результат передается напрямую вызывающей стороне самая внешняя лямбда .

В приведенных выше примерах функция naive-find хвост-рекурсивный. Нет необходимости использовать вызов продолжения оптимизация для передачи конечного результата непосредственно вызывающей стороне оригинальный призыв. Однако для нехвостовых рекурсивных функций использование продолжений может сделать возврат с «последнего звонка» с постоянным временем, а не с линейным временем.

Способность call/cc прорываться глубоко вложенная оценка часто полезна при возврате ошибок. Рассмотреть возможность следующую функцию:

 (определить
  (лямбда (aList divisorList errorValue)
    (cond ((null? aList) ())
          ((= (car divisorList) 0) errorValue)
          (иначе (пусть ((результат (разделяй-или-ошибка
                                (cdr aList) (cdr divisorList) errorValue)))
                  (если (= результат errorValue)
                      errorValue
                      (минусы (/ (car aList) (car divisorList))
                            результат)))))))) 

Эта функция делит каждое значение в списке aList на соответствующее значение в divisorList и возвращает список ответов; однако, если есть какое-либо нулевое значение в divisorList , он возвращает errorValue вместо.Опять же, возвращаясь из каждого рекурсивного вызова по отдельности это пустая трата времени, когда мы хотим только пройти errorValue вернуться к исходному вызывающему абоненту . По захватив начальное продолжение, мы можем вернуться напрямую:

 (определить деление-или-ошибка2
  (лямбда (aList divisorList errorValue)
    (вызов/cc (лямбда (продолжение)
              (определить помощника
                (лямбда (делители значений)
                  (cond ((null? значения) ())
                        ((= (автомобильные делители) 0) (cont errorValue))
                        (иначе (против (/ (значения автомобиля) (делители автомобиля))
                                    (помощник (значения cdr) (делители cdr)))))))
       (помощник aList divisorList))))) 

Обратите внимание, что нам больше не нужно проверять результат рекурсивный вызов errorValue : когда ноль обнаружен в делителях , он будет возвращен непосредственно в вызывающая сторона самой внешней лямбды .

Функция динамического ветра

Иногда мы хотим убедиться, что функция выполняется независимо от того, «обходит» ли продолжение часть в настоящее время оценивает выражение. динамический ветер функция принимает три аргумента, каждый из которых должен быть значение функции без аргументов:

 (динамический ветер  inFn   bodyFn   outFn  ) 

Семантика динамического ветра следующая:

  • Вызовите bodyFn и верните его значение.
  • При вводе bodyFn либо во время текущей оценки или сквозной оценки любого продолжение захвачено внутри bodyFn , inFn позвонят заранее .
  • При выходе из bodyFn либо во время текущую оценку или через оценку любого продолжения захвачено внутри bodyFn , outFn будет вызван потом .

В следующем примере open-input-file открывает входной порт (так же, как дескриптор файла в других языках), который должен затем закрыть с помощью close-input-port :

 (определить (безопасный процесс ввода-файла процесса-fn)
  (пусть((p(открыть-входной-файл входной-файл)))
    (динамический ветер
     (лямбда () #f)
     (лямбда () (процесс-fn p))
     (лямбда ()
       (начать (отобразить "закрытие входного порта...")
              (новая линия)
              (закрыть-вход-порт р))))) 

In-функция ничего не делает; функция out закрывает вход порт; и функция body применяет процесс -fn к открытый входной порт.Вне зависимости от того, как процесс-фн существует, всегда будет вызываться функция out. (Типичное использование параметр вне функции к динамическому ветру близко напоминают , наконец, на Java.)

Теперь давайте применим безопасный процесс к функции, которая выходит преждевременно:

 ;; Определите функцию обработки, которая всегда выходит на верхний уровень.
(определить фиктивный выход на верхний уровень)
(вызов/cc (лямбда (продолжение) (установить! верхний уровень-выход продолжение)))
(определить (процесс p) (выход верхнего уровня))

;; Обратите внимание, что dynamic-wind по-прежнему выполняет код, который
;; закрывает входной порт.(безопасный процесс «lection14-dynamic-wind.ss»)
               ; отображает: "закрытие входного порта..."
 

Исключения

В ML и большинстве других языков создание и обработка Исключением являются специальные конструкции языка. В схеме мы может определять исключения как обычную библиотеку, используя продолжения и динамический ветер .

Желаемое использование

Легче всего понять, как определять исключения в обратном порядке, переходя от употребления к определению.Вот как мы хотели бы использовать поднять функцию:

 ;; Функция, вызывающая исключение.
(определить (найти или поднять пред x)
  (cond ((null? x) (raise '(пусто "Нет такого элемента в списке.")))
        ((пред (машина х)) (машина х))
        (иначе (найти или поднять пред (cdr x))))) 

Обратите внимание, что мы представляем значение исключения в виде списка, где первый элемент списка является символом, именующим исключение, а остальные значения в списке являются значениями, которые осуществляется за исключением.

Вот как мы могли бы использовать дескриптор функция:

 (определить gt0 (лямбда x (> x 0))
(определить результат поиска
    (обработать «пустой
            (лямбда () (найти или повысить gt0 '(-1 -2 -3 -4)))
            (лямбда (anExn) -1))) 

То есть мы бы хотели, чтобы аргументы были

  1. символ, обозначающий обрабатываемое исключение;
  2. функция без аргументов, которая оценивает некоторое выражение тела; и
  3. функция с одним аргументом, которая принимает исключение, и создает значение, которое будет возвращено, когда это исключение поднятый.

(Обратите внимание, что это определение дескриптора добавляет только один обработчик на выражение. Это не принципиально сложнее иметь дескриптор , который принимает несколько обработчиков и пробует их последовательно, так что для простоты мы будем придерживаться этого.)

В совокупности использование повышает и дескриптор выше должен дать примерно такое же поведение по определениям ML:

 исключение Пустая строка;
весело findOrRaise (пред, х) =
    если null x, то поднимите Empty "Нет такого элемента в списке"
    иначе если pred (hd x), то x
    иначе findOrRaise пред (tl x)

val gt0 = fn x => x > 0;
val findResult =
  findOrRaise gt0 [-1, -2, -3, -4]
    обработать пустое сообщение => -1 

Теперь нам просто нужно понять, как реализовать поднять и обработать ...

Стек обработчика

В любой момент оценки существует стек «активных» обработчики. Когда возникает исключение, мы должны отключить обработчики стек, пока мы не достигнем того, который может обрабатывать текущий исключение. Реализовать глобальный стек в виде списка легко достаточно:

 (определить стек обработчика ())

(определить (обработчик push-обработчика)
  (set! handler-stack (cons handler-stack)))

(определить (обработчик всплывающих окон)
  (if (not (null? стек обработчика))
      (пусть((верхний(автомобильный штабель)))
        (начинать
          (установить! стек обработчика (стек обработчика cdr))
          топ)))) 

Описание самих обработчиков отложим до мы видим функцию обработчика .

Необработанные исключения

Когда мы получаем необработанное исключение, мы должны выйти на верхний уровень и распечатать сообщение. Для этого мы должны захватить продолжение верхнего уровня, которое мы будем вызывать всякий раз, когда поднимаем исключение с пустым стеком обработчика:

 (определить фиктивный выход на верхний уровень)
(вызов/cc (лямбда (продолжение) (установить! продолжение выхода на верхний уровень))) 

Обратите внимание, что каждый, кто оценивает (выход на верхний уровень) теперь будет выходить на верхний уровень, останавливающее вычисление любого объемлющего выражения.(Чтобы доказать это себя, напишите глубоко вложенное выражение, которое применяется выход на верхний уровень .)

Функция подъема

Стек обработчика представляет собой список. Когда исключение поднять д, есть два корпуса:

  1. Стек обработчика пуст. В этом случае мы должны напечатать сообщение и выход на верхний уровень.
  2. Стек обработчика не пуст. В этом случае мы должны проверить подходит ли этот обработчик.Это имеет два подслучая:
    1. Если обработчик не подходит, повторите исключение.
    2. Если обработчик подходит, мы должны оценить функция-обработчик и передает ее результат в продолжение выражения дескриптора .

Самая сложная часть — случай 2(а). Вспомните наш пример использования из ручка для найти или поднять вызов выше: когда обработчик для 'пустой вызывается, мы должны вернуть -1 всему обрабатывать продолжение выражения (в данном случае выполнение определить для найти-результат ).

Итак, чтобы определить поднять , мы должны иметь следующие три вещи доступны в обработчике:

  • Имя исключения.
  • Продолжение выражения ручки .
  • Функция-обработчик.

Поэтому мы будем представлять обработчик в виде списка из трех элементов. (exn-name handler-cont handler-fn) . При условии, что ручка поместила эти вещи в стек, поднять определяется следующим образом:

 (определить (поднять anExn)
  (if (null? стек обработчика)
      (начинать
        (отображение карты '("неперехваченное исключение:" anExn))
        (выход на верхний уровень))
      ;; еще
      (let* ((exn-name (car anExn))
             (обработчик (поп-обработчик))
             (handler-exn-name (автомобильный обработчик)))
        (if (eq? exn-name имя-обработчика-exn)
            (пусть ((обработчик-продолжение (обработчик кадров))
                  (handler-fn (обработчик caddr)))
              (обработчик-продолжение (обработчик-fn anExn)))
            ;; еще
            (поднять anExn))))) 
Ручка
Функция

Наконец, мы должны определить дескриптор . функция handle должна принимать три аргумента: имя исключения, функция тела и функция обработчика. Это должно оценить функцию организма, но во время оценки тела мы должны быть готовы обработать любое исключение, возникшее в обработчике --- т.е. мы должны добавить значение обработчика вида (exn-name handler-cont handler-fn) в стек обработчиков.

Мы реализуем это, используя call/cc и динамический ветер :

 (определить (обработать exnName bodyFn handlerFn)
  (вызов/cc (лямбда (продолжение)
             (динамический ветер
              (лямбда() (push-handler (list exnName cont handlerFn)))
              телоFn
              (лямбда() (поп-обработчик)))))) 

Обратите внимание, что мы используем функцию out для извлечения обработчика, когда bodyFn завершил выполнение.

Предлагаемые упражнения

  1. Загрузите код с веб-сайта курса. (lection-15-exceptions.ss), который реализует исключения. Вставьте оператора отображения в различные точки код, чтобы увидеть, когда они выполняются, и что содержимое обработчика-стека ар.
  2. Нарисуйте диаграммы кучи, включая стек обработчиков, на каждый из следующих этапов выполнения (определить результат поиска ...) пример выше:
    1. Сразу после звонка на обрабатывать .
    2. Сразу после (вызов/cc (лямбда (продолжение)) ... внутри ручка . Представлять продолжение в виде ячейки со стрелкой, указывающей на точку в код, в котором будет аргумент продолжения "послал".
    3. внутри звонок на динамический ветер внутри обрабатывать , но перед выполнением телоFn .
    4. Внутри вызова bodyFn (который будет найти или поднять )
    5. Сразу внутри звонка на поднять .
    6. После звонка на (handler-fn anExn) внутри поднять .
Схема вызова

: Сегодня Последние новости, Фото, Видео о схеме вызова

zeenews.india.com понимает, что ваша конфиденциальность важна для вас, и мы стремимся быть прозрачными в отношении технологий, которые мы используем.Эта политика в отношении файлов cookie объясняет, как и почему файлы cookie и другие подобные технологии могут храниться на вашем устройстве и получать к ним доступ с вашего устройства, когда вы используете или посещаете веб-сайты zeenews.india.com, на которых размещена ссылка на настоящую Политику (совместно именуемые «сайты»). Эту политику в отношении файлов cookie следует читать вместе с нашей Политикой конфиденциальности.

Продолжая просматривать или использовать наши сайты, вы соглашаетесь с тем, что мы можем хранить и получать доступ к файлам cookie и другим технологиям отслеживания, как описано в этой политике.

Что такое файлы cookie и другие технологии отслеживания?

Файл cookie – это небольшой текстовый файл, который можно хранить на вашем устройстве и получать к нему доступ с вашего устройства при посещении одного из наших сайтов при условии вашего согласия.Другие технологии отслеживания работают аналогично файлам cookie и размещают небольшие файлы данных на ваших устройствах или отслеживают вашу активность на веб-сайте, чтобы мы могли собирать информацию о том, как вы используете наши сайты. Это позволяет нашим сайтам распознавать ваше устройство среди устройств других пользователей на наших сайтах. Представленная ниже информация о файлах cookie также относится к этим другим технологиям отслеживания.


Как наши сайты используют файлы cookie и другие технологии отслеживания?

Зивьюс.com используют файлы cookie и другие технологии для хранения информации в вашем веб-браузере или на вашем мобильном телефоне, планшете, компьютере или других устройствах (совместно именуемых «устройства»), которые позволяют нам хранить и получать определенные фрагменты информации всякий раз, когда вы используете или взаимодействуете с нашим zeenews.india.com приложения и сайты. Такие файлы cookie и другие технологии помогают нам идентифицировать вас и ваши интересы, запоминать ваши предпочтения и отслеживать использование сайта zeenews.india.com. Мы также используем файлы cookie и другие технологии отслеживания для контроля доступа к определенному контенту на наших сайтах, защиты сайтов, и для обработки любых запросов, которые вы делаете к нам.
Мы также используем файлы cookie для администрирования наших сайтов и в исследовательских целях. zeenews.india.com также заключила контракты со сторонними поставщиками услуг для отслеживания и анализа статистической информации об использовании и объемах информации от пользователей нашего сайта. Эти сторонние поставщики услуг используют постоянные файлы cookie, чтобы помочь нам улучшить взаимодействие с пользователем, управлять содержанием нашего сайта и анализировать, как пользователи перемещаются и используют сайты.

Первые и сторонние файлы cookie

Основные файлы cookie

Это те файлы cookie, которые принадлежат нам и которые мы размещаем на вашем устройстве, или те, которые устанавливаются веб-сайтом, который посещает пользователь в данный момент (например,г., файлы cookie, размещенные zeenews.india.com)

Сторонние файлы cookie

Некоторые функции, используемые на этом веб-сайте, могут включать файлы cookie, отправляемые на ваш компьютер третьей стороной. Например, если вы просматриваете или слушаете какой-либо встроенный аудио- или видеоконтент, вам могут быть отправлены файлы cookie с сайта, на котором размещен встроенный контент. Аналогичным образом, если вы поделитесь каким-либо контентом на этом веб-сайте через социальные сети (например, нажав кнопку «Мне нравится» в Facebook или кнопку «Твитнуть»), вам могут быть отправлены файлы cookie с этих веб-сайтов.Мы не контролируем настройку этих файлов cookie, поэтому посетите веб-сайты этих третьих лиц, чтобы получить дополнительную информацию об их файлах cookie и о том, как ими управлять.

Постоянные файлы cookie
Мы используем постоянные файлы cookie, чтобы сделать использование сайтов более удобным для вас. Это включает в себя регистрацию вашего согласия с нашей политикой в ​​отношении файлов cookie, чтобы удалить сообщение о файлах cookie, которое впервые появляется при посещении нашего сайта.
Сеансовые файлы cookie  
Сеансовые файлы cookie являются временными и удаляются с вашего компьютера при закрытии веб-браузера.Мы используем файлы cookie сеанса, чтобы помочь нам отслеживать использование Интернета, как описано выше.
Вы можете отказаться принимать файлы cookie браузера, активировав соответствующую настройку в своем браузере. Однако, если вы выберете этот параметр, вы не сможете получить доступ к определенным частям сайтов. Если вы не изменили настройки своего браузера таким образом, чтобы он отказывался от файлов cookie, наша система будет проверять, могут ли файлы cookie быть перехвачены, когда вы направляете свой браузер на наши сайты.
Данные, собранные сайтами и/или с помощью файлов cookie, которые могут быть размещены на вашем компьютере, не будут храниться дольше, чем это необходимо для достижения целей, упомянутых выше.В любом случае такая информация будет храниться в нашей базе данных до тех пор, пока мы не получим от вас явное согласие на удаление всех сохраненных файлов cookie.

Мы классифицируем файлы cookie следующим образом:

Основные файлы cookie

Эти файлы cookie необходимы для нашего сайта, чтобы вы могли перемещаться по нему и использовать его функции. Без этих необходимых файлов cookie мы не сможем предоставлять определенные услуги или функции, и наш сайт не будет работать для вас так гладко, как нам хотелось бы.Эти файлы cookie, например, позволяют нам распознать, что вы создали учетную запись и вошли/вышли из нее для доступа к содержимому сайта. Они также включают файлы cookie, которые позволяют нам запоминать ваши предыдущие действия в рамках того же сеанса просмотра и обеспечивать безопасность наших сайтов.

Аналитические/производительные файлы cookie

Эти файлы cookie используются нами или нашими сторонними поставщиками услуг для анализа того, как используются сайты и как они работают. Например, эти файлы cookie отслеживают, какой контент чаще всего посещается, вашу историю просмотров и откуда приходят наши посетители.Если вы подпишитесь на информационный бюллетень или иным образом зарегистрируетесь на Сайтах, эти файлы cookie могут быть связаны с вами.

Функциональные файлы cookie

Эти файлы cookie позволяют нам управлять сайтами в соответствии с вашим выбором. Эти файлы cookie позволяют нам «запоминать вас» между посещениями. Например, мы распознаем ваше имя пользователя и запоминаем, как вы настроили сайты и услуги, например, изменив размер текста, шрифты, языки и другие части веб-страниц, которые могут быть изменены и предоставляют вам те же настройки во время будущих посещений.

Рекламные файлы cookie

Эти файлы cookie собирают информацию о ваших действиях на наших сайтах, а также на других сайтах, чтобы предоставить вам целевую рекламу. Мы также можем разрешить нашим сторонним поставщикам услуг использовать файлы cookie на сайтах для тех же целей, которые указаны выше, включая сбор информации о ваших действиях в Интернете с течением времени и на разных веб-сайтах. Сторонние поставщики услуг, которые генерируют эти файлы cookie, такие как платформы социальных сетей, имеют свои собственные политики конфиденциальности и могут использовать свои файлы cookie для целевой рекламы на других веб-сайтах в зависимости от вашего посещения наших сайтов.

Как мне отказаться или отозвать свое согласие на использование файлов cookie?

Если вы не хотите, чтобы файлы cookie сохранялись на вашем устройстве, вы можете изменить настройки своего интернет-браузера, чтобы отклонить настройку всех или некоторых файлов cookie и предупредить вас, когда файл cookie будет помещен на ваше устройство. Для получения дополнительной информации о том, как это сделать, обратитесь к разделу «Справка» / «Инструмент» или «Редактировать» вашего браузера для настройки файлов cookie в вашем браузере, который может быть Google Chrome, Safari, Mozilla Firefox и т. д.
Обратите внимание: если в настройках вашего браузера уже настроена блокировка всех файлов cookie (включая строго необходимые файлы cookie), вы не сможете получить доступ или использовать все или части или функции наших сайтов.
Если вы хотите удалить ранее сохраненные файлы cookie, вы можете вручную удалить файлы cookie в любое время в настройках своего браузера. Однако это не помешает сайтам размещать дополнительные файлы cookie на вашем устройстве до тех пор, пока вы не измените настройки своего интернет-браузера, как описано выше.
Для получения дополнительной информации о разработке профилей пользователей и использовании целевых/рекламных файлов cookie посетите сайт www.youronlinechoices.eu, если вы находитесь в Европе, или www.aboutads.info/choices, если вы находитесь в США.

Свяжитесь с нами

Если у вас есть какие-либо другие вопросы о нашей Политике в отношении файлов cookie, свяжитесь с нами по телефону:
. Если вам требуется какая-либо информация или разъяснения относительно использования вашей личной информации или настоящей политики конфиденциальности, или претензии в отношении использования вашей личной информации, пожалуйста, напишите нам по электронной почте.

0 comments on “Схема звонка: Схема подключения дверного звонка на 220 вольт

Добавить комментарий

Ваш адрес email не будет опубликован.