Схема имеет минимум деталей
Для антенны отлично подойдет медная проволока длиной порядка 4 метров. В свое время когда собирал свой первый радиоприемник я натягивал проволку у себя в комнате. Антенна должна крепиться на изоляторах, и не в коем случае иметь контакт с землей.
Радиоволны разных частот, наводят в антенне электрические сигналы разных частот и с многих радиостанций. Величина этих электрических сигналов очень мала порядка микровольт. Естественно такой слабый сигнал не способен вызвать колебания диафрагмы динамика. Поэтому его необходимо значительно усилить.
Но прежде чем подать его на усиление необходимо выбрать какой именно сигнал нам нужен. Эту функцию берет на себя колебательный контур, который состоит из параллельно соединенных катушки и конденсатора. Этот контур настроен на определенную частоту и способен из электрического хаоса, поступающего с антенны выбрать электрический сигнал нужной нам радиостанции. Для изготовления катушки я использовал ферритовый стержень диаметром порядка 8 мм и длиной около 9 см, на него вплотную наматывал катушку, виток к витку, чтобы намотка была плотной.
Выделенный в контуре сигнал имеет не совсем правильную форму. Такой сигнал амплитудно модулированный, т.е. амплитуда сигнала определенной частоты изменяется в такт со звуковой частотой. Детектирование сигнала автоматически происходит в транзисторе. Последним звеном схемы простейшего радиоприемника является транзистор необходимого для усиления и последующей подачи сигнала на динамик.
Для изготовлении катушки индуктивности. Нам понадобится ферритовый стержень. Такой стержень можно купить в любом магазине радиоэлектроники. Или вытащить из сломанного FM радиоприемника. На этот стержень нам необходимо сделать 30-100 витков медного провода с диаметром 0.2-0.3 мм.
Для настройки режима работы транзистора нашего простейшего радиоприемника подключен подстроечный резистор R1. Изменяя его сопротивление можно менять ток протекающий через биполярный транзистор, а соответственно и усиление сигнала.
]]>Схема имеет минимум деталей
Для антенны отлично подойдет медная проволока длиной порядка 4 метров. В свое время когда собирал свой первый радиоприемник я натягивал проволку у себя в комнате. Антенна должна крепиться на изоляторах, и не в коем случае иметь контакт с землей.
Радиоволны разных частот, наводят в антенне электрические сигналы разных частот и с многих радиостанций. Величина этих электрических сигналов очень мала порядка микровольт. Естественно такой слабый сигнал не способен вызвать колебания диафрагмы динамика. Поэтому его необходимо значительно усилить.
Но прежде чем подать его на усиление необходимо выбрать какой именно сигнал нам нужен. Эту функцию берет на себя колебательный контур, который состоит из параллельно соединенных катушки и конденсатора. Этот контур настроен на определенную частоту и способен из электрического хаоса, поступающего с антенны выбрать электрический сигнал нужной нам радиостанции. Для изготовления катушки я использовал ферритовый стержень диаметром порядка 8 мм и длиной около 9 см, на него вплотную наматывал катушку, виток к витку, чтобы намотка была плотной.
Выделенный в контуре сигнал имеет не совсем правильную форму. Такой сигнал амплитудно модулированный, т.е. амплитуда сигнала определенной частоты изменяется в такт со звуковой частотой. Детектирование сигнала автоматически происходит в транзисторе. Последним звеном схемы простейшего радиоприемника является транзистор необходимого для усиления и последующей подачи сигнала на динамик.
Для изготовлении катушки индуктивности. Нам понадобится ферритовый стержень. Такой стержень можно купить в любом магазине радиоэлектроники. Или вытащить из сломанного FM радиоприемника. На этот стержень нам необходимо сделать 30-100 витков медного провода с диаметром 0.2-0.3 мм.
Для настройки режима работы транзистора нашего простейшего радиоприемника подключен подстроечный резистор R1. Изменяя его сопротивление можно менять ток протекающий через биполярный транзистор, а соответственно и усиление сигнала.
]]>Микроконтроллеры AVR производят десятки компаний, при этом изготавливают как 32-битные современные микроконтроллеры, так и 16-битные, и даже 8-битные (такие, как i8051 и аналоги). В каждом семействе нередко можно повстречать практически одинаковые модификации, отличающиеся скоростью работы их процессора и объемом содержащейся памяти. Дело состоит в том, что микроконтроллеры используются предпочтительно во встроенных системах: в станках, в бытовой технике и автоматике, в любых автоматических устройствах - там, где необходима не столько мощность процессора, сколько, баланс между стоимостью и необходимой функциональностью.
Собственно поэтому самые старые разновидности микроконтроллеров применяются до сих пор - они все еще многое могут: от автоматического управления дверями, включения/отключения освещения или полива газонов до управления автоматической системой «умный дом». Так же и существуют и наиболее мощные микроконтроллеры, выполняющие сотни миллионов команд в секунду и управляющие всевозможной периферией. У таких микроконтроллеров и предназначения соответствующие. Разработчик таким образом вначале оценивает задачу, а уж затем подбирает под нее подходящее элементы.
Сегодня существует намного более 200 разновидностей микроконтроллеров, совместимых с i8051, производимых двумя десятками фирм, и огромное количество микроконтроллеров иных типов. Большой популярностью у конструкторов пользуются 8-битные PIC-контроллеры компании Microchip Technology и AVR компании Atmel, 16-битные MSP430 компании TI, а также 32-битные микроконтроллеры с архитектурой ARM, разработку которой ведет компания ARM Limited и продаёт другим компаниям лицензии для их производства.
]]>Микроконтроллеры AVR производят десятки компаний, при этом изготавливают как 32-битные современные микроконтроллеры, так и 16-битные, и даже 8-битные (такие, как i8051 и аналоги). В каждом семействе нередко можно повстречать практически одинаковые модификации, отличающиеся скоростью работы их процессора и объемом содержащейся памяти. Дело состоит в том, что микроконтроллеры используются предпочтительно во встроенных системах: в станках, в бытовой технике и автоматике, в любых автоматических устройствах - там, где необходима не столько мощность процессора, сколько, баланс между стоимостью и необходимой функциональностью.
Собственно поэтому самые старые разновидности микроконтроллеров применяются до сих пор - они все еще многое могут: от автоматического управления дверями, включения/отключения освещения или полива газонов до управления автоматической системой «умный дом». Так же и существуют и наиболее мощные микроконтроллеры, выполняющие сотни миллионов команд в секунду и управляющие всевозможной периферией. У таких микроконтроллеров и предназначения соответствующие. Разработчик таким образом вначале оценивает задачу, а уж затем подбирает под нее подходящее элементы.
Сегодня существует намного более 200 разновидностей микроконтроллеров, совместимых с i8051, производимых двумя десятками фирм, и огромное количество микроконтроллеров иных типов. Большой популярностью у конструкторов пользуются 8-битные PIC-контроллеры компании Microchip Technology и AVR компании Atmel, 16-битные MSP430 компании TI, а также 32-битные микроконтроллеры с архитектурой ARM, разработку которой ведет компания ARM Limited и продаёт другим компаниям лицензии для их производства.
]]>По своему строению микроконтроллер отличается большим количеством характеристик, так как он представляет из себя одновременно сложное программно-управляемое устройство и электронный прибор (микросхему). Приставка "микро" означает, что он изготавливается по микроэлектронной технологии. В процессе своей работы микроконтроллер последовательно считывает из порта ввода или памяти команды и выполняет их.
]]>По своему строению микроконтроллер отличается большим количеством характеристик, так как он представляет из себя одновременно сложное программно-управляемое устройство и электронный прибор (микросхему). Приставка "микро" означает, что он изготавливается по микроэлектронной технологии. В процессе своей работы микроконтроллер последовательно считывает из порта ввода или памяти команды и выполняет их.
]]>У высокочастотных (до 100 МГц) усилителей принцип работы такой же, как у УНЧ, только величины емкостей конденсаторов меньше в такой же пропорции как отношение высокой частоты к низкой.
Самый простой УНЧ состоит всего из 4 элементов – транзистора VТ1, переходного конденсатора С1, резистора смещения R1 и нагрузки BF1. В качестве нагрузки можно использовать телефонный капсюль. Нагрузка соединена с коллектором транзистора, R и C замкнуты на базе, эмиттер заземлен. Питание подается на общую точку нагрузки и резистора смещения R. Такая схема называется «с общим эмиттером». Напряжение питания, подаваемое на простой УНЧ, составляет 3 – 15 В.
Для освоения работы с УНЧ рекомендуется проводить эксперименты по подбору режимов усилителя и выбору номиналов всех элементов. Обычно у переходного конденсатора величина емкости составляет 1 – 100 мкФ. Более низкую частоту может усилить УНЧ с увеличением этой емкости.
Величина резистора смещения R1 (обычно десятки кОм) определяется сопротивлением телефонного кабеля, напряжением питания УНЧ и коэффициентом передачи (усиления) конкретного типа транзистора. Также необходимо знать, что номинал резистора R1 должен быть больше значения сопротивления нагрузки, как минимум, в 100 раз.
Специалисты рекомендуют при подборе резистора R1 использовать переменный резистор до 1 мОм. Его включают последовательно с резистором номиналом 20 – 30 кОм. Нужно подать на вход УНЧ звуковой сигнал с небольшой амплитудой, затем меняя сопротивления переменного резистора, при максимальной громкости сигнала добиться его наилучшего качества.
Входной сигнал УНЧ не должен быть больше 0.7 В. В простом УНЧ выходная мощность определяется величиной напряжения питания, сопротивлением нагрузки и может достигать нескольких ватт.
Простой УНЧ можно собрать в течение нескольких минут.
У высокочастотных (до 100 МГц) усилителей принцип работы такой же, как у УНЧ, только величины емкостей конденсаторов меньше в такой же пропорции как отношение высокой частоты к низкой.
Самый простой УНЧ состоит всего из 4 элементов – транзистора VТ1, переходного конденсатора С1, резистора смещения R1 и нагрузки BF1. В качестве нагрузки можно использовать телефонный капсюль. Нагрузка соединена с коллектором транзистора, R и C замкнуты на базе, эмиттер заземлен. Питание подается на общую точку нагрузки и резистора смещения R. Такая схема называется «с общим эмиттером». Напряжение питания, подаваемое на простой УНЧ, составляет 3 – 15 В.
Для освоения работы с УНЧ рекомендуется проводить эксперименты по подбору режимов усилителя и выбору номиналов всех элементов. Обычно у переходного конденсатора величина емкости составляет 1 – 100 мкФ. Более низкую частоту может усилить УНЧ с увеличением этой емкости.
Величина резистора смещения R1 (обычно десятки кОм) определяется сопротивлением телефонного кабеля, напряжением питания УНЧ и коэффициентом передачи (усиления) конкретного типа транзистора. Также необходимо знать, что номинал резистора R1 должен быть больше значения сопротивления нагрузки, как минимум, в 100 раз.
Специалисты рекомендуют при подборе резистора R1 использовать переменный резистор до 1 мОм. Его включают последовательно с резистором номиналом 20 – 30 кОм. Нужно подать на вход УНЧ звуковой сигнал с небольшой амплитудой, затем меняя сопротивления переменного резистора, при максимальной громкости сигнала добиться его наилучшего качества.
Входной сигнал УНЧ не должен быть больше 0.7 В. В простом УНЧ выходная мощность определяется величиной напряжения питания, сопротивлением нагрузки и может достигать нескольких ватт.
Простой УНЧ можно собрать в течение нескольких минут.
Чтобы собрать усилитель TDA необходимо минимум деталей и немного свободного времени. Частотный диапазон усилителя варьируется от 25 до 2000 Гц, гармонические искажения также имеют место быть, но они не значительны. Для того чтобы ее подключить необходимо просто руководствоваться здравому смыслу. Есть выводы на микросхеме. Для примера расмортим усилитель TDA 1557Q, с двумя каналами по 22Вт. Значение каждого выхода представлена выше (нумерация с лева на право). Все что нужно это подать напряжение питания и подключит колонки.
Радиатор к схеме - это просто пластина из алюминия, толщина ее равна примерно 5 мм для теплоотвода. Площадь поверхности равна примерно 300 сантиметрам.
Плюсом является то, что приобрести такую микросхему без труда можно на любом радиорынке. Где вам предоставят на выбор ряд микросхем разной мощности и характеристик. Либо можно выпаять ее из сломанного телевизора, в это случае у вас на руках окажется еще и радиатор.
]]>Чтобы собрать усилитель TDA необходимо минимум деталей и немного свободного времени. Частотный диапазон усилителя варьируется от 25 до 2000 Гц, гармонические искажения также имеют место быть, но они не значительны. Для того чтобы ее подключить необходимо просто руководствоваться здравому смыслу. Есть выводы на микросхеме. Для примера расмортим усилитель TDA 1557Q, с двумя каналами по 22Вт. Значение каждого выхода представлена выше (нумерация с лева на право). Все что нужно это подать напряжение питания и подключит колонки.
Радиатор к схеме - это просто пластина из алюминия, толщина ее равна примерно 5 мм для теплоотвода. Площадь поверхности равна примерно 300 сантиметрам.
Плюсом является то, что приобрести такую микросхему без труда можно на любом радиорынке. Где вам предоставят на выбор ряд микросхем разной мощности и характеристик. Либо можно выпаять ее из сломанного телевизора, в это случае у вас на руках окажется еще и радиатор.
]]>Рассмотрим схему простого блока питания. Она очень проста и позволяет регулировать напряжение в пределах 1-30 Вольт и содержит минимум деталей. Все зависит от мощности и выходного напряжения трансформатора.
Здесь все предельно ясно, понижающий трансформатор переводит 220 В в 25 В переменного тока. Трансформатор можно взять абсолютно любой главное чтобы он был понижающим. Далее следует выпрямить все при помощи диодного моста и сгладить пульсации конденсатором C1. То есть, получаем постоянное напряжение из переменного.
И, наконец, главная деталь в простом блоке питания – это микросхема LM317T (регулятор напряжения высокой стабильности). Цена данной детали около 15 руб. Это регулятор напряжения, он похож на стабилизатор напряжения трехвыводной, только со способностью контролировать выходное напряжение. Такая деталь используется в корпусе ТО – 220 или D2 Pack.
Данная вещица способна проводить силу тока 1,5 А через себя. Это достаточно вполне. Получается при подаче напряжения равном 30 Вольт и силе тока 1500 мА микросхема будет стабилизировать его в 36 Вольт.
Для сборки данной схемы необходим переменное сопротивление 6800 Ом, постоянное сопротивление 200 Ом на 1 Ватт. На выходе следует поставить электролетический конденсатор номиналом 1000 мкФ.
Диодный мост GBU606 импортного производства
Технические характеристики диодного моста GBU606
Datasheet диодного моста GBU606
Технические характеристики микросхемы LM317T
Наш будущий блок питания будет способен выдать 1,5 А в нагрузку, поэтому такой мост, рассчитанный до 6 А, подойдет идеально. LM устанавливается на радиатор при помощи пасты КПТ – 8, что улучшает теплообмен.
]]>Рассмотрим схему простого блока питания. Она очень проста и позволяет регулировать напряжение в пределах 1-30 Вольт и содержит минимум деталей. Все зависит от мощности и выходного напряжения трансформатора.
Здесь все предельно ясно, понижающий трансформатор переводит 220 В в 25 В переменного тока. Трансформатор можно взять абсолютно любой главное чтобы он был понижающим. Далее следует выпрямить все при помощи диодного моста и сгладить пульсации конденсатором C1. То есть, получаем постоянное напряжение из переменного.
И, наконец, главная деталь в простом блоке питания – это микросхема LM317T (регулятор напряжения высокой стабильности). Цена данной детали около 15 руб. Это регулятор напряжения, он похож на стабилизатор напряжения трехвыводной, только со способностью контролировать выходное напряжение. Такая деталь используется в корпусе ТО – 220 или D2 Pack.
Данная вещица способна проводить силу тока 1,5 А через себя. Это достаточно вполне. Получается при подаче напряжения равном 30 Вольт и силе тока 1500 мА микросхема будет стабилизировать его в 36 Вольт.
Для сборки данной схемы необходим переменное сопротивление 6800 Ом, постоянное сопротивление 200 Ом на 1 Ватт. На выходе следует поставить электролетический конденсатор номиналом 1000 мкФ.
Диодный мост GBU606 импортного производства
Технические характеристики диодного моста GBU606
Datasheet диодного моста GBU606
Технические характеристики микросхемы LM317T
Наш будущий блок питания будет способен выдать 1,5 А в нагрузку, поэтому такой мост, рассчитанный до 6 А, подойдет идеально. LM устанавливается на радиатор при помощи пасты КПТ – 8, что улучшает теплообмен.
]]>На программаторе USB asp есть две лампочки: синяя загорается, когда устройство подключено и готово к работе и красная, которая горит в процессе прошивки. Перед тем как его использовать нужно будет установить драйвера под windows. Ниже представлена значение каждого выхода программатора.
Эти выводы, как на микроконтроллере, так и на программаторе имеют одинаковое обозначение:
Подключать и прошивать микросхемы очень удобно с помощью монтажной платы и специальных соединительных проводков, можно конечно сделать проводки самому, но это отнимет у вас немало времени. Применяя данный способ прошивки микроконтроллер сразу же после прошивки приступает к работе. Не нужно собирать специальных схем для прошивки, а затем другую схему для работы и постоянно после прошивке переставлять микропроцессор.
Все примеры которые будут приведены в данном разделе будут написаны на языки «СИ» в среде разработке Atmel Studio. Для прошивки будет использоваться программа Khazama - очень удобная программа не нужно долго разбираться, просто выбрал нужный HEX – файл и залил его на микропроцессор.
]]>На программаторе USB asp есть две лампочки: синяя загорается, когда устройство подключено и готово к работе и красная, которая горит в процессе прошивки. Перед тем как его использовать нужно будет установить драйвера под windows. Ниже представлена значение каждого выхода программатора.
Эти выводы, как на микроконтроллере, так и на программаторе имеют одинаковое обозначение:
Подключать и прошивать микросхемы очень удобно с помощью монтажной платы и специальных соединительных проводков, можно конечно сделать проводки самому, но это отнимет у вас немало времени. Применяя данный способ прошивки микроконтроллер сразу же после прошивки приступает к работе. Не нужно собирать специальных схем для прошивки, а затем другую схему для работы и постоянно после прошивке переставлять микропроцессор.
Все примеры которые будут приведены в данном разделе будут написаны на языки «СИ» в среде разработке Atmel Studio. Для прошивки будет использоваться программа Khazama - очень удобная программа не нужно долго разбираться, просто выбрал нужный HEX – файл и залил его на микропроцессор.
]]>Эти преёмники, позволяют слушать станции, вещающие в диапазонах (65,8-75 Mhz).или (87,9-108 Mhz). А УКВ имеют много интересного. 27-27,4 Mhz (CB диапазон) – общаются радиолюбители. Такая же ситуация на диапазоне 144 Mhz. Если вас заинтересовала эта информация – вы можете попробовать собрать УКВ преёмник, который сможет прослушивать всё, что вы хотите.
Для начала, попробуем собрать простейший УКВ приёмник на основе системы ФАПЧ, который, впервые разработал радиолюбитель из Краснодара А. Захаровв в 1985 г. После этого преёмника, вы сможете браться за более сложные модели. Схема УКВ приемника представлена ниже.
Основой для радиочастотного каскада, служит транзистор VT1. Это частотный преобразователь, который выполняет функции синхронного детектора. Нужен синхронный гетеродин – дублирующий каскад для получения эффекта резонанса. Антенна – обычные наушники. Сигнал, поступает на контур L1C2, который настроен на частоту 70 Mhz и выше. Гетеродином, выступает Транзистор VT1. Гетеродин, можно перестраивать от 32,9 до 36,5 Mhz.
Граница его верхней гармонике, находится в границах нижнего вещательного УКВ (65.8...73 Mhz), поскольку Контур L2C5 настроен на частоту в два раза меньшую, чем входной контур L1C2, разносная частота, в границах допустимого значения для ширены звукового диапазона вещательной радиостанции. Эта граница, может превышать 10 KHZ.
Для этой модели, используется 2 каскадный усилитель. Предварительное усиление, с помощью транзистора VT2, а каскад усиления мощности, на VT3. Употребляемый ток, около 10 мА.
Для приёмника годится любой малогабаритный корпус. Для начала, экспериментируйте на столе, а потом понравившийся вариант, можно разместить в корпусе. Внимательно ознакомьтесь со схемой.
Начинаем с усилителя 3Ч, при помощи резистора R5, настраиваем каскады VT2-VT3 до получения тока покоя. Режим гетеродина, регулируется, с помощью резистора R1. Границы диапазона – путем смены индуктивности катушки L2. Входной контур, настраивается, с помощью конденсатора С2. Грубая настройка – C7. Для поиска радиостанций, лучше использовать катушку L2, а для точной настройки – конденсатор С2.
]]>Эти преёмники, позволяют слушать станции, вещающие в диапазонах (65,8-75 Mhz).или (87,9-108 Mhz). А УКВ имеют много интересного. 27-27,4 Mhz (CB диапазон) – общаются радиолюбители. Такая же ситуация на диапазоне 144 Mhz. Если вас заинтересовала эта информация – вы можете попробовать собрать УКВ преёмник, который сможет прослушивать всё, что вы хотите.
Для начала, попробуем собрать простейший УКВ приёмник на основе системы ФАПЧ, который, впервые разработал радиолюбитель из Краснодара А. Захаровв в 1985 г. После этого преёмника, вы сможете браться за более сложные модели. Схема УКВ приемника представлена ниже.
Основой для радиочастотного каскада, служит транзистор VT1. Это частотный преобразователь, который выполняет функции синхронного детектора. Нужен синхронный гетеродин – дублирующий каскад для получения эффекта резонанса. Антенна – обычные наушники. Сигнал, поступает на контур L1C2, который настроен на частоту 70 Mhz и выше. Гетеродином, выступает Транзистор VT1. Гетеродин, можно перестраивать от 32,9 до 36,5 Mhz.
Граница его верхней гармонике, находится в границах нижнего вещательного УКВ (65.8...73 Mhz), поскольку Контур L2C5 настроен на частоту в два раза меньшую, чем входной контур L1C2, разносная частота, в границах допустимого значения для ширены звукового диапазона вещательной радиостанции. Эта граница, может превышать 10 KHZ.
Для этой модели, используется 2 каскадный усилитель. Предварительное усиление, с помощью транзистора VT2, а каскад усиления мощности, на VT3. Употребляемый ток, около 10 мА.
Для приёмника годится любой малогабаритный корпус. Для начала, экспериментируйте на столе, а потом понравившийся вариант, можно разместить в корпусе. Внимательно ознакомьтесь со схемой.
Начинаем с усилителя 3Ч, при помощи резистора R5, настраиваем каскады VT2-VT3 до получения тока покоя. Режим гетеродина, регулируется, с помощью резистора R1. Границы диапазона – путем смены индуктивности катушки L2. Входной контур, настраивается, с помощью конденсатора С2. Грубая настройка – C7. Для поиска радиостанций, лучше использовать катушку L2, а для точной настройки – конденсатор С2.
]]>Структурно схема состоит из следующих основных блоков:
Мощность источника питания должна быть достачной для получения требуемой длины разряда. Как показывает практика чем больше мощность тем качественее будет разряд.
Повышающий трансформатор предназначен для повышения напряжения до значения порядка 4 кВ. Для таких целей отлично подойдет трансформатор из микроволновой печи. Подключая данный трансформатор в сеть на выходе получаем переменное напряжение порядка нескольких киловольт. Для ограничения по мощность на входе можно поставить предохранители.
Это могут быть, как вариант просто два обычных винтика, установленных в паре миллиметров на расстоянии друг от друга, но, как правило, рекомендуется приложить намного больше усилия. Так как выполненное качество будущего разрядника сильно повлияет на основную производительность будущей катушки.
Используя формулы для расчетов из учебников по физике, выполняете расчет резонансной емкости для требуемого трансформатора. Значение данного конденсатора необходимо примерно в 1,5 раза больше представленного значения. Как правило, наиболее эффективным выходом будет сборка самому, требуемого конденсатора. Если вы хотите уменьшить денежные затраты, можете попробовать полноценно изготовить конденсатор своими руками, но он может вас подвести в самый ответственный момент, а его емкость будет трудно определить.
Применяйте примерно 1000 витков выполненных из эмалированной медной проволоки, толщина которой должна быть до 0,6мм. Высота готовой катушки обычно равна 5 - 6 её представленным диаметрам. Полый металлический шар, прилепленный к верхней части имеющейся вторичной обмотке, а её нижнюю часть требуется заземлить. Для этого необходимо использовать хорошее и отдельное заземление, т.к. при применении общедомового заземления есть вариант уничтожить все электроприборы.
Вся первичная обмотка для данной катушки может быть выполнена из обычного толстого кабеля, или медной трубки. Наиболее лучший эффект будет достигнут если применить одножильный медный стержень толщиной 5-6 мм. Первичная обмотка содержит от 4-6 витков.
]]>Структурно схема состоит из следующих основных блоков:
Мощность источника питания должна быть достачной для получения требуемой длины разряда. Как показывает практика чем больше мощность тем качественее будет разряд.
Повышающий трансформатор предназначен для повышения напряжения до значения порядка 4 кВ. Для таких целей отлично подойдет трансформатор из микроволновой печи. Подключая данный трансформатор в сеть на выходе получаем переменное напряжение порядка нескольких киловольт. Для ограничения по мощность на входе можно поставить предохранители.
Это могут быть, как вариант просто два обычных винтика, установленных в паре миллиметров на расстоянии друг от друга, но, как правило, рекомендуется приложить намного больше усилия. Так как выполненное качество будущего разрядника сильно повлияет на основную производительность будущей катушки.
Используя формулы для расчетов из учебников по физике, выполняете расчет резонансной емкости для требуемого трансформатора. Значение данного конденсатора необходимо примерно в 1,5 раза больше представленного значения. Как правило, наиболее эффективным выходом будет сборка самому, требуемого конденсатора. Если вы хотите уменьшить денежные затраты, можете попробовать полноценно изготовить конденсатор своими руками, но он может вас подвести в самый ответственный момент, а его емкость будет трудно определить.
Применяйте примерно 1000 витков выполненных из эмалированной медной проволоки, толщина которой должна быть до 0,6мм. Высота готовой катушки обычно равна 5 - 6 её представленным диаметрам. Полый металлический шар, прилепленный к верхней части имеющейся вторичной обмотке, а её нижнюю часть требуется заземлить. Для этого необходимо использовать хорошее и отдельное заземление, т.к. при применении общедомового заземления есть вариант уничтожить все электроприборы.
Вся первичная обмотка для данной катушки может быть выполнена из обычного толстого кабеля, или медной трубки. Наиболее лучший эффект будет достигнут если применить одножильный медный стержень толщиной 5-6 мм. Первичная обмотка содержит от 4-6 витков.
]]>Порты ввода и вывода, необходимы микроконтроллеру для возможности обмена данными с различными устройствами, например, пьезоизлучателями, индикаторами, реле. С помощью AVR портов, проводится не только обмен данными, но и синхронизация схемы.
Количество AVR портов зависит от модели микроконтроллера. (1-7) портов. Как правело, порты AVR восьмиразрядные, если разрядность не ограничивается количеством выводов на корпусе микроконтроллера.
Порты AVR обозначаются латинскими буквами, например, PORTA, PORTB… PORTG. Каждый вывод – имеет порядковый номер, причем, нумерация начинается с (0). Если микроконтроллер позволяет использовать 8 разрядов, то нумерация выглядит так – PB0… PB7.
Выводы портов - могут выполнять также и альтернативные функции.. Если, например, сигнал модуля USART совпал с выводом BP5, то BP4 и BP3, работают в режимах (SCK, MISO и MOSI). они не могут использоваться как элементы порта ввода/вывода. Если модуль отключить. Эти выводы продолжают работать как элементы порта.
Управлять любым портом X Можно с помощью трех регистров:
The Port X Data Direction Register DDRx – Восьмибитный порт, обеспечивающий передачу данных каждой линии порта X. 0 – вход, 1 – выход. Каждый из 8 бит, отвечает за свою линию порта Px (0-7). Поскольку выводы порта нумеруются с (0) – первый бит отвечает за BP0, второй – за BP1… восьмой – за BP7. Если вы хотите заставить конкретный вывод работать на вход – значения регистра =0, на выход =1. При включении, параметры всех выводов, сбрасываются на (0).
The Port X Data Register (PORTx) - режим работы порта, на вход или на выход, определяет принцип работы с регистром.Порт X работает на вход. Регистр отвечает за синхронизацию напряжение линии с напряжением внутреннего питания. Эта процедура, осуществляется при помощи внутреннего сопротивления.Порт X работает на выход. Регистр управляет выходной линией.
The Port X Input Pins Address (PINx) - этот регистр считывает информацию, когда порт X находится в режиме входа. Например, прочитать линию PB6, можно только с помощью входного бита PINB6. У этого регистра есть еще несколько полезных функций: определения функциональности передатчика информации; определения всех узловых точек от передатчику к получателю;
Порты ввода и вывода, необходимы микроконтроллеру для возможности обмена данными с различными устройствами, например, пьезоизлучателями, индикаторами, реле. С помощью AVR портов, проводится не только обмен данными, но и синхронизация схемы.
Количество AVR портов зависит от модели микроконтроллера. (1-7) портов. Как правело, порты AVR восьмиразрядные, если разрядность не ограничивается количеством выводов на корпусе микроконтроллера.
Порты AVR обозначаются латинскими буквами, например, PORTA, PORTB… PORTG. Каждый вывод – имеет порядковый номер, причем, нумерация начинается с (0). Если микроконтроллер позволяет использовать 8 разрядов, то нумерация выглядит так – PB0… PB7.
Выводы портов - могут выполнять также и альтернативные функции.. Если, например, сигнал модуля USART совпал с выводом BP5, то BP4 и BP3, работают в режимах (SCK, MISO и MOSI). они не могут использоваться как элементы порта ввода/вывода. Если модуль отключить. Эти выводы продолжают работать как элементы порта.
Управлять любым портом X Можно с помощью трех регистров:
The Port X Data Direction Register DDRx – Восьмибитный порт, обеспечивающий передачу данных каждой линии порта X. 0 – вход, 1 – выход. Каждый из 8 бит, отвечает за свою линию порта Px (0-7). Поскольку выводы порта нумеруются с (0) – первый бит отвечает за BP0, второй – за BP1… восьмой – за BP7. Если вы хотите заставить конкретный вывод работать на вход – значения регистра =0, на выход =1. При включении, параметры всех выводов, сбрасываются на (0).
The Port X Data Register (PORTx) - режим работы порта, на вход или на выход, определяет принцип работы с регистром.Порт X работает на вход. Регистр отвечает за синхронизацию напряжение линии с напряжением внутреннего питания. Эта процедура, осуществляется при помощи внутреннего сопротивления.Порт X работает на выход. Регистр управляет выходной линией.
The Port X Input Pins Address (PINx) - этот регистр считывает информацию, когда порт X находится в режиме входа. Например, прочитать линию PB6, можно только с помощью входного бита PINB6. У этого регистра есть еще несколько полезных функций: определения функциональности передатчика информации; определения всех узловых точек от передатчику к получателю;
Схема довольно проста, в ней всего 5 транзисторов. На первых двух транзисторах собраны генераторы. Оба генератора работают на частоте приблизительно 100кГц.В контур первого генератора подключена поисковая катушка. Для её изготовления использовал провод толщиной 0,4мм. Его >намотал >на 3-х литровую банку. Необходимо сделать 50 витков. Катушка экранируется обычной фольгой. Провод, соединяющий саму плату и катушку, взял от телевизионной антенны. На третьем и четвертом собран смеситель. И на последнем усилитель звуковой частоты. Все детали вполне доступны и их можно купить без особого труда.
Принцип действия основан на регистрации рассогласования частоты поискового генератора и генератора являющегося эталонным или опорным. По умолчанию оба генератора генерируют токи одинаковой частоты. И на выходе смесителя сигнал отсутствует. Как только частота поискового генератора меняется, то на выходе смесителя появляется сигнал звуковой частоты.
Решил попробовать собрать и посмотреть действительно ли она будет работать. И какая будет чувствительность это металлоискателя. После нескольких часов поиска деталей и монтажа на монтажной плате схема была собрана. В арсенале не было у меня телефонного динамика. И >вместо него я подключил наушники. И это значительно повлияло на громкость.>
Для усиления уровня звуковой частоты вместо предложенного автором транзистора я подключил низковольтный усилитель на трех транзисторах. Для его работы пришлось повысить напряжение с 1.5 Вольт до 3-х.
Взамен предложенной автором катушки от китайских приемников. Я взял катушку от нашего советского приемника альпинист. Пришлось ее предварительно перемотать. Я использовал провод толщиной 0,25мм >и сделал 80 витков по 20 витков в каждую секцию (если такие имеются).>
Для возможности отключения поисковой катушки припаял гнездо, а к проводу поисковой катушки штекер. После сбора схемы заметил, что с незначительным изменением температуры частота опорного генератора сильно меняется. В интернете нашел информацию про температурные коэффициенты емкости и индуктивность. >Коэффициенты, которые >влияют на частотные характеристики схемы в зависимости от температуры. И если для емкости и индуктивности подобрать одинаковые коэффициенты противоположных знаков, то схема будет работать стабильно.
Но я не стал выносить себе мозг про всякие там коэффициенты и просто всю схему залил воском. А саму плату положил в коробку >а сверху >прижал пенопластом, который имеет низкий коэффициент теплопроводности. Также для лучшей стабильности схемы металлический корпус опорной катушки необходимо соединить с землей. Вместо транзисторов кт315Б вполне подойдут кт3102. В качестве провода поисковой катушки использовался провод от телевизионной антенны.
По поводу чувствительности могу сказать, что металлоискатель реагирует на 2-х рублевую монетку с расстояния около 10см. Холодильник с полметра «видит». По крайней мере, у меня так получилось. Возможно, сам металлоискатель работает не на частоте 100кГц. Так как у меня не было инструментов и приспособлений, чтобы это все замерить. Попробую уменьшить кол-во витков поисковой катушки результаты, потом выложу отдельной статьей.
Единственным и весьма весомым недостатком является то, что частота опорного генератора убегает. Происходит это, потому что опорный генератор ничем не стабилизирован и периодически приходится его подстраивать.
Хочу модернизировать это МД до ума - повысить чуйку хотя бы до 20см на монетку. И чтобы питание не превышало 3В. Кому интересно пишите, комментируйте! Совместными усилиями возможно и получиться, что-нибудь сделать)
]]>Схема довольно проста, в ней всего 5 транзисторов. На первых двух транзисторах собраны генераторы. Оба генератора работают на частоте приблизительно 100кГц.В контур первого генератора подключена поисковая катушка. Для её изготовления использовал провод толщиной 0,4мм. Его >намотал >на 3-х литровую банку. Необходимо сделать 50 витков. Катушка экранируется обычной фольгой. Провод, соединяющий саму плату и катушку, взял от телевизионной антенны. На третьем и четвертом собран смеситель. И на последнем усилитель звуковой частоты. Все детали вполне доступны и их можно купить без особого труда.
Принцип действия основан на регистрации рассогласования частоты поискового генератора и генератора являющегося эталонным или опорным. По умолчанию оба генератора генерируют токи одинаковой частоты. И на выходе смесителя сигнал отсутствует. Как только частота поискового генератора меняется, то на выходе смесителя появляется сигнал звуковой частоты.
Решил попробовать собрать и посмотреть действительно ли она будет работать. И какая будет чувствительность это металлоискателя. После нескольких часов поиска деталей и монтажа на монтажной плате схема была собрана. В арсенале не было у меня телефонного динамика. И >вместо него я подключил наушники. И это значительно повлияло на громкость.>
Для усиления уровня звуковой частоты вместо предложенного автором транзистора я подключил низковольтный усилитель на трех транзисторах. Для его работы пришлось повысить напряжение с 1.5 Вольт до 3-х.
Взамен предложенной автором катушки от китайских приемников. Я взял катушку от нашего советского приемника альпинист. Пришлось ее предварительно перемотать. Я использовал провод толщиной 0,25мм >и сделал 80 витков по 20 витков в каждую секцию (если такие имеются).>
Для возможности отключения поисковой катушки припаял гнездо, а к проводу поисковой катушки штекер. После сбора схемы заметил, что с незначительным изменением температуры частота опорного генератора сильно меняется. В интернете нашел информацию про температурные коэффициенты емкости и индуктивность. >Коэффициенты, которые >влияют на частотные характеристики схемы в зависимости от температуры. И если для емкости и индуктивности подобрать одинаковые коэффициенты противоположных знаков, то схема будет работать стабильно.
Но я не стал выносить себе мозг про всякие там коэффициенты и просто всю схему залил воском. А саму плату положил в коробку >а сверху >прижал пенопластом, который имеет низкий коэффициент теплопроводности. Также для лучшей стабильности схемы металлический корпус опорной катушки необходимо соединить с землей. Вместо транзисторов кт315Б вполне подойдут кт3102. В качестве провода поисковой катушки использовался провод от телевизионной антенны.
По поводу чувствительности могу сказать, что металлоискатель реагирует на 2-х рублевую монетку с расстояния около 10см. Холодильник с полметра «видит». По крайней мере, у меня так получилось. Возможно, сам металлоискатель работает не на частоте 100кГц. Так как у меня не было инструментов и приспособлений, чтобы это все замерить. Попробую уменьшить кол-во витков поисковой катушки результаты, потом выложу отдельной статьей.
Единственным и весьма весомым недостатком является то, что частота опорного генератора убегает. Происходит это, потому что опорный генератор ничем не стабилизирован и периодически приходится его подстраивать.
Хочу модернизировать это МД до ума - повысить чуйку хотя бы до 20см на монетку. И чтобы питание не превышало 3В. Кому интересно пишите, комментируйте! Совместными усилиями возможно и получиться, что-нибудь сделать)
]]>Какую схему стоит выбрать для начинающего радиолюбителя? Супергетеродин слишком сложен, и навряд-ли стоит стартовать, начиная с его постройки. Приемник прямого усиления гораздо проще, но у него для, коротких волн, избирательность маловата.
Простое приемное устройство стоит делать одноконтурным, потому, как два контура единовременно перестраивать, довольно сложно — здесь необходимо использование многосекционных переменных конденсаторов, и много времени придётся затратить для сопряжения настроек.
Полоса пропускания, даже если схема КВ приемника многоконтурная, все равно останется довольно широкой. Для колебательного контура основным показателем остается его добротность, и она зависит в основном от качества резонансного контура, главным образом катушки, и ее сложно изготовить с добротностью более 100-200.
В этом случае, скажем, при приёме десяти - мегагерцового диапазона, полоса пропускания будет около 50 кГц. Это очень много - сетка частот радиостанций на коротких волнах регламентируется в пределах 5 кГц, и принимать десять станций одновременно - неинтересно. Есть выход, — при помощи регенерации повышать добротность контура.
Представленная схема приемника состоит из нескольких каскадов. Первый каскад реализован на транзисторе VT1, который работает в так «барьерном» режиме,- потенциалы базы и коллектора равны. Здесь коллектор по постоянному току соединен через колебательный контур с общим проводом. Транзистор запитан на эмиттер через R1 и R2. В этом режиме кремниевые высокочастотные транзисторы могут усиливать сигналы в амплитуду до десятой доли вольта.
Колебательный контур выполнен из катушки L1 и конденсаторов С2, С3. Антенна связывается с контуром через С1 (для того, чтобы уменьшить ее влияние на частоту настройки). Включением небольшой части катушки (треть-четверть) достигается обратная связь в цепи базы. Схема каскада сходна со схемой генератора (схема Хартли). Но регулируя ток резистором R1, устанавливается режим, при котором возбуждения еще нет, но регенеративное усиление принятых антенной сигналов уже происходит.
Здесь же модулированные сигналы радиостанций детектируются. Через С5, сигнал звуковой частоты передаётся для дальнейшего усиления. С4 замыкает ток высокой частоты на общий провод.
Схема КВ приемника дополнена усилителем звуковой частоты, выполненного на VT2 и VT3 с непосредственной связью.
Хорошо конструктивно выполненный и правильно налаженный приемник, позволит прослушивать те же станции, что и аппарат более сложной конструкции.
]]>Какую схему стоит выбрать для начинающего радиолюбителя? Супергетеродин слишком сложен, и навряд-ли стоит стартовать, начиная с его постройки. Приемник прямого усиления гораздо проще, но у него для, коротких волн, избирательность маловата.
Простое приемное устройство стоит делать одноконтурным, потому, как два контура единовременно перестраивать, довольно сложно — здесь необходимо использование многосекционных переменных конденсаторов, и много времени придётся затратить для сопряжения настроек.
Полоса пропускания, даже если схема КВ приемника многоконтурная, все равно останется довольно широкой. Для колебательного контура основным показателем остается его добротность, и она зависит в основном от качества резонансного контура, главным образом катушки, и ее сложно изготовить с добротностью более 100-200.
В этом случае, скажем, при приёме десяти - мегагерцового диапазона, полоса пропускания будет около 50 кГц. Это очень много - сетка частот радиостанций на коротких волнах регламентируется в пределах 5 кГц, и принимать десять станций одновременно - неинтересно. Есть выход, — при помощи регенерации повышать добротность контура.
Представленная схема приемника состоит из нескольких каскадов. Первый каскад реализован на транзисторе VT1, который работает в так «барьерном» режиме,- потенциалы базы и коллектора равны. Здесь коллектор по постоянному току соединен через колебательный контур с общим проводом. Транзистор запитан на эмиттер через R1 и R2. В этом режиме кремниевые высокочастотные транзисторы могут усиливать сигналы в амплитуду до десятой доли вольта.
Колебательный контур выполнен из катушки L1 и конденсаторов С2, С3. Антенна связывается с контуром через С1 (для того, чтобы уменьшить ее влияние на частоту настройки). Включением небольшой части катушки (треть-четверть) достигается обратная связь в цепи базы. Схема каскада сходна со схемой генератора (схема Хартли). Но регулируя ток резистором R1, устанавливается режим, при котором возбуждения еще нет, но регенеративное усиление принятых антенной сигналов уже происходит.
Здесь же модулированные сигналы радиостанций детектируются. Через С5, сигнал звуковой частоты передаётся для дальнейшего усиления. С4 замыкает ток высокой частоты на общий провод.
Схема КВ приемника дополнена усилителем звуковой частоты, выполненного на VT2 и VT3 с непосредственной связью.
Хорошо конструктивно выполненный и правильно налаженный приемник, позволит прослушивать те же станции, что и аппарат более сложной конструкции.
]]>Условно схему металлоискателя пират я разбил на 4 основных блока :
Обозначение | Тип | Номинал |
R1 | резистор | 1 кОм |
R2 | резистор | 1 кОм |
R3 | резистор | 100 кОм |
R4 | резистор | 470 Ом |
R5 | резистор | 100 Ом |
R6 | резистор | 150 Ом |
R7 | резистор | 220 Ом |
R8 | резистор | 390 Ом |
R9 | резистор | 47 кОм |
R10 | резистор | 62 кОм |
R11 | резистор | 3 МОм |
R12 | резистор | 62 кОм |
R13 | резистор | 120 кОм |
R14 | резистор | 6,8 кОм |
R15 | резистор | 560 кОм |
R16 | резистор | 43 Ом |
R17 | переменное сопротивление | 100 кОм |
R18 | переменное сопротивление | 10 кОмм |
DA1 | микросхема | NE555 |
DA2 | микросхема | К157УД2 |
C1 | конденсатор | 220 нФ |
C2 | конденсатор | 100 нФ |
C3 | конденсатор | 1мкФ |
C4 | конденсатор | 10 мкФ |
C5 | конденсатор | 1 нФ |
C6 | конденсатор | 10нФ |
C7 | конденсатор | 10 мкФ |
C8 | конденсатор | 1000 мкФ |
C9 | конденсатор | 1 мкФ |
T1 | транзистор | BC557 |
T2 | транзистор | IRF740 |
T3 | транзистор | BC547 |
D1 | диод | 1N4148 |
D2 | диод | 1N4148 |
D3 | диод | 1N4148 |
BA1 | динамик | 8 Ом |
L1 | поисковая катушка | 2 Ом |
PW1 | источник питания | 9-12 Вольт |
Если вы начинающий радиолюбитель то полезно узнать что такое маркировка конденсаторов.
Генератор импульсов необходим для генерации импульсов заданной частоты. Он собран на таймере NE555. Частота задается с помощью подбора C1,C2,R2,R3, изменяя значения этих элементов можно изменять частоту генерации импульсов, скважность и длительность.
Сгенерированные таймером импульсы поступают на транзистор T1, открывая и закрывая его. Он в свою очередь подключен в цепь базы полевого транзистора T2. Резистор R4 необходим для выбора «рабочей точки» транзистора.
Усилитель звуковой частоты собран на транзисторе BC547, cмаксимальным током коллектора 0,1А. В цепь коллектора которого подключен низкоомный динамик и сопротивление номиналом 43 Ом.
Схема на первый взгляд, кажется, довольно простой. Но в процессе сборки мне все равно пришлось изрядно «попотеть». Схему сначала решил собрать на монтажной плате и убедиться в ее работоспособности.
Первым делом я собрал усилитель звуковой частоты. Для того чтобы на дальнейших этапах сборки проверять работоспособность генератора импульсов и микросхемы.
Сборку начал производить по блокам, сначала собрал генератор импульсов. Правильность его сборки проверил путем подсоединения динамика через транзистор к выходу таймера.
Далее приступил к подключению микросхемы К157УД2. Тут ни чего сложного нет-два каскада усиления и все. Просто нужно быть внимательным и никуда не спешить. Правильность сборки аналогично проверил, дотронувшись металлической отверткой до входной 3-й ножки при этом в динамике, появился характерный звук. Кто хоть раз собирал усилитель, тот поймет, о чем идет речь.
Катушку сделал из медной проволоки диаметром 0.5мм, намотав ее на банку сделав 30 витков, потом обмотал ее фумой-лентой. Провод, соединяющий катушку и саму плату металлоискателя нужно брать как можно толще и мощнее. У меня был питающий многожильный сетевой провод от телевизора.
После того как подключил оставшийся блок с транзистором и катушкой подал напряжение 9В от китайского блока питания. В динамике появился долгожданный треск. Начал настраивать металлоискатель до тех пор пока в динамике изредка не появлялись «щелчки».
К моему удивлению металлоискатель не стал реагировать на металл, он не «видел » даже холодильник! Реагировал только на электронную аппаратуру, но при этом в динамике были слышны не «щелчки» а шумы генерируемые электроникой. Начал проверять схему, транзистор поисковой катушки IRF740 очень сильно грелся. После проверки его тестером я был уверен что причина именно в нем. Сопротивление закрытого транзистора было минимальное. Оказалось, что в процессе сборки я допустил грубейшую ошибку, перепутав ножки транзистора. В итоге имеем испорченный транзистор и настроение, так как ближайший магазин радиодеталей в 40 минутах езды на транспорте от дома.
После того как заменил транзистор все сразу заработало и «затрещало» как следует. И транзистор перестал греться. На форумах про сборку этого металлоискателя пишут, что питание лучше подводить на плате поближе к катушке, мол, так «чуйка» подрастет. После того как перепаял провод питания, к моему удивлению, чувствительность действительно возросла. Не на много, приблизительно на 1 сантиметр, но все же. Хотя не вижу в этом логики, какая разнится, куда провод питания подводить? Может просто напряжение от блоки изменилось, блок то китайский у меня.
Вот такая вот история сборки металлоискателя «ПИРАТ» В будущем хочу модернизировать его, сделав автоматическую настройку и подстройку или еще каких либо функций с помощью микроконтроллера . Настройку можно реализовать подключив вместо реостатов, транзисторы и изменять их сопротивление путем подачи определенного напряжения на базу. Если есть какие-то еще идеи или готовые наработки пишите в комментариях, задавайте вопросы, вместе может что и получится сделать.
Схему собирал на готовой плате,так как не оказалось под рукой интсрументов для изготовления оригинальной печатной платы. В итоге вот что получилось:
Качество пайки конечно не очень, собирал на скорую руку. Но все равно работает.
А вот сама катушка. Ее обматал фумой чтобы витки плотно были друг к другу. Также это придает жесткость катушки. Использовал металлическое крепление из проволки. Не знаю правда влияет ли она на чувствительность металлоискателя. Ведь в этой проволоке тоже наводится ЭДС которое также должно влиять на катушку.
Ну и на последок. Нашлось время чтобы снять небольшое видео работы моего МД.
https://www.youtube.com/watch?v=Ib-gsZP9K2c
Сайт разработчиков:http://radioskot.ru/publ/metalloiskatel_pirat/1-1-0-480
Скачать печатную плату в формате Sprint-Layout можно здесь
Все связанное с металлоискателем пират можно обсудить на форуме.
]]>Условно схему металлоискателя пират я разбил на 4 основных блока :
Обозначение | Тип | Номинал |
R1 | резистор | 1 кОм |
R2 | резистор | 1 кОм |
R3 | резистор | 100 кОм |
R4 | резистор | 470 Ом |
R5 | резистор | 100 Ом |
R6 | резистор | 150 Ом |
R7 | резистор | 220 Ом |
R8 | резистор | 390 Ом |
R9 | резистор | 47 кОм |
R10 | резистор | 62 кОм |
R11 | резистор | 3 МОм |
R12 | резистор | 62 кОм |
R13 | резистор | 120 кОм |
R14 | резистор | 6,8 кОм |
R15 | резистор | 560 кОм |
R16 | резистор | 43 Ом |
R17 | переменное сопротивление | 100 кОм |
R18 | переменное сопротивление | 10 кОмм |
DA1 | микросхема | NE555 |
DA2 | микросхема | К157УД2 |
C1 | конденсатор | 220 нФ |
C2 | конденсатор | 100 нФ |
C3 | конденсатор | 1мкФ |
C4 | конденсатор | 10 мкФ |
C5 | конденсатор | 1 нФ |
C6 | конденсатор | 10нФ |
C7 | конденсатор | 10 мкФ |
C8 | конденсатор | 1000 мкФ |
C9 | конденсатор | 1 мкФ |
T1 | транзистор | BC557 |
T2 | транзистор | IRF740 |
T3 | транзистор | BC547 |
D1 | диод | 1N4148 |
D2 | диод | 1N4148 |
D3 | диод | 1N4148 |
BA1 | динамик | 8 Ом |
L1 | поисковая катушка | 2 Ом |
PW1 | источник питания | 9-12 Вольт |
Если вы начинающий радиолюбитель то полезно узнать что такое маркировка конденсаторов.
Генератор импульсов необходим для генерации импульсов заданной частоты. Он собран на таймере NE555. Частота задается с помощью подбора C1,C2,R2,R3, изменяя значения этих элементов можно изменять частоту генерации импульсов, скважность и длительность.
Сгенерированные таймером импульсы поступают на транзистор T1, открывая и закрывая его. Он в свою очередь подключен в цепь базы полевого транзистора T2. Резистор R4 необходим для выбора «рабочей точки» транзистора.
Усилитель звуковой частоты собран на транзисторе BC547, cмаксимальным током коллектора 0,1А. В цепь коллектора которого подключен низкоомный динамик и сопротивление номиналом 43 Ом.
Схема на первый взгляд, кажется, довольно простой. Но в процессе сборки мне все равно пришлось изрядно «попотеть». Схему сначала решил собрать на монтажной плате и убедиться в ее работоспособности.
Первым делом я собрал усилитель звуковой частоты. Для того чтобы на дальнейших этапах сборки проверять работоспособность генератора импульсов и микросхемы.
Сборку начал производить по блокам, сначала собрал генератор импульсов. Правильность его сборки проверил путем подсоединения динамика через транзистор к выходу таймера.
Далее приступил к подключению микросхемы К157УД2. Тут ни чего сложного нет-два каскада усиления и все. Просто нужно быть внимательным и никуда не спешить. Правильность сборки аналогично проверил, дотронувшись металлической отверткой до входной 3-й ножки при этом в динамике, появился характерный звук. Кто хоть раз собирал усилитель, тот поймет, о чем идет речь.
Катушку сделал из медной проволоки диаметром 0.5мм, намотав ее на банку сделав 30 витков, потом обмотал ее фумой-лентой. Провод, соединяющий катушку и саму плату металлоискателя нужно брать как можно толще и мощнее. У меня был питающий многожильный сетевой провод от телевизора.
После того как подключил оставшийся блок с транзистором и катушкой подал напряжение 9В от китайского блока питания. В динамике появился долгожданный треск. Начал настраивать металлоискатель до тех пор пока в динамике изредка не появлялись «щелчки».
К моему удивлению металлоискатель не стал реагировать на металл, он не «видел » даже холодильник! Реагировал только на электронную аппаратуру, но при этом в динамике были слышны не «щелчки» а шумы генерируемые электроникой. Начал проверять схему, транзистор поисковой катушки IRF740 очень сильно грелся. После проверки его тестером я был уверен что причина именно в нем. Сопротивление закрытого транзистора было минимальное. Оказалось, что в процессе сборки я допустил грубейшую ошибку, перепутав ножки транзистора. В итоге имеем испорченный транзистор и настроение, так как ближайший магазин радиодеталей в 40 минутах езды на транспорте от дома.
После того как заменил транзистор все сразу заработало и «затрещало» как следует. И транзистор перестал греться. На форумах про сборку этого металлоискателя пишут, что питание лучше подводить на плате поближе к катушке, мол, так «чуйка» подрастет. После того как перепаял провод питания, к моему удивлению, чувствительность действительно возросла. Не на много, приблизительно на 1 сантиметр, но все же. Хотя не вижу в этом логики, какая разнится, куда провод питания подводить? Может просто напряжение от блоки изменилось, блок то китайский у меня.
Вот такая вот история сборки металлоискателя «ПИРАТ» В будущем хочу модернизировать его, сделав автоматическую настройку и подстройку или еще каких либо функций с помощью микроконтроллера . Настройку можно реализовать подключив вместо реостатов, транзисторы и изменять их сопротивление путем подачи определенного напряжения на базу. Если есть какие-то еще идеи или готовые наработки пишите в комментариях, задавайте вопросы, вместе может что и получится сделать.
Схему собирал на готовой плате,так как не оказалось под рукой интсрументов для изготовления оригинальной печатной платы. В итоге вот что получилось:
Качество пайки конечно не очень, собирал на скорую руку. Но все равно работает.
А вот сама катушка. Ее обматал фумой чтобы витки плотно были друг к другу. Также это придает жесткость катушки. Использовал металлическое крепление из проволки. Не знаю правда влияет ли она на чувствительность металлоискателя. Ведь в этой проволоке тоже наводится ЭДС которое также должно влиять на катушку.
Ну и на последок. Нашлось время чтобы снять небольшое видео работы моего МД.
https://www.youtube.com/watch?v=Ib-gsZP9K2c
Сайт разработчиков:http://radioskot.ru/publ/metalloiskatel_pirat/1-1-0-480
Скачать печатную плату в формате Sprint-Layout можно здесь
Все связанное с металлоискателем пират можно обсудить на форуме.
]]>Схема подключения строчника состоит из небольшого количества деталей:
Схема строчника представляет собой обычный генератор с обратной связью. В наладке она не нуждается, работать должна сразу. Этот строчник будем питать от аккумулятора с номинальным выходным напряжеинем 12-30 В и максимальной силой тока 1 А. Таким образом получаем максимальную мощность в 30 Ватт.
Для подключения строчника нужно сначала определит первичную обмотку. Сделать это можно обычным Омметром. Выводы с наименьшим сопротивленем это и есть концы первичной обмотки. Эта обмотка подключаеться в коллекторную цепь транзистора. Делитель напряжения необходим для выбора рабочей точки транзитора. Сопротивление R1 - подстроечное. Изменяя его номинал, можно достигнуть наилучшего эффект разряда. Вторичную обмотку подключаем в цепь базы. После подачи напряжения строчник должен сразу заработать.
]]>Схема подключения строчника состоит из небольшого количества деталей:
Схема строчника представляет собой обычный генератор с обратной связью. В наладке она не нуждается, работать должна сразу. Этот строчник будем питать от аккумулятора с номинальным выходным напряжеинем 12-30 В и максимальной силой тока 1 А. Таким образом получаем максимальную мощность в 30 Ватт.
Для подключения строчника нужно сначала определит первичную обмотку. Сделать это можно обычным Омметром. Выводы с наименьшим сопротивленем это и есть концы первичной обмотки. Эта обмотка подключаеться в коллекторную цепь транзистора. Делитель напряжения необходим для выбора рабочей точки транзитора. Сопротивление R1 - подстроечное. Изменяя его номинал, можно достигнуть наилучшего эффект разряда. Вторичную обмотку подключаем в цепь базы. После подачи напряжения строчник должен сразу заработать.
]]>SPI – это последовательный периферийный интерфейс обмена данными. Обмен данными осуществляется между ведущим устройством и несколькими ведомыми устройствами на небольших расстояниях. В роли ведущего устройства выступает микроконтроллер. Подключение устройств к микроконтроллеру осуществляется по трем проводам (линиям) и линией, которая необходима для выбора устройства.
Каждая линия имеет свое обозначение:
Важно понимать, что SPI это не аналоговый выход. Для того что бы подключить Arduino и использовать ее как ведущее устройство, нужно знать определенные выходы.
К примеру на Mega2560 шина SPI реализована на следующих выводах:
На других контроллерах на базе ATMega 168/328
Если вы не используете выход SS он все равно должен быть установлен как выход с помощью метода: pinMode(SSpin,OUTPUT)
Библиотека SPI содержит ряд методов которые упрощают обмен данными с устройствами.
Для вызова этого методов используется следующая конструкция: SPI.methodname();
begin() – инициализация шины SPI. Настраивает пины SCK, MOSI, SS как выходы. На SCK, MOSI записывает значение LOW а на SS значение HIGH.
end() – отключает шину SPI
setClockDivider() – используется для установки частоты синхронизации шины SPI к заданной частоте контроллера.
Параметры:
setBitOrder() - устанавливает порядок вывода даннах в/из шины SPI.
Параметры:
satDataMode() –режима SPI, настройка уровня сигнала синхронизации и фазу синхронизации.
Параметры:
transfer() – используется для передачи одного байта информации по шине.
Параметры:
SPI – это последовательный периферийный интерфейс обмена данными. Обмен данными осуществляется между ведущим устройством и несколькими ведомыми устройствами на небольших расстояниях. В роли ведущего устройства выступает микроконтроллер. Подключение устройств к микроконтроллеру осуществляется по трем проводам (линиям) и линией, которая необходима для выбора устройства.
Каждая линия имеет свое обозначение:
Важно понимать, что SPI это не аналоговый выход. Для того что бы подключить Arduino и использовать ее как ведущее устройство, нужно знать определенные выходы.
К примеру на Mega2560 шина SPI реализована на следующих выводах:
На других контроллерах на базе ATMega 168/328
Если вы не используете выход SS он все равно должен быть установлен как выход с помощью метода: pinMode(SSpin,OUTPUT)
Библиотека SPI содержит ряд методов которые упрощают обмен данными с устройствами.
Для вызова этого методов используется следующая конструкция: SPI.methodname();
begin() – инициализация шины SPI. Настраивает пины SCK, MOSI, SS как выходы. На SCK, MOSI записывает значение LOW а на SS значение HIGH.
end() – отключает шину SPI
setClockDivider() – используется для установки частоты синхронизации шины SPI к заданной частоте контроллера.
Параметры:
setBitOrder() - устанавливает порядок вывода даннах в/из шины SPI.
Параметры:
satDataMode() –режима SPI, настройка уровня сигнала синхронизации и фазу синхронизации.
Параметры:
transfer() – используется для передачи одного байта информации по шине.
Параметры:
К примеру, можно измерить температуру, давление, влажность, узнать расположение магнитных полюсов, узнать положение какого либо тела в пространстве, измерить электромагнитный фон и многие другие параметры.
Плата Arduino снабжена множеством входов и выходов, к которым подключаются различные датчики и исполняющие механизмы. Количество и разнообразие всех подключаемых датчиков ограничено только фантазией изобретателя и аппаратными возможностями самой платы Arduino. Полученные таким образом данные можно обрабатывать на самой плате Arduino, либо посылать их в компьютер.
Для того чтобы начать коммуникацию необходимо сначала запрограммировать или «прошить» плату. Для этого используется специальный язык программирования Arduino, который основан на среде программирования Processing.
Программирование осущесвляеться при помощи среды Arduino IDE. При установки данный программы с ней устанавливается куча готовых примеров.
Язык программирования простой и понятный, его с легкостью смогут освоить даже те, кто не имел дело с программированием. Среда разработки доступна всем и абсолютно бесплатна. Скачать вы ее можете с официального сайта Arduino.
Низкая стоимость – платы Arduino дешевле, чем другие платформы. Ее можно без особого труда собрать самому.
Не нужно быть программистом и знать, как работает микроконтроллер, чтобы сделать простой проект. К примеру, можно стандартными библиотеками Arduino автоматизировать что либо.
]]>К примеру, можно измерить температуру, давление, влажность, узнать расположение магнитных полюсов, узнать положение какого либо тела в пространстве, измерить электромагнитный фон и многие другие параметры.
Плата Arduino снабжена множеством входов и выходов, к которым подключаются различные датчики и исполняющие механизмы. Количество и разнообразие всех подключаемых датчиков ограничено только фантазией изобретателя и аппаратными возможностями самой платы Arduino. Полученные таким образом данные можно обрабатывать на самой плате Arduino, либо посылать их в компьютер.
Для того чтобы начать коммуникацию необходимо сначала запрограммировать или «прошить» плату. Для этого используется специальный язык программирования Arduino, который основан на среде программирования Processing.
Программирование осущесвляеться при помощи среды Arduino IDE. При установки данный программы с ней устанавливается куча готовых примеров.
Язык программирования простой и понятный, его с легкостью смогут освоить даже те, кто не имел дело с программированием. Среда разработки доступна всем и абсолютно бесплатна. Скачать вы ее можете с официального сайта Arduino.
Низкая стоимость – платы Arduino дешевле, чем другие платформы. Ее можно без особого труда собрать самому.
Не нужно быть программистом и знать, как работает микроконтроллер, чтобы сделать простой проект. К примеру, можно стандартными библиотеками Arduino автоматизировать что либо.
]]>Первым проектом на микроконтроллере AVR у нас будет мигание светодиодом. Писать программы в этой статье и во всех последующих мы будем с помощью среды разработки Atmel Studio на языке «СИ». Как известно микроконтроллеры AVR могут иметь разное количество портов ввода/вывода. Все они настраиваются одинаково. Не будем приводить схему, нужно просто к нулевому порту подключить светодиод.
Итак, для того чтобы помигать светодиодом, сначала нам необходимо настроить определенный бит регистра на выход. Для этого в бит регистра DDRX необходимо записать логическую единицу. К примеру, для порта B микроконтроллера Atmega 8 установим первый бит регистра DDRB на выход. Запись осуществляется следующей конструкцией DDRB |=(1<<0); Эта запись означает, что первый бит порта B настроен на выход.
Для записи определенного значения на этот выход нужно использовать регистр PORDB. В него мы можем записать логическую единицу, либо логический ноль. Для того чтобы помигать светодиодом нужно в определенный бит этого регистра разные значения с определенным интервалом получаем. Сначала записываем единицу PORTB |=(1<<0),выдерживаем определенную паузу, а затем устанавливаем в ноль PORTB &=~(1<<0).
Для выдерживания паузы используется стандартная библиотека <avr/delay.h>
с помощью метода _delay_ms(value).
#include <avr/io.h> #include <avr/delay.h> int main(void) { //Настраиваем пин 0 на выход; DDRB |=(1<<0); while(1) { //Устанавливаем логическую единицу; PORTB |=(1<<0); _delay_ms(1000); //Устанавливаем логический ноль; PORTB &=~(1<<0); _delay_ms(1000); } }
Используя метод _delay_ms() программа «заходит» в него и там остается – выдерживает заданную паузу. Это не рациональное использование ресурсов и возможностей процессора. Правильнее будет использование таймеров и прерываний. Когда мы настраиваем таймер на определенную частоту. Когда происходит прерывание мы инвентируем значение порта. В этом случае программа не «зависает» в методе _delay_ms() и может выполнять другие действия. В следующей статье рассмотрим это подробнее.
]]>Первым проектом на микроконтроллере AVR у нас будет мигание светодиодом. Писать программы в этой статье и во всех последующих мы будем с помощью среды разработки Atmel Studio на языке «СИ». Как известно микроконтроллеры AVR могут иметь разное количество портов ввода/вывода. Все они настраиваются одинаково. Не будем приводить схему, нужно просто к нулевому порту подключить светодиод.
Итак, для того чтобы помигать светодиодом, сначала нам необходимо настроить определенный бит регистра на выход. Для этого в бит регистра DDRX необходимо записать логическую единицу. К примеру, для порта B микроконтроллера Atmega 8 установим первый бит регистра DDRB на выход. Запись осуществляется следующей конструкцией DDRB |=(1<<0); Эта запись означает, что первый бит порта B настроен на выход.
Для записи определенного значения на этот выход нужно использовать регистр PORDB. В него мы можем записать логическую единицу, либо логический ноль. Для того чтобы помигать светодиодом нужно в определенный бит этого регистра разные значения с определенным интервалом получаем. Сначала записываем единицу PORTB |=(1<<0),выдерживаем определенную паузу, а затем устанавливаем в ноль PORTB &=~(1<<0).
Для выдерживания паузы используется стандартная библиотека <avr/delay.h>
с помощью метода _delay_ms(value).
#include <avr/io.h> #include <avr/delay.h> int main(void) { //Настраиваем пин 0 на выход; DDRB |=(1<<0); while(1) { //Устанавливаем логическую единицу; PORTB |=(1<<0); _delay_ms(1000); //Устанавливаем логический ноль; PORTB &=~(1<<0); _delay_ms(1000); } }
Используя метод _delay_ms() программа «заходит» в него и там остается – выдерживает заданную паузу. Это не рациональное использование ресурсов и возможностей процессора. Правильнее будет использование таймеров и прерываний. Когда мы настраиваем таймер на определенную частоту. Когда происходит прерывание мы инвентируем значение порта. В этом случае программа не «зависает» в методе _delay_ms() и может выполнять другие действия. В следующей статье рассмотрим это подробнее.
]]>При написании программ для микроконтроллеров нужно рационально использовать и правильно выбирать место хранения объявленных данных. Не правильное написание программ может привести к тому, что вся память может быть израсходована, и это приведет к сбою программ.
По умолчанию все объявленные переменные используют оперативную память. При объявлении больших массивов данных оперативной памяти может не хватить. К примеру следующий код объявляет массив символов.
char chartext[]=”Hello from chartext array”;
Каждый символ занимает один байт в оперативной памяти процессора.
Для того чтобы избежать переполнения ОЗУ необходимо использовать следующие способы:
При написании программ для микроконтроллеров нужно рационально использовать и правильно выбирать место хранения объявленных данных. Не правильное написание программ может привести к тому, что вся память может быть израсходована, и это приведет к сбою программ.
По умолчанию все объявленные переменные используют оперативную память. При объявлении больших массивов данных оперативной памяти может не хватить. К примеру следующий код объявляет массив символов.
char chartext[]=”Hello from chartext array”;
Каждый символ занимает один байт в оперативной памяти процессора.
Для того чтобы избежать переполнения ОЗУ необходимо использовать следующие способы:
Для настройки ШИМА необходимо сначала настроить делитель частоты, это делается с помощью регистра TCCR1B, где первые три бита для этого и предназначены. Сначала включаем «ШИМ» для этого необходимо записать единицу в первые два бита регистра TCCR1A с помощью следующей конструкции: TCCR1A=(1<<1)|(1<<0).
Далее «говорим» нашему таймеру что нужно сделать на выходе 1 порта B при совпадении счетного регистра с регистром OCR1A. Это делается с помощью 7-го и 6-го бита (COM1A на рисунке). Когда эти биты установлены в нули, то первый пин нашего порта отключен от таймера. Когда эти биты выставлены в единицу. То наш вывод изменяет свое состояние с низкого на высокое.
Ниже представлен рисунок регистров таймера TIMET_COUNTER1 .
В таймере TIMET_COUNTER1 микроконтроллера Atmega8 существует шестнадцати разрядный регистр TCNT1. Этот регистр считает и живет внутри нашего таймера. При совпадении значения этого таймера и таймера OCR1A происходит изменение состояния на выходе микроконтроллера, который привязан к данному таймеру в нашем случае это первый вывод порта B.
#include <avr/io.h> #include <avr/interrupt.h> ISR (TIMER1_OVF_vect) { asm("nop"); } ISR (TIMER1_COMPA_vect) {} int main(void) { // Настраиваем работу ножки порта на выход DDRB|=0b00000010; OCR1A=100; TCCR1A |=(1<<0); TCCR1A =(1<<1)|(1<<0); TCCR1A =TCCR1A|(1<<7)|(1<<6); TCCR1B =(1<<0); TIMSK =(1<<OCIE1A); asm("sei"); while(1) { asm("sei"); } }
]]>
Для настройки ШИМА необходимо сначала настроить делитель частоты, это делается с помощью регистра TCCR1B, где первые три бита для этого и предназначены. Сначала включаем «ШИМ» для этого необходимо записать единицу в первые два бита регистра TCCR1A с помощью следующей конструкции: TCCR1A=(1<<1)|(1<<0).
Далее «говорим» нашему таймеру что нужно сделать на выходе 1 порта B при совпадении счетного регистра с регистром OCR1A. Это делается с помощью 7-го и 6-го бита (COM1A на рисунке). Когда эти биты установлены в нули, то первый пин нашего порта отключен от таймера. Когда эти биты выставлены в единицу. То наш вывод изменяет свое состояние с низкого на высокое.
Ниже представлен рисунок регистров таймера TIMET_COUNTER1 .
В таймере TIMET_COUNTER1 микроконтроллера Atmega8 существует шестнадцати разрядный регистр TCNT1. Этот регистр считает и живет внутри нашего таймера. При совпадении значения этого таймера и таймера OCR1A происходит изменение состояния на выходе микроконтроллера, который привязан к данному таймеру в нашем случае это первый вывод порта B.
#include <avr/io.h> #include <avr/interrupt.h> ISR (TIMER1_OVF_vect) { asm("nop"); } ISR (TIMER1_COMPA_vect) {} int main(void) { // Настраиваем работу ножки порта на выход DDRB|=0b00000010; OCR1A=100; TCCR1A |=(1<<0); TCCR1A =(1<<1)|(1<<0); TCCR1A =TCCR1A|(1<<7)|(1<<6); TCCR1B =(1<<0); TIMSK =(1<<OCIE1A); asm("sei"); while(1) { asm("sei"); } }
]]>
Для подключения датчика используется три провода, два крайних вывода это питание, левый это данные. Для работы необходимо импортировать библиотеку #include <IRemote.h> . Наш датчик подключен к 11 цифровому выводу. При поступлении сигнала с ПДУ наш датчик при помощи библиотеки IRremote преобразует его в цифровое значение.
Каждая кнопка имеет свое уникальное цифровое представление. Для того чтобы узнать это значение в десятичном формате можно передать его по Serial порту с помощью метода println(get, DEC). Ну а дальше ни чего сложного, есть интовое полученное значение и с помощью логики можно управлять любой нагрузкой.
Выход с инфракрасного датчика подключен к 11-му входу RECV_PIN. Цифровые выходы реализованы на 50-52 пинах. Переменная laststate запоминает предыдущее состояние выхода. Методы PowerOn() и PowerOff() выполняют функцию включения и выключения нагрузки. Метод SetPinAndButton(int ir1,int ir2,int pin) настравает определенный пин на страбатывания при определенных значения ir1, ir2. При получении данных с датчика переменная имеет два значения. К примеру для первой кнопки ПДУ получились значения 1 и 2049. Переменная count позволяет избедать частого "мигания" нагрузки. Нагрузка включаетсья лишь при достижении значения 4. Поэтому для включения определенного светодиода нужно нажать на кнопку ПДУ и подержать ее.
А вот и сама программа
#include <IRremote.h>
int RECV_PIN = 11;
int RECV_PIN = 11;
int OUT=50;
int OUT1=51;
int OUT2=52;
boolean laststate=true;
long get;
int count=0;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(OUT,OUTPUT);
pinMode(OUT1,OUTPUT);
pinMode(OUT2,OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop()
{
if (irrecv.decode(&results))
{
get=results.value;
//Serial.println(get, DEC);
SetPinAndButton(1, 2049,OUT);
SetPinAndButton(2, 2050,OUT1);
SetPinAndButton(3, 2051,OUT2);
irrecv.resume(); // Receive the next value
}
}
void SetPinAndButton(int ir1,int ir2,int pin)
{
if ((get==ir1)|(get==ir2))
{
if(laststate)
{
count++;
if(count==4) PowerOn(pin);
}
if(!laststate)
{
count--;
if(count<0) PowerOff(pin);
}
}
}
void PowerOn(int outpin)
{
digitalWrite(outpin,HIGH);
laststate=false;
}
void PowerOff(int outpin)
{
digitalWrite(outpin,LOW);
laststate=true;
}
https://www.youtube.com/watch?v=hFbBWRaTMYM
]]>Для подключения датчика используется три провода, два крайних вывода это питание, левый это данные. Для работы необходимо импортировать библиотеку #include <IRemote.h> . Наш датчик подключен к 11 цифровому выводу. При поступлении сигнала с ПДУ наш датчик при помощи библиотеки IRremote преобразует его в цифровое значение.
Каждая кнопка имеет свое уникальное цифровое представление. Для того чтобы узнать это значение в десятичном формате можно передать его по Serial порту с помощью метода println(get, DEC). Ну а дальше ни чего сложного, есть интовое полученное значение и с помощью логики можно управлять любой нагрузкой.
Выход с инфракрасного датчика подключен к 11-му входу RECV_PIN. Цифровые выходы реализованы на 50-52 пинах. Переменная laststate запоминает предыдущее состояние выхода. Методы PowerOn() и PowerOff() выполняют функцию включения и выключения нагрузки. Метод SetPinAndButton(int ir1,int ir2,int pin) настравает определенный пин на страбатывания при определенных значения ir1, ir2. При получении данных с датчика переменная имеет два значения. К примеру для первой кнопки ПДУ получились значения 1 и 2049. Переменная count позволяет избедать частого "мигания" нагрузки. Нагрузка включаетсья лишь при достижении значения 4. Поэтому для включения определенного светодиода нужно нажать на кнопку ПДУ и подержать ее.
А вот и сама программа
#include <IRremote.h>
int RECV_PIN = 11;
int RECV_PIN = 11;
int OUT=50;
int OUT1=51;
int OUT2=52;
boolean laststate=true;
long get;
int count=0;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(OUT,OUTPUT);
pinMode(OUT1,OUTPUT);
pinMode(OUT2,OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop()
{
if (irrecv.decode(&results))
{
get=results.value;
//Serial.println(get, DEC);
SetPinAndButton(1, 2049,OUT);
SetPinAndButton(2, 2050,OUT1);
SetPinAndButton(3, 2051,OUT2);
irrecv.resume(); // Receive the next value
}
}
void SetPinAndButton(int ir1,int ir2,int pin)
{
if ((get==ir1)|(get==ir2))
{
if(laststate)
{
count++;
if(count==4) PowerOn(pin);
}
if(!laststate)
{
count--;
if(count<0) PowerOff(pin);
}
}
}
void PowerOn(int outpin)
{
digitalWrite(outpin,HIGH);
laststate=false;
}
void PowerOff(int outpin)
{
digitalWrite(outpin,LOW);
laststate=true;
}
https://www.youtube.com/watch?v=hFbBWRaTMYM
]]>
Перед тем как начать работу с средой WinAVR необходимо сначала ознакомиться с документацией которая представлена в папке с установленной программой. Установку программы лучше всего производить в не длинные директории. После установки в меню “пуск” появятся ярлыки, которые запускают ту или иную утилиту. Можно также ознакомиться с представленными примерами, посетив папку examples.
Данный программный комплекс выпускается под лицензию GNU, а это значит что любой может свободно ей пользоваться и изменять код на свое усмотрение.
Скачать программу вы можете с официального сайта winavr.
]]>
Перед тем как начать работу с средой WinAVR необходимо сначала ознакомиться с документацией которая представлена в папке с установленной программой. Установку программы лучше всего производить в не длинные директории. После установки в меню “пуск” появятся ярлыки, которые запускают ту или иную утилиту. Можно также ознакомиться с представленными примерами, посетив папку examples.
Данный программный комплекс выпускается под лицензию GNU, а это значит что любой может свободно ей пользоваться и изменять код на свое усмотрение.
Скачать программу вы можете с официального сайта winavr.
]]>Для того чтобы откомпилировать файл программы сначала нам нужно создать MakeFile – специальный файл который «объясняет» компилятору с каким контроллером имеем дело в данном проекте и на какой частоте он будет работать и другие настройки. Очень важно в данном файле указать главный файл программы, если этого не сделать, то компиляции не будет .
Произвести вышесказанную настройку можно с помощью утилиты MFile, которая находится в папке с установленной программой. Сгенерированный с ее помощью файл необходимо сохранить в папку с проектом.
Статическая индикация означает что все сегменты индикатора горят одновременно.
В этом примере просчитаем от 0 до 9 и отобразим это значение на семисегментном индикаторе. В данном примере не используется специальной дешифратор для него. Выводы индикатора присоединены к порту B , всего 7 выводов. Определенные комбинации битов этого порта отображают ту или иную цифру. Значения этих цифр в двоичном формате представлены в массиве numarray[]. После компиляции программы в папке проекта появится файл cрасширением .hex. Этот файл мы и будем использовать для программирования контроллера atmega8. Прошивка осуществляется с помощью программатора USBasp
https://www.youtube.com/watch?v=hbHA_lI_hGU
#include <avr/io.h> #include <avr/delay.h> int main(void) { unsigned char numarray[10]= {0b11001111, 0b00010001, 0b00000101, 0b01001100, 0b00100100, 0b00100000, 0b10001111, 0b00000000, }; DDRB=0xff; unsigned char num=0; while(1) { if (num>9) num=0; PORTB=numarray[num]; _delay_ms(50); num=num+1; } }]]>
Для того чтобы откомпилировать файл программы сначала нам нужно создать MakeFile – специальный файл который «объясняет» компилятору с каким контроллером имеем дело в данном проекте и на какой частоте он будет работать и другие настройки. Очень важно в данном файле указать главный файл программы, если этого не сделать, то компиляции не будет .
Произвести вышесказанную настройку можно с помощью утилиты MFile, которая находится в папке с установленной программой. Сгенерированный с ее помощью файл необходимо сохранить в папку с проектом.
Статическая индикация означает что все сегменты индикатора горят одновременно.
В этом примере просчитаем от 0 до 9 и отобразим это значение на семисегментном индикаторе. В данном примере не используется специальной дешифратор для него. Выводы индикатора присоединены к порту B , всего 7 выводов. Определенные комбинации битов этого порта отображают ту или иную цифру. Значения этих цифр в двоичном формате представлены в массиве numarray[]. После компиляции программы в папке проекта появится файл cрасширением .hex. Этот файл мы и будем использовать для программирования контроллера atmega8. Прошивка осуществляется с помощью программатора USBasp
https://www.youtube.com/watch?v=hbHA_lI_hGU
#include <avr/io.h> #include <avr/delay.h> int main(void) { unsigned char numarray[10]= {0b11001111, 0b00010001, 0b00000101, 0b01001100, 0b00100100, 0b00100000, 0b10001111, 0b00000000, }; DDRB=0xff; unsigned char num=0; while(1) { if (num>9) num=0; PORTB=numarray[num]; _delay_ms(50); num=num+1; } }]]>
https://www.youtube.com/watch?v=bkmwQAO1b_0
long count=0;
int razryad1=50;
int razryad2=51;
int razryad3=52;
int r1=0;
int r2=0;
int r3=0;
int digitpin[]={22,23,24,25,26,27,28};
int seg0[]={0,0,0,1,0,0,0};
int seg1[]={1,1,1,1,1,0,0};
int seg2[]={0,0,1,0,0,1,0};
int seg3[]={0,1,1,0,0,0,0};
int seg4[]={1,1,0,0,1,0,0};
int seg5[]={0,1,0,0,0,0,1};
int seg6[]={0,0,0,0,0,0,1};
int seg7[]={1,1,1,1,0,0,0};
int seg8[]={0,0,0,0,0,0,0};
int seg9[]={0,1,0,0,0,0,0};
const int pingPin = 7;
const int get=6;
void setup()
{
Serial.begin(9600);
for (int i=0;i<7;i++)
{
pinMode(digitpin[i],OUTPUT);
digitalWrite(digitpin[i],HIGH);
}
pinMode(razryad1,OUTPUT);
pinMode(razryad2,OUTPUT);
pinMode(razryad3,OUTPUT);
}
void loop()
{
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
long duration, inches, cm;
// The same pin is used to read the signal from the PING))): a HIGH
// pulse whose duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(get, INPUT);
duration = pulseIn(get, HIGH);
cm = microsecondsToCentimeters(duration);
count=cm;
while(count>100)
{
r3++;
count=count-100;
}
while(count>10)
{
r2++;
count=count-10;
}
while(count>0)
{
r1++;
count=count-1;
}
SetDigit(r3,52);
delay(3);
digitalWrite(52,LOW);
delay(3);
SetDigit(r2,51);
delay(3);
digitalWrite(51,LOW);
delay(3);
SetDigit(r1,50);
delay(3);
digitalWrite(50,LOW);
delay(3);
r1=0;r2=0;r3=0;
}
void setRazryad(int count)
{
}
void SetDigit(int count,int raz)
{
switch(count)
{
case 0: setDigit(seg0);break;
case 1: setDigit(seg1);break;
case 2: setDigit(seg2);break;
case 3: setDigit(seg3);break;
case 4: setDigit(seg4);break;
case 5: setDigit(seg5);break;
case 6: setDigit(seg6);break;
case 7: setDigit(seg7);break;
case 8: setDigit(seg8);break;
case 9: setDigit(seg9);break;
}
digitalWrite(raz,HIGH);
}
void setDigit(int s[])
{
for (int i=0;i<7;i++)
{
digitalWrite(digitpin[i],s[i]);
}
}
long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}
]]>https://www.youtube.com/watch?v=bkmwQAO1b_0
long count=0;
int razryad1=50;
int razryad2=51;
int razryad3=52;
int r1=0;
int r2=0;
int r3=0;
int digitpin[]={22,23,24,25,26,27,28};
int seg0[]={0,0,0,1,0,0,0};
int seg1[]={1,1,1,1,1,0,0};
int seg2[]={0,0,1,0,0,1,0};
int seg3[]={0,1,1,0,0,0,0};
int seg4[]={1,1,0,0,1,0,0};
int seg5[]={0,1,0,0,0,0,1};
int seg6[]={0,0,0,0,0,0,1};
int seg7[]={1,1,1,1,0,0,0};
int seg8[]={0,0,0,0,0,0,0};
int seg9[]={0,1,0,0,0,0,0};
const int pingPin = 7;
const int get=6;
void setup()
{
Serial.begin(9600);
for (int i=0;i<7;i++)
{
pinMode(digitpin[i],OUTPUT);
digitalWrite(digitpin[i],HIGH);
}
pinMode(razryad1,OUTPUT);
pinMode(razryad2,OUTPUT);
pinMode(razryad3,OUTPUT);
}
void loop()
{
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
long duration, inches, cm;
// The same pin is used to read the signal from the PING))): a HIGH
// pulse whose duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(get, INPUT);
duration = pulseIn(get, HIGH);
cm = microsecondsToCentimeters(duration);
count=cm;
while(count>100)
{
r3++;
count=count-100;
}
while(count>10)
{
r2++;
count=count-10;
}
while(count>0)
{
r1++;
count=count-1;
}
SetDigit(r3,52);
delay(3);
digitalWrite(52,LOW);
delay(3);
SetDigit(r2,51);
delay(3);
digitalWrite(51,LOW);
delay(3);
SetDigit(r1,50);
delay(3);
digitalWrite(50,LOW);
delay(3);
r1=0;r2=0;r3=0;
}
void setRazryad(int count)
{
}
void SetDigit(int count,int raz)
{
switch(count)
{
case 0: setDigit(seg0);break;
case 1: setDigit(seg1);break;
case 2: setDigit(seg2);break;
case 3: setDigit(seg3);break;
case 4: setDigit(seg4);break;
case 5: setDigit(seg5);break;
case 6: setDigit(seg6);break;
case 7: setDigit(seg7);break;
case 8: setDigit(seg8);break;
case 9: setDigit(seg9);break;
}
digitalWrite(raz,HIGH);
}
void setDigit(int s[])
{
for (int i=0;i<7;i++)
{
digitalWrite(digitpin[i],s[i]);
}
}
long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}
]]>В микроконтроллере Atmega8 существует простой нулевой таймер. Который просто считает и сохраняет значение в регистре TCNT0. Для того чтобы настроить этот таймер необходимо записать определенные значения битов в регистры. Сначала настраиваем предделитель, для этого существуют 3 бита CS0,CS1,CS2. Комбинации этих битов задают определенный «темп» счета регистра TCNT0.
Допустим наш микроконтроллер работает на частоте 1000000Гц. Предделитель мы выбрали 64. Это означает что в регистр TCNT0 будет считать с частотой 1000000/64=15625Гц. Период счет получаем 1/152625=64мкс (микросекунды). То ест каждые 64 микросекунды происходит увеличение значения счетного регистра TCNT0 на единицу. Максимальное значение этого регистра составляет 255. При его переполнении происходит прерывание по переполнению и сброс регистра в 0. Время необходимое для переполнения счетчика определяем путем перемножения периода счета и колличество итераций таймера 64мкс*256=16384 мкс или 16,384 мс (милисекунды).
На рисунке представленны основные регистры тамера Atmega8. Для того чтобы его настроить нужно всего лишь записать определенные значения в два регистра TCCR0 и TIMSK. Как найти период прерывания сказано выше.
Изменить данный период прерывания 16,384мс можно с помощью предделителя, и получить требуемую частоту прерывания.
А если мы хотим чтобы наш светодиод включался на одну секунду. То нам необходимо ввести еще одну переменную в метод прерывания, и произвести инверсию вывода по достижению определенного значения. В одной секунде 1000мс, период нам тоже известен 16,384 мс. 1000/16,384=61,035. Добавить условие, если наша переменная достигла значения 61 то делаем инверсию вывода.
Если ввести такое условие, то 1 секунда будет равна 0.999447 с. За одни сутки погрешность составит 47,7 секунд.
#include <avr/io.h> #include <avr/interrupt.h> unsigned char count=0; ISR (TIMER0_OVF_vect) { count++; if (count==61) { PORTD=~PORTD;count=0; } } int main(void) { DDRD=0xff;// Настраиваем порт D на выход TCCR0=(1<<0)|(1<<1); //Настраиваем предделитель TIMSK=(1<<TOIE0); // Запускаем таймер asm("sei"); while(1) { asm("nop"); } }]]>
В микроконтроллере Atmega8 существует простой нулевой таймер. Который просто считает и сохраняет значение в регистре TCNT0. Для того чтобы настроить этот таймер необходимо записать определенные значения битов в регистры. Сначала настраиваем предделитель, для этого существуют 3 бита CS0,CS1,CS2. Комбинации этих битов задают определенный «темп» счета регистра TCNT0.
Допустим наш микроконтроллер работает на частоте 1000000Гц. Предделитель мы выбрали 64. Это означает что в регистр TCNT0 будет считать с частотой 1000000/64=15625Гц. Период счет получаем 1/152625=64мкс (микросекунды). То ест каждые 64 микросекунды происходит увеличение значения счетного регистра TCNT0 на единицу. Максимальное значение этого регистра составляет 255. При его переполнении происходит прерывание по переполнению и сброс регистра в 0. Время необходимое для переполнения счетчика определяем путем перемножения периода счета и колличество итераций таймера 64мкс*256=16384 мкс или 16,384 мс (милисекунды).
На рисунке представленны основные регистры тамера Atmega8. Для того чтобы его настроить нужно всего лишь записать определенные значения в два регистра TCCR0 и TIMSK. Как найти период прерывания сказано выше.
Изменить данный период прерывания 16,384мс можно с помощью предделителя, и получить требуемую частоту прерывания.
А если мы хотим чтобы наш светодиод включался на одну секунду. То нам необходимо ввести еще одну переменную в метод прерывания, и произвести инверсию вывода по достижению определенного значения. В одной секунде 1000мс, период нам тоже известен 16,384 мс. 1000/16,384=61,035. Добавить условие, если наша переменная достигла значения 61 то делаем инверсию вывода.
Если ввести такое условие, то 1 секунда будет равна 0.999447 с. За одни сутки погрешность составит 47,7 секунд.
#include <avr/io.h> #include <avr/interrupt.h> unsigned char count=0; ISR (TIMER0_OVF_vect) { count++; if (count==61) { PORTD=~PORTD;count=0; } } int main(void) { DDRD=0xff;// Настраиваем порт D на выход TCCR0=(1<<0)|(1<<1); //Настраиваем предделитель TIMSK=(1<<TOIE0); // Запускаем таймер asm("sei"); while(1) { asm("nop"); } }]]>
Главным недостатком этого приемник прямого усиления — небольшая селективность, другими словами небольшое ослабление сигналов располагающихся рядом радиостанций сравнивая с сигналом станции, на которую настроен приемник. Потому данный вид приёмников удобно применять исключительно для приёма сильных радиостанций, которые работают в длинноволновом либо средневолновом диапазоне.
В следствии данного изъяна приёмники прямого усиления не изготавливаются промышленностью и как правило употребляются нынче лишь в радиолюбительской практике. Значительно улучшить избирательность возможно с помощью двухконтурной входной цепи.
Этот приемник рассчитывают на прием радиостанций спектра СВ (средних волн). Даже несмотря на простоту схемы, такой приемник обладает достаточно высокой чувствительностью, что позволяет уверенно принемать сигналы с близких радиостанций. Собирают подобные приемники, как правило, на обширно распространенных транзисторах, из серии КТ315 и их могут собрать новички радиолюбители.
Также данный приемник обладает рядом немаловажных характеристик:
Сигнал с антенны поступает на базу транзистра VT1. Усилитель высоких частот принемаемого сигнала сделан на транзисторах VT1 – VT3 с непосредственными взаимосвязями между транзисторами. Достоинством такой схемы будет то, что напряжение смещения на базе транзистора VT1 определяется автоматом. С УВЧ сигнал через конденсатор С5 поступает на диод VD1 nипа Д9Б, где происходит детектирование сигнала.
Затем через регулятор громкости (потенциометр или переменное сопроитвление) поступает на предварительный УНЧ. В данном каскаде нет ничего такого особенного. После каскада предварительного усиления сигнал необходимо усилить по мощности с помощью транзистора VT5, в коллекторную цепь которого включен динамик EP1.
После успешной сбоки приемника настраивать его не нужно. В динамике сразу должен появиться характерный для приемников "шум" после подачи напряжения. С помощью конденсатор переменной емкости C1 производим настройку приемника на нужную радиостанцию.
]]>Главным недостатком этого приемник прямого усиления — небольшая селективность, другими словами небольшое ослабление сигналов располагающихся рядом радиостанций сравнивая с сигналом станции, на которую настроен приемник. Потому данный вид приёмников удобно применять исключительно для приёма сильных радиостанций, которые работают в длинноволновом либо средневолновом диапазоне.
В следствии данного изъяна приёмники прямого усиления не изготавливаются промышленностью и как правило употребляются нынче лишь в радиолюбительской практике. Значительно улучшить избирательность возможно с помощью двухконтурной входной цепи.
Этот приемник рассчитывают на прием радиостанций спектра СВ (средних волн). Даже несмотря на простоту схемы, такой приемник обладает достаточно высокой чувствительностью, что позволяет уверенно принемать сигналы с близких радиостанций. Собирают подобные приемники, как правило, на обширно распространенных транзисторах, из серии КТ315 и их могут собрать новички радиолюбители.
Также данный приемник обладает рядом немаловажных характеристик:
Сигнал с антенны поступает на базу транзистра VT1. Усилитель высоких частот принемаемого сигнала сделан на транзисторах VT1 – VT3 с непосредственными взаимосвязями между транзисторами. Достоинством такой схемы будет то, что напряжение смещения на базе транзистора VT1 определяется автоматом. С УВЧ сигнал через конденсатор С5 поступает на диод VD1 nипа Д9Б, где происходит детектирование сигнала.
Затем через регулятор громкости (потенциометр или переменное сопроитвление) поступает на предварительный УНЧ. В данном каскаде нет ничего такого особенного. После каскада предварительного усиления сигнал необходимо усилить по мощности с помощью транзистора VT5, в коллекторную цепь которого включен динамик EP1.
После успешной сбоки приемника настраивать его не нужно. В динамике сразу должен появиться характерный для приемников "шум" после подачи напряжения. С помощью конденсатор переменной емкости C1 производим настройку приемника на нужную радиостанцию.
]]>
Данная схема простого передатчика позволит вам создать прослушивающее устройство, которое стабильно работает на дистанции от 30 до 50 метров. В основе данного передатчика лежит стандартная схема емкостной трехточки. Схема содержит усилитель на транзисторе КТ315, усиливающий сигнал с микрофона, благодаря чему «жучок» может передавать даже самые тихие звуки вроде шепота.
Устройство передает звуковой сигнал путем модуляции волн, принимаемых стандартным приемником FM-диапазона. Например, можно взять приемник от старого сотового телефона вроде Nokia 95, который обеспечивает стабильный прием без каких-либо помех в радиусе до 60 м.
Максимальное расстояние, на которое может быть передан чистый сигнал, составляет 100 метров с условием использования качественного принимающего устройства. Настроить передатчик можно обычным электромагнитным детектором.
Для создания каскадов усиления подойдут любые транзисторы ВЧ и СВЧ низкой мощности, имеющие обратную проводимость и рабочую частоту от 500 МГц и выше. Для схемы годятся любые транзисторы, как импортные, так и отечественного производства.
Данный передатчик отлично подойдет для прослушки в радиусе 60 метров, важно понимать что лубой передатчик является источником радиоизлучения и помех. Для обнаружения передатчиков можно воспользоваться услугами по поиску передающих устройств при помощи специальных устройств. Измерение радиопомех возможно в частотном диапазоне от 50 Гц до 8 ГГц.
Для окончательной настройки «жучка» нужно вращать подстроечный конденсатор, стараясь не задевать катушку. После того, как точная настройка будет завершена, замеряется емкость подстроечного конденсатора и затем он меняется на постоянный. Лучше всего использовать конденсаторы с малой утечкой, изготовленные из керамики. Если же используются конденсаторы отечественного производства, предпочтительней всего брать трубчатые.
Также возможно использование компонентов SMD, с которыми описанная схема работает без недочетов, а для оформления подойдет термоусадка.
]]>
Данная схема простого передатчика позволит вам создать прослушивающее устройство, которое стабильно работает на дистанции от 30 до 50 метров. В основе данного передатчика лежит стандартная схема емкостной трехточки. Схема содержит усилитель на транзисторе КТ315, усиливающий сигнал с микрофона, благодаря чему «жучок» может передавать даже самые тихие звуки вроде шепота.
Устройство передает звуковой сигнал путем модуляции волн, принимаемых стандартным приемником FM-диапазона. Например, можно взять приемник от старого сотового телефона вроде Nokia 95, который обеспечивает стабильный прием без каких-либо помех в радиусе до 60 м.
Максимальное расстояние, на которое может быть передан чистый сигнал, составляет 100 метров с условием использования качественного принимающего устройства. Настроить передатчик можно обычным электромагнитным детектором.
Для создания каскадов усиления подойдут любые транзисторы ВЧ и СВЧ низкой мощности, имеющие обратную проводимость и рабочую частоту от 500 МГц и выше. Для схемы годятся любые транзисторы, как импортные, так и отечественного производства.
Данный передатчик отлично подойдет для прослушки в радиусе 60 метров, важно понимать что лубой передатчик является источником радиоизлучения и помех. Для обнаружения передатчиков можно воспользоваться услугами по поиску передающих устройств при помощи специальных устройств. Измерение радиопомех возможно в частотном диапазоне от 50 Гц до 8 ГГц.
Для окончательной настройки «жучка» нужно вращать подстроечный конденсатор, стараясь не задевать катушку. После того, как точная настройка будет завершена, замеряется емкость подстроечного конденсатора и затем он меняется на постоянный. Лучше всего использовать конденсаторы с малой утечкой, изготовленные из керамики. Если же используются конденсаторы отечественного производства, предпочтительней всего брать трубчатые.
Также возможно использование компонентов SMD, с которыми описанная схема работает без недочетов, а для оформления подойдет термоусадка.
]]>Данная микросхема имеет четыре выхода для подключения нагрузки и соответственно 4 входа. Входной сигнал подается через конденсаторы. Для ее подключения такого УНЧ необходимо минимум деталей. Питается схема от источника напряжением от 12 до 18В.
Вместо представленных на схеме микросхем TDA, можно использовать аналоги TDA8568Q и TDA8571J.
Чтобы у усилителя на TDA не возникли сбои из за перегрева микросхемы, необходимо микросхему установить на площадь теплоотвода около 200 см2, тем самым обеспечив ей отличную работоспособность. Микросхема TDA имеет выход, необходимый для диагностики. На этом выходе в случае перегревания появляется сигнал низкого уровня, который можно использовать для предотвращения перегрева.
]]>Данная микросхема имеет четыре выхода для подключения нагрузки и соответственно 4 входа. Входной сигнал подается через конденсаторы. Для ее подключения такого УНЧ необходимо минимум деталей. Питается схема от источника напряжением от 12 до 18В.
Вместо представленных на схеме микросхем TDA, можно использовать аналоги TDA8568Q и TDA8571J.
Чтобы у усилителя на TDA не возникли сбои из за перегрева микросхемы, необходимо микросхему установить на площадь теплоотвода около 200 см2, тем самым обеспечив ей отличную работоспособность. Микросхема TDA имеет выход, необходимый для диагностики. На этом выходе в случае перегревания появляется сигнал низкого уровня, который можно использовать для предотвращения перегрева.
]]>Для изготовления катушки потребуется провод диаметром 0.5мм. Необходимо сделать 6 витков вокруг гелиевой ручки. Диаметр каркаса получается порядка 5 мм. Именно такие параметры катушки обеспечивают требуемую индуктивность.
Микрофон электретный, напряжение питания на него подается с помощью резистора R1.
Источник питания представляет собой две батарейки «таблетки» по 1.5В, подключенные параллельно. Что в итоге даст на 3 вольта качественного напряжения.
Антенну можно собрать из куска медной проволки длинной 20см, подключается она к коллектору транзистора VT1. В коллекторную цепь которого включенна катушка индуктивности.
Схема не требует настройки. После подачи напряжения схема должна сразу заработать. Если частота находиться ниже 88-108 МГц, то нужно изменить емкость конденсатора С2 на 30 пикофарад.
]]>Для изготовления катушки потребуется провод диаметром 0.5мм. Необходимо сделать 6 витков вокруг гелиевой ручки. Диаметр каркаса получается порядка 5 мм. Именно такие параметры катушки обеспечивают требуемую индуктивность.
Микрофон электретный, напряжение питания на него подается с помощью резистора R1.
Источник питания представляет собой две батарейки «таблетки» по 1.5В, подключенные параллельно. Что в итоге даст на 3 вольта качественного напряжения.
Антенну можно собрать из куска медной проволки длинной 20см, подключается она к коллектору транзистора VT1. В коллекторную цепь которого включенна катушка индуктивности.
Схема не требует настройки. После подачи напряжения схема должна сразу заработать. Если частота находиться ниже 88-108 МГц, то нужно изменить емкость конденсатора С2 на 30 пикофарад.
]]>Поисковый генератор изготовлен на основе первых двух элементах в микросхеме DD1. Колебательный контур здесь создан конденсаторами С2 и СЗ, высокочувствительной поисковой катушкой L1 и варикапом VD1. Для того, чтобы настроиться на частоту, равную 100 кГц используется потенциометр R2, который задаёт нужное напряжение варикапу VD1.
В роли буферных усилителей сигнала задействованы логические элементы DD1.3 и DD2.3, которые работают на смеситель DD1.4. Индикатором металлоискателя на микросхеме К176ЛА7 есть телефонный капсюль BF1 с высоким сопротивлением. Конденсатор С10 установлен как шунт для высокочастотной составляющей, которая поступает от смесителя.
Питание на металлоискатель подаётся от источника питания постоянного тока с напряжением в 9 В, в котором используется батарея «Крона». В качестве фильтра в схеме использованы конденсаторы С8 и С9.
Высокочувствительная поисковая катушка, которая используется в устройстве, требует к себе особого внимания и точности при изготовлении. Наматывать катушку следует на виниловую трубку с внешним диаметром и внутренним диаметрами в 15 мм и 10 мм соответственно. Желательно, чтобы трубка была согнута в форме окружности, диаметр которой 200 мм.
Поисковая катушка содержит на себе 100 витков провода ГТЭВ-0,27. Когда наматывание заканчивается, катушка обвивается фольгой из алюминия. Это нужно для создания электростатического экрана, то есть, чтобы уменьшить влияние ёмкости между землёй и катушкой. При обмотке и обвитии алюминиевой фольгой нельзя допускать электрического контакта между острыми краями фольги и проводом намотки. В данном случае, поможет здесь «обвивка наискось».
Для того, чтобы защитить само алюминиевое покрытие от механических повреждений, катушку в дополнение можно обвить изоляционной лентой. Диаметр катушки может отличаться, но здесь действует такое правило: чем меньше диаметр высокочувствительной поисковой катушки, тем больше становится чувствительность всего устройства, зато сужается площадь поиска металлических предметов. Обратный эффект достигается при увеличении диаметра катушки.
Установив высокочувствительную поисковую катушку в близости от поверхности грунта, следует настроить генератор с помощью потенциометра R2, причем сделать это нужно так, чтобы звук не прослушивался в телефонном капсюле.При движении поисковой катушки над поверхностью грунта, почти касаясь её, металлический предмет может отыскаться по появлению звуковых сигналов в телефонном капсюле. Металлоискатель на микросхеме К176ЛА7 позволяет обнаружить монету 20мм на глубине до 9 см.
]]>Поисковый генератор изготовлен на основе первых двух элементах в микросхеме DD1. Колебательный контур здесь создан конденсаторами С2 и СЗ, высокочувствительной поисковой катушкой L1 и варикапом VD1. Для того, чтобы настроиться на частоту, равную 100 кГц используется потенциометр R2, который задаёт нужное напряжение варикапу VD1.
В роли буферных усилителей сигнала задействованы логические элементы DD1.3 и DD2.3, которые работают на смеситель DD1.4. Индикатором металлоискателя на микросхеме К176ЛА7 есть телефонный капсюль BF1 с высоким сопротивлением. Конденсатор С10 установлен как шунт для высокочастотной составляющей, которая поступает от смесителя.
Питание на металлоискатель подаётся от источника питания постоянного тока с напряжением в 9 В, в котором используется батарея «Крона». В качестве фильтра в схеме использованы конденсаторы С8 и С9.
Высокочувствительная поисковая катушка, которая используется в устройстве, требует к себе особого внимания и точности при изготовлении. Наматывать катушку следует на виниловую трубку с внешним диаметром и внутренним диаметрами в 15 мм и 10 мм соответственно. Желательно, чтобы трубка была согнута в форме окружности, диаметр которой 200 мм.
Поисковая катушка содержит на себе 100 витков провода ГТЭВ-0,27. Когда наматывание заканчивается, катушка обвивается фольгой из алюминия. Это нужно для создания электростатического экрана, то есть, чтобы уменьшить влияние ёмкости между землёй и катушкой. При обмотке и обвитии алюминиевой фольгой нельзя допускать электрического контакта между острыми краями фольги и проводом намотки. В данном случае, поможет здесь «обвивка наискось».
Для того, чтобы защитить само алюминиевое покрытие от механических повреждений, катушку в дополнение можно обвить изоляционной лентой. Диаметр катушки может отличаться, но здесь действует такое правило: чем меньше диаметр высокочувствительной поисковой катушки, тем больше становится чувствительность всего устройства, зато сужается площадь поиска металлических предметов. Обратный эффект достигается при увеличении диаметра катушки.
Установив высокочувствительную поисковую катушку в близости от поверхности грунта, следует настроить генератор с помощью потенциометра R2, причем сделать это нужно так, чтобы звук не прослушивался в телефонном капсюле.При движении поисковой катушки над поверхностью грунта, почти касаясь её, металлический предмет может отыскаться по появлению звуковых сигналов в телефонном капсюле. Металлоискатель на микросхеме К176ЛА7 позволяет обнаружить монету 20мм на глубине до 9 см.
]]>Отличительные особенности прибора - это возможность авто подстройки под соответствующий грунт и возможность определить вид найденного металла по определенному звуку сигнала. Максимальное значение потребляемого металлоискателем тока достигает 15 мА. Нужно отметить, что металлоискатель «Бабочку» можно усовершенствовать по своему вкусу.
Весь принцип работы металл детектора основывается на способностях двух генераторов осуществлять синхронизацию частот. Они - аналогичной конструкции, катушки располагаются в одной плоскости, расстояние между ними - 10 см. Когда металлический предмет попадает в зону охвата одной из катушек, то процесс синхронизации обрывается и звуковой сигнал проникает в наушники.
Значительную долю деталей, необходимых для сборки металл детектора, можно найти в старой, ненужной аппаратуре. Можно взять подходящий металлопластиковый кусок трубы водопровода, который может стать прекрасной штангой в будущем металлоискателе. Диаметр этой трубы должен быть 25- 27 мм, а длина трубы примерно 1м. На эту штангу потом сверху можно прицепить ручку от руля велосипеда.
Чтобы собрать схему, нужно воспользоваться технологией навесного монтажа и с помощью масляного лака склеить основание штанги, точно также следует поступить и с катушками. Основание металлоискателя "Бабочка " нужно изготовить из сотового поликарбоната или из фанеры. Толщина основания должна быть 8 мм, а размеры - 20х45 см.
Катушка «бабочки" должна быть в диаметре примерно 21 см, а провода металл детектора достигать до 0,6 мм. Нужно сделать приблизительно 30 витков, с 10-го витка начинать отвод. Обязательно следует отмечать каждый вывод катушек, для того, чтобы потом не было сложно заниматься спайкой. И та, и другая катушка обязательно должны быть полностью идентичны друг другу.
На основании металлоискателя нужно закрепить штангу и систему регулировки чувствительности. Через внутреннюю часть штанги металлоискателя нужно кабель протянуть наверх вместе с выходом для наушников. Так как разъем наушников будет включать и выключать металлоискатель. Таким образом, металлоискатель "Бабочка" начинает работу после того, как был вставлен разъем и прекращает работать, если разъем изъять.
Источник питания устройства - это простая батарея для мобильника, которую следует приклеить вместе со схемой к основанию детектора. К контактам батареи мобильного телефона следует припаять провода разъема устройства для зарядки и провода, питающие генераторы. Зарядное устройство нужно точно такое же, как для обычного мобильного телефона, с соответствующим разъемом.
К основанию детектора прикрепляется штанга с помощью пластиковых винтов от тюбика клея или с помощью металлических винтов и гаек-барашков. Схема металлоискателя и катушки покрываются масляным лаком для мебели или паркета. После покрытия их нужно оставить, чтобы они полностью высохли. Только после высыхания их покрывают сверху силиконом.
Для настройки металлоискателя нужно использовать винтик, пластиковую гайку, а также алюминиевый или ферритовый кусок (в этом деле понадобится катушка индуктивности).
Первым делом резьбу следует обработать густой смазкой, чтобы добиться плавного вращения. Поблизости с катушкой нужно приклеить узел подстройки.
Металлоискатель бабочка бесспорно должен иметь подлокотник, который обязательно нужен для удобного использования прибора. Чтобы его сделать понадобятся: отрезки трубы вентиляции (внешний диаметр отрезка должен быть 95 мм) и трубы водопровода (внешний диаметр трубы примерно 20 мм), кусок из ткани, клей, а также саморезы (2 шт.). Когда подлокотник уже готов, то его трубу надо вставить в штангу металлоискателя.
Настройку прибора нужно производить перед тем, как заливать катушки лаком. Поблизости не должны находиться какие-либо металлические предметы. Когда вы подключили наушники, а сигнала нет, это может значить, что в схеме металлоискателя допущена какая-то ошибка. Сомнительно, но это может быть произошедшая синхронизация генераторов. Чтобы устранить неисправность нужно взять алюминиевый лист небольшого размера или просто консервную банку.
Следует поднести их по очереди к катушкам детектора. Реакция на катушках должна быть разной: в одном случае сигнала быть не должно, а в другом - сигнал должен быть и прибор начинает пищать. На той катушке, которая не создает сигнала, нужно отгибать вовнутрь последний виток до тех пор, пока сигнал не замолчит. Сверху каждой катушки обязательно следует приклеить трубочки с ферритом.
Чтобы начать работу устройства, подключаете наушники. Этим действием вы включаете само питание металл детектора. Частота должна быть отрегулирована по крайней точке срыва синхронизации. Будет здорово, если в наушниках при этом четко слышатся щелчки, так как это значит, что чувствительность прибора стоит на максимуме.
Если вы обнаруживаете в почве металлический объект, то частота приборного сигнала четко изменяется. Если идут поиски предметов крупного размера, следует производить настройку частоту прямо перед срывом, чтобы сигнал отсутствовал. Если находите небольшие железные предметы, то частота устройства идет на снижение, вплоть до полного исчезновения сигналов. Если частота металл детектора увеличивается, значит прибор реагирует на большой железный предмет или на предмет из другого цветного металла.
]]>Отличительные особенности прибора - это возможность авто подстройки под соответствующий грунт и возможность определить вид найденного металла по определенному звуку сигнала. Максимальное значение потребляемого металлоискателем тока достигает 15 мА. Нужно отметить, что металлоискатель «Бабочку» можно усовершенствовать по своему вкусу.
Весь принцип работы металл детектора основывается на способностях двух генераторов осуществлять синхронизацию частот. Они - аналогичной конструкции, катушки располагаются в одной плоскости, расстояние между ними - 10 см. Когда металлический предмет попадает в зону охвата одной из катушек, то процесс синхронизации обрывается и звуковой сигнал проникает в наушники.
Значительную долю деталей, необходимых для сборки металл детектора, можно найти в старой, ненужной аппаратуре. Можно взять подходящий металлопластиковый кусок трубы водопровода, который может стать прекрасной штангой в будущем металлоискателе. Диаметр этой трубы должен быть 25- 27 мм, а длина трубы примерно 1м. На эту штангу потом сверху можно прицепить ручку от руля велосипеда.
Чтобы собрать схему, нужно воспользоваться технологией навесного монтажа и с помощью масляного лака склеить основание штанги, точно также следует поступить и с катушками. Основание металлоискателя "Бабочка " нужно изготовить из сотового поликарбоната или из фанеры. Толщина основания должна быть 8 мм, а размеры - 20х45 см.
Катушка «бабочки" должна быть в диаметре примерно 21 см, а провода металл детектора достигать до 0,6 мм. Нужно сделать приблизительно 30 витков, с 10-го витка начинать отвод. Обязательно следует отмечать каждый вывод катушек, для того, чтобы потом не было сложно заниматься спайкой. И та, и другая катушка обязательно должны быть полностью идентичны друг другу.
На основании металлоискателя нужно закрепить штангу и систему регулировки чувствительности. Через внутреннюю часть штанги металлоискателя нужно кабель протянуть наверх вместе с выходом для наушников. Так как разъем наушников будет включать и выключать металлоискатель. Таким образом, металлоискатель "Бабочка" начинает работу после того, как был вставлен разъем и прекращает работать, если разъем изъять.
Источник питания устройства - это простая батарея для мобильника, которую следует приклеить вместе со схемой к основанию детектора. К контактам батареи мобильного телефона следует припаять провода разъема устройства для зарядки и провода, питающие генераторы. Зарядное устройство нужно точно такое же, как для обычного мобильного телефона, с соответствующим разъемом.
К основанию детектора прикрепляется штанга с помощью пластиковых винтов от тюбика клея или с помощью металлических винтов и гаек-барашков. Схема металлоискателя и катушки покрываются масляным лаком для мебели или паркета. После покрытия их нужно оставить, чтобы они полностью высохли. Только после высыхания их покрывают сверху силиконом.
Для настройки металлоискателя нужно использовать винтик, пластиковую гайку, а также алюминиевый или ферритовый кусок (в этом деле понадобится катушка индуктивности).
Первым делом резьбу следует обработать густой смазкой, чтобы добиться плавного вращения. Поблизости с катушкой нужно приклеить узел подстройки.
Металлоискатель бабочка бесспорно должен иметь подлокотник, который обязательно нужен для удобного использования прибора. Чтобы его сделать понадобятся: отрезки трубы вентиляции (внешний диаметр отрезка должен быть 95 мм) и трубы водопровода (внешний диаметр трубы примерно 20 мм), кусок из ткани, клей, а также саморезы (2 шт.). Когда подлокотник уже готов, то его трубу надо вставить в штангу металлоискателя.
Настройку прибора нужно производить перед тем, как заливать катушки лаком. Поблизости не должны находиться какие-либо металлические предметы. Когда вы подключили наушники, а сигнала нет, это может значить, что в схеме металлоискателя допущена какая-то ошибка. Сомнительно, но это может быть произошедшая синхронизация генераторов. Чтобы устранить неисправность нужно взять алюминиевый лист небольшого размера или просто консервную банку.
Следует поднести их по очереди к катушкам детектора. Реакция на катушках должна быть разной: в одном случае сигнала быть не должно, а в другом - сигнал должен быть и прибор начинает пищать. На той катушке, которая не создает сигнала, нужно отгибать вовнутрь последний виток до тех пор, пока сигнал не замолчит. Сверху каждой катушки обязательно следует приклеить трубочки с ферритом.
Чтобы начать работу устройства, подключаете наушники. Этим действием вы включаете само питание металл детектора. Частота должна быть отрегулирована по крайней точке срыва синхронизации. Будет здорово, если в наушниках при этом четко слышатся щелчки, так как это значит, что чувствительность прибора стоит на максимуме.
Если вы обнаруживаете в почве металлический объект, то частота приборного сигнала четко изменяется. Если идут поиски предметов крупного размера, следует производить настройку частоту прямо перед срывом, чтобы сигнал отсутствовал. Если находите небольшие железные предметы, то частота устройства идет на снижение, вплоть до полного исчезновения сигналов. Если частота металл детектора увеличивается, значит прибор реагирует на большой железный предмет или на предмет из другого цветного металла.
]]>
Схему нашего блока питания можно условно разбить на 3 главных узла:
Главный узел – это стабилизатор напряжения, который даёт возможность отрегулировать параметры сигнала.В его состав входят дифференциальная ступень, две ступени усиления, и регулятор.
Внутренний сетевой узел - выполнен по классической схеме имеющей трансформатор, диодный мост VD1-VD4, конденсаторов С1 - С7, и стабилизаторов DA1 и DA2
Узел защиты какими-то особенностями не обладает. Датчик тока подобран под ток в три ампера, но можно увеличить и под пять ампер. Большой период времени его использовали с током пять ампер. Никаких проблем при этом было.
Соединенные все узлы по схеме Дарлингтона.
Резистор для срабатывания защиты, подбирают по надобностям. Блок питания 30в 5а, при качественной сборке и исправных деталях, можно использовать сразу после подключения к сети. Его регулировка заключается в установлении требуемых пределов изменения напряжения на выходе и тока для срабатывания защиты.
В цифровую панель входит делитель входного напряжения и тока, на основе микросхемы КР572ПВ2А и индикаторов светодиодных четырёх семисегментных. Микросхема, это высокочувствительный преобразователь до трёх с половиной десятичных разрядов, работает последовательным счётом с двойной интеграцией, ведётся коррекция нуля автоматически, c проверкой полярности входного сигнала.
Для более чёткой индикации параметров сигнала применяют схему на плате КР572ПВ6. Габариты такой платы восемьдесят на пятьдесят миллиметров. Площадки контактов напряжения и тока платы цифровой панели, подсоединяются при помощи гибких проводников к контактам соответствующих индикаторов. Схему КР572ПВ2А часто меняют на импортную схему ICL7107CPL, так как её параметры и качество превосходят типовую.
]]>
Схему нашего блока питания можно условно разбить на 3 главных узла:
Главный узел – это стабилизатор напряжения, который даёт возможность отрегулировать параметры сигнала.В его состав входят дифференциальная ступень, две ступени усиления, и регулятор.
Внутренний сетевой узел - выполнен по классической схеме имеющей трансформатор, диодный мост VD1-VD4, конденсаторов С1 - С7, и стабилизаторов DA1 и DA2
Узел защиты какими-то особенностями не обладает. Датчик тока подобран под ток в три ампера, но можно увеличить и под пять ампер. Большой период времени его использовали с током пять ампер. Никаких проблем при этом было.
Соединенные все узлы по схеме Дарлингтона.
Резистор для срабатывания защиты, подбирают по надобностям. Блок питания 30в 5а, при качественной сборке и исправных деталях, можно использовать сразу после подключения к сети. Его регулировка заключается в установлении требуемых пределов изменения напряжения на выходе и тока для срабатывания защиты.
В цифровую панель входит делитель входного напряжения и тока, на основе микросхемы КР572ПВ2А и индикаторов светодиодных четырёх семисегментных. Микросхема, это высокочувствительный преобразователь до трёх с половиной десятичных разрядов, работает последовательным счётом с двойной интеграцией, ведётся коррекция нуля автоматически, c проверкой полярности входного сигнала.
Для более чёткой индикации параметров сигнала применяют схему на плате КР572ПВ6. Габариты такой платы восемьдесят на пятьдесят миллиметров. Площадки контактов напряжения и тока платы цифровой панели, подсоединяются при помощи гибких проводников к контактам соответствующих индикаторов. Схему КР572ПВ2А часто меняют на импортную схему ICL7107CPL, так как её параметры и качество превосходят типовую.
]]>Итак, в самом простом смысле Фьюзы предназначены для настройки микроконтроллеров. Их можно рассматривать как инструментарий для точной настройки целого ряда параметров. В каждом микроконтроллере предусмотрен индивидуальный перечень Фьюзов, к примеру, в ATmega8 отсутствует Фьюз CKOUT, но он есть в ATtiny2313. Кстати, такие списки расписаны в даташитах к микроконтроллерам.
Теперь рассмотрим некоторые Фьюзы avr, их обозначения и функции. Существуют Фьюзы, регулирующие определенные функции, фьюзы, управляющие защитой программы от копирования и другие. Наиболее распространенный FUSE, используемый почти всегда, это CKSEL.
Семейство таких Фьюзов включает четыре наименования: CKSEL0-3. С их помощью можно определять импульсы тактового генератора, а также его частоту. Многие микроконтроллеры имеют внутренний генератор, но посредством Фьюза можно наладить их работу и от внешнего генератора. Стоит помнить, что любая ошибка при установке Фьюза может «заблокировать» микроконтроллер. Для его восстановления необходимо подать тактовый сигнал на XTAL1-ногу.
Фьюзы avr из группы SUT управляют запуском тактовых генераторов контроллера, а также с их помощью задается скорость старта устройства с момента подачи питания.
Одним из наиболее «опасных» является FUSE RSTDISBL – ошибочное выставление его может деактивировать вывод RESET, в результате чего будет невозможно программировать ISP с помощью программатора. Это связано с тем, что RSTDISBL переводит вывод RESET в режим порта ввода-вывода.
В некоторых программах Фьюзы avr выставляют зеркально. Тут следует помнить, что запрограммированный FUSE=0, а не запрограммированный FUSE=1. Для программа UniProf, Algorithm Builder фьюзы выставляют по одной схеме, а в программах CodeVisionAVR, AVR Studio, PonyProg и SinaProg их следует выставлять зеркально по отношению к предыдущему списку программ.
В Интернете уже давно предлагаются специальные «калькуляторы Фьюзов» - это программы-помощники для настройки конфигурации контроллера. Такие приложения интуитивно понятны: в перечне микроконтроллеров нужно выбрать конкретный МК, затем указать необходимые функции и выставить галочки Фьюзов.
]]>Итак, в самом простом смысле Фьюзы предназначены для настройки микроконтроллеров. Их можно рассматривать как инструментарий для точной настройки целого ряда параметров. В каждом микроконтроллере предусмотрен индивидуальный перечень Фьюзов, к примеру, в ATmega8 отсутствует Фьюз CKOUT, но он есть в ATtiny2313. Кстати, такие списки расписаны в даташитах к микроконтроллерам.
Теперь рассмотрим некоторые Фьюзы avr, их обозначения и функции. Существуют Фьюзы, регулирующие определенные функции, фьюзы, управляющие защитой программы от копирования и другие. Наиболее распространенный FUSE, используемый почти всегда, это CKSEL.
Семейство таких Фьюзов включает четыре наименования: CKSEL0-3. С их помощью можно определять импульсы тактового генератора, а также его частоту. Многие микроконтроллеры имеют внутренний генератор, но посредством Фьюза можно наладить их работу и от внешнего генератора. Стоит помнить, что любая ошибка при установке Фьюза может «заблокировать» микроконтроллер. Для его восстановления необходимо подать тактовый сигнал на XTAL1-ногу.
Фьюзы avr из группы SUT управляют запуском тактовых генераторов контроллера, а также с их помощью задается скорость старта устройства с момента подачи питания.
Одним из наиболее «опасных» является FUSE RSTDISBL – ошибочное выставление его может деактивировать вывод RESET, в результате чего будет невозможно программировать ISP с помощью программатора. Это связано с тем, что RSTDISBL переводит вывод RESET в режим порта ввода-вывода.
В некоторых программах Фьюзы avr выставляют зеркально. Тут следует помнить, что запрограммированный FUSE=0, а не запрограммированный FUSE=1. Для программа UniProf, Algorithm Builder фьюзы выставляют по одной схеме, а в программах CodeVisionAVR, AVR Studio, PonyProg и SinaProg их следует выставлять зеркально по отношению к предыдущему списку программ.
В Интернете уже давно предлагаются специальные «калькуляторы Фьюзов» - это программы-помощники для настройки конфигурации контроллера. Такие приложения интуитивно понятны: в перечне микроконтроллеров нужно выбрать конкретный МК, затем указать необходимые функции и выставить галочки Фьюзов.
]]>С начала попробывал напрямую подключить вывод с микросхемы к базе транзстора, но такая идея не увенчалась успехом. Строчник начал "гудеть" в соответствии с заданной частотой в микроконтроллере и искра была очень маленькой поряжка 2мм). Как я понимаю на выходе МК
нехватает мощности для полного открытия транзистора.
Решил сначала "усилить" сигнал с выхода микроконтроллера. Для этого подключил еще один транзистор BC557. После того как его подключил строчник начал работать на полную мощность. Но у моего блока питания не хватило мощности для того чтобы искра была стабильной, и как это видно из видио напряжение поступает с периодом. Этот как я думаю внутри блока питания есть некая защита которая его на время вырубает).
Для того чтобы блок не вырубался, к базе транзистора BC557 был подключен резистора номиналом 10к. В итоге мощность потребляемая строчником заметно уменьшилась и блок питания начал работать стабильно.
Конечно можно было вместо микроконтроллера Atmega8 подключить обычный таймер к примеру N555 или найти еще какой нибудь источник пульсирующего напряжения. Но использование микроконтроллера дает возможность четко регулировать частоту импульсов.
Не знаю правда где применить сие "чудо". Слышал что один мужик как то делал из него нечто подобие точечной сварки. Но для того чтобы сварить 2 куска железа мощность источника должна быть соответсвующей. Но что то в нашей всемирной интернет паутине ничего на эту тему не нашел.
Список деталей:
Схема получилась довольно стабильной, транизсторы сильно не греются. И на последок видео)
https://www.youtube.com/watch?v=LRHeP-mBPgc
]]>С начала попробывал напрямую подключить вывод с микросхемы к базе транзстора, но такая идея не увенчалась успехом. Строчник начал "гудеть" в соответствии с заданной частотой в микроконтроллере и искра была очень маленькой поряжка 2мм). Как я понимаю на выходе МК
нехватает мощности для полного открытия транзистора.
Решил сначала "усилить" сигнал с выхода микроконтроллера. Для этого подключил еще один транзистор BC557. После того как его подключил строчник начал работать на полную мощность. Но у моего блока питания не хватило мощности для того чтобы искра была стабильной, и как это видно из видио напряжение поступает с периодом. Этот как я думаю внутри блока питания есть некая защита которая его на время вырубает).
Для того чтобы блок не вырубался, к базе транзистора BC557 был подключен резистора номиналом 10к. В итоге мощность потребляемая строчником заметно уменьшилась и блок питания начал работать стабильно.
Конечно можно было вместо микроконтроллера Atmega8 подключить обычный таймер к примеру N555 или найти еще какой нибудь источник пульсирующего напряжения. Но использование микроконтроллера дает возможность четко регулировать частоту импульсов.
Не знаю правда где применить сие "чудо". Слышал что один мужик как то делал из него нечто подобие точечной сварки. Но для того чтобы сварить 2 куска железа мощность источника должна быть соответсвующей. Но что то в нашей всемирной интернет паутине ничего на эту тему не нашел.
Список деталей:
Схема получилась довольно стабильной, транизсторы сильно не греются. И на последок видео)
https://www.youtube.com/watch?v=LRHeP-mBPgc
]]>Итак, что мы имеем:
Всего этого хватит нам, чтобы понять принцип действия частотомера на микроконтроллере. Красные светодиоды будем использовать для индикации цифрового значения регистра АЦП. А синий будет моргать с частотой 1 секунда, за которую у нас происходит подсчет импульсов на входе в микроконтроллер.
Мы будем измерять частоту входного сигнала на входе INT0, полученное значение частоты мы будем записывать в порт С микроконтроллера. Частота, измеренная контроллером у нас будет иметь цифровое значение и иметь тип INTEGER. Частота измеряется один раз в секунду, т.е. за одну секунду мы считаем количество импульсов пришедших на вход INT0. Когда подсчет окончен мы выводим это значение в порт.
Как подключить светодиоды к портам я рисовать не буду, тут ничего сложно. 4 светодиода на порт С и один светодиод на порт B. Также нужно будет подключить провод к выводу INT0. В данном примере на этот вход я ничего не подключал. А контроллер считал наведенные в этом проводе «шумы» - незначительные ЭДС который контроллер воспринимал как изменения состояния на входе INT0.
Как настроить таймер и выдержать интервал в 1 секунду я описал в предыдущих статьях. Для того чтобы настроить МК для работы с внешним прерыванием нам необходимо настроить регистры. Это делается с помощью следующей конструкции:
MCUCR |=(1<<ISC10); GICR |=(1<<INT0);
#include <avr/io.h> #include <avr/interrupt.h> unsigned char count=0; unsigned int int0_count=0; unsigned int freq; ISR (TIMER0_OVF_vect) { count++; if (count==61) { PORTB=~PORTB; freq=int0_count; PORTC=freq; count=0; int0_count=0; } } ISR (INT0_vect) { int0_count++; } int main(void) { // Настраиваем порт С и B на выход DDRC=0xff; DDRB=0xff; // Настраиваем порт вводы INT0 и INT1 на вход DDRD=0b11110011; // Обнуляем порт С PORTC=0x00; //Настройка внешнего прерывания MCUCR |=(1<<ISC10); GICR |=(1<<INT0); //Настройка таймера TCCR0 |=(1<<0)|(1<<1); //Настраиваем предделитель TIMSK |=(1<<TOIE0); // Запускаем таймер //Разрешаем прерывания asm("sei"); while(1) { asm("nop"); } }
https://www.youtube.com/watch?v=eVlZ6nsZX8w
]]>Итак, что мы имеем:
Всего этого хватит нам, чтобы понять принцип действия частотомера на микроконтроллере. Красные светодиоды будем использовать для индикации цифрового значения регистра АЦП. А синий будет моргать с частотой 1 секунда, за которую у нас происходит подсчет импульсов на входе в микроконтроллер.
Мы будем измерять частоту входного сигнала на входе INT0, полученное значение частоты мы будем записывать в порт С микроконтроллера. Частота, измеренная контроллером у нас будет иметь цифровое значение и иметь тип INTEGER. Частота измеряется один раз в секунду, т.е. за одну секунду мы считаем количество импульсов пришедших на вход INT0. Когда подсчет окончен мы выводим это значение в порт.
Как подключить светодиоды к портам я рисовать не буду, тут ничего сложно. 4 светодиода на порт С и один светодиод на порт B. Также нужно будет подключить провод к выводу INT0. В данном примере на этот вход я ничего не подключал. А контроллер считал наведенные в этом проводе «шумы» - незначительные ЭДС который контроллер воспринимал как изменения состояния на входе INT0.
Как настроить таймер и выдержать интервал в 1 секунду я описал в предыдущих статьях. Для того чтобы настроить МК для работы с внешним прерыванием нам необходимо настроить регистры. Это делается с помощью следующей конструкции:
MCUCR |=(1<<ISC10); GICR |=(1<<INT0);
#include <avr/io.h> #include <avr/interrupt.h> unsigned char count=0; unsigned int int0_count=0; unsigned int freq; ISR (TIMER0_OVF_vect) { count++; if (count==61) { PORTB=~PORTB; freq=int0_count; PORTC=freq; count=0; int0_count=0; } } ISR (INT0_vect) { int0_count++; } int main(void) { // Настраиваем порт С и B на выход DDRC=0xff; DDRB=0xff; // Настраиваем порт вводы INT0 и INT1 на вход DDRD=0b11110011; // Обнуляем порт С PORTC=0x00; //Настройка внешнего прерывания MCUCR |=(1<<ISC10); GICR |=(1<<INT0); //Настройка таймера TCCR0 |=(1<<0)|(1<<1); //Настраиваем предделитель TIMSK |=(1<<TOIE0); // Запускаем таймер //Разрешаем прерывания asm("sei"); while(1) { asm("nop"); } }
https://www.youtube.com/watch?v=eVlZ6nsZX8w
]]>
Схема блока питания работает следующим образом:
с выхода понижающего трансформатора переменное напряжение 12 Вольт поступает на диодный мост, где напряжение приобретает полярность. Для сглаживания пульсаций на выходе диодного моста стоит конденсатор С1 емкость 500мкФ.
Стабилитрон Д5 включен в обратном направлении что позволяет работать транзистору T1 на обратной составляющей ВАХ стабилитрона. Регулировка напряжения осуществляется путем изменения сопротивления между коллектором и эмиттером транзистора T2.
]]>
Схема блока питания работает следующим образом:
с выхода понижающего трансформатора переменное напряжение 12 Вольт поступает на диодный мост, где напряжение приобретает полярность. Для сглаживания пульсаций на выходе диодного моста стоит конденсатор С1 емкость 500мкФ.
Стабилитрон Д5 включен в обратном направлении что позволяет работать транзистору T1 на обратной составляющей ВАХ стабилитрона. Регулировка напряжения осуществляется путем изменения сопротивления между коллектором и эмиттером транзистора T2.
]]>На выходе диодного моста получается напряжение которое имеет полярность, но оно не стабильно и имеются нелинейные искажения, пульсации. Для сглаживания этих пульсаций стоит конденсатор С4. Напряжение с которого подается на стабилизирующее устройство DA1 которое на выходе дает 5 Вольт.
Характеристики микросхемы KP142EH5A
На выходе диодного моста получается напряжение которое имеет полярность, но оно не стабильно и имеются нелинейные искажения, пульсации. Для сглаживания этих пульсаций стоит конденсатор С4. Напряжение с которого подается на стабилизирующее устройство DA1 которое на выходе дает 5 Вольт.
Характеристики микросхемы KP142EH5A
Все данные микроконтроллеры содержат 16-ти канальный аналогово-цифровой преобразователь, который имеет разрешение в 10 бит и способен выдавать 1024 символов значений.
В большинстве случаев, входы платформы Arduino используются для подключения аналоговых датчиков, но вместе с этим, их можно использовать, как и цифровые порты ввода/вывода – выводить или вводить информацию широкого применения (GPIO). Таким образом, при недостаточном количестве цифровых портов, имеется возможность сконфигурировать ненужные в процессе работы аналоговые порты.
Выводы платы Arduino, с номерами от 14 до 19 соответствуют аналоговым портам. Но стоить помнить, что эти номера относятся только к выводам платы, а не к физическим номерам выводов микроконтроллера. Эти аналоговые порты могут использоваться как цифровые порты ввода-вывода информации, например, они могут быть задействованы для установки вывода 0 аналогового порта, на порт вывода со значением HIGH .
Каждый аналоговый вывод имеет подтягивающие резисторы, задача которых такая же, как и при работе на цифровых выводах. Для включения данных резисторов нужно набрать команду: digitalWrite(14, HIGH); , что приведет к включению резистора на выводе аналогового порта 0. Кроме того, при использовании некоторых датчиков и подключении резистора, будет изменена величина, сообщаемая функцией analogRead(). По этому, много пользователей платы Arduino, используют подтягивающий резистор только при применении вывода аналогового порта в цифровом режиме.
Также не стоит забывать, что если ранее выводы работали как цифровые порты, то в этом случае команда analogRead будет некорректной. Для правильной работы стоить сконфигурировать их как аналоговые входы. Аналогично, если порт выступал цифровым со значением HIGH, то его обратная установка подключит подтягивающий резистор.
В руководстве микроконтроллера, установленного на плате Arduino, идет речь о том, что не стоить осуществлять быстрое переключение между аналоговыми портами для их чтения, ведь это может привести к наложению сигналов, что приведет к искажению всей системы. А после работы аналогового порта в качестве цифрового, стоить внести паузу в настройку между чтением функцией analogRead().
]]>Все данные микроконтроллеры содержат 16-ти канальный аналогово-цифровой преобразователь, который имеет разрешение в 10 бит и способен выдавать 1024 символов значений.
В большинстве случаев, входы платформы Arduino используются для подключения аналоговых датчиков, но вместе с этим, их можно использовать, как и цифровые порты ввода/вывода – выводить или вводить информацию широкого применения (GPIO). Таким образом, при недостаточном количестве цифровых портов, имеется возможность сконфигурировать ненужные в процессе работы аналоговые порты.
Выводы платы Arduino, с номерами от 14 до 19 соответствуют аналоговым портам. Но стоить помнить, что эти номера относятся только к выводам платы, а не к физическим номерам выводов микроконтроллера. Эти аналоговые порты могут использоваться как цифровые порты ввода-вывода информации, например, они могут быть задействованы для установки вывода 0 аналогового порта, на порт вывода со значением HIGH .
Каждый аналоговый вывод имеет подтягивающие резисторы, задача которых такая же, как и при работе на цифровых выводах. Для включения данных резисторов нужно набрать команду: digitalWrite(14, HIGH); , что приведет к включению резистора на выводе аналогового порта 0. Кроме того, при использовании некоторых датчиков и подключении резистора, будет изменена величина, сообщаемая функцией analogRead(). По этому, много пользователей платы Arduino, используют подтягивающий резистор только при применении вывода аналогового порта в цифровом режиме.
Также не стоит забывать, что если ранее выводы работали как цифровые порты, то в этом случае команда analogRead будет некорректной. Для правильной работы стоить сконфигурировать их как аналоговые входы. Аналогично, если порт выступал цифровым со значением HIGH, то его обратная установка подключит подтягивающий резистор.
В руководстве микроконтроллера, установленного на плате Arduino, идет речь о том, что не стоить осуществлять быстрое переключение между аналоговыми портами для их чтения, ведь это может привести к наложению сигналов, что приведет к искажению всей системы. А после работы аналогового порта в качестве цифрового, стоить внести паузу в настройку между чтением функцией analogRead().
]]>Выводы платформы Arduino настроены заводом изготовителем как порты ввода, поэтому нет необходимости в применении функции pinMode(). Такие порты дают сравнительно малую нагрузку на микросхему. Внутреннее сопротивление будет равно резистору в 100 Мом, подключенному к выводу схемы. Следовательно, понадобится малое значение тока для перевода порта из одного режима в другой. С помощью этого выводы микросхемы можно использовать для подключения фотодиода, датчика касания или похожего датчика со схемой, похожей на RC-цепь.
Однако значения могут иметь и случайные величины из-за электрических помех и контакта с соседним выводом. Это возможно в случае, если к выводу ничего не подключено.
В случае если на порт ввода сигнал не идет, следует задать порту известное значение. Это можно сделать с помощью подключения дополнительных подтягивающих резисторов 10 кОм, которые подключат вход либо к земле, либо к +5 В.
Atmega, микроконтроллер, оборудован встроенными резисторами 20 кОм, подтягивающими к питанию. Они поддаются программированию следующими командами:
Задача такого резистора – пропустить ток, необходимый для легкого свечения светодиода, который подключен к выводу, настроенному как порт ввода. Такое свечение говорит о том, что вывод не настроен как порт вывода в функции pinMode() при программировании.
Подтягивающие резисторы и состояния вывода (HIGH или LOW) находятся под управлением одних и тех же регистров. Таким образом, если порт настроен как порт ввода со значением HIGH, то конфигурация передаст значение HIGH функцией pinMode(). Это операция функционирует и в противоположном направлении.
Вследствие того, что к выводу схемы 13 подключены резистор и светодиод, его трудно использовать в качестве порта ввода. По причине снижения напряжения на светодиоде и резисторе в результате подключения подтягивающего резистора, недостаточное напряжение будет и на вводе. Для того чтобы воспользоваться выводом в качестве цифрового ввода, нужно подключить внешний подтягивающий резистор между землей и выводом.
В низком импедансе находятся выводы настроенные как порты вывода. Они способны проводить большой ток. Такие выводы могут быть как источником тока, так и потребителем тока до 40 мА. Такой силы тока достаточно для подключения светодиода с последовательным резистором, но не хватает для подключения двигателей, соленоидов и большей части реле.
Необходимо избегать коротких замыканий цифровых выводов Arduino, так как они могут вывести из строя выходные транзисторы. В таких ситуациях произойдет отключение цифрового вывода на контроллере, но схема будет продолжать работать. В случае, когда устройство не нуждается в большом потреблении тока, рациональней подключать его через резисторы 1 кОм или 470 Ом.
]]>Выводы платформы Arduino настроены заводом изготовителем как порты ввода, поэтому нет необходимости в применении функции pinMode(). Такие порты дают сравнительно малую нагрузку на микросхему. Внутреннее сопротивление будет равно резистору в 100 Мом, подключенному к выводу схемы. Следовательно, понадобится малое значение тока для перевода порта из одного режима в другой. С помощью этого выводы микросхемы можно использовать для подключения фотодиода, датчика касания или похожего датчика со схемой, похожей на RC-цепь.
Однако значения могут иметь и случайные величины из-за электрических помех и контакта с соседним выводом. Это возможно в случае, если к выводу ничего не подключено.
В случае если на порт ввода сигнал не идет, следует задать порту известное значение. Это можно сделать с помощью подключения дополнительных подтягивающих резисторов 10 кОм, которые подключат вход либо к земле, либо к +5 В.
Atmega, микроконтроллер, оборудован встроенными резисторами 20 кОм, подтягивающими к питанию. Они поддаются программированию следующими командами:
Задача такого резистора – пропустить ток, необходимый для легкого свечения светодиода, который подключен к выводу, настроенному как порт ввода. Такое свечение говорит о том, что вывод не настроен как порт вывода в функции pinMode() при программировании.
Подтягивающие резисторы и состояния вывода (HIGH или LOW) находятся под управлением одних и тех же регистров. Таким образом, если порт настроен как порт ввода со значением HIGH, то конфигурация передаст значение HIGH функцией pinMode(). Это операция функционирует и в противоположном направлении.
Вследствие того, что к выводу схемы 13 подключены резистор и светодиод, его трудно использовать в качестве порта ввода. По причине снижения напряжения на светодиоде и резисторе в результате подключения подтягивающего резистора, недостаточное напряжение будет и на вводе. Для того чтобы воспользоваться выводом в качестве цифрового ввода, нужно подключить внешний подтягивающий резистор между землей и выводом.
В низком импедансе находятся выводы настроенные как порты вывода. Они способны проводить большой ток. Такие выводы могут быть как источником тока, так и потребителем тока до 40 мА. Такой силы тока достаточно для подключения светодиода с последовательным резистором, но не хватает для подключения двигателей, соленоидов и большей части реле.
Необходимо избегать коротких замыканий цифровых выводов Arduino, так как они могут вывести из строя выходные транзисторы. В таких ситуациях произойдет отключение цифрового вывода на контроллере, но схема будет продолжать работать. В случае, когда устройство не нуждается в большом потреблении тока, рациональней подключать его через резисторы 1 кОм или 470 Ом.
]]>Среда разработки Arduino имеет утилиту мониторинга порта USB, к которому в данный момент подключена плата arduino. Это позволяет отслеживать поступающие данные разработчику и отлаживать программу. Настройка скорости передачи осуществляется с помощью метода begin библиотеки Serial.
К примеру плата Arduino Mega имеет три порта на следующих парах выводов:
Для того чтобы можно было ими воспользоваться, применяются USB-адаптеры серии to serial, так как они не имеют подключения к встроенной плате.
Для того чтобы обмен происходил, соединяется порт TX устройства с RX портом внешнего выхода и RX порт. Их необходимо соединение "заземлить" на приборах.
Среда разработки Arduino имеет утилиту мониторинга порта USB, к которому в данный момент подключена плата arduino. Это позволяет отслеживать поступающие данные разработчику и отлаживать программу. Настройка скорости передачи осуществляется с помощью метода begin библиотеки Serial.
К примеру плата Arduino Mega имеет три порта на следующих парах выводов:
Для того чтобы можно было ими воспользоваться, применяются USB-адаптеры серии to serial, так как они не имеют подключения к встроенной плате.
Для того чтобы обмен происходил, соединяется порт TX устройства с RX портом внешнего выхода и RX порт. Их необходимо соединение "заземлить" на приборах.
Есть куча информации про то как работает с библиотекой Wire, есть много инфы про принцип работы самого датчика с его схемой и т.д. Cкопировал пару примеры залил на Arduino но долгожданый циферок в миноторинге порта не оказалось.
А если вы новичок то тоже столкнётесь с такими проблемами. Решил подойти к этому вплотную и написать понятную для новичков инструкция по подключению цифрового датчика ds18b20 к Arduino.
Основные параметры датчика:
Цифровой датчик ds18b20 имеет 3 вывода:
Линия данных используется для обмена информацией между контроллером и датчиком. Данный датчик использует протокол 1-Wire. Информация о температуре датчика хранится в оперативной памяти, состоящей из слова длиной 9 байт.
Для того чтобы измерить температуру с помощью цифрового датчика ds18b20 и Arduino нам нужно сделать следующее:
Расположение выводов датчика.
Схема подключения довольно простая. Она состоит из трех проводной линии, два крайних это питание а третий это линия данных. Линия данных «подтянута » к 5 В. Сопротивлением 4.7 кОм. У меня была плата Arduino Mega.
Для того чтобы получать данные с датчика, как было сказано ранее, используеться протокол 1-wire. Датчик можно подключить к любому выводу Arduino, но предварительно нужно указать в коде программы с каким именно выводом мы имеем дело. В нашем мы подключаем к выводу 20.
Скачать библиотеку OneWire.zip
Для того чтобы начать работать с этой ранее скаченной библиотекой ее необходимо добавить в среду arduino. В каком то пункте меню есть пункт add library. после ее добавления в примерах ардино появится примеры OneWire. Открываем его и видим следующий код.
Важно! В коде я поменял OneWire ds(10) на OneWire ds(20) так как в ArduinoMega выход на 20-й ноге.
#include OneWire ds(10); // on pin 10 (a 4.7K resistor is necessary) void setup(void) { Serial.begin(9600); } void loop(void) { byte i; byte present = 0; byte type_s; byte data[12]; byte addr[8]; float celsius, fahrenheit; if ( !ds.search(addr)) { Serial.println("No more addresses."); Serial.println(); ds.reset_search(); delay(250); return; } Serial.print("ROM ="); for( i = 0; i < 8; i++) { Serial.write(' '); Serial.print(addr[i], HEX); } if (OneWire::crc8(addr, 7) != addr[7]) { Serial.println("CRC is not valid!"); return; } Serial.println(); // the first ROM byte indicates which chip switch (addr[0]) { case 0x10: Serial.println(" Chip = DS18S20"); // or old DS1820 type_s = 1; break; case 0x28: Serial.println(" Chip = DS18B20"); type_s = 0; break; case 0x22: Serial.println(" Chip = DS1822"); type_s = 0; break; default: Serial.println("Device is not a DS18x20 family device."); return; } ds.reset(); ds.select(addr); ds.write(0x44, 1); // start conversion, with parasite power on at the end delay(1000); // maybe 750ms is enough, maybe not // we might do a ds.depower() here, but the reset will take care of it. present = ds.reset(); ds.select(addr); ds.write(0xBE); // Read Scratchpad Serial.print(" Data = "); Serial.print(present, HEX); Serial.print(" "); for ( i = 0; i < 9; i++) { // we need 9 bytes data[i] = ds.read(); Serial.print(data[i], HEX); Serial.print(" "); } Serial.print(" CRC="); Serial.print(OneWire::crc8(data, 8), HEX); Serial.println(); // Convert the data to actual temperature // because the result is a 16 bit signed integer, it should // be stored to an "int16_t" type, which is always 16 bits // even when compiled on a 32 bit processor. int16_t raw = (data[1] << 8) | data[0]; if (type_s) { raw = raw << 3; // 9 bit resolution default if (data[7] == 0x10) { // "count remain" gives full 12 bit resolution raw = (raw & 0xFFF0) + 12 - data[6]; } } else { byte cfg = (data[4] & 0x60); // at lower res, the low bits are undefined, so let's zero them if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms //// default is 12 bit resolution, 750 ms conversion time } celsius = (float)raw / 16.0; fahrenheit = celsius * 1.8 + 32.0; Serial.print(" Temperature = "); Serial.print(celsius); Serial.print(" Celsius, "); Serial.print(fahrenheit); Serial.println(" Fahrenheit"); }
import processing.serial.*; float theta; Serial myPort; // Create object from Serial class int val; // Data received from the serial port void setup() { size(800, 600); // I know that the first port in the serial list on my mac // is always my FTDI adaptor, so I open Serial.list()[0]. // On Windows machines, this generally opens COM1. // Open whatever port is the one you're using. String portName = Serial.list()[1]; myPort = new Serial(this, portName, 9600); } void draw() { background(255);if ( myPort.available() > 0) val = myPort.read(); background(0); frameRate(30); stroke(255); // Let's pick an angle 0 to 90 degrees based on the mouse position float a = ((val*2) / (float) width) * 90f; // Convert it to radians theta = radians(a); // Start the tree from the bottom of the screen translate(width/2,height); // Draw a line 120 pixels line(0,0,0,-120); // Move to the end of that line translate(0,-120); // Start the recursive branching! branch(220); } void branch(float h) { // Each branch will be 2/3rds the size of the previous one h *= 0.66; // All recursive functions must have an exit condition!!!! // Here, ours is when the length of the branch is 2 pixels or less if (h > 2) { pushMatrix(); // Save the current state of transformation (i.e. where are we now) rotate(theta); // Rotate by theta line(0, 0, 0, -h); // Draw the branch translate(0, -h); // Move to the end of the branch branch(h); // Ok, now call myself to draw two new branches!! popMatrix(); // Whenever we get back here, we "pop" in order to restore the previous matrix state // Repeat the same thing, only branch off to the "left" this time! pushMatrix(); rotate(-theta); line(0, 0, 0, -h); translate(0, -h); branch(h); popMatrix(); } }
Цифровые данные полученные от Arduino в данном видео обрабатываются с помощью языка Processing.
https://www.youtube.com/watch?v=1_cjBQ9-fjI
]]>Есть куча информации про то как работает с библиотекой Wire, есть много инфы про принцип работы самого датчика с его схемой и т.д. Cкопировал пару примеры залил на Arduino но долгожданый циферок в миноторинге порта не оказалось.
А если вы новичок то тоже столкнётесь с такими проблемами. Решил подойти к этому вплотную и написать понятную для новичков инструкция по подключению цифрового датчика ds18b20 к Arduino.
Основные параметры датчика:
Цифровой датчик ds18b20 имеет 3 вывода:
Линия данных используется для обмена информацией между контроллером и датчиком. Данный датчик использует протокол 1-Wire. Информация о температуре датчика хранится в оперативной памяти, состоящей из слова длиной 9 байт.
Для того чтобы измерить температуру с помощью цифрового датчика ds18b20 и Arduino нам нужно сделать следующее:
Расположение выводов датчика.
Схема подключения довольно простая. Она состоит из трех проводной линии, два крайних это питание а третий это линия данных. Линия данных «подтянута » к 5 В. Сопротивлением 4.7 кОм. У меня была плата Arduino Mega.
Для того чтобы получать данные с датчика, как было сказано ранее, используеться протокол 1-wire. Датчик можно подключить к любому выводу Arduino, но предварительно нужно указать в коде программы с каким именно выводом мы имеем дело. В нашем мы подключаем к выводу 20.
Скачать библиотеку OneWire.zip
Для того чтобы начать работать с этой ранее скаченной библиотекой ее необходимо добавить в среду arduino. В каком то пункте меню есть пункт add library. после ее добавления в примерах ардино появится примеры OneWire. Открываем его и видим следующий код.
Важно! В коде я поменял OneWire ds(10) на OneWire ds(20) так как в ArduinoMega выход на 20-й ноге.
#include OneWire ds(10); // on pin 10 (a 4.7K resistor is necessary) void setup(void) { Serial.begin(9600); } void loop(void) { byte i; byte present = 0; byte type_s; byte data[12]; byte addr[8]; float celsius, fahrenheit; if ( !ds.search(addr)) { Serial.println("No more addresses."); Serial.println(); ds.reset_search(); delay(250); return; } Serial.print("ROM ="); for( i = 0; i < 8; i++) { Serial.write(' '); Serial.print(addr[i], HEX); } if (OneWire::crc8(addr, 7) != addr[7]) { Serial.println("CRC is not valid!"); return; } Serial.println(); // the first ROM byte indicates which chip switch (addr[0]) { case 0x10: Serial.println(" Chip = DS18S20"); // or old DS1820 type_s = 1; break; case 0x28: Serial.println(" Chip = DS18B20"); type_s = 0; break; case 0x22: Serial.println(" Chip = DS1822"); type_s = 0; break; default: Serial.println("Device is not a DS18x20 family device."); return; } ds.reset(); ds.select(addr); ds.write(0x44, 1); // start conversion, with parasite power on at the end delay(1000); // maybe 750ms is enough, maybe not // we might do a ds.depower() here, but the reset will take care of it. present = ds.reset(); ds.select(addr); ds.write(0xBE); // Read Scratchpad Serial.print(" Data = "); Serial.print(present, HEX); Serial.print(" "); for ( i = 0; i < 9; i++) { // we need 9 bytes data[i] = ds.read(); Serial.print(data[i], HEX); Serial.print(" "); } Serial.print(" CRC="); Serial.print(OneWire::crc8(data, 8), HEX); Serial.println(); // Convert the data to actual temperature // because the result is a 16 bit signed integer, it should // be stored to an "int16_t" type, which is always 16 bits // even when compiled on a 32 bit processor. int16_t raw = (data[1] << 8) | data[0]; if (type_s) { raw = raw << 3; // 9 bit resolution default if (data[7] == 0x10) { // "count remain" gives full 12 bit resolution raw = (raw & 0xFFF0) + 12 - data[6]; } } else { byte cfg = (data[4] & 0x60); // at lower res, the low bits are undefined, so let's zero them if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms //// default is 12 bit resolution, 750 ms conversion time } celsius = (float)raw / 16.0; fahrenheit = celsius * 1.8 + 32.0; Serial.print(" Temperature = "); Serial.print(celsius); Serial.print(" Celsius, "); Serial.print(fahrenheit); Serial.println(" Fahrenheit"); }
import processing.serial.*; float theta; Serial myPort; // Create object from Serial class int val; // Data received from the serial port void setup() { size(800, 600); // I know that the first port in the serial list on my mac // is always my FTDI adaptor, so I open Serial.list()[0]. // On Windows machines, this generally opens COM1. // Open whatever port is the one you're using. String portName = Serial.list()[1]; myPort = new Serial(this, portName, 9600); } void draw() { background(255);if ( myPort.available() > 0) val = myPort.read(); background(0); frameRate(30); stroke(255); // Let's pick an angle 0 to 90 degrees based on the mouse position float a = ((val*2) / (float) width) * 90f; // Convert it to radians theta = radians(a); // Start the tree from the bottom of the screen translate(width/2,height); // Draw a line 120 pixels line(0,0,0,-120); // Move to the end of that line translate(0,-120); // Start the recursive branching! branch(220); } void branch(float h) { // Each branch will be 2/3rds the size of the previous one h *= 0.66; // All recursive functions must have an exit condition!!!! // Here, ours is when the length of the branch is 2 pixels or less if (h > 2) { pushMatrix(); // Save the current state of transformation (i.e. where are we now) rotate(theta); // Rotate by theta line(0, 0, 0, -h); // Draw the branch translate(0, -h); // Move to the end of the branch branch(h); // Ok, now call myself to draw two new branches!! popMatrix(); // Whenever we get back here, we "pop" in order to restore the previous matrix state // Repeat the same thing, only branch off to the "left" this time! pushMatrix(); rotate(-theta); line(0, 0, 0, -h); translate(0, -h); branch(h); popMatrix(); } }
Цифровые данные полученные от Arduino в данном видео обрабатываются с помощью языка Processing.
https://www.youtube.com/watch?v=1_cjBQ9-fjI
]]>Данная функция необходима для настройки вашего проекта. Она вызывается однократно после старта вашей программы или когда вы нажали кнопку reset на плате Arduino. В ней объявляются переменные, массивы, данные.
Синтаксис функции
void setup() { //Настройка проекта
}
В данной функции происходит цикличное выполнение записанного в ней кода. Когда программа выполнела последний оператор в данной функции все начинается сначала.
void loop() { //Циклическое выполение программы }
Данная функция настраивает выводы платы Arduino на вход или выход.
pinMode(pin,mode);
Функция принемает два параметра:
Данная функция может выполнять разные действия в зависимости от того как настроен вывод Arduino, на вход или на выход. Если вывод настроен на выход то с помощью данной функции можно записать уровень High или Low. Если вывод настроен на вход, то функция включает внутренние подтягивающие резисторы.
digitalWrite(pin,mode);
Функция принемает два параметра:
Пример
int ledPin = 13; // Светодиод подключенный к вход/выходу 13 void setup() { pinMode(ledPin, OUTPUT); // устанавливает режим работы - выход } void loop() { digitalWrite(ledPin, HIGH); // включает светодиод delay(1000); // ждет секунду digitalWrite(ledPin, LOW); // выключает светодиод delay(1000); // ждет секунду }
Функция используется для считывания цифрового значения на входе. Если к входу ничего не подключено то функция будет выводить случайные значения
digitalRead(pin);
Функция принемает один параметр:
Данная функция необходима для настройки вашего проекта. Она вызывается однократно после старта вашей программы или когда вы нажали кнопку reset на плате Arduino. В ней объявляются переменные, массивы, данные.
Синтаксис функции
void setup() { //Настройка проекта
}
В данной функции происходит цикличное выполнение записанного в ней кода. Когда программа выполнела последний оператор в данной функции все начинается сначала.
void loop() { //Циклическое выполение программы }
Данная функция настраивает выводы платы Arduino на вход или выход.
pinMode(pin,mode);
Функция принемает два параметра:
Данная функция может выполнять разные действия в зависимости от того как настроен вывод Arduino, на вход или на выход. Если вывод настроен на выход то с помощью данной функции можно записать уровень High или Low. Если вывод настроен на вход, то функция включает внутренние подтягивающие резисторы.
digitalWrite(pin,mode);
Функция принемает два параметра:
Пример
int ledPin = 13; // Светодиод подключенный к вход/выходу 13 void setup() { pinMode(ledPin, OUTPUT); // устанавливает режим работы - выход } void loop() { digitalWrite(ledPin, HIGH); // включает светодиод delay(1000); // ждет секунду digitalWrite(ledPin, LOW); // выключает светодиод delay(1000); // ждет секунду }
Функция используется для считывания цифрового значения на входе. Если к входу ничего не подключено то функция будет выводить случайные значения
digitalRead(pin);
Функция принемает один параметр:
Для изготовления катушки L1 нам понадобится провод ПЭЛ 0.5-0.7. Необходимо сделать 7 витков на оправе диаметром 3мм. Такие параметры позволяют достигнуть частоты в 91МГЦ.
Катушку L2 необходимо взять номиналом в 5 мкГн.
Для изготовления антенны необходимо взять кусок проволки длинной 37 см и сделать из него спираль.
Для изготовления катушки L1 нам понадобится провод ПЭЛ 0.5-0.7. Необходимо сделать 7 витков на оправе диаметром 3мм. Такие параметры позволяют достигнуть частоты в 91МГЦ.
Катушку L2 необходимо взять номиналом в 5 мкГн.
Для изготовления антенны необходимо взять кусок проволки длинной 37 см и сделать из него спираль.
Преобразователь напряжения с 12 на 220 В был как раз и создан для того, чтобы эта проблема была успешно решена, и его наличие давало неоценимую возможность запитывать от батареи аккумулятора практически любой бытовой прибор, мощность которого не превышает 100 Вт. Схема преобразователя представлена на рисунке ниже.
Генератор задающего типа работает на основе однопереходного транзистора типа VT1, таких резисторов как R3, R5 и конденсатора С3. Триггер DD1.2 делит на два частоту импульсов, которая им генерируется. При всем при этом на его выходе будет сформировано энное количество инверсных импульсов, которые будут следовать с частотой в 50 Гц. Эти импульсы будут управлять такими ключевыми транзисторами как VT3 и VT2, которые включены по схеме, относящейся к двухтактному усилителю мощности. Нагрузкой для них в данном случае будет выступать трансформатор Т1, который повышает напряжение импульсов на стабилизаторе до 220В.
В схеме преобразователя напряжения на коллекторах напряжение питания транзисторов по выходному каскаду преобразователя подается через половинки первичной обмотки Т1, а генератор задающий и микросхема DD1 получает напряжение посредством стабилизатора R1VD1. Стабилизатор вместе с конденсатором С1 полностью исключит влияние ключевого транзистора на успешное функционирование прочих элементов устройства. С5 и С4 как конденсаторы будут ускорять коммутацию ключевого транзистора, этим самым в значительной степени облегчая режимы их функционирования.
DD1.1 имеет вход D, подключенный через R2 к проводнику плюсового типа, ну а вход С подключен к задающему генератору, что позволяет контролировать напряжение батареи аккумулятора, подавая сигнал в момент ее разрядки.
Преобразователь напряжения с 12 на 220 монтируется в производном порядке. Лишь только конденсатор С2 есть необходимость устанавливать на выводе по питанию имеющейся схемы.
Стабилитрон КС191А (VD1) всегда имеется возможность успешно заменить на любой другой, а VT3 и VT2 – на любые транзисторы, входящие в серию КТ827, и их нередко следует устанавливать на теплоотводе, площадь поверхности которого должна быть не меньше 300 см.кв. Что касается трансформатора Т1, то он устанавливается относительно магнитопровода ПЛМ 27-40-58. Обмотки имеют 15 витков проводов ПСД-2 или же ПБД-2 (это что касается обсоток 1 и 2), ну а обмотка 3 имеет витки в количестве 704, и это уже провод ПЭВ-2.
Начиная процедуру по налаживанию устройства, проводник плюсового типа по источнику питания следует от точки соединения обмоток 2 и 1 по трансформатору Т1 отключить, не забывая с помощью осциллографа проверять амплитуду и частоту по импульсам на транзисторах VT2, VT3. Она должна равняться 2 В, по частоте же – 50 Гц, что устанавливается при помощи резистора R3.
После этого приступают к установке узла по контролю за напряжением, что собран относительно триггера DD1.1, для чего напряжение по источнику питания необходимо понизить до 10 или 10,5 В, ну а уже при помощи R2 делают так, чтобы светодиод HL1 светился постоянно. После этого необходимо восстановить соединение по плюсовому проводнику и среднюю точку на обмотке первичного типа по выходному трансформатору.
]]>Преобразователь напряжения с 12 на 220 В был как раз и создан для того, чтобы эта проблема была успешно решена, и его наличие давало неоценимую возможность запитывать от батареи аккумулятора практически любой бытовой прибор, мощность которого не превышает 100 Вт. Схема преобразователя представлена на рисунке ниже.
Генератор задающего типа работает на основе однопереходного транзистора типа VT1, таких резисторов как R3, R5 и конденсатора С3. Триггер DD1.2 делит на два частоту импульсов, которая им генерируется. При всем при этом на его выходе будет сформировано энное количество инверсных импульсов, которые будут следовать с частотой в 50 Гц. Эти импульсы будут управлять такими ключевыми транзисторами как VT3 и VT2, которые включены по схеме, относящейся к двухтактному усилителю мощности. Нагрузкой для них в данном случае будет выступать трансформатор Т1, который повышает напряжение импульсов на стабилизаторе до 220В.
В схеме преобразователя напряжения на коллекторах напряжение питания транзисторов по выходному каскаду преобразователя подается через половинки первичной обмотки Т1, а генератор задающий и микросхема DD1 получает напряжение посредством стабилизатора R1VD1. Стабилизатор вместе с конденсатором С1 полностью исключит влияние ключевого транзистора на успешное функционирование прочих элементов устройства. С5 и С4 как конденсаторы будут ускорять коммутацию ключевого транзистора, этим самым в значительной степени облегчая режимы их функционирования.
DD1.1 имеет вход D, подключенный через R2 к проводнику плюсового типа, ну а вход С подключен к задающему генератору, что позволяет контролировать напряжение батареи аккумулятора, подавая сигнал в момент ее разрядки.
Преобразователь напряжения с 12 на 220 монтируется в производном порядке. Лишь только конденсатор С2 есть необходимость устанавливать на выводе по питанию имеющейся схемы.
Стабилитрон КС191А (VD1) всегда имеется возможность успешно заменить на любой другой, а VT3 и VT2 – на любые транзисторы, входящие в серию КТ827, и их нередко следует устанавливать на теплоотводе, площадь поверхности которого должна быть не меньше 300 см.кв. Что касается трансформатора Т1, то он устанавливается относительно магнитопровода ПЛМ 27-40-58. Обмотки имеют 15 витков проводов ПСД-2 или же ПБД-2 (это что касается обсоток 1 и 2), ну а обмотка 3 имеет витки в количестве 704, и это уже провод ПЭВ-2.
Начиная процедуру по налаживанию устройства, проводник плюсового типа по источнику питания следует от точки соединения обмоток 2 и 1 по трансформатору Т1 отключить, не забывая с помощью осциллографа проверять амплитуду и частоту по импульсам на транзисторах VT2, VT3. Она должна равняться 2 В, по частоте же – 50 Гц, что устанавливается при помощи резистора R3.
После этого приступают к установке узла по контролю за напряжением, что собран относительно триггера DD1.1, для чего напряжение по источнику питания необходимо понизить до 10 или 10,5 В, ну а уже при помощи R2 делают так, чтобы светодиод HL1 светился постоянно. После этого необходимо восстановить соединение по плюсовому проводнику и среднюю точку на обмотке первичного типа по выходному трансформатору.
]]>Данное устройство зарядного типа никак не контактирует с сопротивлением по массе оборудования, находящегося в автомобиле, потому как электроток в нем будет измеряться в шине положительного типа.
Это зарядное устройство функционирует вместе с батареей аккумулятора, каждая из которых может содержать порядка 5 – 15 различных технических элементов, и при всем при этом напряжение на входе составляет обычно порядка 28 В, что больше всего лишь на 1,5 В напряжения, что лежит на полюсах батареи, оказавшейся разряженной до предела.
Ток как заряд будет генерироваться при помощи IC1 – микросхемы, контроллера, который понижает преобразование импульса и работает с транзистором Q1, не исключая синхронного токового режима функционирования выпрямителя. Эти два транзистора оснащены парой каналов типа «п», а их незначительное сопротивление по каналу преобразует схему максимально эффективно.
Для получения положительного напряжения в данной схеме предусматривается наличие цепи вольтдобавки, что необходимо для того, чтобы управлять затвором транзистора Q1. Помимо всего прочего она отвечает за контроль тока при помощи резистора R1, выключая его каждый раз, как только напряжение переваливает через допустимый предел.
Трансформатор токовый типа Т1, коим укомплектовано зарядное устройство, снижает потерю по мощностям, выдавая относительно резистора малую толику тока от транзистора типа Q1. Микросхема как датчик-усилитель тока, носящая название IC2, находится в положительной выходной шине устройства.
На выход оного приходится примерно 1/2000 часть электричества с внутреннего шунта, и при всем при этом резистор R2 выдает по обратной связи напряжение, приходящееся на микросхему IC1.
Управление цифровое заряда есть возможность вводить, подключив на место R2 необходимое количество определенных резисторов посредством МОП, что касается транзисторов типа 2N7002. Сопротивление их канала в 7,5 Ом практически на параметры схемы не влияет, потому как находящийся на канале ток не может быть выше 1,25 мА, а это уже входит в соответствие погрешности, равной 0,5%.
В итоге схема эффективно преобразовывается аж до 96%, ну а мощность на выходе возрастает посредством влияния напряжения на выходе, а все потому, что потребление схемы находится на постоянном уровне.
]]>Данное устройство зарядного типа никак не контактирует с сопротивлением по массе оборудования, находящегося в автомобиле, потому как электроток в нем будет измеряться в шине положительного типа.
Это зарядное устройство функционирует вместе с батареей аккумулятора, каждая из которых может содержать порядка 5 – 15 различных технических элементов, и при всем при этом напряжение на входе составляет обычно порядка 28 В, что больше всего лишь на 1,5 В напряжения, что лежит на полюсах батареи, оказавшейся разряженной до предела.
Ток как заряд будет генерироваться при помощи IC1 – микросхемы, контроллера, который понижает преобразование импульса и работает с транзистором Q1, не исключая синхронного токового режима функционирования выпрямителя. Эти два транзистора оснащены парой каналов типа «п», а их незначительное сопротивление по каналу преобразует схему максимально эффективно.
Для получения положительного напряжения в данной схеме предусматривается наличие цепи вольтдобавки, что необходимо для того, чтобы управлять затвором транзистора Q1. Помимо всего прочего она отвечает за контроль тока при помощи резистора R1, выключая его каждый раз, как только напряжение переваливает через допустимый предел.
Трансформатор токовый типа Т1, коим укомплектовано зарядное устройство, снижает потерю по мощностям, выдавая относительно резистора малую толику тока от транзистора типа Q1. Микросхема как датчик-усилитель тока, носящая название IC2, находится в положительной выходной шине устройства.
На выход оного приходится примерно 1/2000 часть электричества с внутреннего шунта, и при всем при этом резистор R2 выдает по обратной связи напряжение, приходящееся на микросхему IC1.
Управление цифровое заряда есть возможность вводить, подключив на место R2 необходимое количество определенных резисторов посредством МОП, что касается транзисторов типа 2N7002. Сопротивление их канала в 7,5 Ом практически на параметры схемы не влияет, потому как находящийся на канале ток не может быть выше 1,25 мА, а это уже входит в соответствие погрешности, равной 0,5%.
В итоге схема эффективно преобразовывается аж до 96%, ну а мощность на выходе возрастает посредством влияния напряжения на выходе, а все потому, что потребление схемы находится на постоянном уровне.
]]>Схема подключения довольно проста, которая состоит из платы Arduino(в моем примере это Arduino Mega2560) и сервопривода. Сервомашинка имеет три вывода, два это питание и один это управляющий вывод. Куда подключать выводы питания говорить не буду - и так все понятно , а вот линию данных нужно подсоединить к тому выводу Arduino к которому привязан сервопривод - настройка осуществляется в программе. Управление сервоприводом происходит путем изменения длины импульса поступающего на вход линии данных. Для этого в среде Arduino существует специальная библиотека Servo. Которая имеет ряд простых методов и которая позволит с легкостью позиционировать сервопривод.
Последню версию JDK и NetBeanse можно скачать с официального сайта java. Все бесплатно и общедоступно.
Далее нам необходимо скачать библиотеку RXTX которая позволит нам обмениваться с внешними устройствами по UART интерфейсу. Скачать библиотеку RXTX можно здесь. С ее помощью можно как передавать данные так и принимать их. Выбираем нужную версию под 32 или 64 ОС.
У меня на компьютере был установлен XP. Под 64 битную ОС тоже должно все заработать.
В этой библиотеке 3 файла.
Их нужно скопировать в папку с установленным jdk,
RXTXcomm.jar скопировать в \jre\lib\ext (under java),
rxtxSerial.dll и rxtxParallel.dll скопировать в \jre\bin.
package serial; import gnu.io.CommPortIdentifier; import gnu.io.SerialPort; import gnu.io.SerialPortEvent; import gnu.io.SerialPortEventListener; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration; public class SerialServo implements SerialPortEventListener{ SerialPort serialPort; private InputStream input; private OutputStream output; private static final int TIME_OUT = 2000; private static final int DATA_RATE = 9600; private static final String PORT_NAMES[] = { "/dev/tty.usbserial-A9007UX1", // Mac OS X "/dev/ttyUSB0", // Linux "COM4", // Windows }; public void initialize() { CommPortIdentifier portId = null; Enumeration portEnum = CommPortIdentifier.getPortIdentifiers(); while (portEnum.hasMoreElements()) { CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement(); for (String portName : PORT_NAMES) { if (currPortId.getName().equals(portName)) { portId = currPortId; break; } } } if (portId == null) { System.out.println("Could not find COM port."); return; }else{ System.out.println("Found your Port"); } try { // open serial port, and use class name for the appName. serialPort = (SerialPort) portId.open(this.getClass().getName(),TIME_OUT); // set port parameters serialPort.setSerialPortParams(DATA_RATE, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); // open the streams input = serialPort.getInputStream(); output = serialPort.getOutputStream(); // add event listeners serialPort.addEventListener(this); serialPort.notifyOnDataAvailable(true); } catch (Exception e) { System.err.println(e.toString()); } } public synchronized void close() { if (serialPort != null) { serialPort.removeEventListener(); serialPort.close(); } } public void sendSingleByte(byte myByte){ try { output.write(myByte); output.flush(); } catch (Exception e) { System.err.println(e.toString()); } } public synchronized void serialEvent (SerialPortEvent oEvent) { if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) { try { int myByte=input.read(); int value = myByte & 0xff;//byte to int conversion:0...127,-127...0 -> 0...255 if(value>=0 && value<256){ System.out.println(value); } } catch (Exception e) { System.err.println(e.toString()); } } } }
Данные класс имеет два основных метода. Первый метод это sendSingleByte(), с его помощью мы можем послать 1 байт в сериал порт. Второй метод serialEvent(), он вызывается автоматически когда на входе появляются данные. Для того чтобы начать управление нам нужно создать объект данного класса, и вызывать его методы. Тут приведен только один класс.
Скачать проект управления сервомашинкой по среду NetBeanse IDE.
#include <Servo.h> Servo myservo; int pos = 0; byte bytev=0; void setup() { myservo.attach(9); Serial.begin(9600); } void loop() { myservo.write(pos); delay(15); } void serialEvent() { while (Serial.available()) { bytev= (byte)Serial.read(); pos = map(bytev,0,127,0,180); } }
Ну тут все понятно, импортируем библиотеку для работы с сервомашинкой, объявляем две переменные для получения данных и позиционирования "сервы". В методе loop() посылаем данный с промежутком в 15мс. Как видно из программы подключение осуществляется к 9 выводу.
https://www.youtube.com/watch?v=MMwOCRI8SOQ
]]>Схема подключения довольно проста, которая состоит из платы Arduino(в моем примере это Arduino Mega2560) и сервопривода. Сервомашинка имеет три вывода, два это питание и один это управляющий вывод. Куда подключать выводы питания говорить не буду - и так все понятно , а вот линию данных нужно подсоединить к тому выводу Arduino к которому привязан сервопривод - настройка осуществляется в программе. Управление сервоприводом происходит путем изменения длины импульса поступающего на вход линии данных. Для этого в среде Arduino существует специальная библиотека Servo. Которая имеет ряд простых методов и которая позволит с легкостью позиционировать сервопривод.
Последню версию JDK и NetBeanse можно скачать с официального сайта java. Все бесплатно и общедоступно.
Далее нам необходимо скачать библиотеку RXTX которая позволит нам обмениваться с внешними устройствами по UART интерфейсу. Скачать библиотеку RXTX можно здесь. С ее помощью можно как передавать данные так и принимать их. Выбираем нужную версию под 32 или 64 ОС.
У меня на компьютере был установлен XP. Под 64 битную ОС тоже должно все заработать.
В этой библиотеке 3 файла.
Их нужно скопировать в папку с установленным jdk,
RXTXcomm.jar скопировать в \jre\lib\ext (under java),
rxtxSerial.dll и rxtxParallel.dll скопировать в \jre\bin.
package serial; import gnu.io.CommPortIdentifier; import gnu.io.SerialPort; import gnu.io.SerialPortEvent; import gnu.io.SerialPortEventListener; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration; public class SerialServo implements SerialPortEventListener{ SerialPort serialPort; private InputStream input; private OutputStream output; private static final int TIME_OUT = 2000; private static final int DATA_RATE = 9600; private static final String PORT_NAMES[] = { "/dev/tty.usbserial-A9007UX1", // Mac OS X "/dev/ttyUSB0", // Linux "COM4", // Windows }; public void initialize() { CommPortIdentifier portId = null; Enumeration portEnum = CommPortIdentifier.getPortIdentifiers(); while (portEnum.hasMoreElements()) { CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement(); for (String portName : PORT_NAMES) { if (currPortId.getName().equals(portName)) { portId = currPortId; break; } } } if (portId == null) { System.out.println("Could not find COM port."); return; }else{ System.out.println("Found your Port"); } try { // open serial port, and use class name for the appName. serialPort = (SerialPort) portId.open(this.getClass().getName(),TIME_OUT); // set port parameters serialPort.setSerialPortParams(DATA_RATE, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); // open the streams input = serialPort.getInputStream(); output = serialPort.getOutputStream(); // add event listeners serialPort.addEventListener(this); serialPort.notifyOnDataAvailable(true); } catch (Exception e) { System.err.println(e.toString()); } } public synchronized void close() { if (serialPort != null) { serialPort.removeEventListener(); serialPort.close(); } } public void sendSingleByte(byte myByte){ try { output.write(myByte); output.flush(); } catch (Exception e) { System.err.println(e.toString()); } } public synchronized void serialEvent (SerialPortEvent oEvent) { if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) { try { int myByte=input.read(); int value = myByte & 0xff;//byte to int conversion:0...127,-127...0 -> 0...255 if(value>=0 && value<256){ System.out.println(value); } } catch (Exception e) { System.err.println(e.toString()); } } } }
Данные класс имеет два основных метода. Первый метод это sendSingleByte(), с его помощью мы можем послать 1 байт в сериал порт. Второй метод serialEvent(), он вызывается автоматически когда на входе появляются данные. Для того чтобы начать управление нам нужно создать объект данного класса, и вызывать его методы. Тут приведен только один класс.
Скачать проект управления сервомашинкой по среду NetBeanse IDE.
#include <Servo.h> Servo myservo; int pos = 0; byte bytev=0; void setup() { myservo.attach(9); Serial.begin(9600); } void loop() { myservo.write(pos); delay(15); } void serialEvent() { while (Serial.available()) { bytev= (byte)Serial.read(); pos = map(bytev,0,127,0,180); } }
Ну тут все понятно, импортируем библиотеку для работы с сервомашинкой, объявляем две переменные для получения данных и позиционирования "сервы". В методе loop() посылаем данный с промежутком в 15мс. Как видно из программы подключение осуществляется к 9 выводу.
https://www.youtube.com/watch?v=MMwOCRI8SOQ
]]>
По своей структуре и принципу функционирования электретные микрофоны можно отнести к разряду конденсаторов, за исключением того, что постоянное напряжение обеспечивается за счет заряда электрета. Электрет наноситься на мембрану и, по своим свойствам, способен сохранять заряд достаточно продолжительное время.
В связи с тем, что данному классу микрофонов свойственно высокое выходное сопротивление, в их корпусе размещают истоковый повторитель на полевом транзисторе. Вследствие чего выходное сопротивление снижается до величины 3…4кОм, что, при подключении к входу микрофонного усилителя, ведет к уменьшению потери сигнала.
Широкое распространение получили электретные микрофоны с тремя и двумя выводами. Трех выводные микрофоны имеют истоковый выход, а двух выводные сконструированы по принципу усилителя с открытым стоком.
Электретные микрофоны, являясь очень качественными и умеренно дорогими, имея высокие акустические показатели, по многим показателям превосходят динамические микрофоны.
Для оптимального функционирования микрофона необходимо, при подключении его к входу усилителя, подать на него необходимое питание. В зависимости от модели прибора диапазон напряжения может составлять от 1,5В до 12В.
Особенностям строения трех выходного электретного микрофона, характерно соединение минуса с корпусом. Питание осуществляется непосредственно через плюсовой выход. Далее через разделительный конденсатор, осуществляется подключение к входу усилителя мощности.
Для двух выходного электретного микрофона характерна подача питания через ограничительный резистор на положительный выход. Выходной сигнал снимается тут же. Далее, сигнал так же подается через разделительный конденсатор на вход усилителя мощности.
Электретный микрофон представляет собой своего рода конденсатор емкость которого меняеться в зависимости от звукового давления на его обкладку. Для того чтобы услышать эти слабые колебания нужен усилитель с хорошим коэффициентом усиления.
Для получения хорошего усиления возьмем транзисторы с коэффициентом усиления порядка 220. Этим требования удовлетворяют транзисторы bc547. Схему будем собирать на монтажной плате. Схема имеет 3 каскада. При подключении самого электретного микрофона важно соблюдать полярность. Минусом на нем является тот вывод который соединен с корпусом. В случае ошибки работать не будет!
В качестве нагрузке я использовал обычные наушники, которые подключил в цепь коллектора последнего транзистора. Напряжение питания всей схемы 5 Вольт. Напряжение подавалось от платы USBasp для прошивки микроконтроллера) Привожу схему подключения электретного микрофона которая у меня получилась:
Видео и картинки работы данной схемы добавлю позже.
]]>
По своей структуре и принципу функционирования электретные микрофоны можно отнести к разряду конденсаторов, за исключением того, что постоянное напряжение обеспечивается за счет заряда электрета. Электрет наноситься на мембрану и, по своим свойствам, способен сохранять заряд достаточно продолжительное время.
В связи с тем, что данному классу микрофонов свойственно высокое выходное сопротивление, в их корпусе размещают истоковый повторитель на полевом транзисторе. Вследствие чего выходное сопротивление снижается до величины 3…4кОм, что, при подключении к входу микрофонного усилителя, ведет к уменьшению потери сигнала.
Широкое распространение получили электретные микрофоны с тремя и двумя выводами. Трех выводные микрофоны имеют истоковый выход, а двух выводные сконструированы по принципу усилителя с открытым стоком.
Электретные микрофоны, являясь очень качественными и умеренно дорогими, имея высокие акустические показатели, по многим показателям превосходят динамические микрофоны.
Для оптимального функционирования микрофона необходимо, при подключении его к входу усилителя, подать на него необходимое питание. В зависимости от модели прибора диапазон напряжения может составлять от 1,5В до 12В.
Особенностям строения трех выходного электретного микрофона, характерно соединение минуса с корпусом. Питание осуществляется непосредственно через плюсовой выход. Далее через разделительный конденсатор, осуществляется подключение к входу усилителя мощности.
Для двух выходного электретного микрофона характерна подача питания через ограничительный резистор на положительный выход. Выходной сигнал снимается тут же. Далее, сигнал так же подается через разделительный конденсатор на вход усилителя мощности.
Электретный микрофон представляет собой своего рода конденсатор емкость которого меняеться в зависимости от звукового давления на его обкладку. Для того чтобы услышать эти слабые колебания нужен усилитель с хорошим коэффициентом усиления.
Для получения хорошего усиления возьмем транзисторы с коэффициентом усиления порядка 220. Этим требования удовлетворяют транзисторы bc547. Схему будем собирать на монтажной плате. Схема имеет 3 каскада. При подключении самого электретного микрофона важно соблюдать полярность. Минусом на нем является тот вывод который соединен с корпусом. В случае ошибки работать не будет!
В качестве нагрузке я использовал обычные наушники, которые подключил в цепь коллектора последнего транзистора. Напряжение питания всей схемы 5 Вольт. Напряжение подавалось от платы USBasp для прошивки микроконтроллера) Привожу схему подключения электретного микрофона которая у меня получилась:
Видео и картинки работы данной схемы добавлю позже.
]]>Сам никогда роботов не делал, образования по робототехнике не получал. Это не остановило меня собрать своего первого робота. В данном проекте не будет каких либо расчетов,формул. Точных размеров. Все собиралось интуитивно и на глаз.
Собирать будем робота с 4 - мя ногами при помощи 8-ми сервоприводов. Я дал имя своему детищу "ROBERT v1.0" (пока версия 1.0, думая модификаций будет много). Использование такого количества сервоприводов накладывает определенные трудности. Движение робота будет менее плавным, он будет менее устойчив.
Итак для изготовления нашего супер робота на понадобиться:
Обо всем и по порядку.
Сервоприводы заказал с Китая, можно конечно было и у себя в городе найти. Но тогда стоили они бы в 2 а то и в 3 раза дороже. А так 10 сервоприводов 9g обошлись мне всего в 600 рублей. Пришлось конечно немного подождать ориентировочно 2 недели.
Данный привод имеет 3 провода, один из них это линия управления. Остальные два это питание сервопривода.
Подключать сервопривод будем следующим образом:
Какую плату использовать большой разницы нет, главное чтобы размер памяти позволил залить на нее скетч. Нет смысла использовать, к примеру, последнюю версию Arduino DUE - оно нам совершенно не нужно. В своем примере я использовал Arduino mega - не лучшее решение так как она имеет большие размеры. В смысле большие в рамках поставленной задачи) А так конечно чем меньше габариты тем лучше.
Нашел альтернативный вариант соединения сервоприводов - это клевой пистолет! Такая штука которая плавит типа пластика и склеивает любые детали. Пришлось использовать ее так как нет у меня 3D принтера чтобы напечатать себе нужные детали для сборки робота. Хочу отметить что довольно прочная конструкция получается. Чтобы отлепить соединенные детали нужно приложить хорошее усилие. Можно конечно из самого пистолета обойтись, если есть сами патроны. Плавишь их, намазываешь детали а потом прижимаешь и ждешь несколько секунд.
А выглядит он так:
А приобрел я его всего за 37 рублей в магазине "все по 37". Качество конечно не очень, но если аккуратно пользоваться то на несколько роботов хватит.
В качестве каркаса будущего робота использовал банку от каких то там леденцов. Леденцы кончились а банка осталась. Хорошо что не успел выкинуть а то пришлось бы искать другой вариант) Конечно если у вас есть что то квадратное то будет лучше. Ориентация сервоприводов получится лучше.
Источником питания служит регулируемый блок питания, предварительно настроенный на 5 Вольт.
Продолжение следует...
]]>Сам никогда роботов не делал, образования по робототехнике не получал. Это не остановило меня собрать своего первого робота. В данном проекте не будет каких либо расчетов,формул. Точных размеров. Все собиралось интуитивно и на глаз.
Собирать будем робота с 4 - мя ногами при помощи 8-ми сервоприводов. Я дал имя своему детищу "ROBERT v1.0" (пока версия 1.0, думая модификаций будет много). Использование такого количества сервоприводов накладывает определенные трудности. Движение робота будет менее плавным, он будет менее устойчив.
Итак для изготовления нашего супер робота на понадобиться:
Обо всем и по порядку.
Сервоприводы заказал с Китая, можно конечно было и у себя в городе найти. Но тогда стоили они бы в 2 а то и в 3 раза дороже. А так 10 сервоприводов 9g обошлись мне всего в 600 рублей. Пришлось конечно немного подождать ориентировочно 2 недели.
Данный привод имеет 3 провода, один из них это линия управления. Остальные два это питание сервопривода.
Подключать сервопривод будем следующим образом:
Какую плату использовать большой разницы нет, главное чтобы размер памяти позволил залить на нее скетч. Нет смысла использовать, к примеру, последнюю версию Arduino DUE - оно нам совершенно не нужно. В своем примере я использовал Arduino mega - не лучшее решение так как она имеет большие размеры. В смысле большие в рамках поставленной задачи) А так конечно чем меньше габариты тем лучше.
Нашел альтернативный вариант соединения сервоприводов - это клевой пистолет! Такая штука которая плавит типа пластика и склеивает любые детали. Пришлось использовать ее так как нет у меня 3D принтера чтобы напечатать себе нужные детали для сборки робота. Хочу отметить что довольно прочная конструкция получается. Чтобы отлепить соединенные детали нужно приложить хорошее усилие. Можно конечно из самого пистолета обойтись, если есть сами патроны. Плавишь их, намазываешь детали а потом прижимаешь и ждешь несколько секунд.
А выглядит он так:
А приобрел я его всего за 37 рублей в магазине "все по 37". Качество конечно не очень, но если аккуратно пользоваться то на несколько роботов хватит.
В качестве каркаса будущего робота использовал банку от каких то там леденцов. Леденцы кончились а банка осталась. Хорошо что не успел выкинуть а то пришлось бы искать другой вариант) Конечно если у вас есть что то квадратное то будет лучше. Ориентация сервоприводов получится лучше.
Источником питания служит регулируемый блок питания, предварительно настроенный на 5 Вольт.
Продолжение следует...
]]>Нам понадобиться 4 ноги, на каждую ногу под 2 сервопривода, итого 8 штук. Как придет остальная партия сервоприводов, сразу модернизирую робота, добавив еще по одной приводу на каждую ногу. Перед тем как устанавливать привод, нужно убедиться что его положение выставлено в 90 градусов. Так как показано на рисунке ниже. Можно предварительно установить положение при помощи Arduino с помощью конструкции servo.write(90).
Нога состоит из двух сервоприводов склеенных между собой. Сначала намазываем слоем нашего "волшебного" пластика один сервопривод.
Сначала нужно расплавить пластик, для это я использовал обычную зажигалку. После того как он расплавился присоединяем к нему другой сервопривод.
Может это не самое лучшее решение, но я решил сделать так. Можно конечно сделать и по другому но для этого нужно будет придумывать новый алгоритм движения и переписывать всю программу. Итак первая нога готово, аналогично собираються оставшиеся 3 штуки.
В качестве каркаса как я и говорил использовал банку. Намазываем ее с 4-х сторон нашим пластиком с помощью клеевого термопистолета. Далее нагреваем и приделываем ноги.
После того как присоеденили все сервоприводы должно получиться следующее:
Осталось дело за малым, это присоеденить все провода к плате Arduino. На плате у меня использовывались выводы с 0-го по 7-й. Это управляющие выводы которые подключаютсья к желтому проводу привода. Схему приводить не буду, тут и так все понятно.
Что получили в итоге
https://www.youtube.com/watch?v=3uQeMxYrsKk
Движение ног пока хаотичное - своего рода демонстрация работоспособности. В следующей части начнем программировать его движения. Дадим нашему роботу мозги. Пока нет и малейшего представления как я это буду делать, но уверен что все получится) Думаю в дальнейшем установить ему ультразвуковой дальномер на крышу чтобы препятствия обходил.
]]>Нам понадобиться 4 ноги, на каждую ногу под 2 сервопривода, итого 8 штук. Как придет остальная партия сервоприводов, сразу модернизирую робота, добавив еще по одной приводу на каждую ногу. Перед тем как устанавливать привод, нужно убедиться что его положение выставлено в 90 градусов. Так как показано на рисунке ниже. Можно предварительно установить положение при помощи Arduino с помощью конструкции servo.write(90).
Нога состоит из двух сервоприводов склеенных между собой. Сначала намазываем слоем нашего "волшебного" пластика один сервопривод.
Сначала нужно расплавить пластик, для это я использовал обычную зажигалку. После того как он расплавился присоединяем к нему другой сервопривод.
Может это не самое лучшее решение, но я решил сделать так. Можно конечно сделать и по другому но для этого нужно будет придумывать новый алгоритм движения и переписывать всю программу. Итак первая нога готово, аналогично собираються оставшиеся 3 штуки.
В качестве каркаса как я и говорил использовал банку. Намазываем ее с 4-х сторон нашим пластиком с помощью клеевого термопистолета. Далее нагреваем и приделываем ноги.
После того как присоеденили все сервоприводы должно получиться следующее:
Осталось дело за малым, это присоеденить все провода к плате Arduino. На плате у меня использовывались выводы с 0-го по 7-й. Это управляющие выводы которые подключаютсья к желтому проводу привода. Схему приводить не буду, тут и так все понятно.
Что получили в итоге
https://www.youtube.com/watch?v=3uQeMxYrsKk
Движение ног пока хаотичное - своего рода демонстрация работоспособности. В следующей части начнем программировать его движения. Дадим нашему роботу мозги. Пока нет и малейшего представления как я это буду делать, но уверен что все получится) Думаю в дальнейшем установить ему ультразвуковой дальномер на крышу чтобы препятствия обходил.
]]>Управление сервоприводом осуществляется через ООС – отрицательную обратную связь, которая воздействует на управляющих механизм. Сервоприводом можно назвать любой механический привод, который имеет в своем составе датчики, к примеру, датчики положения, скорости или усилия, и главного блока управления самим приводом.
После поступления на вход сервопривода определенного значения управляющего сигнала. Внутренний контроллер производит сравнение только что полученного сигнала с тем, который имеет на датчике. В случае разных значений этих сигналов, поступает сигнал на исполняющий механизм. Сигнал поступает до тех пор, пока значения сигнала сдатчика не станет равным сигналу поступающего извне – тому сигналу, к которому нужно стремиться.
Для того чтобы повернуть сервопривод в определенное положение нужно подать на его вход определенный управляющий сигнал. Который представляет собой импульсы с определенной скважностью и длительностью. Внутренняя логика сервопривода обрабатывает полученный сигнал и выполняет то или иное действие.
В среде Arduino для работы с сервоприводами существует целая библиотека. В которой есть готовые методы для работы с сервоприводами. Сначала вам необходимо создать объект привода, а затем "привязать" этот объект к определенному выводу на плате. В стандартных шаблонах уже есть ходовые примеры кода, вам нужно просто открыть готовый пример и подключить к определенному выводу, который указан в примере, на плате Arduino.
Ниже представлен код программы управления сервоприводом, все что нужно это откомпилировать его в среде разработки под Arduino и залить уже готовую прошивку в саму плату Arduino. На официальном сайте есть множество версий Arduino IDE и под разные операционный системы. Если у вас сама среда разработки после распаковки работает не должным образом выдает постоянные ошибки то имеет смысл проверить компьютер на наличие ошибок. Наиболее популярной программой является программа Ccleaner. Утилиту Сcleaner скачать бесплатно для windows 7 можно на сайте. После проверки и чистки компьютера возможно среда Arduino IDE заработает как нужно.
Как видно из программы Arduino поворачивает вал сервопривода последовательно на разные углы 45,0,90,135,180,90, с разными временными интервалами. Сервопривод подключается к выводу номер 10 Arduino.
/* Arduino Servo */ #include "Servo.h" Servo servoMain; // Объект Servo void setup() { servoMain.attach(10); // Servo присоединен к 10 выводу } void loop() { servoMain.write(45); // Повернуть серво влево на 45 градусов delay(2000); // Пауза 2 сек. servoMain.write(0); // Повернуть серво влево на 0 градусов delay(1000); // Пауза 1 сек. servoMain.write(90); // Повернуть серво на 90 градусов. Центральная позиция delay(1500); // Пауза 1.5 сек. servoMain.write(135); // Повернуть серво вправо на 135 градусов delay(3000); // Пауза 3 сек. servoMain.write(180); // Повернуть серво вправо на 180 градусов delay(1000); // Пауза 1 сек. servoMain.write(90); // Повернуть серво на 90 градусов. Центральная позиция delay(5000); // Пауза 5 сек. }]]>
Управление сервоприводом осуществляется через ООС – отрицательную обратную связь, которая воздействует на управляющих механизм. Сервоприводом можно назвать любой механический привод, который имеет в своем составе датчики, к примеру, датчики положения, скорости или усилия, и главного блока управления самим приводом.
После поступления на вход сервопривода определенного значения управляющего сигнала. Внутренний контроллер производит сравнение только что полученного сигнала с тем, который имеет на датчике. В случае разных значений этих сигналов, поступает сигнал на исполняющий механизм. Сигнал поступает до тех пор, пока значения сигнала сдатчика не станет равным сигналу поступающего извне – тому сигналу, к которому нужно стремиться.
Для того чтобы повернуть сервопривод в определенное положение нужно подать на его вход определенный управляющий сигнал. Который представляет собой импульсы с определенной скважностью и длительностью. Внутренняя логика сервопривода обрабатывает полученный сигнал и выполняет то или иное действие.
В среде Arduino для работы с сервоприводами существует целая библиотека. В которой есть готовые методы для работы с сервоприводами. Сначала вам необходимо создать объект привода, а затем "привязать" этот объект к определенному выводу на плате. В стандартных шаблонах уже есть ходовые примеры кода, вам нужно просто открыть готовый пример и подключить к определенному выводу, который указан в примере, на плате Arduino.
Ниже представлен код программы управления сервоприводом, все что нужно это откомпилировать его в среде разработки под Arduino и залить уже готовую прошивку в саму плату Arduino. На официальном сайте есть множество версий Arduino IDE и под разные операционный системы. Если у вас сама среда разработки после распаковки работает не должным образом выдает постоянные ошибки то имеет смысл проверить компьютер на наличие ошибок. Наиболее популярной программой является программа Ccleaner. Утилиту Сcleaner скачать бесплатно для windows 7 можно на сайте. После проверки и чистки компьютера возможно среда Arduino IDE заработает как нужно.
Как видно из программы Arduino поворачивает вал сервопривода последовательно на разные углы 45,0,90,135,180,90, с разными временными интервалами. Сервопривод подключается к выводу номер 10 Arduino.
/* Arduino Servo */ #include "Servo.h" Servo servoMain; // Объект Servo void setup() { servoMain.attach(10); // Servo присоединен к 10 выводу } void loop() { servoMain.write(45); // Повернуть серво влево на 45 градусов delay(2000); // Пауза 2 сек. servoMain.write(0); // Повернуть серво влево на 0 градусов delay(1000); // Пауза 1 сек. servoMain.write(90); // Повернуть серво на 90 градусов. Центральная позиция delay(1500); // Пауза 1.5 сек. servoMain.write(135); // Повернуть серво вправо на 135 градусов delay(3000); // Пауза 3 сек. servoMain.write(180); // Повернуть серво вправо на 180 градусов delay(1000); // Пауза 1 сек. servoMain.write(90); // Повернуть серво на 90 градусов. Центральная позиция delay(5000); // Пауза 5 сек. }]]>
Для изготовления Качера Бровина нам понадобиться 2 полевых транзистора, катушка Тесла и два мощных резистора.
Резисторы мощностью 0.5 Вт подключены к затвору транзистора. Напряжение питания подаеться непосредственно на катушку, к ее "центральному выводу".
Катушка имеет несколько витков первичной обмотки порядка 7-8 витков. Вторичная обмотка наоборот имеет порядка 1000 витков провода который значительно меньше диаметром.
Транзисторы в процессе работы обычно перегреваются, поэтому логично их охлаждать. Систему охлаждения транзисторов можно организовать на вентиляторах от блока питания, или от какого либо железа ПК. В качестве блока питания использовался источник стабильного напряжения на 9 Вольт 1-5 Ампер.
Он прекрасно подходит для проведения различных опытов, работает легко, без проблем. Схема работоспособна и собиралась не один раз. Может сделать даже новичок.
]]>
Для изготовления Качера Бровина нам понадобиться 2 полевых транзистора, катушка Тесла и два мощных резистора.
Резисторы мощностью 0.5 Вт подключены к затвору транзистора. Напряжение питания подаеться непосредственно на катушку, к ее "центральному выводу".
Катушка имеет несколько витков первичной обмотки порядка 7-8 витков. Вторичная обмотка наоборот имеет порядка 1000 витков провода который значительно меньше диаметром.
Транзисторы в процессе работы обычно перегреваются, поэтому логично их охлаждать. Систему охлаждения транзисторов можно организовать на вентиляторах от блока питания, или от какого либо железа ПК. В качестве блока питания использовался источник стабильного напряжения на 9 Вольт 1-5 Ампер.
Он прекрасно подходит для проведения различных опытов, работает легко, без проблем. Схема работоспособна и собиралась не один раз. Может сделать даже новичок.
]]>Данная схема осуществляет преобразование высокой частоты в более высокий энергетический потенциал. Другими словами если на выходе мы имеем входной сигнал низкой входной мощности, то на выходе мы имеем выходную мощность достаточную для нагревания и плавки металла.Выдаваемая индуктором мощность на прямую зависит от мощности источника тока.
Входной сигнал через трансформатор ТР1 поступает на базы транзисторов VT1 и VT2 открывая и закрывая их. В коллекторную цень транзисторов подключена первичная обмокта понижающего трансформатора TP2.
Значения транзисторов R1 и R2 подбираються в процессе настройки схемы. Вместо указанных транзисторов подойдут и другие с максимальным током коллектора порядка 40А. Данный транзисторы обязательно нужно устанавливать на радиаторах, т.к. через них протекают значительный токи.
Трансформаторы ТР1 и ТР2 наматываются на торроидальные ферритовые сердечник.
Трансформатор ТР1 представляет собой ферритовое кольцо с диаметором от 10 до 40мм. Входная обмотка содержит 16 витков, выходная она же вторичная содержит 25 витков. При намотке используется провод 0.4-0.7 мм.
Трансформатор ТР2 мотается на кольцо 35мм, первичная обмотка состоит из 3-х жильного провода 0.5мм. Вторичная мотается 10-тью жильным проводом 0.5мм и содержит всего 2 витка.
Индуктор состоит из 3-4 витков толстого провода порядка 5мм диаметр намотки 10-12 мм.
Генератор можно использовать любой, главное чтобы диапазон чатот был в пределах 20 - 100 кГц.
]]>Данная схема осуществляет преобразование высокой частоты в более высокий энергетический потенциал. Другими словами если на выходе мы имеем входной сигнал низкой входной мощности, то на выходе мы имеем выходную мощность достаточную для нагревания и плавки металла.Выдаваемая индуктором мощность на прямую зависит от мощности источника тока.
Входной сигнал через трансформатор ТР1 поступает на базы транзисторов VT1 и VT2 открывая и закрывая их. В коллекторную цень транзисторов подключена первичная обмокта понижающего трансформатора TP2.
Значения транзисторов R1 и R2 подбираються в процессе настройки схемы. Вместо указанных транзисторов подойдут и другие с максимальным током коллектора порядка 40А. Данный транзисторы обязательно нужно устанавливать на радиаторах, т.к. через них протекают значительный токи.
Трансформаторы ТР1 и ТР2 наматываются на торроидальные ферритовые сердечник.
Трансформатор ТР1 представляет собой ферритовое кольцо с диаметором от 10 до 40мм. Входная обмотка содержит 16 витков, выходная она же вторичная содержит 25 витков. При намотке используется провод 0.4-0.7 мм.
Трансформатор ТР2 мотается на кольцо 35мм, первичная обмотка состоит из 3-х жильного провода 0.5мм. Вторичная мотается 10-тью жильным проводом 0.5мм и содержит всего 2 витка.
Индуктор состоит из 3-4 витков толстого провода порядка 5мм диаметр намотки 10-12 мм.
Генератор можно использовать любой, главное чтобы диапазон чатот был в пределах 20 - 100 кГц.
]]>
В качестве алгоритма движения использовал схожий проект робота с 4-мя ногами. Автор использовал 3 привода на одну ногу и в качестве контроллера взял Atmega328 с прошитым загрузчиком. Данный робот умеет поворачивать направо, налево,может ходить назад имеет зрение в виде ультразвукового датчика. Для упрощения программирования и подключения к плате Arduino каждому сервоприводу присвоим определенное название.
Аналогично присваиваются названия нижним сервоприровам
В коде автора сервоприводы названы аналогичным образом.
Мой робот имеет 2 сервы на одну ногу, поэтому было решено к нижним сервоприводам подключить к тому выводу который отвечал за колено в проекте автора. Куда что подключать ясно из исходного кожа программы.
Ультразвуковой сенсор подсоединяется к выводам A0 и A1.
https://www.youtube.com/watch?v=147TLrBc5eY
Скетч самодельного робота на Arduino. Данный скетч позволяет подключать 3 сервопривода на одну ногу. В нашем случае 3-й просто не подключается.
]]>
В качестве алгоритма движения использовал схожий проект робота с 4-мя ногами. Автор использовал 3 привода на одну ногу и в качестве контроллера взял Atmega328 с прошитым загрузчиком. Данный робот умеет поворачивать направо, налево,может ходить назад имеет зрение в виде ультразвукового датчика. Для упрощения программирования и подключения к плате Arduino каждому сервоприводу присвоим определенное название.
Аналогично присваиваются названия нижним сервоприровам
В коде автора сервоприводы названы аналогичным образом.
Мой робот имеет 2 сервы на одну ногу, поэтому было решено к нижним сервоприводам подключить к тому выводу который отвечал за колено в проекте автора. Куда что подключать ясно из исходного кожа программы.
Ультразвуковой сенсор подсоединяется к выводам A0 и A1.
https://www.youtube.com/watch?v=147TLrBc5eY
Скетч самодельного робота на Arduino. Данный скетч позволяет подключать 3 сервопривода на одну ногу. В нашем случае 3-й просто не подключается.
]]>Схема металлоискателя состоит из двух частей:
Генератор колебаний представляет собой мультивибратор на транзисторах VT1 и VT2. Частота данного генератора регулируется путем подбора номиналов конденсаторов C1 и C2 и сопротивлений R1-R4.
Сигнал с генератора поступает на базу транзистора VT3 на котором собран передатчик. В коллекторную цепь которого включена поисковая катушка.
Катушка собрана из ТВ кабеля диаметром от 15 до 25 см. При попадании металлического предмета в область действия катушки, происходит изменение частоты передатчика. Это изменение улавливается FM приемником.
Приемник настраивается на частоту передатчика, которая будет в пределах 64-108 МГц. Необходимо настроить его так чтобы его частота находилась на самом краю полосы пропускания. Для большей чувствительности лучше использовать приемник с функцией отключения АПЧ (автоматической подстройки частоты).
Основные недостатки:
Схема металлоискателя состоит из двух частей:
Генератор колебаний представляет собой мультивибратор на транзисторах VT1 и VT2. Частота данного генератора регулируется путем подбора номиналов конденсаторов C1 и C2 и сопротивлений R1-R4.
Сигнал с генератора поступает на базу транзистора VT3 на котором собран передатчик. В коллекторную цепь которого включена поисковая катушка.
Катушка собрана из ТВ кабеля диаметром от 15 до 25 см. При попадании металлического предмета в область действия катушки, происходит изменение частоты передатчика. Это изменение улавливается FM приемником.
Приемник настраивается на частоту передатчика, которая будет в пределах 64-108 МГц. Необходимо настроить его так чтобы его частота находилась на самом краю полосы пропускания. Для большей чувствительности лучше использовать приемник с функцией отключения АПЧ (автоматической подстройки частоты).
Основные недостатки:
Принцип действия основан на изменении передающей частоты генерируемой в биполярном транзисторе. Изменение этой частоты происходит в такт звуковому сигналу, идущему от динамического микрофона.
Для изготовления катушки понадобиться медная проволока диаметром 0.7-0.8 мм. Катушка содержит 4 витка без оправы диаметром от 8-10 мм. Отвод для подключения кварцевого резонатора необходим сделать от 3-го витка. Катушка в этой схеме выполняет также роль передающей антенны.
После того как изготовили катушку то ее непомешало бы чем нибудь зафиксировать к примеру клеевым пистолетом.Это необходимо для того чтобы не происходило изменение несущей частоты, т.к. на таких частотах даже малейшее изменение параметров катушки приводит к изменению передаваемого сигнала.
]]>Принцип действия основан на изменении передающей частоты генерируемой в биполярном транзисторе. Изменение этой частоты происходит в такт звуковому сигналу, идущему от динамического микрофона.
Для изготовления катушки понадобиться медная проволока диаметром 0.7-0.8 мм. Катушка содержит 4 витка без оправы диаметром от 8-10 мм. Отвод для подключения кварцевого резонатора необходим сделать от 3-го витка. Катушка в этой схеме выполняет также роль передающей антенны.
После того как изготовили катушку то ее непомешало бы чем нибудь зафиксировать к примеру клеевым пистолетом.Это необходимо для того чтобы не происходило изменение несущей частоты, т.к. на таких частотах даже малейшее изменение параметров катушки приводит к изменению передаваемого сигнала.
]]>
Сетевое напряжение через предохранитель подается на вход первичной обмотки трансформатора. Во вторичную обмотку включен диодный мост на диодах КЦ405А. Для сглаживания пульсации стоит конденсатор на 500 мкФ. Стабилизация осуществляется за счет подачи на базу транзистора определенного значения тока микросхемы К142ЕН1Г.
При эксплуатации ток протекающий в выходном делителе напряжения составляет 1,5 мА. С их помощью осуществляется настройка выходного напряжения на определенное значение.
]]>
Сетевое напряжение через предохранитель подается на вход первичной обмотки трансформатора. Во вторичную обмотку включен диодный мост на диодах КЦ405А. Для сглаживания пульсации стоит конденсатор на 500 мкФ. Стабилизация осуществляется за счет подачи на базу транзистора определенного значения тока микросхемы К142ЕН1Г.
При эксплуатации ток протекающий в выходном делителе напряжения составляет 1,5 мА. С их помощью осуществляется настройка выходного напряжения на определенное значение.
]]>Для того чтобы сделать кодовый замок нам понадобиться:
О том что такое Arduino было сказано ранее.
"Строчные" линии R1-R4 подключены к выводам Arduino с 6-го по 9-й. Колонные выводы C1-C4 подключены к выводам C1-C4. Третий вывод настроен как выход в цепь включена нагрузка, в нашем случае это светодиод D1, последовательно к которому подключено сопротивление номиналом в 330 Ом. Оно необходимо для ограничения тока через светодиод. В настоящем кодовом замке подключаться электромагнит управляющий положением защелки замка. Если светодиод горит то замок открыт,если выключен то замок закрыт.
Данная схема позволяет подсоединить к компьютеру и просматривать состояние кодового замка через мониторинг последовательного порта
среды разработки Arduino.
int p[6]; //array for storing the password int c[6]; // array for storing the input code int n; int a=0; int i=0; int lock=3; int r1=6; int r2=7; int r3=8; int r4=9; int c1=10; int c2=11; int c3=12; int c4=13; int colm1; int colm2; int colm3; int colm4; void setup() { pinMode(r1,OUTPUT); pinMode(r2,OUTPUT); pinMode(r3,OUTPUT); pinMode(r4,OUTPUT); pinMode(c1,INPUT); pinMode(c2,INPUT); pinMode(c3,INPUT); pinMode(c4,INPUT); pinMode(lock,OUTPUT); Serial.begin(9600); //sets the baud rate at 9600 digitalWrite(c1,HIGH); digitalWrite(c2,HIGH); digitalWrite(c3,HIGH); digitalWrite(c4,HIGH); digitalWrite(lock,LOW); p[0]=1; //sets 1st digit of the password p[1]=2; // sets 2nd digit of the password p[2]=3; // sets 3rd digit of the password p[3]=4; // sets 4th digit of the password p[4]=5; // sets 5th digit of the password p[5]=6; // sets 6th digit of the password } void loop() { digitalWrite(r1,LOW); digitalWrite(r2,HIGH); digitalWrite(r3,HIGH); digitalWrite(r4,HIGH); colm1=digitalRead(c1); colm2=digitalRead(c2); colm3=digitalRead(c3); colm4=digitalRead(c4); if(colm1==LOW) { n=1; a=1; Serial.println("1"); delay(200);} else { if(colm2==LOW) { n=2; a=1; Serial.println("2"); delay(200);} else { if(colm3==LOW) {Serial.println("3"); n=3; a=1; delay(200);} else { if(colm4==LOW) {Serial.println("LOCKED"); digitalWrite(lock,LOW); //locks i=0; delay(200);} }}} digitalWrite(r1,HIGH); digitalWrite(r2,LOW); digitalWrite(r3,HIGH); digitalWrite(r4,HIGH); colm1=digitalRead(c1); colm2=digitalRead(c2); colm3=digitalRead(c3); colm4=digitalRead(c4); if(colm1==LOW) {Serial.println("4"); n=4; a=1; delay(200);} else { if(colm2==LOW) {Serial.println("5"); n=5; a=1; delay(200);} else { if(colm3==LOW) {Serial.println("6"); n=6; a=1; delay(200);} else { if(colm4==LOW) { if(c[0]==p[0]&&c[1]==p[1]&&c[2]==p[2]&&c[3]==p[3]&&c[4]==p[4]&&c[5]==p[5]) {digitalWrite(lock,HIGH); //unlocks Serial.println("UNLOCKED"); c[5]=9;} //corrupts the code in array c else {Serial.println("WRONG PASSWORD");} delay(200);} }}} if(a==1) // test whether a digit key is pressed { c[i]=n; // saves the current digit pressed to array c i=i+1; a=0;} }
Наш пароль состоит из 6 цифр "123456" это значение храниться в массиве "p". Введенные нами значения последовательно записываются в массив "c". В коде программы происходит сравнение этих двух массивов,после того как будет нажата кнопка разблокировки. Если они совпадают то посылаем на вывод 3 "положительный сигнал", а если не совпадают то "отрицательный".
Теперь вы знаете как сделать настоящий кодовый замок, и сохранить все ваше имущество!)
]]>Для того чтобы сделать кодовый замок нам понадобиться:
О том что такое Arduino было сказано ранее.
"Строчные" линии R1-R4 подключены к выводам Arduino с 6-го по 9-й. Колонные выводы C1-C4 подключены к выводам C1-C4. Третий вывод настроен как выход в цепь включена нагрузка, в нашем случае это светодиод D1, последовательно к которому подключено сопротивление номиналом в 330 Ом. Оно необходимо для ограничения тока через светодиод. В настоящем кодовом замке подключаться электромагнит управляющий положением защелки замка. Если светодиод горит то замок открыт,если выключен то замок закрыт.
Данная схема позволяет подсоединить к компьютеру и просматривать состояние кодового замка через мониторинг последовательного порта
среды разработки Arduino.
int p[6]; //array for storing the password int c[6]; // array for storing the input code int n; int a=0; int i=0; int lock=3; int r1=6; int r2=7; int r3=8; int r4=9; int c1=10; int c2=11; int c3=12; int c4=13; int colm1; int colm2; int colm3; int colm4; void setup() { pinMode(r1,OUTPUT); pinMode(r2,OUTPUT); pinMode(r3,OUTPUT); pinMode(r4,OUTPUT); pinMode(c1,INPUT); pinMode(c2,INPUT); pinMode(c3,INPUT); pinMode(c4,INPUT); pinMode(lock,OUTPUT); Serial.begin(9600); //sets the baud rate at 9600 digitalWrite(c1,HIGH); digitalWrite(c2,HIGH); digitalWrite(c3,HIGH); digitalWrite(c4,HIGH); digitalWrite(lock,LOW); p[0]=1; //sets 1st digit of the password p[1]=2; // sets 2nd digit of the password p[2]=3; // sets 3rd digit of the password p[3]=4; // sets 4th digit of the password p[4]=5; // sets 5th digit of the password p[5]=6; // sets 6th digit of the password } void loop() { digitalWrite(r1,LOW); digitalWrite(r2,HIGH); digitalWrite(r3,HIGH); digitalWrite(r4,HIGH); colm1=digitalRead(c1); colm2=digitalRead(c2); colm3=digitalRead(c3); colm4=digitalRead(c4); if(colm1==LOW) { n=1; a=1; Serial.println("1"); delay(200);} else { if(colm2==LOW) { n=2; a=1; Serial.println("2"); delay(200);} else { if(colm3==LOW) {Serial.println("3"); n=3; a=1; delay(200);} else { if(colm4==LOW) {Serial.println("LOCKED"); digitalWrite(lock,LOW); //locks i=0; delay(200);} }}} digitalWrite(r1,HIGH); digitalWrite(r2,LOW); digitalWrite(r3,HIGH); digitalWrite(r4,HIGH); colm1=digitalRead(c1); colm2=digitalRead(c2); colm3=digitalRead(c3); colm4=digitalRead(c4); if(colm1==LOW) {Serial.println("4"); n=4; a=1; delay(200);} else { if(colm2==LOW) {Serial.println("5"); n=5; a=1; delay(200);} else { if(colm3==LOW) {Serial.println("6"); n=6; a=1; delay(200);} else { if(colm4==LOW) { if(c[0]==p[0]&&c[1]==p[1]&&c[2]==p[2]&&c[3]==p[3]&&c[4]==p[4]&&c[5]==p[5]) {digitalWrite(lock,HIGH); //unlocks Serial.println("UNLOCKED"); c[5]=9;} //corrupts the code in array c else {Serial.println("WRONG PASSWORD");} delay(200);} }}} if(a==1) // test whether a digit key is pressed { c[i]=n; // saves the current digit pressed to array c i=i+1; a=0;} }
Наш пароль состоит из 6 цифр "123456" это значение храниться в массиве "p". Введенные нами значения последовательно записываются в массив "c". В коде программы происходит сравнение этих двух массивов,после того как будет нажата кнопка разблокировки. Если они совпадают то посылаем на вывод 3 "положительный сигнал", а если не совпадают то "отрицательный".
Теперь вы знаете как сделать настоящий кодовый замок, и сохранить все ваше имущество!)
]]>Представляю вам проект мини генератора высокого напряжения или просто самодельного электрошокера если по нашему. Что такое электрошокер и где он применяется говорить не буду,с этим думаю у вас проблем нет. Собранная схема имеет весьма малые размеры, а на выходе напряжение порядка 1000-2000 В. Такое напряжение,конечно, не убьет вашу "жертву" но доставит ей весьма не приятные ощущения. Но это вовсе не означает что им можно тыкать всех подряд.
Схема проста до безобразия,и подойдет в основном начинающим электронщикам. Она содержит всего один активный элемент, а зовут его как вы наверное догадались биполярный транзистор. Схема работает на низкой частоте. Форма на выходе что то на поминает синусоиду, но все же далека от нее.
Выходное напряжение с трансформатора ограничивается через 2 сопротивления R2 и R3. Они ограничивают ток протекающий во вторичное обмотке, и тем самым защищают ее, а также снижают ток протекающий через "жертву". Для повышения напряжения можно использовать умножитель напряжения, схема которого представлена ниже. Напряжение в этом случае возрастет до 300В. В умножителе также имеются ограничивающие сопротивления. В состав умножителя входят 2 диода и 2 конденсатора.
Приступим к самому главному,а точнее к изготовлению трансформатора. Трансформатор должен быть повышающим и иметь коэффициент трансформации более 20 и иметь хороший магнитопроницаемый сердечник. Можно к примеру взять готовый строчник от телевизора, у него имеется множество выводов на первичной обмотке. А это как раз то что нам и нужно. Подсоединяя к базе транзистора тот или иной отвод от первичной обмотки добиваемся наилучшего эффекта. О том как подключит строчник.
Транзистор представляет собой высокоскоростной переключатель и имеет следующие параметры:
Если строчник(трансформатор) не возбуждается то нужно поигратьсясо значением транзистора R1. Который отвечает за ток базы транзистора и как следствие за режим его работы.
Теперь вы знаите как сделать электрошокер в домашних условиях и дать отпор любому бандиту!)
]]>Представляю вам проект мини генератора высокого напряжения или просто самодельного электрошокера если по нашему. Что такое электрошокер и где он применяется говорить не буду,с этим думаю у вас проблем нет. Собранная схема имеет весьма малые размеры, а на выходе напряжение порядка 1000-2000 В. Такое напряжение,конечно, не убьет вашу "жертву" но доставит ей весьма не приятные ощущения. Но это вовсе не означает что им можно тыкать всех подряд.
Схема проста до безобразия,и подойдет в основном начинающим электронщикам. Она содержит всего один активный элемент, а зовут его как вы наверное догадались биполярный транзистор. Схема работает на низкой частоте. Форма на выходе что то на поминает синусоиду, но все же далека от нее.
Выходное напряжение с трансформатора ограничивается через 2 сопротивления R2 и R3. Они ограничивают ток протекающий во вторичное обмотке, и тем самым защищают ее, а также снижают ток протекающий через "жертву". Для повышения напряжения можно использовать умножитель напряжения, схема которого представлена ниже. Напряжение в этом случае возрастет до 300В. В умножителе также имеются ограничивающие сопротивления. В состав умножителя входят 2 диода и 2 конденсатора.
Приступим к самому главному,а точнее к изготовлению трансформатора. Трансформатор должен быть повышающим и иметь коэффициент трансформации более 20 и иметь хороший магнитопроницаемый сердечник. Можно к примеру взять готовый строчник от телевизора, у него имеется множество выводов на первичной обмотке. А это как раз то что нам и нужно. Подсоединяя к базе транзистора тот или иной отвод от первичной обмотки добиваемся наилучшего эффекта. О том как подключит строчник.
Транзистор представляет собой высокоскоростной переключатель и имеет следующие параметры:
Если строчник(трансформатор) не возбуждается то нужно поигратьсясо значением транзистора R1. Который отвечает за ток базы транзистора и как следствие за режим его работы.
Теперь вы знаите как сделать электрошокер в домашних условиях и дать отпор любому бандиту!)
]]>Данную схемы вы можете, к примеру, использовать для проверки уровня заряда аккумулятора. Схема индикатора уровня заряда батареи собрана на интегральной микросхеме LM3914IC
Сердцем схемы является интегральная микросхема LM3914IC. Которая линейно преобразует входное напряжение на входе в INPUT в соответствующее значение на выходах c 1-10. Микросхема выполняет роль своего рода АЦП – аналого-цифрового преобразователя.
Переключатель SW1 меняет тип отображения уровня, если он выключен то светодиоды загораються поочередно, а когда нажат то тип уровня - бегущая точка.
Обозначение | Тип | Номинал | Кол-во | Примечание |
R1 | резистор | 4,7 кОм | 1 | |
R2 | резистор | 18 кОм | 1 | |
RV1 | резистор | 10кОм | 1 | переменный |
D1-D10 | светодиоды | 10 | светодиоды 5мм | |
R3 | резистор | 56кОм | 1 | |
U1 | микросхема LM3914 | 1 | ||
Данную схемы вы можете, к примеру, использовать для проверки уровня заряда аккумулятора. Схема индикатора уровня заряда батареи собрана на интегральной микросхеме LM3914IC
Сердцем схемы является интегральная микросхема LM3914IC. Которая линейно преобразует входное напряжение на входе в INPUT в соответствующее значение на выходах c 1-10. Микросхема выполняет роль своего рода АЦП – аналого-цифрового преобразователя.
Переключатель SW1 меняет тип отображения уровня, если он выключен то светодиоды загораються поочередно, а когда нажат то тип уровня - бегущая точка.
Обозначение | Тип | Номинал | Кол-во | Примечание |
R1 | резистор | 4,7 кОм | 1 | |
R2 | резистор | 18 кОм | 1 | |
RV1 | резистор | 10кОм | 1 | переменный |
D1-D10 | светодиоды | 10 | светодиоды 5мм | |
R3 | резистор | 56кОм | 1 | |
U1 | микросхема LM3914 | 1 | ||
Усилитель звуковой частоты собран на микросхеме LM386.
Наведенный в антенне электрический сигнал нужной нам радиостанции отбирается при помощи параллельного колебательного контура. Полученный таким образом электрический сигнал далее необходимо демоделировать – т.е. из частотно модулированного сигнала выбрать сигнал нужной нам радиостанции. Данная операция осуществляется при помощи транзисторов Q1, Q2.
Выделенный таким образом электрический сигнал нужной нам радиостанции поступает через потенциометр RV1 на вход усилителя мощности, собранного на микросхема. Потенциометр служит для регулировки уровня входного сигнала, или по простому громкости.
С 5-й ножки усилителя через выходной конденсатор C3 поступает на громкоговоритель.
Частотный диапазон принимаемым приемником сигнала варьируется в приделах от 87.5 до 108 МГц.
Обозначение | Тип | Номинал | Кол-во | Примечание |
VC1 | конденсатор | 22пФ | 1 | подстроечный |
С1 | конденсатор | 0,22мкФ | 1 | |
С2 | конденсатор | 0,1мкФ | 1 | |
С3 | конденсатор | 220мкФ | 1 | электролетический |
Q1 | транзистор | BF494 | 1 | |
Q2 | транзистор | BF494 | 1 | |
R1 | резистор | 22 кОм | 1 | |
RV2 | потенциометр | 10 кОм | 1 | переменный |
U1 | микросхема | LM386 | 1 | |
L1 | индуктивность | 220мГн | 1 |
Усилитель звуковой частоты собран на микросхеме LM386.
Наведенный в антенне электрический сигнал нужной нам радиостанции отбирается при помощи параллельного колебательного контура. Полученный таким образом электрический сигнал далее необходимо демоделировать – т.е. из частотно модулированного сигнала выбрать сигнал нужной нам радиостанции. Данная операция осуществляется при помощи транзисторов Q1, Q2.
Выделенный таким образом электрический сигнал нужной нам радиостанции поступает через потенциометр RV1 на вход усилителя мощности, собранного на микросхема. Потенциометр служит для регулировки уровня входного сигнала, или по простому громкости.
С 5-й ножки усилителя через выходной конденсатор C3 поступает на громкоговоритель.
Частотный диапазон принимаемым приемником сигнала варьируется в приделах от 87.5 до 108 МГц.
Обозначение | Тип | Номинал | Кол-во | Примечание |
VC1 | конденсатор | 22пФ | 1 | подстроечный |
С1 | конденсатор | 0,22мкФ | 1 | |
С2 | конденсатор | 0,1мкФ | 1 | |
С3 | конденсатор | 220мкФ | 1 | электролетический |
Q1 | транзистор | BF494 | 1 | |
Q2 | транзистор | BF494 | 1 | |
R1 | резистор | 22 кОм | 1 | |
RV2 | потенциометр | 10 кОм | 1 | переменный |
U1 | микросхема | LM386 | 1 | |
L1 | индуктивность | 220мГн | 1 |
Схема состоит из одного сервопривода и 2-х фоторезисторов. Фоторезисторы меняют свое сопротивление в зависимости от падающего света, далее происходит сравнение этих двух величин. И в зависимости от того где полученное цифровое значение больше туда и происходит поворот сервопривода.
Поворот осуществляется до тех пор, пока цифровое значение света обоих фоторезисторов не уровняется. Другими словами сервопривод солнечного трекера перестанет поворачиваться, когда свет будет одинаково падать на оба фоторезистора. Ниже приведен небольшой код трекера из которого все понятно, что происходит.
Полученные значения сохраняются в переменные val1 и val2, далее происходит их сравнение. Если они равны то солнечный трекер находиться в покое, а если их разница больше или меньше нуля, то сервопривод начинает работать.
Фоторезисторы подключены по схеме делителя напряжения, через дополнительное сопротивление в 10 кОм подключенные к земле. При изменении сопротивления фоторезисторов, меняеться напряжение на вывода A0 и A1 платы Arduino.
Код программы
#include Servo myservo;]]>
int pos = 90; // initial position int sens1 = A0; // LRD 1 pin int sens2 = A1; //LDR 2 pin int tolerance = 2; void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object pinMode(sens1, INPUT); pinMode(sens2, INPUT); myservo.write(pos); delay(2000); // a 2 seconds delay while we position the solar panel } void loop() { int val1 = analogRead(sens1); // read the value of sensor 1 int val2 = analogRead(sens2); // read the value of sensor 2 if((abs(val1 - val2) <= tolerance) || (abs(val2 - val1) <= tolerance)) { //do nothing if the difference between values is within the tolerance limit } else { if(val1 > val2) { pos = --pos; } if(val1 < val2) { pos = ++pos; } } if(pos > 180) { pos = 180; } // reset to 180 if it goes higher if(pos < 0) { pos = 0; } // reset to 0 if it goes lower myservo.write(pos); // write the position to servo delay(50); }
Схема состоит из одного сервопривода и 2-х фоторезисторов. Фоторезисторы меняют свое сопротивление в зависимости от падающего света, далее происходит сравнение этих двух величин. И в зависимости от того где полученное цифровое значение больше туда и происходит поворот сервопривода.
Поворот осуществляется до тех пор, пока цифровое значение света обоих фоторезисторов не уровняется. Другими словами сервопривод солнечного трекера перестанет поворачиваться, когда свет будет одинаково падать на оба фоторезистора. Ниже приведен небольшой код трекера из которого все понятно, что происходит.
Полученные значения сохраняются в переменные val1 и val2, далее происходит их сравнение. Если они равны то солнечный трекер находиться в покое, а если их разница больше или меньше нуля, то сервопривод начинает работать.
Фоторезисторы подключены по схеме делителя напряжения, через дополнительное сопротивление в 10 кОм подключенные к земле. При изменении сопротивления фоторезисторов, меняеться напряжение на вывода A0 и A1 платы Arduino.
Код программы
#include Servo myservo;]]>
int pos = 90; // initial position int sens1 = A0; // LRD 1 pin int sens2 = A1; //LDR 2 pin int tolerance = 2; void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object pinMode(sens1, INPUT); pinMode(sens2, INPUT); myservo.write(pos); delay(2000); // a 2 seconds delay while we position the solar panel } void loop() { int val1 = analogRead(sens1); // read the value of sensor 1 int val2 = analogRead(sens2); // read the value of sensor 2 if((abs(val1 - val2) <= tolerance) || (abs(val2 - val1) <= tolerance)) { //do nothing if the difference between values is within the tolerance limit } else { if(val1 > val2) { pos = --pos; } if(val1 < val2) { pos = ++pos; } } if(pos > 180) { pos = 180; } // reset to 180 if it goes higher if(pos < 0) { pos = 0; } // reset to 0 if it goes lower myservo.write(pos); // write the position to servo delay(50); }
Схема имеет два аналоговых входа и два выходных канала, каждый канал по 6 Вт. Требуемое сопротивление подключаемых динамиков от 2 до 8 Ом. Питается от напряжения в 12В. Ниже представлена принципиальная схема усилителя. Минус вывода питания соединяеться с корпусом.
С целью отвода выделяемой в процессе работы теплоты. Корпус микросхемы имеет специальные отверстия для установки радиатора.
]]>
Схема имеет два аналоговых входа и два выходных канала, каждый канал по 6 Вт. Требуемое сопротивление подключаемых динамиков от 2 до 8 Ом. Питается от напряжения в 12В. Ниже представлена принципиальная схема усилителя. Минус вывода питания соединяеться с корпусом.
С целью отвода выделяемой в процессе работы теплоты. Корпус микросхемы имеет специальные отверстия для установки радиатора.
]]>
Схема передатчика собрана на двух транзисторах. Один является усилителем НЧ а другой отвечает за частотную модуляцию и передачу радиоволн.
Настройку и регулировку схемы можно изменяя расстояние между витками или вводя в нее ферритовый сердечник, если таковой имеется. Но лучше всего конечно использовать переменную емкость. Изменяя ее номинал можно получить требуемую частоту параллельного колебательного контура а следовательно и частоту радиоволны.
Длина антенны должна составлять четверть длины волны. На частоте 100 МГц длина антенны 150 см и 75 см соответственно.
]]>Схема передатчика собрана на двух транзисторах. Один является усилителем НЧ а другой отвечает за частотную модуляцию и передачу радиоволн.
Настройку и регулировку схемы можно изменяя расстояние между витками или вводя в нее ферритовый сердечник, если таковой имеется. Но лучше всего конечно использовать переменную емкость. Изменяя ее номинал можно получить требуемую частоту параллельного колебательного контура а следовательно и частоту радиоволны.
Длина антенны должна составлять четверть длины волны. На частоте 100 МГц длина антенны 150 см и 75 см соответственно.
]]>Данная схема работает на одном транзисторе. Звуковой сигнал преобразуется при помощи электретного микрофона в электрический. Что такое электретный микрофон было сказано ранее. Схема особо не нуждается в наладке и должна сразу заработать после подачи напряжения.
Как и большинство радиомикрофонов данный радиомикрофон работает на частотах 66…74 МГЦ. Электрический сигнал проходит частотную модуляцию при помощи варикапа включенного между базой и эмиттером. Модуляция осуществляется за счет смещения рабочей точки транзистора в такт звуковому сигналу. Это происходит за счет того что варикап вместе с резистором R2 образуют делитель напряжения. Когда смещается рабочая точка транзистора, то соответственно меняется генерируемая в коллекторной цепи передающая частота.
Для изготовления катушки нам потребуется 6 витков ПЭВ – 0,5мм. Она наматывается на каркас диаметром в 4мм. Между витками желательно расстояние в 1 – 1.5 мм.
Антенна изготавливается из отрезка провода диаметром от 1 до 3мм длиной в 15-30см.
Данная схема радиомикрофона обеспечит стабильную работу на расстояние в 10-15 метров. Но сразу нужно отметить, что заявленная стабильность на прямую зависит от качества сборки, а именно от качества пайка деталей.А как паять паяльником мы все знаем.
Если все собрано правильно и нам нужно подстроить генерируемую частоту, то нужно изменить межвитковое расстояние. Схема питается от источника постоянного тока в 9 Вольт.
]]>Данная схема работает на одном транзисторе. Звуковой сигнал преобразуется при помощи электретного микрофона в электрический. Что такое электретный микрофон было сказано ранее. Схема особо не нуждается в наладке и должна сразу заработать после подачи напряжения.
Как и большинство радиомикрофонов данный радиомикрофон работает на частотах 66…74 МГЦ. Электрический сигнал проходит частотную модуляцию при помощи варикапа включенного между базой и эмиттером. Модуляция осуществляется за счет смещения рабочей точки транзистора в такт звуковому сигналу. Это происходит за счет того что варикап вместе с резистором R2 образуют делитель напряжения. Когда смещается рабочая точка транзистора, то соответственно меняется генерируемая в коллекторной цепи передающая частота.
Для изготовления катушки нам потребуется 6 витков ПЭВ – 0,5мм. Она наматывается на каркас диаметром в 4мм. Между витками желательно расстояние в 1 – 1.5 мм.
Антенна изготавливается из отрезка провода диаметром от 1 до 3мм длиной в 15-30см.
Данная схема радиомикрофона обеспечит стабильную работу на расстояние в 10-15 метров. Но сразу нужно отметить, что заявленная стабильность на прямую зависит от качества сборки, а именно от качества пайка деталей.А как паять паяльником мы все знаем.
Если все собрано правильно и нам нужно подстроить генерируемую частоту, то нужно изменить межвитковое расстояние. Схема питается от источника постоянного тока в 9 Вольт.
]]>
Данный модуль работает только в динамической индикации и сделан таким образом, что все выводы, отвечающие за формирование цифры соединены параллельно и образуют своего рода шину. По данной шине будет передаваться определенная цифра, точнее сказать на ней будет появляться напряжение, зажигающие тот или иной сегмент семисегментника. Включение того или иного индикатора осуществляется при помощи четырех выводов которые являются своего рода управляющими. Подключение к ним осуществляется через 4 транзистора.
Для того чтобы зажечь определённый индикатор нужно подать на его общий вывод логический ноль или по другому подать ноль. Привожу схему подключения семисегментного модуля из 4-х индикаторов к плате ArduinoUNO.
В данном примере мы получаем аналоговое значение через переменное сопротивление и выводим его на 4 индикатора. Переменное сопротивление подключается к выводу A0. Максимально возможное значение составляет 1024, минимальное соответственно 0. Вращая ручку переменного сопротивления мы меняем показания «дисплея».
Схема питается от источника тока в 5 Вольт. Подключение необходимо осуществлять через токоограничивающие резисторы. Такие резисторы при напряжении в 5 Вольт составляют в пределах 330-470 Ом. Это необходимо для защиты микроконтроллера Arduinoот значительных токов, которые могут вывести ее из строя.
На модули есть выводы с обозначениями «G,F,E,D,C,B,A» их нужно подключить к следующим выводам Arduino «8,7,6,5,4,3,2»
А так это выглядит в собраном виде
const int numeral[10] = { //ABCDEFG /dp B11111100, // 0 B01100000, // 1 B11011010, // 2 B11110010, // 3 B01100110, // 4 B10110110, // 5 B00111110, // 6 B11100000, // 7 B11111110, // 8 B11100110, // 9 }; // pins for decimal point and each segment // DP,G,F,E,D,C,B,A const int segmentPins[] = { 13,8,7,6,5,4,3,2 }; const int nbrDigits= 4; // the number of digits in the LED display //dig 0 1 2 3 const int digitPins[nbrDigits] = { 9,10,11,12 }; void setup() { for(int i=0; i < 8; i++) { pinMode(segmentPins[i], OUTPUT); // set segment and DP pins to output } for(int i=0; i < nbrDigits; i++) { pinMode(digitPins[i], OUTPUT); } } void loop() { int value = analogRead(0); showNumber(value); } void showNumber( int number) { if(number == 0) { showDigit( 0, nbrDigits-1) ; // display 0 in the rightmost digit } else { // display the value corresponding to each digit // leftmost digit is 0, rightmost is one less than the number of places for( int digit = nbrDigits-1; digit >= 0; digit--) { if(number > 0) { showDigit( number % 10, digit) ; number = number / 10; } } } } // Displays given number on a 7-segment display at the given digit position void showDigit( int number, int digit) { digitalWrite( digitPins[digit], HIGH ); for(int segment = 1; segment < 8; segment++) { boolean isBitSet = bitRead(numeral[number], segment); // isBitSet will be true if given bit is 1 // isBitSet = ! isBitSet; // Code Option* // uncomment the above Code Option line for common anode display digitalWrite( segmentPins[segment], isBitSet); } delay(5); digitalWrite( digitPins[digit], LOW ); }
В данном коде мы сначала объявили массив значений для отображения каждого сегмента индикатора. Для того чтобы зажечь тот или иной сегмент и сформировать из него цифру нужно на выводы подать напряжение.
]]>
Данный модуль работает только в динамической индикации и сделан таким образом, что все выводы, отвечающие за формирование цифры соединены параллельно и образуют своего рода шину. По данной шине будет передаваться определенная цифра, точнее сказать на ней будет появляться напряжение, зажигающие тот или иной сегмент семисегментника. Включение того или иного индикатора осуществляется при помощи четырех выводов которые являются своего рода управляющими. Подключение к ним осуществляется через 4 транзистора.
Для того чтобы зажечь определённый индикатор нужно подать на его общий вывод логический ноль или по другому подать ноль. Привожу схему подключения семисегментного модуля из 4-х индикаторов к плате ArduinoUNO.
В данном примере мы получаем аналоговое значение через переменное сопротивление и выводим его на 4 индикатора. Переменное сопротивление подключается к выводу A0. Максимально возможное значение составляет 1024, минимальное соответственно 0. Вращая ручку переменного сопротивления мы меняем показания «дисплея».
Схема питается от источника тока в 5 Вольт. Подключение необходимо осуществлять через токоограничивающие резисторы. Такие резисторы при напряжении в 5 Вольт составляют в пределах 330-470 Ом. Это необходимо для защиты микроконтроллера Arduinoот значительных токов, которые могут вывести ее из строя.
На модули есть выводы с обозначениями «G,F,E,D,C,B,A» их нужно подключить к следующим выводам Arduino «8,7,6,5,4,3,2»
А так это выглядит в собраном виде
const int numeral[10] = { //ABCDEFG /dp B11111100, // 0 B01100000, // 1 B11011010, // 2 B11110010, // 3 B01100110, // 4 B10110110, // 5 B00111110, // 6 B11100000, // 7 B11111110, // 8 B11100110, // 9 }; // pins for decimal point and each segment // DP,G,F,E,D,C,B,A const int segmentPins[] = { 13,8,7,6,5,4,3,2 }; const int nbrDigits= 4; // the number of digits in the LED display //dig 0 1 2 3 const int digitPins[nbrDigits] = { 9,10,11,12 }; void setup() { for(int i=0; i < 8; i++) { pinMode(segmentPins[i], OUTPUT); // set segment and DP pins to output } for(int i=0; i < nbrDigits; i++) { pinMode(digitPins[i], OUTPUT); } } void loop() { int value = analogRead(0); showNumber(value); } void showNumber( int number) { if(number == 0) { showDigit( 0, nbrDigits-1) ; // display 0 in the rightmost digit } else { // display the value corresponding to each digit // leftmost digit is 0, rightmost is one less than the number of places for( int digit = nbrDigits-1; digit >= 0; digit--) { if(number > 0) { showDigit( number % 10, digit) ; number = number / 10; } } } } // Displays given number on a 7-segment display at the given digit position void showDigit( int number, int digit) { digitalWrite( digitPins[digit], HIGH ); for(int segment = 1; segment < 8; segment++) { boolean isBitSet = bitRead(numeral[number], segment); // isBitSet will be true if given bit is 1 // isBitSet = ! isBitSet; // Code Option* // uncomment the above Code Option line for common anode display digitalWrite( segmentPins[segment], isBitSet); } delay(5); digitalWrite( digitPins[digit], LOW ); }
В данном коде мы сначала объявили массив значений для отображения каждого сегмента индикатора. Для того чтобы зажечь тот или иной сегмент и сформировать из него цифру нужно на выводы подать напряжение.
]]>Для начала давайте подключим Arduino к midi кабелю. Внешний вид midi-USB кабеля представлен на рисунке ниже. На данном кабеле есть 2 специальных разъема. Одни предназначен для ввода данных в компьютер а другой соответсвенно для вывода. Для подключения нам понадобиться всехо лишь один резистор номиналом в 2.2 кОм.
На переходнике имеются 2 индикатора для отображения процесса переданных или полученных данных. Если все подключенно и настроенно правильно то они будут моргать в такт передаваемым midi-данным.
Для соединения используются 3 провода, один это собсвенно сами midi-данные, а другие это питание с Arduino. Плюсовой вывод подсоединяется через ограничивающий резистор. Не совсем понимаю зачем подводить напряжение, у меня к примеру работало все на одном проводе с данными. Провода с питанием скорее всего необходимы для подавления помех которые могут быть наведены в проводе с midi-данными.
Для настройки программы необходимо зайти в настройки самой программы, выбрать вкладку midi и нажать кнопку сканировать midi устройства (Rescan MIDI devices). подключенный шнур должен сразу определиться.
void setup() { Serial.begin(31250); } void loop() { for (int note = 0x1E; note < 0x5A; note ++) { noteOn(0x90, note, 0x45); delay(100); noteOn(0x90, note, 0x00); delay(100); } } void noteOn(int cmd, int pitch, int velocity) { Serial.write(cmd); Serial.write(pitch); Serial.write(velocity); }
Первым делом необходимо настроить скорость передачи последовательного порта в методе setup(). Передача данных осуществляется через метод noteOn(), в теле которого при помощи метода write() поочередно записываються 3 байта информации.
После записи данной программы на Arduino и подключения midi-USB переходника, на нем сразу же должна заморгать лампочка INPUT, что говорит о том что все идет как надо и данные передаются. А в программе FL stuido должен сразу появиться звук. Ни каких настроек кроме сказанных выше делать не нужно.
Таким образом при помощи Arduino можно получать данные с внешнего мира и преобразовавать их в цвуковые.
https://www.youtube.com/watch?v=SW0GFlnxuS8
]]>Для начала давайте подключим Arduino к midi кабелю. Внешний вид midi-USB кабеля представлен на рисунке ниже. На данном кабеле есть 2 специальных разъема. Одни предназначен для ввода данных в компьютер а другой соответсвенно для вывода. Для подключения нам понадобиться всехо лишь один резистор номиналом в 2.2 кОм.
На переходнике имеются 2 индикатора для отображения процесса переданных или полученных данных. Если все подключенно и настроенно правильно то они будут моргать в такт передаваемым midi-данным.
Для соединения используются 3 провода, один это собсвенно сами midi-данные, а другие это питание с Arduino. Плюсовой вывод подсоединяется через ограничивающий резистор. Не совсем понимаю зачем подводить напряжение, у меня к примеру работало все на одном проводе с данными. Провода с питанием скорее всего необходимы для подавления помех которые могут быть наведены в проводе с midi-данными.
Для настройки программы необходимо зайти в настройки самой программы, выбрать вкладку midi и нажать кнопку сканировать midi устройства (Rescan MIDI devices). подключенный шнур должен сразу определиться.
void setup() { Serial.begin(31250); } void loop() { for (int note = 0x1E; note < 0x5A; note ++) { noteOn(0x90, note, 0x45); delay(100); noteOn(0x90, note, 0x00); delay(100); } } void noteOn(int cmd, int pitch, int velocity) { Serial.write(cmd); Serial.write(pitch); Serial.write(velocity); }
Первым делом необходимо настроить скорость передачи последовательного порта в методе setup(). Передача данных осуществляется через метод noteOn(), в теле которого при помощи метода write() поочередно записываються 3 байта информации.
После записи данной программы на Arduino и подключения midi-USB переходника, на нем сразу же должна заморгать лампочка INPUT, что говорит о том что все идет как надо и данные передаются. А в программе FL stuido должен сразу появиться звук. Ни каких настроек кроме сказанных выше делать не нужно.
Таким образом при помощи Arduino можно получать данные с внешнего мира и преобразовавать их в цвуковые.
https://www.youtube.com/watch?v=SW0GFlnxuS8
]]>Представленная ниже схема запитана от источника питания в 4Вольт. Поисковая катушка вместе с конденсатором C1 образует параллельный колебательный контур. Данный контур настроен на определенную частоту. Как найти резонансную частоту параллельного LCконтура думаю объяснять не нужно. Когда возле поисковой катушки появится металлический предмет, начнет изменять индуктивность контура и как следствие собственная частота начнет меняться.
Внутри интегральной микросхемы происходит регистрация изменения частоты. В случае ее регистрации происходит световая и звуковая сигнализация. Выходной сигнал находиться в звуковом диапазоне и составляет около 10 кГц, значение которого меняется в зависимости от расстояния от катушки до металлического предмета. Мощности этого сигнала на выходе микросхемы недостаточно для прямой подачи на динамик, поэтому его необходимо усилить. Усиление происходит при помощи транзистора Q1.
В коллекторную цепь транзистора включен светодиод D1. С целью защиты динамика от превышения допустимых токов к транзистору он подкючаеться через сопротивление R5.
Настройка схемы металлдетектора осуществляется при помощи подстроечного сопротивления RV1.
А вот собственно и сам даташит микросхемы TDA0161
https://www.youtube.com/watch?v=NtHIk6Gzbo0
]]>Представленная ниже схема запитана от источника питания в 4Вольт. Поисковая катушка вместе с конденсатором C1 образует параллельный колебательный контур. Данный контур настроен на определенную частоту. Как найти резонансную частоту параллельного LCконтура думаю объяснять не нужно. Когда возле поисковой катушки появится металлический предмет, начнет изменять индуктивность контура и как следствие собственная частота начнет меняться.
Внутри интегральной микросхемы происходит регистрация изменения частоты. В случае ее регистрации происходит световая и звуковая сигнализация. Выходной сигнал находиться в звуковом диапазоне и составляет около 10 кГц, значение которого меняется в зависимости от расстояния от катушки до металлического предмета. Мощности этого сигнала на выходе микросхемы недостаточно для прямой подачи на динамик, поэтому его необходимо усилить. Усиление происходит при помощи транзистора Q1.
В коллекторную цепь транзистора включен светодиод D1. С целью защиты динамика от превышения допустимых токов к транзистору он подкючаеться через сопротивление R5.
Настройка схемы металлдетектора осуществляется при помощи подстроечного сопротивления RV1.
А вот собственно и сам даташит микросхемы TDA0161
https://www.youtube.com/watch?v=NtHIk6Gzbo0
]]>Проект в целях демонстрации собран на монтажной плате. Питание осуществляется через саму плату.
Каждый светодиод подключен через сопротивление в 470 Ом. Выдержка времени осуществленна через заданные временные интервалы в массиве duration.
Подключение светофоров осуществляеться к следующим выводам:
Код не такой уж и сложный, ели немного посмотреть и подумать то можно понять как он работает.
// Source: http://www.electroschematics.com/10178/arduino-traffic-light-system/ int trafficLights1[] = {2,3,4,5}; // red, yellow, green, pedestrians led pins int trafficLights2[] = {6,7,8,9}; // red, yellow, green, pedestrians led pins int situations = 4; int duration[] = {8000,3000,10000,3000}; // duration of each situation long previousCars = 0; long previousPeds = 0; long interval = 300; //blink interval for pedestrians int ledState = LOW; int state; int i = 0; void setup() { for(int i = 0; i < 4; i++) { pinMode(trafficLights1[i], OUTPUT); pinMode(trafficLights2[i], OUTPUT); } Serial.begin(9600); } void loop() { unsigned long currentMillis = millis(); if(currentMillis - previousCars < duration[i]) { situation(i); } else { previousCars = currentMillis; if(i >= situations) { i = 0; } else { i++; } } } void activateTrafficLight1(String lights, int pedestrians) { for(int x = 0; x < 3; x++) { if(lights[x] == '0') state = LOW; if(lights[x] == '1') state = HIGH; digitalWrite(trafficLights1[x], state); } if(pedestrians == 1) { blinkPed(trafficLights1[3]); } else { digitalWrite(trafficLights1[3], LOW); } } void activateTrafficLight2(String lights, int pedestrians) { for(int x = 0; x < 3; x++) { if(lights[x] == '0') state = LOW; if(lights[x] == '1') state = HIGH; digitalWrite(trafficLights2[x], state); } if(pedestrians == 1) { blinkPed(trafficLights2[3]); } else { digitalWrite(trafficLights2[3], LOW); } } void situation(int i) { switch(i){ case 0: activateTrafficLight1("100",1); // 100 means red ON, yellow OFF, green OFF activateTrafficLight2("001",0); // the second parameter is for pedestrians break; // 1 is ON and 0 is OFF case 1: activateTrafficLight1("110",0); // 110: red ON, yellow ON, green OFF activateTrafficLight2("010",0); break; case 2: activateTrafficLight1("001",0); activateTrafficLight2("100",1); break; case 3: activateTrafficLight1("010",0); activateTrafficLight2("110",0); break; } } void blinkPed(int ped) { unsigned long currentMillis = millis(); if(currentMillis - previousPeds > interval) { previousPeds = currentMillis; if (ledState == LOW) ledState = HIGH; else ledState = LOW; digitalWrite(ped, ledState); } }
https://www.youtube.com/watch?v=PqiljVQwmBs
]]>Проект в целях демонстрации собран на монтажной плате. Питание осуществляется через саму плату.
Каждый светодиод подключен через сопротивление в 470 Ом. Выдержка времени осуществленна через заданные временные интервалы в массиве duration.
Подключение светофоров осуществляеться к следующим выводам:
Код не такой уж и сложный, ели немного посмотреть и подумать то можно понять как он работает.
// Source: http://www.electroschematics.com/10178/arduino-traffic-light-system/ int trafficLights1[] = {2,3,4,5}; // red, yellow, green, pedestrians led pins int trafficLights2[] = {6,7,8,9}; // red, yellow, green, pedestrians led pins int situations = 4; int duration[] = {8000,3000,10000,3000}; // duration of each situation long previousCars = 0; long previousPeds = 0; long interval = 300; //blink interval for pedestrians int ledState = LOW; int state; int i = 0; void setup() { for(int i = 0; i < 4; i++) { pinMode(trafficLights1[i], OUTPUT); pinMode(trafficLights2[i], OUTPUT); } Serial.begin(9600); } void loop() { unsigned long currentMillis = millis(); if(currentMillis - previousCars < duration[i]) { situation(i); } else { previousCars = currentMillis; if(i >= situations) { i = 0; } else { i++; } } } void activateTrafficLight1(String lights, int pedestrians) { for(int x = 0; x < 3; x++) { if(lights[x] == '0') state = LOW; if(lights[x] == '1') state = HIGH; digitalWrite(trafficLights1[x], state); } if(pedestrians == 1) { blinkPed(trafficLights1[3]); } else { digitalWrite(trafficLights1[3], LOW); } } void activateTrafficLight2(String lights, int pedestrians) { for(int x = 0; x < 3; x++) { if(lights[x] == '0') state = LOW; if(lights[x] == '1') state = HIGH; digitalWrite(trafficLights2[x], state); } if(pedestrians == 1) { blinkPed(trafficLights2[3]); } else { digitalWrite(trafficLights2[3], LOW); } } void situation(int i) { switch(i){ case 0: activateTrafficLight1("100",1); // 100 means red ON, yellow OFF, green OFF activateTrafficLight2("001",0); // the second parameter is for pedestrians break; // 1 is ON and 0 is OFF case 1: activateTrafficLight1("110",0); // 110: red ON, yellow ON, green OFF activateTrafficLight2("010",0); break; case 2: activateTrafficLight1("001",0); activateTrafficLight2("100",1); break; case 3: activateTrafficLight1("010",0); activateTrafficLight2("110",0); break; } } void blinkPed(int ped) { unsigned long currentMillis = millis(); if(currentMillis - previousPeds > interval) { previousPeds = currentMillis; if (ledState == LOW) ledState = HIGH; else ledState = LOW; digitalWrite(ped, ledState); } }
https://www.youtube.com/watch?v=PqiljVQwmBs
]]>Передаваемый сигнал через конденсаторный микрофон и конденсатор C1 поступает на базу транзистора Q1. Конденсатор C1 необходим для развязки по постоянному току, другими словами на его выходе мы имеем только переменную составляющую. Усиленные транзистором сигнал поступает на каскад частотной модуляции, собранном на транзисторе Q2.
Подстройка модулирующей частоты осуществляется при помощи колебательного контура L2 – C5. FMмодуляция в данном примере осуществляется в такт поступающей на эмиттер звуковой частоты с первого каскада.
Оба транзистора одинаковые с npn проводимостью. Характеристики транзисторов и варианты конструкции можно подробнее посмотреть в datasheet.
Передающая антенна представляет собой кусок медной проволоки длинной в 25 см подключаеться к резонансному колебательному контуру.
Обозначение | Тип | Номинал | Кол-во | Примечание |
R1 | резистор | 4.7кОм | 1 | |
R2 | резистор | 560кОм | 1 | |
R3 | резистор | 100кОм | 1 | |
R4 | резистор | 8.2кОм | 1 | |
R5 | резистор | 10кОм | 1 | |
R6 | резистор | 220 Ом | 1 | |
C1 | конденсатор | 0,22 мкФ | 1 | |
C2 | конденсатор | 1,0 мкФ | 1 | Tantalum |
C3 | конденсатор | 0,001 мкФ | 1 | |
C4 | конденсатор | 4,7 мкФ | 1 | электролетический |
C5 | конденсатор | 3…10 пФ | 1 | подсроечный |
C6 | конденсатор | 4,7пФ | 1 | |
C7 | конденсатор | 0,0022 мкФ | 1 | |
C8 | конденсатор | 100 пФ | 1 | |
B1 | батарея | 12 В | 1 | |
Q1 | транзистор | 2N3904 | 1 | |
Q2 | транзистор | 2N3904 | 1 | |
K1 | микрофон | - | конденсаторный | |
A1 | антенна | 25 см | 1 | медный прово |
Передаваемый сигнал через конденсаторный микрофон и конденсатор C1 поступает на базу транзистора Q1. Конденсатор C1 необходим для развязки по постоянному току, другими словами на его выходе мы имеем только переменную составляющую. Усиленные транзистором сигнал поступает на каскад частотной модуляции, собранном на транзисторе Q2.
Подстройка модулирующей частоты осуществляется при помощи колебательного контура L2 – C5. FMмодуляция в данном примере осуществляется в такт поступающей на эмиттер звуковой частоты с первого каскада.
Оба транзистора одинаковые с npn проводимостью. Характеристики транзисторов и варианты конструкции можно подробнее посмотреть в datasheet.
Передающая антенна представляет собой кусок медной проволоки длинной в 25 см подключаеться к резонансному колебательному контуру.
Обозначение | Тип | Номинал | Кол-во | Примечание |
R1 | резистор | 4.7кОм | 1 | |
R2 | резистор | 560кОм | 1 | |
R3 | резистор | 100кОм | 1 | |
R4 | резистор | 8.2кОм | 1 | |
R5 | резистор | 10кОм | 1 | |
R6 | резистор | 220 Ом | 1 | |
C1 | конденсатор | 0,22 мкФ | 1 | |
C2 | конденсатор | 1,0 мкФ | 1 | Tantalum |
C3 | конденсатор | 0,001 мкФ | 1 | |
C4 | конденсатор | 4,7 мкФ | 1 | электролетический |
C5 | конденсатор | 3…10 пФ | 1 | подсроечный |
C6 | конденсатор | 4,7пФ | 1 | |
C7 | конденсатор | 0,0022 мкФ | 1 | |
C8 | конденсатор | 100 пФ | 1 | |
B1 | батарея | 12 В | 1 | |
Q1 | транзистор | 2N3904 | 1 | |
Q2 | транзистор | 2N3904 | 1 | |
K1 | микрофон | - | конденсаторный | |
A1 | антенна | 25 см | 1 | медный прово |
Почва в зависимости от ее состояния имеет разную проводимость. Под состоянием понимается влажная она или cухая. Сухая почва имеет сопротивление порядка 50-100 кОм, а мокрая порядка 10 кОм. Конечно сопротивление зависит не только от того мокрая она или сухая но и от расстояния между электродами. В нашем случае расстояние порядка 5-10 см. Сопротивление также зависит и от химического состава, степени солености и т.д. но про эти свойства мы говорить не будем. Так как на показания Омметра они влияют не сильно.
Схема включаем всего один резистор, который вместе с двумя электродами образует делитель напряжения. Номинал сопротивления определяется опытном путем после сборки схемы и загрузки программы в Arduino. В этом случае вместо сопротивления подключается переменное сопротивление, номинал которого можно изменять вручную.
Последовательность настройки такая:
int VAL_PROBE = 0; // Analog pin 0
const int MOISTURE_LEVEL = 250; // the value after the LED goes ON
void setup() {
Serial.begin(9600);
}
void LedState(int state) {
digitalWrite(13, state);
}
void loop() {
int moisture = analogRead(VAL_PROBE);
Serial.println(moisture);
if(moisture > MOISTURE_LEVEL) {
LedState(HIGH);
} else {
LedState(LOW);
}
delay(100);
}
]]>Почва в зависимости от ее состояния имеет разную проводимость. Под состоянием понимается влажная она или cухая. Сухая почва имеет сопротивление порядка 50-100 кОм, а мокрая порядка 10 кОм. Конечно сопротивление зависит не только от того мокрая она или сухая но и от расстояния между электродами. В нашем случае расстояние порядка 5-10 см. Сопротивление также зависит и от химического состава, степени солености и т.д. но про эти свойства мы говорить не будем. Так как на показания Омметра они влияют не сильно.
Схема включаем всего один резистор, который вместе с двумя электродами образует делитель напряжения. Номинал сопротивления определяется опытном путем после сборки схемы и загрузки программы в Arduino. В этом случае вместо сопротивления подключается переменное сопротивление, номинал которого можно изменять вручную.
Последовательность настройки такая:
int VAL_PROBE = 0; // Analog pin 0
const int MOISTURE_LEVEL = 250; // the value after the LED goes ON
void setup() {
Serial.begin(9600);
}
void LedState(int state) {
digitalWrite(13, state);
}
void loop() {
int moisture = analogRead(VAL_PROBE);
Serial.println(moisture);
if(moisture > MOISTURE_LEVEL) {
LedState(HIGH);
} else {
LedState(LOW);
}
delay(100);
}
]]>Представленный на схеме блок преобразователя преобразует входное напряжение в 5 Вольт 1 А и имеет линию защиты от перенапряжения.
Преобразователь имеет следующие характеристики:
Обозначение | Тип | Номинал | Кол-во | Примечание |
R1 | резистор | 330 Ом | 1 | |
R2 | резистор | 30 Ом | 1 | |
R3 | резистор | 220 Ом | 1 | |
C1 | конденсатор | 100 мкФ | 1 | |
C2 | конденсатор | 0.1 мкФ | 1 | |
C3 | конденсатор | 10 мкФ | 1 | |
C4 | конденсатор | 0.01 мкФ | 1 | |
C5 | конденсатор | 0.1 мкФ | 1 | |
D1 | диод | 1N4001 | 1 | |
D2 | диод | 1N4001 | 1 | |
D3 | диод | 6.2V | 1 | |
D4 | светодиод | - | 1 | |
IC1 | микросхема | 7805 | 1 | |
SCR1 | тиристор | 2P4M | 1 | |
F1 | предохранитель | 1A | 1 |
На выходе имеется индикатор работоспособности преобразователя на светодиоде D4.
В случае повышения напряжения на выходе микросхемы более 6.3 вольт, происходит увеличение токана управляющий затвор тиристора. Происходит его открытие и через него начинает протекать ток. Значение данного тока достаточно для того чтобы предохранитель перегорел и разорвал цепь, таким образом и происходит защита вашего потребителя.
Очень важно соблядать распиновку микросхемы и тиристора, в случае не правильного подключения они могут выйти из строя.
Схема собрана на готовой монтажной плате.
]]>Представленный на схеме блок преобразователя преобразует входное напряжение в 5 Вольт 1 А и имеет линию защиты от перенапряжения.
Преобразователь имеет следующие характеристики:
Обозначение | Тип | Номинал | Кол-во | Примечание |
R1 | резистор | 330 Ом | 1 | |
R2 | резистор | 30 Ом | 1 | |
R3 | резистор | 220 Ом | 1 | |
C1 | конденсатор | 100 мкФ | 1 | |
C2 | конденсатор | 0.1 мкФ | 1 | |
C3 | конденсатор | 10 мкФ | 1 | |
C4 | конденсатор | 0.01 мкФ | 1 | |
C5 | конденсатор | 0.1 мкФ | 1 | |
D1 | диод | 1N4001 | 1 | |
D2 | диод | 1N4001 | 1 | |
D3 | диод | 6.2V | 1 | |
D4 | светодиод | - | 1 | |
IC1 | микросхема | 7805 | 1 | |
SCR1 | тиристор | 2P4M | 1 | |
F1 | предохранитель | 1A | 1 |
На выходе имеется индикатор работоспособности преобразователя на светодиоде D4.
В случае повышения напряжения на выходе микросхемы более 6.3 вольт, происходит увеличение токана управляющий затвор тиристора. Происходит его открытие и через него начинает протекать ток. Значение данного тока достаточно для того чтобы предохранитель перегорел и разорвал цепь, таким образом и происходит защита вашего потребителя.
Очень важно соблядать распиновку микросхемы и тиристора, в случае не правильного подключения они могут выйти из строя.
Схема собрана на готовой монтажной плате.
]]>Схема преобразователя с 12 на 220 В которая представлена ниже, имеет следующий характеристики.
Технические характеристики преобразователя:
Схема состоит из 4-х основных частей или блоков:
Первые два транзистора образуют несимметричный мультивибратор, на его выходе мы получаем импульсы cчастотой в 100 Гц. Под выходом понимается коллектор транзистора Q2, именно с него происходит «съем» сгенерированной частоты.
Полученный в мультивибраторах сигнал далее поступает на делитель частоты. Где, судя по названию блока, происходит деление частоты и на его выходе мы получаем электрический сигнал в 50 Гц.
Выходные каскады собраны на мощных транзисторах Q5-Q8 в нагрузку последних выполняет повышающий трансформатор. Для обеспечения требуемой выдаваемой мощности в 100 Ватт, трансформатор желательно брать на 8А.
Ниже представлена монтажная плата и расположение деталей на ней.
Обозначение | Тип | Номинал | Кол-во | Примечание |
Q1-Q4 | транзистор | BC557 | 4 | 45В, 100мА pnp проводимость |
Q5,Q6 | транзистор | BC139 | 2 | 80В, 1.5А npn проводимость |
Q7,Q8 | транзистор | 2N3055 | 2 | 100В, 15А, 115W |
D1,D2,D3,D4 | диоды | 1N4148 | 4 | 75В, 150мА |
D5,D6 | диоды | 1N4007 | 2 | 1000В |
R1,R4,R6,R | резистор | 10K | 4 | 0,5Вт |
R2,R3 | резистор | 150K | 2 | 0,5Вт |
R5,R6 | резистор | 47K | 2 | 0,5Вт |
R9,R12 | резистор | 220 ohms 1/2W | 2 | 0,5Вт |
R10,R13 | резистор | 560 ohms 1/2W | 2 | 0,5Вт |
R11, R14 | резистор | 100K | 2 | 0,5Вт |
R15, R16 | резистор | 10 ohms | 2 | 0,5Вт |
R17, R18 | резистор | 150 ohms | 2 | 0,5Вт |
C1,C2 | конденсатор | 2 | керамический | |
C3,C4 | конденсатор | 0.01uF 50V | 2 | керамический |
C5 | конденсатор | 1uF 50V | 1 | керамический |
C6 | конденсатор | 0.1uF 250V | 1 | керамический |
C7 | конденсатор | 0.1uF 50V | 1 | керамический |
C8 | конденсатор | 220uF 25V | 1 | электролетический |
T1 | трансформатор | 230В, 8 А | 1 | повышающий |
Схема преобразователя с 12 на 220 В которая представлена ниже, имеет следующий характеристики.
Технические характеристики преобразователя:
Схема состоит из 4-х основных частей или блоков:
Первые два транзистора образуют несимметричный мультивибратор, на его выходе мы получаем импульсы cчастотой в 100 Гц. Под выходом понимается коллектор транзистора Q2, именно с него происходит «съем» сгенерированной частоты.
Полученный в мультивибраторах сигнал далее поступает на делитель частоты. Где, судя по названию блока, происходит деление частоты и на его выходе мы получаем электрический сигнал в 50 Гц.
Выходные каскады собраны на мощных транзисторах Q5-Q8 в нагрузку последних выполняет повышающий трансформатор. Для обеспечения требуемой выдаваемой мощности в 100 Ватт, трансформатор желательно брать на 8А.
Ниже представлена монтажная плата и расположение деталей на ней.
Обозначение | Тип | Номинал | Кол-во | Примечание |
Q1-Q4 | транзистор | BC557 | 4 | 45В, 100мА pnp проводимость |
Q5,Q6 | транзистор | BC139 | 2 | 80В, 1.5А npn проводимость |
Q7,Q8 | транзистор | 2N3055 | 2 | 100В, 15А, 115W |
D1,D2,D3,D4 | диоды | 1N4148 | 4 | 75В, 150мА |
D5,D6 | диоды | 1N4007 | 2 | 1000В |
R1,R4,R6,R | резистор | 10K | 4 | 0,5Вт |
R2,R3 | резистор | 150K | 2 | 0,5Вт |
R5,R6 | резистор | 47K | 2 | 0,5Вт |
R9,R12 | резистор | 220 ohms 1/2W | 2 | 0,5Вт |
R10,R13 | резистор | 560 ohms 1/2W | 2 | 0,5Вт |
R11, R14 | резистор | 100K | 2 | 0,5Вт |
R15, R16 | резистор | 10 ohms | 2 | 0,5Вт |
R17, R18 | резистор | 150 ohms | 2 | 0,5Вт |
C1,C2 | конденсатор | 2 | керамический | |
C3,C4 | конденсатор | 0.01uF 50V | 2 | керамический |
C5 | конденсатор | 1uF 50V | 1 | керамический |
C6 | конденсатор | 0.1uF 250V | 1 | керамический |
C7 | конденсатор | 0.1uF 50V | 1 | керамический |
C8 | конденсатор | 220uF 25V | 1 | электролетический |
T1 | трансформатор | 230В, 8 А | 1 | повышающий |
Допустим, какой мы имеем какой либо предмет и нам нужно знать в каждой точке его поверхности температуру, для этого нам необходимо последовательно просканировать всю поверхность. Сканирование происходит дистанционно, т.е. на расстоянии. Результаты сканирования передаются в компьютер, где на основе полученных данных генерируется «тепловая картина» исследуемого предмета в цвете.
В нашем проекте используется инфракрасный термометр MLX90614 в специальном корпусе TO-39
Внешний вид датчика MLX90614
Распиновка датчика MLX90614
Схема состоит из следующих деталей:
Лазерный модуль необходим для настройки положения сканирующего датчика и визуализации процесса сканирования.
Заливка программы на Arduino
Перед работой нужно сделать небольшие настройки EEPROM датчика, для этого сначала нужно залить скетч настройки датчика на плату, затем открыть монитор последовательного порта и немного подождать пока не появиться надпись «FINISH». После этого необходимо отключить USBкабель и затем вернуть его обратно.
Основной скетч настройки Arduino
Далее качаем основной скетч и также заливаем его на плату. На этом настройки программы на стороне Arduino закончены.
Для работы вам еще понадобиться библиотека I2CMaster
Настройка программы на ПК
Сама программа для ПК написана на языка программирования JAVA, поэтому для ее работы вам понадобиться Ява виртуальная машина – JVM. Ее можно скачать с официального сайте. После установки вы можете запустить программу тепловизора через jar файл.
]]>
Допустим, какой мы имеем какой либо предмет и нам нужно знать в каждой точке его поверхности температуру, для этого нам необходимо последовательно просканировать всю поверхность. Сканирование происходит дистанционно, т.е. на расстоянии. Результаты сканирования передаются в компьютер, где на основе полученных данных генерируется «тепловая картина» исследуемого предмета в цвете.
В нашем проекте используется инфракрасный термометр MLX90614 в специальном корпусе TO-39
Внешний вид датчика MLX90614
Распиновка датчика MLX90614
Схема состоит из следующих деталей:
Лазерный модуль необходим для настройки положения сканирующего датчика и визуализации процесса сканирования.
Заливка программы на Arduino
Перед работой нужно сделать небольшие настройки EEPROM датчика, для этого сначала нужно залить скетч настройки датчика на плату, затем открыть монитор последовательного порта и немного подождать пока не появиться надпись «FINISH». После этого необходимо отключить USBкабель и затем вернуть его обратно.
Основной скетч настройки Arduino
Далее качаем основной скетч и также заливаем его на плату. На этом настройки программы на стороне Arduino закончены.
Для работы вам еще понадобиться библиотека I2CMaster
Настройка программы на ПК
Сама программа для ПК написана на языка программирования JAVA, поэтому для ее работы вам понадобиться Ява виртуальная машина – JVM. Ее можно скачать с официального сайте. После установки вы можете запустить программу тепловизора через jar файл.
]]>
Выходной сигнал радиоприемника составляет порядка 70 мВ (при условии сопротивления нагрузки 22к и напряжении 4.5 В). Высокое выходное сопротивление приемника позволяет подключать к нему любой усилитель с входным сопротивлением не меньше 22 кОм.
Выходной сигнал радиоприемника составляет порядка 70 мВ (при условии сопротивления нагрузки 22к и напряжении 4.5 В). Высокое выходное сопротивление приемника позволяет подключать к нему любой усилитель с входным сопротивлением не меньше 22 кОм.
Диапазон работы данного радиоприемника 64...108 МГц.
Съем звуковой частоты осуществляеться с ножки 14. Уровень выходного сигнала порядка 100 мВ.
]]>
Диапазон работы данного радиоприемника 64...108 МГц.
Съем звуковой частоты осуществляеться с ножки 14. Уровень выходного сигнала порядка 100 мВ.
]]>
От классических сверхрегенаративных приемников она отличается механизмом получения и передачи на управляющую базу транзистора колебаний, имеющих экспоненциальную форму, которые обеспечивают "автосуперизацию" (процесс генерации "вспышек", или по другому пакетов колебаний высоких частот). В нашем случае это обеспечиватеся при помощи RC конструкции, выполненной на элементах R1-R2-C4.
Изначально переход база-эммитер имеет большое сопротивление и транзистор закрыт. После подачи напряжения начинается заряжатсья конденсатор С4 через сопротивления R1-R2, это продолжается до тех пор пока напряжение на конденсаторе не достигнет порога открывания биполярного транзистора. После того как транзистор открывается, увеличиваеться коллекторный ток. После достижения тока коллектора определенного значения начинается генерация высокочастотных колебаний. Ток который начинает протекать через переход база-эмиттер приводит частичному разряду конденсатора C4, и процесс заряда-разряда повторяется снова.
Частота "вспышек" напрямую зависит от напряжения источника питания, а в классических сверхрегенеративных радиоприемниках зарядным током является ток коллектора и зависимость сложнее.
Автор: Е. Солодовников, г. Краснодар
]]>От классических сверхрегенаративных приемников она отличается механизмом получения и передачи на управляющую базу транзистора колебаний, имеющих экспоненциальную форму, которые обеспечивают "автосуперизацию" (процесс генерации "вспышек", или по другому пакетов колебаний высоких частот). В нашем случае это обеспечиватеся при помощи RC конструкции, выполненной на элементах R1-R2-C4.
Изначально переход база-эммитер имеет большое сопротивление и транзистор закрыт. После подачи напряжения начинается заряжатсья конденсатор С4 через сопротивления R1-R2, это продолжается до тех пор пока напряжение на конденсаторе не достигнет порога открывания биполярного транзистора. После того как транзистор открывается, увеличиваеться коллекторный ток. После достижения тока коллектора определенного значения начинается генерация высокочастотных колебаний. Ток который начинает протекать через переход база-эмиттер приводит частичному разряду конденсатора C4, и процесс заряда-разряда повторяется снова.
Частота "вспышек" напрямую зависит от напряжения источника питания, а в классических сверхрегенеративных радиоприемниках зарядным током является ток коллектора и зависимость сложнее.
Автор: Е. Солодовников, г. Краснодар
]]>Антенна выполнена на феритовом стержне и содержит 2 катушки основной-контурной катушки и катушки связи.
Выделенный антенной сигнал через катушку связи поступает на базу биполярного транзистора T1. Данный транзистор выполняет роль усилителя высокой частоты. Предварительно усиленный ВЧ сигнал далее поступает на вход микросхемы. Первая часть микросхемы которой аналогично усиливает ВЧ сигнал, а вторая предназначена для усиления сигнала низкой частоты.
]]>Антенна выполнена на феритовом стержне и содержит 2 катушки основной-контурной катушки и катушки связи.
Выделенный антенной сигнал через катушку связи поступает на базу биполярного транзистора T1. Данный транзистор выполняет роль усилителя высокой частоты. Предварительно усиленный ВЧ сигнал далее поступает на вход микросхемы. Первая часть микросхемы которой аналогично усиливает ВЧ сигнал, а вторая предназначена для усиления сигнала низкой частоты.
]]>Усилитель состоит из четырех каскадов. Особенностью схемы является отсутсвие каких либо трансформаторных связей. Связь между каскадами осуществляется непосредственно. На транзистрое VT1 и VT2 собран дифференциальный усилитель. Транзистор VT5 подключен по схеме с общим эммитером. VT6 и VT7 фазоинверская пара транзисторов.
Выходной каскад представляет собой двухтактную схему усиления выполненную по схеме с общим эммитером на транзистрах VT8 и VT9 которые работают в режиме "АВ".
Сопротивления R1-R4 необходима для выбора рабочей точки транзистора VT1. Конденсатор C1 является входным конденсатором первого каскада. C2 "шунтирует" резистор R2 по переменной составляющией сигнала. Данная схема выполнена с отрицательной обратной связью на резисторе R7 и делителя R6 ,С3.
Сигнал подается через конденсатор С1 емкостью 10 нанофарад и поступает на базу транзистора VT1. Схема обладает хорошими усилительными качествами. Все детали вполне доступны и могут с легкостью приобретены в ближаешем магазине радиотоваров.
Схема питаеться от блока питания в 3В.
]]>Усилитель состоит из четырех каскадов. Особенностью схемы является отсутсвие каких либо трансформаторных связей. Связь между каскадами осуществляется непосредственно. На транзистрое VT1 и VT2 собран дифференциальный усилитель. Транзистор VT5 подключен по схеме с общим эммитером. VT6 и VT7 фазоинверская пара транзисторов.
Выходной каскад представляет собой двухтактную схему усиления выполненную по схеме с общим эммитером на транзистрах VT8 и VT9 которые работают в режиме "АВ".
Сопротивления R1-R4 необходима для выбора рабочей точки транзистора VT1. Конденсатор C1 является входным конденсатором первого каскада. C2 "шунтирует" резистор R2 по переменной составляющией сигнала. Данная схема выполнена с отрицательной обратной связью на резисторе R7 и делителя R6 ,С3.
Сигнал подается через конденсатор С1 емкостью 10 нанофарад и поступает на базу транзистора VT1. Схема обладает хорошими усилительными качествами. Все детали вполне доступны и могут с легкостью приобретены в ближаешем магазине радиотоваров.
Схема питаеться от блока питания в 3В.
]]>Схема представляет собой простой усилитель собранный на микросхема TDA2003. Входной сигнал поступает на микросхему через электролитический конденсатор 10 мкФ. Усиленный микросхемой сигнал с 4-й ножки поступает на динамик через конденсатор 470 мкФ. Схема питается от источника постоянного тока напряжением 12В.
Изготовление самой платы у меня заняло буквально несколько минут. Плата была сделана с помощью лазерного утюга и после вытравлена в хлорном железе. Следующим этапом нужно отыскать необходимые детали и заняться их пайкой. Микросхема была взята из старого телевизора, кстати в ТВ находится она перед самим динамиком на плате. Далее отсоединив дорожки выпаял микросхему, отечественным аналогом которой является - К174УН14. В том случае если в качестве донора будет телевизор советский времён. Остальные нужные детали также были отпаяны там. Далее началась пайка деталей на плату.
Когда детали припаяны, была протестирована пайка – получилось всё отлично. Важно не забыть что микросхему нужно ставить на радиатор. Сразу же мне захотелось проверить на работоспособность схему, был подключен аккумулятор 12 Вольт – всё отлично работало. Схема усилка ЗЧ выдавала точно 10 Ватт. Музыка звучит очень хорошо, без лишних помех. Вот так без особых трудностей я собрал простой усилитель звука. Печетная плата усилителя выглядит следующим образом.
Для того чтобы нарисовать плату для печати использовал программу layout 6.0. Получилась отличная и удобная плата. Важно отметить что ни в коем случае нельзя спутать + и -, иначе легко уничтожите микросхему! Для тех у кого нету layout 6.0 можно взять образец для печати платы в виде изображения, и вы легко её напечатаете.
Всего я сделал 6 аналогичных усилителей, работает всё без лишних проблем. Один из которых не хотел работать, как позже стало ясно из-то того что перепутав питание + и – сгорела микросхема. Так что в этом плане надо быть очень внимательным.
Динамик я взял с того же телевизора и закрепил всё в пластиковом корпусе. Есть также возможность добавить к усилителю тембрблок.
]]>Схема представляет собой простой усилитель собранный на микросхема TDA2003. Входной сигнал поступает на микросхему через электролитический конденсатор 10 мкФ. Усиленный микросхемой сигнал с 4-й ножки поступает на динамик через конденсатор 470 мкФ. Схема питается от источника постоянного тока напряжением 12В.
Изготовление самой платы у меня заняло буквально несколько минут. Плата была сделана с помощью лазерного утюга и после вытравлена в хлорном железе. Следующим этапом нужно отыскать необходимые детали и заняться их пайкой. Микросхема была взята из старого телевизора, кстати в ТВ находится она перед самим динамиком на плате. Далее отсоединив дорожки выпаял микросхему, отечественным аналогом которой является - К174УН14. В том случае если в качестве донора будет телевизор советский времён. Остальные нужные детали также были отпаяны там. Далее началась пайка деталей на плату.
Когда детали припаяны, была протестирована пайка – получилось всё отлично. Важно не забыть что микросхему нужно ставить на радиатор. Сразу же мне захотелось проверить на работоспособность схему, был подключен аккумулятор 12 Вольт – всё отлично работало. Схема усилка ЗЧ выдавала точно 10 Ватт. Музыка звучит очень хорошо, без лишних помех. Вот так без особых трудностей я собрал простой усилитель звука. Печетная плата усилителя выглядит следующим образом.
Для того чтобы нарисовать плату для печати использовал программу layout 6.0. Получилась отличная и удобная плата. Важно отметить что ни в коем случае нельзя спутать + и -, иначе легко уничтожите микросхему! Для тех у кого нету layout 6.0 можно взять образец для печати платы в виде изображения, и вы легко её напечатаете.
Всего я сделал 6 аналогичных усилителей, работает всё без лишних проблем. Один из которых не хотел работать, как позже стало ясно из-то того что перепутав питание + и – сгорела микросхема. Так что в этом плане надо быть очень внимательным.
Динамик я взял с того же телевизора и закрепил всё в пластиковом корпусе. Есть также возможность добавить к усилителю тембрблок.
]]>В этой статье рассмотрим простую схему усилителя низкой частоты. Она рассчитана в первую очередь на начинающих радиолюбителей. Данная схема отлично подойдет в качестве усилителя для портативных и переносных колонок.
Данная схема имеет простую конструкцию и минимум деталей. Максимальная выдаваемая мощность составляет порядка 10Вт. Отличается стабильной работой и нелинейными искажениями на всем звуковом диапазоне.
Усилитель построен на всем известной микросхеме TDA 2003. Подключаемая нагрузка сопротивлением 4Ом. Напряжение питания составляет 12 Вольт. Данная микросхема имеет 5 выводов, нумерация с лева на право.
Регулировка громкости осуществляется через потенциометр R2. Который выступает в роли делителя напряжения. Входной сигнал с него через конденсатор в 100нФ поступает на вход микроконтроллера.
При сборке данной схемы важно строго соблюдать полярность. Источник в 12 Вольт это вам не шутки. В случае неправильного соединения микросхема может быстро выйти из строя. А при неправильном подключении конденсаторов возможен их пробой.
Схема регулируемого блока питания на 12 Вольт была описана ранее.
]]>В этой статье рассмотрим простую схему усилителя низкой частоты. Она рассчитана в первую очередь на начинающих радиолюбителей. Данная схема отлично подойдет в качестве усилителя для портативных и переносных колонок.
Данная схема имеет простую конструкцию и минимум деталей. Максимальная выдаваемая мощность составляет порядка 10Вт. Отличается стабильной работой и нелинейными искажениями на всем звуковом диапазоне.
Усилитель построен на всем известной микросхеме TDA 2003. Подключаемая нагрузка сопротивлением 4Ом. Напряжение питания составляет 12 Вольт. Данная микросхема имеет 5 выводов, нумерация с лева на право.
Регулировка громкости осуществляется через потенциометр R2. Который выступает в роли делителя напряжения. Входной сигнал с него через конденсатор в 100нФ поступает на вход микроконтроллера.
При сборке данной схемы важно строго соблюдать полярность. Источник в 12 Вольт это вам не шутки. В случае неправильного соединения микросхема может быстро выйти из строя. А при неправильном подключении конденсаторов возможен их пробой.
Схема регулируемого блока питания на 12 Вольт была описана ранее.
]]>
Данная схема собрана на микросхеме LM833, на выходе подключены 2 транзистора которые работают в режиме класса «В».
Как работает схема усилителя
Входной электрический сигнал низкого потенциала поступает на вход первого операционного усилителя, где происходит его предварительное усиление. К его выходу через переменное сопротивление R2 номиналом в 22 кОм подключен второй операционный усилитель. Переменное сопротивление осуществляет регулировку громкости и является своего рода ООС (отрицательной обратной связью) для второго ОУ.
Транзисторы, к которым подключена нагрузка в 8 Ом. Осуществляют усиление отдельных полуволн. Верхний транзистор усиливает верхнюю полуволну. А нижний соответственно нижнюю. Транзисторы имеют разные проводимости один pnpа другой npn. Разделение сигнала на две составляющие осуществляется при помощи диода D1. Коротко о том что такое биполярный транзистор.
На входе в микросхему третья ножка подключена на землю через заземляющее сопротивление в 1 МОм. Это делается для того чтобы снизить нелинейные искажения наведенные во входном проводе. Проще говоря они все уйдут в землю, а звуковая составляющая будет иметь достаточный потенциал для того чтобы ее «увидел» операционный усилитель.
Схема усилителя на ОУ может питаться от напряжения от 9 до 18 Вольт и сохранять работоспособность длительное время.
]]>
Данная схема собрана на микросхеме LM833, на выходе подключены 2 транзистора которые работают в режиме класса «В».
Как работает схема усилителя
Входной электрический сигнал низкого потенциала поступает на вход первого операционного усилителя, где происходит его предварительное усиление. К его выходу через переменное сопротивление R2 номиналом в 22 кОм подключен второй операционный усилитель. Переменное сопротивление осуществляет регулировку громкости и является своего рода ООС (отрицательной обратной связью) для второго ОУ.
Транзисторы, к которым подключена нагрузка в 8 Ом. Осуществляют усиление отдельных полуволн. Верхний транзистор усиливает верхнюю полуволну. А нижний соответственно нижнюю. Транзисторы имеют разные проводимости один pnpа другой npn. Разделение сигнала на две составляющие осуществляется при помощи диода D1. Коротко о том что такое биполярный транзистор.
На входе в микросхему третья ножка подключена на землю через заземляющее сопротивление в 1 МОм. Это делается для того чтобы снизить нелинейные искажения наведенные во входном проводе. Проще говоря они все уйдут в землю, а звуковая составляющая будет иметь достаточный потенциал для того чтобы ее «увидел» операционный усилитель.
Схема усилителя на ОУ может питаться от напряжения от 9 до 18 Вольт и сохранять работоспособность длительное время.
]]>Представляю очередную схему усилителя низкой частоты, а именно схему стереоусилителя низкой частоты на микросхеме BA5417. Данная микросхема имеет 2 усилителя по 5 Ватт каждый. Выходное сопротивление порядка 3-х Ом. Напряжение питания от 6 до 12 Вольт. Нужно иметь ввиду что выдаваемая мощность на прямую зависит от подаваемого напряжения. Распиновка представлена на рисунке ниже.
Подробнее про характеристики микросхемы можно посмотреть в datasheetBA5714.
Входной стерео сигнал поступает на входы LeftINи RightINчерез развязывающие конденсаторы C10 и С11. Конденсатор C8 выполняет роль фильтра и уменьшает нелинейные искажения. Для стабилизации напряжения источника питания установлен конденсатор C4 большой емкости.
С цель отвода тепла рекомендуется установить корпус микросхемы стереоусилителя на охлаждающий радиатор. Для этой цели в корпусе имеется специальное отверстие.
]]>Представляю очередную схему усилителя низкой частоты, а именно схему стереоусилителя низкой частоты на микросхеме BA5417. Данная микросхема имеет 2 усилителя по 5 Ватт каждый. Выходное сопротивление порядка 3-х Ом. Напряжение питания от 6 до 12 Вольт. Нужно иметь ввиду что выдаваемая мощность на прямую зависит от подаваемого напряжения. Распиновка представлена на рисунке ниже.
Подробнее про характеристики микросхемы можно посмотреть в datasheetBA5714.
Входной стерео сигнал поступает на входы LeftINи RightINчерез развязывающие конденсаторы C10 и С11. Конденсатор C8 выполняет роль фильтра и уменьшает нелинейные искажения. Для стабилизации напряжения источника питания установлен конденсатор C4 большой емкости.
С цель отвода тепла рекомендуется установить корпус микросхемы стереоусилителя на охлаждающий радиатор. Для этой цели в корпусе имеется специальное отверстие.
]]>При такой выдаваемой мощности микросхемы и транзисторы выходных каскадов начинают сильно нагреваться. Это связано со значительными токами, протекающими через них. Поэтому очень важно размещать их на охлаждающих радиаторах, отводящих тепло в окружающую среду. По возможности можно дополнительно установить кулеры, увеличивающие циркуляцию потока воздуха.
Источник питания усилителя должен полностью обеспечивать требуемую мощность и выдавать 5 Ампер.
Чувствительность усилителя находится в пределах 500-800 мВ. Поэтому может напрямую подключаться к выходам магнитофонов и прочей аудио аппаратуры. Если подаваемый на вход усилителя сигнал имеет значение менее входного диапазона. То подключение нужно осуществлять через предварительный усилитель.
Качество пайки выходных цепей должно хорошим и качественным. Протекающий ток в случае плохой пайки может сжечь токоведущие дорожки и саму плату.
Обозначение | Тип | Номинал | Кол-во | Примечание |
IC1, IC2 | микросхема | TDA2030 | 2 | |
T1, T3 | транзистор | транзисторы KT818 или BD708 | 2 | |
T2, T4 | транзистор | транзистора KT819 или BD705 | 2 | |
С1, С2, С3, С4, С7 | конденсатор | 150 нФ | 5 | |
C5 | конденсатор | 10мкФ 63В | 1 | |
C8 | конденсатор | 1,8 нФ | 1 | |
R1, R7, R9 | резистор | 100K | 3 | |
R2, R3, R10, R11 | резистор | 2,2Ом | 4 | |
R4, R5 | резистор | 2кОм | 1 | |
R6, R8 | резистор | 1Ом | 1 | |
R12, R13 | резистор | 3,3кОм | 1 | |
D1 ... D4 | диод | 1N4001, 1N4002, 1N4003 | 1 | |
доска 1 PCB | плата | 51x56мм | 1 |
Скачать datasheet микросхемы tda2030
]]>При такой выдаваемой мощности микросхемы и транзисторы выходных каскадов начинают сильно нагреваться. Это связано со значительными токами, протекающими через них. Поэтому очень важно размещать их на охлаждающих радиаторах, отводящих тепло в окружающую среду. По возможности можно дополнительно установить кулеры, увеличивающие циркуляцию потока воздуха.
Источник питания усилителя должен полностью обеспечивать требуемую мощность и выдавать 5 Ампер.
Чувствительность усилителя находится в пределах 500-800 мВ. Поэтому может напрямую подключаться к выходам магнитофонов и прочей аудио аппаратуры. Если подаваемый на вход усилителя сигнал имеет значение менее входного диапазона. То подключение нужно осуществлять через предварительный усилитель.
Качество пайки выходных цепей должно хорошим и качественным. Протекающий ток в случае плохой пайки может сжечь токоведущие дорожки и саму плату.
Обозначение | Тип | Номинал | Кол-во | Примечание |
IC1, IC2 | микросхема | TDA2030 | 2 | |
T1, T3 | транзистор | транзисторы KT818 или BD708 | 2 | |
T2, T4 | транзистор | транзистора KT819 или BD705 | 2 | |
С1, С2, С3, С4, С7 | конденсатор | 150 нФ | 5 | |
C5 | конденсатор | 10мкФ 63В | 1 | |
C8 | конденсатор | 1,8 нФ | 1 | |
R1, R7, R9 | резистор | 100K | 3 | |
R2, R3, R10, R11 | резистор | 2,2Ом | 4 | |
R4, R5 | резистор | 2кОм | 1 | |
R6, R8 | резистор | 1Ом | 1 | |
R12, R13 | резистор | 3,3кОм | 1 | |
D1 ... D4 | диод | 1N4001, 1N4002, 1N4003 | 1 | |
доска 1 PCB | плата | 51x56мм | 1 |
Скачать datasheet микросхемы tda2030
]]>Схема вольтметра представлена на рисунке ниже.
Питающее входное напряжение ограничивает и стабилизирует микросхема DA1 - 7805. Диод VD1 является своего рода гарантом того что полярность не перепутана. Конденсаторы С1 и С2 стабилизируют работу микросхемы. Измеряемое напряжение подается на вход микроконтроллера через делитель напряжения, R1 и R2 которые расширяют диапазон измерения. Напряжение получаемое на входе в АЦП преобразуется в цифровое значение. Резистор R3 номиналом 10 кОм необходим для защиты микроконтроллера от случайного сброса.
Полученное таким образом цифровое значение раскладывается на разряды. Вывод значения каждого разряда производится последовательно при помощи динамической индикации. Набор резисторов R4 - R11 ограничивает ток в сегментах индикатора до приемлемых значений. На выводах A1 - A3 появляется положительное напряжение последовательно.
Резистор R1 лучше применить прецизионный, как пример, типа С2-36 (допуск 0.5%) или С2-29В-0,125 ( допуск 0.25-0.5%). Сопротивление R2 для подстройки многооборотное, как пример, тип его 3296W. Сопротивления R3 - R11 мощностью 0,125-0,5 ватт (допуск +10%) , как пример, тип С2-33; CF1/4 и т. д. Конденсаторы С1, С2 подойдут электролитический любые с пределом Т* = 105*С, емкостью – 22-47 мкФ. Конденсатор С3 с керамики, как пример, К10-17Б. Диод VD1 лучше заменить бы на 1N4148 или даже более мощный КД247; 1N4001; и т. д. Стабилизатор U до 5 В DA1 любой, но в корпусе TO220, как пример, КР142ЕН5А и т. д.
При настройке прибора на вход дают образец напряжения – под 50 В, но не больше, и регулировкой R2 достигают того, чтобы совпали показания вольтметра и образец напряжения. Потом ось резистора подстройки контрят нитрокраской или цапонлаком, которые быстро сохнут.
При динамичном управлении индикаторами светодиодными необходимо учитывать эффект от накопившихся зарядов в светодиодах. Если просто снимается U с сегмента, то накопленный заряд в диффузионной емкости p-n-p перехода будет еще какое-то время засвечивать индикатор, пока p-n-p-переходная емкость полностью не потеряет заряд. Это называется паразитной подсветкой индикатора. Чтобы быстро рассеять данный заряд и четко гасить индикатор, необходимо подать на сегменты U с обратной полярностью (как пример, для индикатора с 1-общим анодом на сегмент-катод надо подать уровень до 5 В, а на анод – уровень 0 В.)
Точность вольтметра на микроконтроллере с АЦП 10 - ти разрядными не очень высокая, составляет всего лишь примерно 0.3 %. Ее вычисляют следующим образом: ошибка дискретности 1LSB + нелинейная ошибка (по Даташиту – это 2LSB). Суммарная ошибка будет равна 3LSB. Соответственно погрешность относительная 3/1024~0,3%. Погрешность абсолютная для показаний близких к 50 В 0.3% = ±0,15 В.
Следовательно, разница при этом между завышенными показаниями и заниженными вдвое больше и равняется она - 0.3 В. Говоря другими словами, прибор настраивается так, чтобы отклонения показаний получались не односторонними, а симметричными по отношению к заданной характеристики.
]]>Схема вольтметра представлена на рисунке ниже.
Питающее входное напряжение ограничивает и стабилизирует микросхема DA1 - 7805. Диод VD1 является своего рода гарантом того что полярность не перепутана. Конденсаторы С1 и С2 стабилизируют работу микросхемы. Измеряемое напряжение подается на вход микроконтроллера через делитель напряжения, R1 и R2 которые расширяют диапазон измерения. Напряжение получаемое на входе в АЦП преобразуется в цифровое значение. Резистор R3 номиналом 10 кОм необходим для защиты микроконтроллера от случайного сброса.
Полученное таким образом цифровое значение раскладывается на разряды. Вывод значения каждого разряда производится последовательно при помощи динамической индикации. Набор резисторов R4 - R11 ограничивает ток в сегментах индикатора до приемлемых значений. На выводах A1 - A3 появляется положительное напряжение последовательно.
Резистор R1 лучше применить прецизионный, как пример, типа С2-36 (допуск 0.5%) или С2-29В-0,125 ( допуск 0.25-0.5%). Сопротивление R2 для подстройки многооборотное, как пример, тип его 3296W. Сопротивления R3 - R11 мощностью 0,125-0,5 ватт (допуск +10%) , как пример, тип С2-33; CF1/4 и т. д. Конденсаторы С1, С2 подойдут электролитический любые с пределом Т* = 105*С, емкостью – 22-47 мкФ. Конденсатор С3 с керамики, как пример, К10-17Б. Диод VD1 лучше заменить бы на 1N4148 или даже более мощный КД247; 1N4001; и т. д. Стабилизатор U до 5 В DA1 любой, но в корпусе TO220, как пример, КР142ЕН5А и т. д.
При настройке прибора на вход дают образец напряжения – под 50 В, но не больше, и регулировкой R2 достигают того, чтобы совпали показания вольтметра и образец напряжения. Потом ось резистора подстройки контрят нитрокраской или цапонлаком, которые быстро сохнут.
При динамичном управлении индикаторами светодиодными необходимо учитывать эффект от накопившихся зарядов в светодиодах. Если просто снимается U с сегмента, то накопленный заряд в диффузионной емкости p-n-p перехода будет еще какое-то время засвечивать индикатор, пока p-n-p-переходная емкость полностью не потеряет заряд. Это называется паразитной подсветкой индикатора. Чтобы быстро рассеять данный заряд и четко гасить индикатор, необходимо подать на сегменты U с обратной полярностью (как пример, для индикатора с 1-общим анодом на сегмент-катод надо подать уровень до 5 В, а на анод – уровень 0 В.)
Точность вольтметра на микроконтроллере с АЦП 10 - ти разрядными не очень высокая, составляет всего лишь примерно 0.3 %. Ее вычисляют следующим образом: ошибка дискретности 1LSB + нелинейная ошибка (по Даташиту – это 2LSB). Суммарная ошибка будет равна 3LSB. Соответственно погрешность относительная 3/1024~0,3%. Погрешность абсолютная для показаний близких к 50 В 0.3% = ±0,15 В.
Следовательно, разница при этом между завышенными показаниями и заниженными вдвое больше и равняется она - 0.3 В. Говоря другими словами, прибор настраивается так, чтобы отклонения показаний получались не односторонними, а симметричными по отношению к заданной характеристики.
]]>В данном примере мы подключим два семисегментных индикатора с общим анодом. Есть также семисегментные индикаторы с общим катодом - принцип работы их идентичен с той лишь разницей что нужно правильно соблюдать полярность. Мы будем последовательно выводить значения числа, которое увеличивается в памяти микроконтроллера с 0 до 99 с определенным периодом. Для вывода двухзначного числа нам необходимо сначала разложить его на разряды т.е. узнать сколько у нас десятков и сколько единиц а только потом производить отображение.
В семисегментом индикаторе семь сегментов, для того чтобы зажечь один сегмент нужно на его вход подать логический "ноль" . Каждый сегмент имеет свое обозначение. Обозночаются они латинскими буквами "a,b,c,d,e,f,g". Обозначение начинается с верхнего и далее по часовой стрелки. Оставшийся сегмент "g" это центральный светодиод. Для защиты микроконтроллера от превышения допустимого тока на выводах порта установлены сопротивления, ограничивающие протекающие через них ток и в тоже время обеспечивающие нормальное свечение сегмента индикатора.
Для того чтобы отобразить определенную цифру, нужна определенная последоветельность байтов, которая одновременно подяется на порт микроконтролллера. Для этого мы в программе объявили массив записав в него определенное значение, для наглядности это значение мы представили в бинарном виде "0x0000000". К примеру это значение зажет все сегменты, каждый бит отвечет за свой сегмент.
#include <avr/io.h> #include <avr/delay.h> #include <avr/interrupt.h> char numarray[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; unsigned char num=0; unsigned char raz1,raz2; int seg=0; ISR (TIMER0_OVF_vect){ switch(seg) { case 0: PORTD=~numarray[raz1]; break; case 1: PORTD=~numarray[raz2]; break; } PORTB =(1<<seg); seg++; if(seg>2) seg=0; TCNT0=190; } int main(void) { DDRD=0xff; DDRB=0xff; PORTB=0x00; //Настраиваем таймер TCCR0 |=(0<<CS02)|(1<<CS01)|(1<<CS00); TIMSK |=(1<<TOIE0); //------------------------ asm("sei"); while(1) { if (num>99) num=0; _delay_ms(600); num=num+1; raz1=num/10; raz2=num-10*raz1; } }
В главном методе сначала настраиваем таймер TIMER0 . Прерывание по переполнению происходит в случае переполнении счетного регистра TCNT0.;В векторепрерывания значение счетного регистра выставлено в 190. Это для сделано для того чтобы получить определенную частоту прерывания. Это значение подобрано опытном путем. Вы можете сами "поиграться" с этим значением. Если его выставить в ноль то видно как будет моргать цифры на индикаторе, это говорит о том что наше зрение уловило эти колебания и значение TCNT0 нужно ;увеличить.
Схему приводить не буду, тут и так все понятно. Порт D подключен к сегментам индикатора. Нулевой и первый пин порта B подключаем к анодам индикаторов.
https://www.youtube.com/watch?v=amqdF_iq1qk
]]>В данном примере мы подключим два семисегментных индикатора с общим анодом. Есть также семисегментные индикаторы с общим катодом - принцип работы их идентичен с той лишь разницей что нужно правильно соблюдать полярность. Мы будем последовательно выводить значения числа, которое увеличивается в памяти микроконтроллера с 0 до 99 с определенным периодом. Для вывода двухзначного числа нам необходимо сначала разложить его на разряды т.е. узнать сколько у нас десятков и сколько единиц а только потом производить отображение.
В семисегментом индикаторе семь сегментов, для того чтобы зажечь один сегмент нужно на его вход подать логический "ноль" . Каждый сегмент имеет свое обозначение. Обозночаются они латинскими буквами "a,b,c,d,e,f,g". Обозначение начинается с верхнего и далее по часовой стрелки. Оставшийся сегмент "g" это центральный светодиод. Для защиты микроконтроллера от превышения допустимого тока на выводах порта установлены сопротивления, ограничивающие протекающие через них ток и в тоже время обеспечивающие нормальное свечение сегмента индикатора.
Для того чтобы отобразить определенную цифру, нужна определенная последоветельность байтов, которая одновременно подяется на порт микроконтролллера. Для этого мы в программе объявили массив записав в него определенное значение, для наглядности это значение мы представили в бинарном виде "0x0000000". К примеру это значение зажет все сегменты, каждый бит отвечет за свой сегмент.
#include <avr/io.h> #include <avr/delay.h> #include <avr/interrupt.h> char numarray[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; unsigned char num=0; unsigned char raz1,raz2; int seg=0; ISR (TIMER0_OVF_vect){ switch(seg) { case 0: PORTD=~numarray[raz1]; break; case 1: PORTD=~numarray[raz2]; break; } PORTB =(1<<seg); seg++; if(seg>2) seg=0; TCNT0=190; } int main(void) { DDRD=0xff; DDRB=0xff; PORTB=0x00; //Настраиваем таймер TCCR0 |=(0<<CS02)|(1<<CS01)|(1<<CS00); TIMSK |=(1<<TOIE0); //------------------------ asm("sei"); while(1) { if (num>99) num=0; _delay_ms(600); num=num+1; raz1=num/10; raz2=num-10*raz1; } }
В главном методе сначала настраиваем таймер TIMER0 . Прерывание по переполнению происходит в случае переполнении счетного регистра TCNT0.;В векторепрерывания значение счетного регистра выставлено в 190. Это для сделано для того чтобы получить определенную частоту прерывания. Это значение подобрано опытном путем. Вы можете сами "поиграться" с этим значением. Если его выставить в ноль то видно как будет моргать цифры на индикаторе, это говорит о том что наше зрение уловило эти колебания и значение TCNT0 нужно ;увеличить.
Схему приводить не буду, тут и так все понятно. Порт D подключен к сегментам индикатора. Нулевой и первый пин порта B подключаем к анодам индикаторов.
https://www.youtube.com/watch?v=amqdF_iq1qk
]]>Итак, наши цифровые часы работают следующим образом. Когда напряжение подано индикаторы выставляются в нули следующего вида «00:00:00» соответственно часы, минуты и секунды. Для установки времени будем использовать два кнопочных выключателя. Кнопка S1 необходима для установки минут, при ее нажатии происходит инкремент переменной содержащей минуты на 1, при достижении значения в 59, происходит ее сброс и отсчет начинается сначала, т.е. с нуля.
Аналогичным образом работает кнопка S2, только используется для установки переменной отвечающей за часы.
На рисунке ниже представлена наша схема, особенностью схемы является то, что управление всеми индикаторами осуществляется при помощи одного порта PORTB. С его помощью поочередно осуществляется запись одной цифры в индикатор. За поочередное включение,а именно за динамическую индикацию отвечает PORTC. Что такое динамическая индикация было сказано ранее. Важно отметить что все дисплеи с общим катодом, поэтому для включения того или иного дисплея нужно подать на его общий вывод сигнал низкого состояния, или просто «0».
Важно! Для правильной работы цифровых часов нужно чтобы внутренний генератор камня был настроен на частоту в 4 Мгц.
Ниже представлен код для часов на микроконтроллере ATMEGA16. Программа была написана с использованием среды AVR Studio 5. Еще раз повторю, что данные часы работают от внутреннего тактового генератора. Который имеет определённую погрешность, поэтому период одной секунды может меняться. И вешать их на стену или нет и сверять по ним время решайте сами.
#define F_CPU 4000000UL #include <avr/delay.h> #include <avr/io.h> #include <avr/interrupt.h> #define SegDataPort PORTB #define SegDataPin PINB #define SegDataDDR DDRB #define SegCntrlPort PORTC #define SegCntrlPin PINC #define SegCntrlDDR DDRC /*Global Variables Declarations*/ unsigned char hours = 0; unsigned char minutes = 0; unsigned char seconds = 0; /*Function Declarations*/ /*****************************************************************************/ /*Decimal Digit (0-9) to Seven Segment Values Encoder*/ unsigned char DigitTo7SegEncoder(unsigned char digit, unsigned char common); /*Timer Counter 1 Compare Match A Interrupt Service Routine/Interrupt Han-dler*/ ISR(TIMER1_COMPA_vect); /*Main Program*/ /*****************************************************************************/ int main(void) { SegDataDDR = 0xFF; SegCntrlDDR = 0x3F; SegCntrlPort = 0xFF; TCCR1B = (1<<CS12|1<<WGM12); OCR1A = 15625-1; TIMSK = 1<<OCIE1A; sei(); while(1) { /* Set Minutes when SegCntrl Pin 6 Switch is Pressed*/ if((SegCntrlPin & 0x40) == 0 ) { _delay_ms(200); if(minutes < 59) minutes++; else minutes = 0; } /* Set Hours when SegCntrl Pin 7 Switch is Pressed*/ if((SegCntrlPin & 0x80) == 0 ) { _delay_ms(200); if(hours < 23) hours++; else hours = 0; } SegDataPort = DigitTo7SegEncoder(seconds%10,1); SegCntrlPort = ~0x01; SegDataPort = DigitTo7SegEncoder(seconds/10,1); SegCntrlPort = ~0x02; SegDataPort = DigitTo7SegEncoder(minutes%10,1); SegCntrlPort = ~0x04; SegDataPort = DigitTo7SegEncoder(minutes/10,1); SegCntrlPort = ~0x08; SegDataPort = DigitTo7SegEncoder(hours%10,1); SegCntrlPort = ~0x10; SegDataPort = DigitTo7SegEncoder(hours/10,1); SegCntrlPort = ~0x20; } return 0; } /* * Function Description: * Encode a Decimal Digit 0-9 to its Seven Segment Equivalent. * * Function Arguments: * digit - Decimal Digit to be Encoded * common - Common Anode (0), Common Cathode(1) * SegVal - Encoded Seven Segment Value * * Connections: * Encoded SegVal is return in the other G-F-E-D-C-B-A that is A is the least * significant bit (bit 0) and G bit 6. */ unsigned char DigitTo7SegEncoder(unsigned char digit, unsigned char common) { unsigned char SegVal; switch(digit) { case 0: if(common == 1) SegVal = 0b00111111; else SegVal = ~0b00111111; break; case 1: if(common == 1) SegVal = 0b00000110; else SegVal = ~0b00000110; break; case 2: if(common == 1) SegVal = 0b01011011; else SegVal = ~0b01011011; break; case 3: if(common == 1) SegVal = 0b01001111; else SegVal = ~0b01001111; break; case 4: if(common == 1) SegVal = 0b01100110; else SegVal = ~0b01100110; break; case 5: if(common == 1) SegVal = 0b01101101; else SegVal = ~0b01101101; break; case 6: if(common == 1) SegVal = 0b01111101; else SegVal = ~0b01111101; break; case 7: if(common == 1) SegVal = 0b00000111; else SegVal = ~0b00000111; break; case 8: if(common == 1) SegVal = 0b01111111; else SegVal = ~0b01111111; break; case 9: if(common == 1) SegVal = 0b01101111; else SegVal = ~0b01101111; } return SegVal; } /*Timer Counter 1 Compare Match A Interrupt Service Routine/Interrupt Han-dler*/ ISR(TIMER1_COMPA_vect) { seconds++; if(seconds == 60) { seconds = 0; minutes++; } if(minutes == 60) { minutes = 0; hours++; } if(hours > 23) hours = 0; }
https://www.youtube.com/watch?v=LBxvjJGEB5I
]]>Итак, наши цифровые часы работают следующим образом. Когда напряжение подано индикаторы выставляются в нули следующего вида «00:00:00» соответственно часы, минуты и секунды. Для установки времени будем использовать два кнопочных выключателя. Кнопка S1 необходима для установки минут, при ее нажатии происходит инкремент переменной содержащей минуты на 1, при достижении значения в 59, происходит ее сброс и отсчет начинается сначала, т.е. с нуля.
Аналогичным образом работает кнопка S2, только используется для установки переменной отвечающей за часы.
На рисунке ниже представлена наша схема, особенностью схемы является то, что управление всеми индикаторами осуществляется при помощи одного порта PORTB. С его помощью поочередно осуществляется запись одной цифры в индикатор. За поочередное включение,а именно за динамическую индикацию отвечает PORTC. Что такое динамическая индикация было сказано ранее. Важно отметить что все дисплеи с общим катодом, поэтому для включения того или иного дисплея нужно подать на его общий вывод сигнал низкого состояния, или просто «0».
Важно! Для правильной работы цифровых часов нужно чтобы внутренний генератор камня был настроен на частоту в 4 Мгц.
Ниже представлен код для часов на микроконтроллере ATMEGA16. Программа была написана с использованием среды AVR Studio 5. Еще раз повторю, что данные часы работают от внутреннего тактового генератора. Который имеет определённую погрешность, поэтому период одной секунды может меняться. И вешать их на стену или нет и сверять по ним время решайте сами.
#define F_CPU 4000000UL #include <avr/delay.h> #include <avr/io.h> #include <avr/interrupt.h> #define SegDataPort PORTB #define SegDataPin PINB #define SegDataDDR DDRB #define SegCntrlPort PORTC #define SegCntrlPin PINC #define SegCntrlDDR DDRC /*Global Variables Declarations*/ unsigned char hours = 0; unsigned char minutes = 0; unsigned char seconds = 0; /*Function Declarations*/ /*****************************************************************************/ /*Decimal Digit (0-9) to Seven Segment Values Encoder*/ unsigned char DigitTo7SegEncoder(unsigned char digit, unsigned char common); /*Timer Counter 1 Compare Match A Interrupt Service Routine/Interrupt Han-dler*/ ISR(TIMER1_COMPA_vect); /*Main Program*/ /*****************************************************************************/ int main(void) { SegDataDDR = 0xFF; SegCntrlDDR = 0x3F; SegCntrlPort = 0xFF; TCCR1B = (1<<CS12|1<<WGM12); OCR1A = 15625-1; TIMSK = 1<<OCIE1A; sei(); while(1) { /* Set Minutes when SegCntrl Pin 6 Switch is Pressed*/ if((SegCntrlPin & 0x40) == 0 ) { _delay_ms(200); if(minutes < 59) minutes++; else minutes = 0; } /* Set Hours when SegCntrl Pin 7 Switch is Pressed*/ if((SegCntrlPin & 0x80) == 0 ) { _delay_ms(200); if(hours < 23) hours++; else hours = 0; } SegDataPort = DigitTo7SegEncoder(seconds%10,1); SegCntrlPort = ~0x01; SegDataPort = DigitTo7SegEncoder(seconds/10,1); SegCntrlPort = ~0x02; SegDataPort = DigitTo7SegEncoder(minutes%10,1); SegCntrlPort = ~0x04; SegDataPort = DigitTo7SegEncoder(minutes/10,1); SegCntrlPort = ~0x08; SegDataPort = DigitTo7SegEncoder(hours%10,1); SegCntrlPort = ~0x10; SegDataPort = DigitTo7SegEncoder(hours/10,1); SegCntrlPort = ~0x20; } return 0; } /* * Function Description: * Encode a Decimal Digit 0-9 to its Seven Segment Equivalent. * * Function Arguments: * digit - Decimal Digit to be Encoded * common - Common Anode (0), Common Cathode(1) * SegVal - Encoded Seven Segment Value * * Connections: * Encoded SegVal is return in the other G-F-E-D-C-B-A that is A is the least * significant bit (bit 0) and G bit 6. */ unsigned char DigitTo7SegEncoder(unsigned char digit, unsigned char common) { unsigned char SegVal; switch(digit) { case 0: if(common == 1) SegVal = 0b00111111; else SegVal = ~0b00111111; break; case 1: if(common == 1) SegVal = 0b00000110; else SegVal = ~0b00000110; break; case 2: if(common == 1) SegVal = 0b01011011; else SegVal = ~0b01011011; break; case 3: if(common == 1) SegVal = 0b01001111; else SegVal = ~0b01001111; break; case 4: if(common == 1) SegVal = 0b01100110; else SegVal = ~0b01100110; break; case 5: if(common == 1) SegVal = 0b01101101; else SegVal = ~0b01101101; break; case 6: if(common == 1) SegVal = 0b01111101; else SegVal = ~0b01111101; break; case 7: if(common == 1) SegVal = 0b00000111; else SegVal = ~0b00000111; break; case 8: if(common == 1) SegVal = 0b01111111; else SegVal = ~0b01111111; break; case 9: if(common == 1) SegVal = 0b01101111; else SegVal = ~0b01101111; } return SegVal; } /*Timer Counter 1 Compare Match A Interrupt Service Routine/Interrupt Han-dler*/ ISR(TIMER1_COMPA_vect) { seconds++; if(seconds == 60) { seconds = 0; minutes++; } if(minutes == 60) { minutes = 0; hours++; } if(hours > 23) hours = 0; }
https://www.youtube.com/watch?v=LBxvjJGEB5I
]]>С точки зрения простоты и стоимости конструкции это конечно не лучший способ, ибо можно использовать куда более дешевые и простые решения. К примеру можно собрать схему на таймере NE555 или использовать мультивибратор на транзисторах. Но для понимания принципа работы Arduino это то что нужно.
Для того чтобы зажигать светодиод определенным периодом нужно на него подать напряжение с определенной частотой. В среде Arduino есть метод delay(), который как раз за это отвечает. Сначала нам необходимо настроить нужный нам вывод на выход, а затем подавать на него импульсы с определенной частотой.
int led = 13;//Номер вывода на плате Arduino void setup() { pinMode(led, OUTPUT);//Настраиваем 13 вывод как выход } void loop() { digitalWrite(led, HIGH); // Включаем светодиод delay(1000); // ждем 1000 мс digitalWrite(led, LOW); // Выключаем светодиод delay(1000); //ждем 1000 мс
}
Из данного примера видно что мы настроили 13-й вывод на выход .Подключение осуществленно через ограничивающий резистор, он необходим для защиты светодиода от превышения разрешонного тока. В цикле происходит поочередное изменения состояния этохо выхода. Сначала мы на него подаем сигнал,выдерживаем паузу а затем подаем другой сигнал и также выдерживаем паузу.
]]>С точки зрения простоты и стоимости конструкции это конечно не лучший способ, ибо можно использовать куда более дешевые и простые решения. К примеру можно собрать схему на таймере NE555 или использовать мультивибратор на транзисторах. Но для понимания принципа работы Arduino это то что нужно.
Для того чтобы зажигать светодиод определенным периодом нужно на него подать напряжение с определенной частотой. В среде Arduino есть метод delay(), который как раз за это отвечает. Сначала нам необходимо настроить нужный нам вывод на выход, а затем подавать на него импульсы с определенной частотой.
int led = 13;//Номер вывода на плате Arduino void setup() { pinMode(led, OUTPUT);//Настраиваем 13 вывод как выход } void loop() { digitalWrite(led, HIGH); // Включаем светодиод delay(1000); // ждем 1000 мс digitalWrite(led, LOW); // Выключаем светодиод delay(1000); //ждем 1000 мс
}
Из данного примера видно что мы настроили 13-й вывод на выход .Подключение осуществленно через ограничивающий резистор, он необходим для защиты светодиода от превышения разрешонного тока. В цикле происходит поочередное изменения состояния этохо выхода. Сначала мы на него подаем сигнал,выдерживаем паузу а затем подаем другой сигнал и также выдерживаем паузу.
]]>Данный проект на микроконтроллере AVR симулирует стрeкот кузнечика. Для того чтобы генерировать звуки, достаточно просто изменять состояние порта с звуковой частотой. Это можно делать как при помощи таймера, так и при помощи метода задержки delay().
]]>Данный проект на микроконтроллере AVR симулирует стрeкот кузнечика. Для того чтобы генерировать звуки, достаточно просто изменять состояние порта с звуковой частотой. Это можно делать как при помощи таймера, так и при помощи метода задержки delay().
]]>Для этого во входном дифференциальном каскаде в эмиттерную цепь включён источник тока, для повышения коэффициента передачи и улучшения температурной стабильности предварительного усилителя. Источник тока выполнен на полевом транзисторе. Кроме того, уменьшена несимметрия плеч в выходном каскаде введением корректирующей цепи в эмиттер одного из составных выходных транзисторов. Это уменьшило процент нелинейных искажений на выходе.
Параметры двухтактного усилителя:
Электрическая принципиальная схема (рис.1) состоит из входного – VT1,VT2, VT4 и оконечного – VT5, VT7 – VT12 каскадов, а также схемы согласования их по току и напряжению – VT3, VT6.
Входной сигнал подаётся на предварительный усилитель – VT2, VT4, построенный по дифференциальной схеме. Выполненный на полевом транзисторе –VT1 источник тока включен в эмиттерную цепь каскада. Согласование с нагрузкой обеспечивается усилителем по току – VT3. Требуемый уровень сигнала на входе оконечного каскада поддерживается усилителем напряжения – VT6 с разделённой нагрузкой.
В выходном каскаде для согласования усилителя с низкоомной нагрузкой применена квазикомплементарная схема на парах составных транзисторов с двухполярным источником питания. Для симметрии плеч каскада использована корректирующая цепь – VD2, R28, C10 в эмиттере транзистора VT10. Рабочая точка режима АВ для выходных транзисторов определяется падением напряжения на транзисторе VT5 и регулируется резистором R16. Защита выхода усилителя от перегрузок выполнена на транзисторах VT7, VT8, которые при необходимости шунтируют входной сигнал оконечного каскада. Для исключения самовозбуждения на высоких частотах введены цепи С3, С4, R5 и С12, R31. Выравнивание АЧХ на высоких до 20 кГц частотах осуществляется цепью С6, R7.
Конструкция усилителя собрана на печатной плате. Для стабильности тока покоя от температуры VT5 устанавливается на радиатор транзисторов VT12, VT11 между ними. Используется двухполярный источник напряжения ±40 В, обеспечивающий до 2,5 А тока нагрузки.
Усилитель собирается из исправных деталей и проверяется на правильность монтажа. Устанавливается ток покоя в диапазоне 20–40 мА потенциометром R16.
]]>Для этого во входном дифференциальном каскаде в эмиттерную цепь включён источник тока, для повышения коэффициента передачи и улучшения температурной стабильности предварительного усилителя. Источник тока выполнен на полевом транзисторе. Кроме того, уменьшена несимметрия плеч в выходном каскаде введением корректирующей цепи в эмиттер одного из составных выходных транзисторов. Это уменьшило процент нелинейных искажений на выходе.
Параметры двухтактного усилителя:
Электрическая принципиальная схема (рис.1) состоит из входного – VT1,VT2, VT4 и оконечного – VT5, VT7 – VT12 каскадов, а также схемы согласования их по току и напряжению – VT3, VT6.
Входной сигнал подаётся на предварительный усилитель – VT2, VT4, построенный по дифференциальной схеме. Выполненный на полевом транзисторе –VT1 источник тока включен в эмиттерную цепь каскада. Согласование с нагрузкой обеспечивается усилителем по току – VT3. Требуемый уровень сигнала на входе оконечного каскада поддерживается усилителем напряжения – VT6 с разделённой нагрузкой.
В выходном каскаде для согласования усилителя с низкоомной нагрузкой применена квазикомплементарная схема на парах составных транзисторов с двухполярным источником питания. Для симметрии плеч каскада использована корректирующая цепь – VD2, R28, C10 в эмиттере транзистора VT10. Рабочая точка режима АВ для выходных транзисторов определяется падением напряжения на транзисторе VT5 и регулируется резистором R16. Защита выхода усилителя от перегрузок выполнена на транзисторах VT7, VT8, которые при необходимости шунтируют входной сигнал оконечного каскада. Для исключения самовозбуждения на высоких частотах введены цепи С3, С4, R5 и С12, R31. Выравнивание АЧХ на высоких до 20 кГц частотах осуществляется цепью С6, R7.
Конструкция усилителя собрана на печатной плате. Для стабильности тока покоя от температуры VT5 устанавливается на радиатор транзисторов VT12, VT11 между ними. Используется двухполярный источник напряжения ±40 В, обеспечивающий до 2,5 А тока нагрузки.
Усилитель собирается из исправных деталей и проверяется на правильность монтажа. Устанавливается ток покоя в диапазоне 20–40 мА потенциометром R16.
]]>Подключение осуществляется по низкочастотному кабелю (тюльпан).
Из радиодеталей нам понадобиться всего лишь два резистора на 1 кОм и 470 Ом и сам тюльпан.
Так же нам понадобиться специальная библиотека для работы с телевизором.
Вот простой пример использования данной библиотеки
#include TVout TV; unsigned char x, y; void setup ( ) { TV.start_render( _NTSC ); } void loop ( ) { TV.clear_screen ( ); TV.print_str ( 10, 10, "TVout FTW!!!" ); TV.delay ( 60 ); }
]]>
Подключение осуществляется по низкочастотному кабелю (тюльпан).
Из радиодеталей нам понадобиться всего лишь два резистора на 1 кОм и 470 Ом и сам тюльпан.
Так же нам понадобиться специальная библиотека для работы с телевизором.
Вот простой пример использования данной библиотеки
#include TVout TV; unsigned char x, y; void setup ( ) { TV.start_render( _NTSC ); } void loop ( ) { TV.clear_screen ( ); TV.print_str ( 10, 10, "TVout FTW!!!" ); TV.delay ( 60 ); }
]]>
Характеристики приемника:
Схема довольно простая и состоит условно из 4-х основных блоков.
На транзисторах T1 T2 собраны входные каскады усиления, дектирование осуществляеться по схеме удвоения напряжения.Сигнал с детектора поступает на усилитель низкой частоты на микросхеме TA8119P. Наушники подключаются к выводам 7 и 10 микросхемы.Число витков основной катушки или по другому контурной катушки 80, катушка связи содержит 5-8 витков.Переменное сопротивление R7 предназначено для регулировки уровня громкости.
Конденсатор С4 и резистор R5 выполняют роль фильтра цепи питания, также снижеатся вероятность возникновения обратной связи по этой цепи.
]]>Характеристики приемника:
Схема довольно простая и состоит условно из 4-х основных блоков.
На транзисторах T1 T2 собраны входные каскады усиления, дектирование осуществляеться по схеме удвоения напряжения.Сигнал с детектора поступает на усилитель низкой частоты на микросхеме TA8119P. Наушники подключаются к выводам 7 и 10 микросхемы.Число витков основной катушки или по другому контурной катушки 80, катушка связи содержит 5-8 витков.Переменное сопротивление R7 предназначено для регулировки уровня громкости.
Конденсатор С4 и резистор R5 выполняют роль фильтра цепи питания, также снижеатся вероятность возникновения обратной связи по этой цепи.
]]>
Технические характеристики модулей:
Основные отличия между модулями НС-03/НС-05 и НС-04/НС-06
Несмотря на то, что линии питания и пины UART у данных видов модулей не отличаются, стоит обратить внимание на следующие назначения выводов:
Основные назначения выводов у модулей HC-04/HC-06:
В любом случае следует всегда смотреть распиновку Arduino и Bluetooth, поскольку некоторые выводы могут быть поменяны местами. Провода к модулю придется припаивать самостоятельно с помощью паяльника, исключением является только светодиод, который выполняет функции индикатора состояний модуля. Это необходимо сделать, так как шаг между выводами не более 1,5 мм.
Для передачи сообщений из модуля в компьютер используется несложный скетч. Для скорости порта задается значение 9600, которое при необходимости можно изменить на АТ-команды. При покупке модуля нужно всегда уточнять, какое значение установлено для скорости обмена. Далее следует открыть скетч в Arduino IDE, скомпилировать и прошить модуль. Мигающий светодиод покажет, что соединение установлено
После подключения адаптера к компьютеру, устанавливают драйвера, в системе Windows 7 они ставятся автоматическиДалее путем щелчка по иконке модуля Bluetooth нужно выбрать кнопку «Добавить устройство»
После добавления устройства нудно задать имя модулю.После нажатия кнопки «Далее» вводится пароль для устройстваНа модуле обычно установлен код завода-изготовителя. Нужно выбрать «Введите код образования пары устройства» и вводим установленный код. Программа настраивает и прописывает СОМ-порты. Их может быть как 2 шт. так и 1шт
После чего нужно щелкнуть кнопкой мыши по значку устройства и выбрать в меню пункт «Свойства», а также «Оборудование». Здесь смотрят и меняют параметры СОМ-портаДля обмена данными через виртуальный СОМ-порт можно использовать бесплатную программу Tera Term.В терминале отображаются данные счетчика Arduino.
Обмен осуществляется при помощи специальной программы. В схему добавляется светодиод, подключенный к pin 12 с помощью резистора ограничения тока. Можно использовать и pin 13 (LED). Во время сброса или запуска устройства, на дисплее последовательного порта можно увидеть сообщение, с предложением нажатия 1 или 0 на выборПодключение к Android
Существуют терминалы также и для этой платформы. Понадобится программа Bluetooth –терминал, позволяющая работать в режиме терминала. Если в устройстве Android отсутствует Bluetooth модуль, проблему решит внешний USB-адаптер. Адаптер подключается через USB, затем вводится пароль для модуля и запускается программа терминала. После выбора "Connect a device - Secure" нужно выбрать свое устройство, названное ранее при подключении Arduino к Bluetooth. Теперь можно как принимать данные с устройства при помощи терминала, так и отправлять их.
]]>
Технические характеристики модулей:
Основные отличия между модулями НС-03/НС-05 и НС-04/НС-06
Несмотря на то, что линии питания и пины UART у данных видов модулей не отличаются, стоит обратить внимание на следующие назначения выводов:
Основные назначения выводов у модулей HC-04/HC-06:
В любом случае следует всегда смотреть распиновку Arduino и Bluetooth, поскольку некоторые выводы могут быть поменяны местами. Провода к модулю придется припаивать самостоятельно с помощью паяльника, исключением является только светодиод, который выполняет функции индикатора состояний модуля. Это необходимо сделать, так как шаг между выводами не более 1,5 мм.
Для передачи сообщений из модуля в компьютер используется несложный скетч. Для скорости порта задается значение 9600, которое при необходимости можно изменить на АТ-команды. При покупке модуля нужно всегда уточнять, какое значение установлено для скорости обмена. Далее следует открыть скетч в Arduino IDE, скомпилировать и прошить модуль. Мигающий светодиод покажет, что соединение установлено
После подключения адаптера к компьютеру, устанавливают драйвера, в системе Windows 7 они ставятся автоматическиДалее путем щелчка по иконке модуля Bluetooth нужно выбрать кнопку «Добавить устройство»
После добавления устройства нудно задать имя модулю.После нажатия кнопки «Далее» вводится пароль для устройстваНа модуле обычно установлен код завода-изготовителя. Нужно выбрать «Введите код образования пары устройства» и вводим установленный код. Программа настраивает и прописывает СОМ-порты. Их может быть как 2 шт. так и 1шт
После чего нужно щелкнуть кнопкой мыши по значку устройства и выбрать в меню пункт «Свойства», а также «Оборудование». Здесь смотрят и меняют параметры СОМ-портаДля обмена данными через виртуальный СОМ-порт можно использовать бесплатную программу Tera Term.В терминале отображаются данные счетчика Arduino.
Обмен осуществляется при помощи специальной программы. В схему добавляется светодиод, подключенный к pin 12 с помощью резистора ограничения тока. Можно использовать и pin 13 (LED). Во время сброса или запуска устройства, на дисплее последовательного порта можно увидеть сообщение, с предложением нажатия 1 или 0 на выборПодключение к Android
Существуют терминалы также и для этой платформы. Понадобится программа Bluetooth –терминал, позволяющая работать в режиме терминала. Если в устройстве Android отсутствует Bluetooth модуль, проблему решит внешний USB-адаптер. Адаптер подключается через USB, затем вводится пароль для модуля и запускается программа терминала. После выбора "Connect a device - Secure" нужно выбрать свое устройство, названное ранее при подключении Arduino к Bluetooth. Теперь можно как принимать данные с устройства при помощи терминала, так и отправлять их.
]]>Основные достоинства:
Выпрямленный при помощи резисторов ток проводится через конденсатор С-1 и подается на транзисторы VT-1 и VT-2. Напряжение составляет +38В.
Микросхема DA-1 питается благодаря стабилизатору на резисторах R1-R3, которые собраны на транзисторе VT-1 с использованием диода VD-2 и конденсатора С-2 .
Параметры выходного напряжения внутри блока питания регулируется с помощью резистора постоянного R-14. Напряжение 2,5В, которое является опорным, подается на один из его основных контактов, а точность передачи регулируется путем настройки резистора R-9.
Резистор R-15 , регулируемый постоянным резистором R-14, подает напряжение на усилитель мощности DA1.1, который в свою очередь отвечает за обработку выходного напряжения всего блока питания в целом.
Резистор R-11 отвечает за регулирование напряжения на выходе, а сама микросхема DA-1 питается от однополярного напряжения 6,5В. В целом, на выходе из блока, напряжение становится равным 0 В.
Цепочка от резистора R-10 до диода VD-4 используется в качестве индикатора перегрузки тока, который можно отрегулировать с 0А до 3А.
В качестве стабилизатора напряжения с тремя выводами, используется параллельный диод VD-2 . Основное питающее напряжение микросхемы DA1 VDD должно находиться в пределе 8 вольт, на выходе стабилизатора резистор R-2 устанавливает постоянные 6,5 вольт.
На конденсатор блока С1 подается напряжение 37-38В. Резистором R-2 устанавливаются 6,5 В. на коллекторе VT-1, при этом микросхема DA-1 в панель не вставляется. Выходное напряжение должно быть 6,5 В и только тогда можно вставлять панель, после чего питание включается и выполняется подстройка напряжения, если на ножке №8 DA-1 оно не будет 6,5В.
Далее выбирают резистор R-11, после чего устанавливают выходное напряжение +30В в верхнем пределе, а нижний предел напряжения должен быть равен 3,3 мВ. Данный результат должен быть достигнут без использования резистора R16. Показания индикатора остаются без изменения и отображают 0 В. Для подключения реостатного сопротивления можно подобрать резисторы R-6 и R-8 , проверив при этом параметры узла защиты.
Чтобы не переделывать печатную плату, если микросхема типа TLC2272 находится в корпусе SOIC-8, нужно изготовить подложку из изолированного материала в виде прямоугольника 20Ч3 мм и приклеить к ней микросхему клеем «Момент». Перед склеиванием панель DIP-8 удаляется, а сама подложка вместе с микросхемой равномерно располагается на плате. Далее следует аккуратно соединить с помощью паяльника контактные площадки печатной платы и ножки микросхемы.
]]>Основные достоинства:
Выпрямленный при помощи резисторов ток проводится через конденсатор С-1 и подается на транзисторы VT-1 и VT-2. Напряжение составляет +38В.
Микросхема DA-1 питается благодаря стабилизатору на резисторах R1-R3, которые собраны на транзисторе VT-1 с использованием диода VD-2 и конденсатора С-2 .
Параметры выходного напряжения внутри блока питания регулируется с помощью резистора постоянного R-14. Напряжение 2,5В, которое является опорным, подается на один из его основных контактов, а точность передачи регулируется путем настройки резистора R-9.
Резистор R-15 , регулируемый постоянным резистором R-14, подает напряжение на усилитель мощности DA1.1, который в свою очередь отвечает за обработку выходного напряжения всего блока питания в целом.
Резистор R-11 отвечает за регулирование напряжения на выходе, а сама микросхема DA-1 питается от однополярного напряжения 6,5В. В целом, на выходе из блока, напряжение становится равным 0 В.
Цепочка от резистора R-10 до диода VD-4 используется в качестве индикатора перегрузки тока, который можно отрегулировать с 0А до 3А.
В качестве стабилизатора напряжения с тремя выводами, используется параллельный диод VD-2 . Основное питающее напряжение микросхемы DA1 VDD должно находиться в пределе 8 вольт, на выходе стабилизатора резистор R-2 устанавливает постоянные 6,5 вольт.
На конденсатор блока С1 подается напряжение 37-38В. Резистором R-2 устанавливаются 6,5 В. на коллекторе VT-1, при этом микросхема DA-1 в панель не вставляется. Выходное напряжение должно быть 6,5 В и только тогда можно вставлять панель, после чего питание включается и выполняется подстройка напряжения, если на ножке №8 DA-1 оно не будет 6,5В.
Далее выбирают резистор R-11, после чего устанавливают выходное напряжение +30В в верхнем пределе, а нижний предел напряжения должен быть равен 3,3 мВ. Данный результат должен быть достигнут без использования резистора R16. Показания индикатора остаются без изменения и отображают 0 В. Для подключения реостатного сопротивления можно подобрать резисторы R-6 и R-8 , проверив при этом параметры узла защиты.
Чтобы не переделывать печатную плату, если микросхема типа TLC2272 находится в корпусе SOIC-8, нужно изготовить подложку из изолированного материала в виде прямоугольника 20Ч3 мм и приклеить к ней микросхему клеем «Момент». Перед склеиванием панель DIP-8 удаляется, а сама подложка вместе с микросхемой равномерно располагается на плате. Далее следует аккуратно соединить с помощью паяльника контактные площадки печатной платы и ножки микросхемы.
]]>Модуль позволяет использовать сети стандартов GSM 850, GSM 900, GSM 1800, GSM 1900 и поддерживает протокол TCP с доступоп в сеть GPRS.
Arduino GSM модуль SIM900 можно также использовать для совершения звонков, можно как принемать звонки так и совершать их. Для этого на плате есть специальные разъемы для подключения микрофона и динамика.Также модуль можно подключить к компьютеру и отправлять и принемать данные напрямую с ПК. К примеру можно делать массовую рассылку абонентам записанным на симкарте в атоматическом режиме.
Источник питания платы должен обеспечивать макимально потребляемый ток платы в 2 А. Такой ток может возникнуть при максимальном использовании ресурсов платы в режиме передачи. За стабилизацию тока на плате отвечает оранженый конденсатор на фронтальной стороне платы.
Вместе с модулем также в комплект входит специальная сим карта Telefónica Digital, можно использовать сим-карты и других операторов. Для того чтобы активаровать сим карту Telefónica Digital нужно перейти на сайт BlueVia и следовать дальнейшим инструкциям.
Средняя цена в Китае на данный модуль составляет порядка 2000 рублей. Стоимость можно посмотреть на сайте Aliexpress
Плата с расширением GSM работает с Ардуино непосредственно благодаря библиотеке Software Serial. При стандартных настройках, для взаимодействия модема с Ардуино подключаются цифровые выводы № 2 и № 3. На Arduino Uno подходят такие настройки, но для правильной работы шилда на Arduino Leonardo или Arduino Mega необходимо внести поправки.
Вывод GSM_TX, так же именуется выводом № 2 на плате расширения, отправляет информацию Ардуино. Чтобы точно знать, в какой момент необходимо считывать информацию, Ардуино применяет механизм прерываний: при перемене цифрового уровня сигнала в этом выводе возникает соответствующее прерывание. Однако в Arduino Leonardo и Arduino Mega вывод № 2 не поддерживает прерывания.
Что бы шилд нормально функционировал на Arduino Mega или Leonardo совсем не нужно переменять программный код, библиотека сама изменяет номер вывода RX Ардуино при выборе надлежащей модели в меню "Tools" среды разработки.
Arduino Leonardo
Для правильного функционирования с Leonardo библиотека GSM использует цифровой вывод № 8. Для этого на плате расширения GSM необходимо замкнуть проводником цифровые выводы № 2 и № 8.
На задней стороне платы GSM необходимо отогнуть в сторону штыревой контакт, соответствующий выводу № 2, так, чтобы он не соприкасался с Arduino Leonardo.
Arduino Mega2560
Библиотека GSM для корректной роботы с Mega использует цифровой вывод № 10. На плате расширения GSM необходимо замкнуть проводником цифровые выводы № 2 и №10, как и с Arduino Leonardo. Не забыв при этом отогнуть с обратной стороны платы GSM в сторону штиревой контакт соответствующий выводу № 2, так, чтобы он не касался Arduino Mega.
Если вместо использования перемычек просто использовать другой вывод для связи других устройств, то для начала необходимо посмотреть в справке по библиотеке Software Serial список выводов, которые поддерживают прерывания. Что бы изменить номера пина, необходимо переменить некоторые данный в константе __RXPIN__, которая находиться в файле GSM3SoftwareSerial.cpp, который располагается в папке библиотеки GSM.
Что бы более масштабно ознакомиться с информацией об использовании GSM-платы расширения, необходимо смотреть в руководство по началу работы с GSM.
]]>Модуль позволяет использовать сети стандартов GSM 850, GSM 900, GSM 1800, GSM 1900 и поддерживает протокол TCP с доступоп в сеть GPRS.
Arduino GSM модуль SIM900 можно также использовать для совершения звонков, можно как принемать звонки так и совершать их. Для этого на плате есть специальные разъемы для подключения микрофона и динамика.Также модуль можно подключить к компьютеру и отправлять и принемать данные напрямую с ПК. К примеру можно делать массовую рассылку абонентам записанным на симкарте в атоматическом режиме.
Источник питания платы должен обеспечивать макимально потребляемый ток платы в 2 А. Такой ток может возникнуть при максимальном использовании ресурсов платы в режиме передачи. За стабилизацию тока на плате отвечает оранженый конденсатор на фронтальной стороне платы.
Вместе с модулем также в комплект входит специальная сим карта Telefónica Digital, можно использовать сим-карты и других операторов. Для того чтобы активаровать сим карту Telefónica Digital нужно перейти на сайт BlueVia и следовать дальнейшим инструкциям.
Средняя цена в Китае на данный модуль составляет порядка 2000 рублей. Стоимость можно посмотреть на сайте Aliexpress
Плата с расширением GSM работает с Ардуино непосредственно благодаря библиотеке Software Serial. При стандартных настройках, для взаимодействия модема с Ардуино подключаются цифровые выводы № 2 и № 3. На Arduino Uno подходят такие настройки, но для правильной работы шилда на Arduino Leonardo или Arduino Mega необходимо внести поправки.
Вывод GSM_TX, так же именуется выводом № 2 на плате расширения, отправляет информацию Ардуино. Чтобы точно знать, в какой момент необходимо считывать информацию, Ардуино применяет механизм прерываний: при перемене цифрового уровня сигнала в этом выводе возникает соответствующее прерывание. Однако в Arduino Leonardo и Arduino Mega вывод № 2 не поддерживает прерывания.
Что бы шилд нормально функционировал на Arduino Mega или Leonardo совсем не нужно переменять программный код, библиотека сама изменяет номер вывода RX Ардуино при выборе надлежащей модели в меню "Tools" среды разработки.
Arduino Leonardo
Для правильного функционирования с Leonardo библиотека GSM использует цифровой вывод № 8. Для этого на плате расширения GSM необходимо замкнуть проводником цифровые выводы № 2 и № 8.
На задней стороне платы GSM необходимо отогнуть в сторону штыревой контакт, соответствующий выводу № 2, так, чтобы он не соприкасался с Arduino Leonardo.
Arduino Mega2560
Библиотека GSM для корректной роботы с Mega использует цифровой вывод № 10. На плате расширения GSM необходимо замкнуть проводником цифровые выводы № 2 и №10, как и с Arduino Leonardo. Не забыв при этом отогнуть с обратной стороны платы GSM в сторону штиревой контакт соответствующий выводу № 2, так, чтобы он не касался Arduino Mega.
Если вместо использования перемычек просто использовать другой вывод для связи других устройств, то для начала необходимо посмотреть в справке по библиотеке Software Serial список выводов, которые поддерживают прерывания. Что бы изменить номера пина, необходимо переменить некоторые данный в константе __RXPIN__, которая находиться в файле GSM3SoftwareSerial.cpp, который располагается в папке библиотеки GSM.
Что бы более масштабно ознакомиться с информацией об использовании GSM-платы расширения, необходимо смотреть в руководство по началу работы с GSM.
]]>Глубина обнаружения цветных и драгоценным металлов 25-30см, для остального металла, чермета и металлического мусора порядка 70см.
Дискриминация определения предмета – отсутствует. У большинства приборов уровень дискриминации достигает среднего, это означает то, что прибор видит металлический предмет на глубине, но не может распознать его. С металлоискателем Терминатор 3 такой исход событий невозможен. Если прибор обнаружил необходимый предмет, то он сразу определит что это.
В схеме имеется ряд переменных сопротивлений для подсройки таких параметров как:
Скачать печатную плату металлоискателя terminator-3 в формате .lay
https://www.youtube.com/watch?v=CYAk6EbYMFg
]]>Глубина обнаружения цветных и драгоценным металлов 25-30см, для остального металла, чермета и металлического мусора порядка 70см.
Дискриминация определения предмета – отсутствует. У большинства приборов уровень дискриминации достигает среднего, это означает то, что прибор видит металлический предмет на глубине, но не может распознать его. С металлоискателем Терминатор 3 такой исход событий невозможен. Если прибор обнаружил необходимый предмет, то он сразу определит что это.
В схеме имеется ряд переменных сопротивлений для подсройки таких параметров как:
Скачать печатную плату металлоискателя terminator-3 в формате .lay
https://www.youtube.com/watch?v=CYAk6EbYMFg
]]>Основные отличия от ClonePI-AVR
Схема имеет 6 основных кнопок
Одновременное нажатие кнопок S6 и S6 для входа и выхода в режим настроек. После того как вы вошли в режим настроек металлоискателя у вас загорится последний светодиод VD13
Последняя версия прошивки металлодетектора ClonePI-W
Сайт разработчика данного металлоискателя
Вся информация в Clone PI W pdf файл
https://www.youtube.com/watch?v=JOYZ2QbovhE
]]>Основные отличия от ClonePI-AVR
Схема имеет 6 основных кнопок
Одновременное нажатие кнопок S6 и S6 для входа и выхода в режим настроек. После того как вы вошли в режим настроек металлоискателя у вас загорится последний светодиод VD13
Последняя версия прошивки металлодетектора ClonePI-W
Сайт разработчика данного металлоискателя
Вся информация в Clone PI W pdf файл
https://www.youtube.com/watch?v=JOYZ2QbovhE
]]>Эта модель металлоискателя приспособлена для работы с катушками, достигающими в диаметре от 120 до 150 см., причем настройка аппарата под них производится автоматически. С помощью этого типа металлоискателя можно обнаруживать большие и мелкие предметы из металла, находящиеся на глубине до 4 метров.
Для улучшения работы металлоискатель Clone PI AVR оснащен отстройкой от грунта и универсальным дисплеем с подсветкой для работ в ночное время, на нем отображается так же и уровень зарядки аккумуляторной батареи, чтобы пользователь видел, через какое время может произойти автоматическое выключение прибора.
Благодаря барьеру и порогу чувствительности, прибор сразу же реагирует на металлический предмет. Источник питания металлоискателя представлен батареей в 12 вольт, расходуемая им мощность вместе с подсветкой составляют около 150 mA. Вмонтированный в схему микроконтроллер, делает прибор полностью автоматическим, что значительно упрощает работу на нем для всех новичков.
Стоимость модели Clone PI AVR в магазине по сравнению с другими и более дорогими детекторами металлов очень приемлемая. Основной его недостаток в отсутствии селективности. Прибор не способен различать цветные и черные металлы. Конструкция нового аппарата является упрощенным вариантом более ранней модели металлоискателя Clone PI, который во многом копирует детектор Tracker PI.
Технические характеристики
Дополнительные параметры
Последняя версия прошивки Atmega8
Страничка автора металлоискателя Clone PI AVR
https://www.youtube.com/watch?v=Kq1EZ5oc47o
]]>Эта модель металлоискателя приспособлена для работы с катушками, достигающими в диаметре от 120 до 150 см., причем настройка аппарата под них производится автоматически. С помощью этого типа металлоискателя можно обнаруживать большие и мелкие предметы из металла, находящиеся на глубине до 4 метров.
Для улучшения работы металлоискатель Clone PI AVR оснащен отстройкой от грунта и универсальным дисплеем с подсветкой для работ в ночное время, на нем отображается так же и уровень зарядки аккумуляторной батареи, чтобы пользователь видел, через какое время может произойти автоматическое выключение прибора.
Благодаря барьеру и порогу чувствительности, прибор сразу же реагирует на металлический предмет. Источник питания металлоискателя представлен батареей в 12 вольт, расходуемая им мощность вместе с подсветкой составляют около 150 mA. Вмонтированный в схему микроконтроллер, делает прибор полностью автоматическим, что значительно упрощает работу на нем для всех новичков.
Стоимость модели Clone PI AVR в магазине по сравнению с другими и более дорогими детекторами металлов очень приемлемая. Основной его недостаток в отсутствии селективности. Прибор не способен различать цветные и черные металлы. Конструкция нового аппарата является упрощенным вариантом более ранней модели металлоискателя Clone PI, который во многом копирует детектор Tracker PI.
Технические характеристики
Дополнительные параметры
Последняя версия прошивки Atmega8
Страничка автора металлоискателя Clone PI AVR
https://www.youtube.com/watch?v=Kq1EZ5oc47o
]]>
Главным преимуществом данного блока питания является отсутствия понижающего трансформатора. Схема состоит из следующие основных блоков:
Наличие стабилитрона на 9 Вольт предотвращает появление на входе стабилизатора напряжения более 100 Вольт. Наличие данного элемента является обязательным. Если его не поставить то стабилизатор напряжения выдет из строя в следствии перегрева.
Конденсаторы C2,C3,C4 сглаживают пульсации сети. В качестве диодов выпрямительного моста можно использовать абсолютно любые, главное чтобы параметры были не менее следующих:
В схеме к примеру используются диоды КЦ405В.
Стабилитрон VD1 должен быть с параметрами от 6 до 15 Вольт. В схеме используется довольно распространенный стабилизатор 7805 на 5 Вольт.
Выходной ток бестрансформаторного блока питания на 5 Вольт составляет порядка 150 мА. Данная схема отлично подойдет для зарядки телефонов.
]]>
Главным преимуществом данного блока питания является отсутствия понижающего трансформатора. Схема состоит из следующие основных блоков:
Наличие стабилитрона на 9 Вольт предотвращает появление на входе стабилизатора напряжения более 100 Вольт. Наличие данного элемента является обязательным. Если его не поставить то стабилизатор напряжения выдет из строя в следствии перегрева.
Конденсаторы C2,C3,C4 сглаживают пульсации сети. В качестве диодов выпрямительного моста можно использовать абсолютно любые, главное чтобы параметры были не менее следующих:
В схеме к примеру используются диоды КЦ405В.
Стабилитрон VD1 должен быть с параметрами от 6 до 15 Вольт. В схеме используется довольно распространенный стабилизатор 7805 на 5 Вольт.
Выходной ток бестрансформаторного блока питания на 5 Вольт составляет порядка 150 мА. Данная схема отлично подойдет для зарядки телефонов.
]]>Особенности данного металлодетектора и отличия от Tracker PI
Вывод напряжения питания на ЖКИ и сигнализация(предупреждение на ЖКИ) о разряде батареи.
Радиус действия металлоискателя в помещении на монетку СССР в 5 копеек составляет 25см. Что ставит его в один ряд с коммерчиским МД аналогичного строения.
Катушка наматывается на оправу 19см и содержит 27 витков эмалированного провода. Общее сопротивление катушки должно быть порядка 1 Ом.
Другие конструкции авторов можно посмотреть на сайте www.metdet.ru
Последняя версия прошивки для микроконтроллера PIC
]]>Особенности данного металлодетектора и отличия от Tracker PI
Вывод напряжения питания на ЖКИ и сигнализация(предупреждение на ЖКИ) о разряде батареи.
Радиус действия металлоискателя в помещении на монетку СССР в 5 копеек составляет 25см. Что ставит его в один ряд с коммерчиским МД аналогичного строения.
Катушка наматывается на оправу 19см и содержит 27 витков эмалированного провода. Общее сопротивление катушки должно быть порядка 1 Ом.
Другие конструкции авторов можно посмотреть на сайте www.metdet.ru
Последняя версия прошивки для микроконтроллера PIC
]]>
Кнопки я не подключал, так как в примерах с библиотекой есть пример проигрывания 1 файла на SD карте где они не нужны. SD карту подключил так же как на схеме.
В итоге собранная мною схема состояла из:
Для воспроизведения wav фалов нам понадобится специальная библиотека.
Для того чтобы установить библиотеку нужно в среде Arduino IDE выбрать пункт импорт библиотеки zip. Но в моем случае это почему-то не сработало, если у вас произошло тоже самое, то можно распаковать этот архив в папку libraries в директории с установленной программой.
После того как импортировали библиотеку, в примерах Arduino IDE появится еще один пункт TMRpcs. В нем есть пример basic - пример который проигрывает один файл на SD карте однократно. Для повторного проигрывания нужно жать кнопку reset.
Пример кода для проигрывания файла wav на arduino
#include // need to include the SD library
//#define SD_ChipSelectPin 53 //example uses hardware SS pin 53 on Mega2560
#define SD_ChipSelectPin 4 //using digital pin 4 on arduino nano 328, can use other pins
#include // also need to include this library...
#include
TMRpcm tmrpcm; // create an object for use in this sketch
void setup(){
tmrpcm.speakerPin = 9; //5,6,11 or 46 on Mega, 9 on Uno, Nano, etc
Serial.begin(9600);
if (!SD.begin(SD_ChipSelectPin)) { // see if the card is present and can be initialized:
Serial.println("SD fail");
return; // don't do anything more if not
}
tmrpcm.play("music"); //the sound file "music" will play each time the arduino powers up, or is reset
}
void loop(){
if(Serial.available()){
if(Serial.read() == 'p'){ //send the letter p over the serial monitor to start playback
tmrpcm.play("music");
}
}
}
В этом примере все что нужно сделать это поменять имя воспроизводимого файла на "music.wav" и таким же именем назвать сам файл на SD карте, ну или любым другим именем.
Файл wav нужно конвертировать под определенные параметры:
https://www.youtube.com/watch?v=e8kifH2-Kvk
]]>
Кнопки я не подключал, так как в примерах с библиотекой есть пример проигрывания 1 файла на SD карте где они не нужны. SD карту подключил так же как на схеме.
В итоге собранная мною схема состояла из:
Для воспроизведения wav фалов нам понадобится специальная библиотека.
Для того чтобы установить библиотеку нужно в среде Arduino IDE выбрать пункт импорт библиотеки zip. Но в моем случае это почему-то не сработало, если у вас произошло тоже самое, то можно распаковать этот архив в папку libraries в директории с установленной программой.
После того как импортировали библиотеку, в примерах Arduino IDE появится еще один пункт TMRpcs. В нем есть пример basic - пример который проигрывает один файл на SD карте однократно. Для повторного проигрывания нужно жать кнопку reset.
Пример кода для проигрывания файла wav на arduino
#include // need to include the SD library
//#define SD_ChipSelectPin 53 //example uses hardware SS pin 53 on Mega2560
#define SD_ChipSelectPin 4 //using digital pin 4 on arduino nano 328, can use other pins
#include // also need to include this library...
#include
TMRpcm tmrpcm; // create an object for use in this sketch
void setup(){
tmrpcm.speakerPin = 9; //5,6,11 or 46 on Mega, 9 on Uno, Nano, etc
Serial.begin(9600);
if (!SD.begin(SD_ChipSelectPin)) { // see if the card is present and can be initialized:
Serial.println("SD fail");
return; // don't do anything more if not
}
tmrpcm.play("music"); //the sound file "music" will play each time the arduino powers up, or is reset
}
void loop(){
if(Serial.available()){
if(Serial.read() == 'p'){ //send the letter p over the serial monitor to start playback
tmrpcm.play("music");
}
}
}
В этом примере все что нужно сделать это поменять имя воспроизводимого файла на "music.wav" и таким же именем назвать сам файл на SD карте, ну или любым другим именем.
Файл wav нужно конвертировать под определенные параметры:
https://www.youtube.com/watch?v=e8kifH2-Kvk
]]>Существует целая линейка таких плат разных моделей, которые отличаются исполнением,колличеством выводов, рабочими параметрами
Существуют 2 основных пути использования ESP8266:
1) В качестве моста uart-wifi, в этом случае потребуется любой другой сторонний микроконтроллер. Который будет использоваться для управлением самим модулем, т.е. для считывания или передачи различного рода информации.
2) Сам wifi модуль будет выступать и в качестве микроконтроллера так и в роли wifi приема передатчика.
В первым случае потребуется специальная прошивка для самого МК чтобы коммутировать с esp8266. Для любителей Arduino в инете уже есть готовые библиотеки для коммутации с ним.
Во втором случае нужно будет писать прошивку для самого модуля wifi, что на мой взгляд более сложно. Очень привлекательная стоимость данного модуля порядка 200р если заказывать с AliExpress
Синтаксис:
AT | AT OK |
Тест |
AT+RST | AT+RST | Перезагрузит модуль |
AT+GMR | AT+GMR 00160901 OK |
Версия прошивки |
AT+CWMODE=<mode> | AT+CWMODE=1
OK |
Режим работы модуля <mode>: 1-клиент 2-точка доступа 3-совмещенный |
AT+CWJAP = <SSID>,<PWD> | AT+CWJAP="HOME","password" OK |
Присоединиться к точке доступа <SSID> — имя точки доступа <PWD> — ключ |
AT+CWLAP | AT+CWLAP +CWLAP:(0,"",0) +CWLAP:(4,"Sosed",-77) +CWLAP:(1,"HOME",-54) OK |
Получить список видимых точек доступа Первый параметр — шифрование: 0 — open 1 — WEP 2 — WPA_PSK 3 — WPA2_PSK 4 — WPA_WPA2_PSK Второй параметр — SSID Третий параметр — чувствительность |
AT+CWQAP | AT+CWQAP OK |
Отключиться от точки доступа |
AT+CWSAP=<ssid>,<pwd>,<chl>, <ecn> | AT+CWSAP="TEST","12345678",5,0 OK |
Установить точку доступа <ssid> — имя точки доступа <psd> — ключ <chl> — канал <ecn> — шифрование, см AT+CWLAP |
AT+CWLIF | AT+CWLIF | Список присоединённых устройств |
AT+CIPSTATUS | AT+CIPSTATUS STATUS:3 +CIPSTATUS:0,"TCP","46.38.56.236",80,0 OK |
Статус TCP соединения Возвращаемый параметр — статус соединения 3 — соединение установлено 4 — нет соединения Первый параметер — сессия Второй параметр — соединение: TCP или UDP Третий параметр — IP Четвёртый параметр — порт Пятый параметр — неизвестен |
AT+CIPMUX=<mode> | AT+CIPMUX=0 OK |
Количество соединений 0 — одно соединение 1 — мультисоединение (до 4-х) |
AT+CIPMODE=<mode> | AT+CIPMODE? +CIPMODE:0 |
Режим передачи данных <mode> — неизвестно |
Для одного соединения (+CIPMUX=0): AT+CIPSTART=<type>,<adr>,<port> Для мульти соединения (+CIPMUX=1): AT+CIPSTART=<id>,<type>,<adr>,<port> |
AT+CIPSTART="TCP","alex-exe.ru",80
OK … Unlink |
Соединение TCP/UDP <id> — идентификатор соединения <type> — тип соединения: TCP или UDP <adr> — адрес IP или URL <port> — порт |
Для одного соединения (+CIPMUX=0): AT+CIPSEND=<length> Для мульти соединения (+CIPMUX=1): AT+CIPSTART=<id>,<length> |
AT+CIPSEND=53 > GET /links/links.html HTTP/1.0 Host: alex-exe.ru busy SEND OK +IPD,233:HTTP/1.1 200 OK |
Отправить данные <id> — идентификатор соединения <length> — количество отправляемых данных Передаваемые данные отправляются после приглашения > , после ввода команды.е |
+IPD,1024:<html> <head> <title>Alex_EXE — Сайты</title> … обрезано … OK |
Приём данных Первый параметр <id> — идентификатор соединения (для +CIPMUX=1). Возвращает количество прочитанных байт, после двоеточия возвращает принятые данные. Принимает по 1024 байта, разделяя. |
|
Для +CIPMUX=0: AT+CIPCLOSE Для +CIPMUX=1: AT+CIPCLOSE=<id> |
AT+CIPCLOSE OK Unlink |
Закрыть соединение Единственный параметр <id> для мультипоточного режима — идентификатор соединения |
AT+CIFSR | AT+CIFSR 192.168.1.208 |
Получить IP адрес модуля |
AT+CIPSERVER=<mode>,<port> | AT+CIPSERVER=1,8888 OK |
Поднять сервер <mode> — режим скрытности 0 — скрыт 1 — открытый <port> — порт |
AT+CIPSTO=<time> | AT+CIPSTO=180 OK |
Установить время одной сессии на сервере <time> — время сессии в секундах, от 0 до 28800. |
В данном примере посылаем AT комманды через последовательный монитор Arduino IDE модулю и получаем ответ от него ответ.
https://www.youtube.com/watch?v=XdGFzLANsd4
]]>Существует целая линейка таких плат разных моделей, которые отличаются исполнением,колличеством выводов, рабочими параметрами
Существуют 2 основных пути использования ESP8266:
1) В качестве моста uart-wifi, в этом случае потребуется любой другой сторонний микроконтроллер. Который будет использоваться для управлением самим модулем, т.е. для считывания или передачи различного рода информации.
2) Сам wifi модуль будет выступать и в качестве микроконтроллера так и в роли wifi приема передатчика.
В первым случае потребуется специальная прошивка для самого МК чтобы коммутировать с esp8266. Для любителей Arduino в инете уже есть готовые библиотеки для коммутации с ним.
Во втором случае нужно будет писать прошивку для самого модуля wifi, что на мой взгляд более сложно. Очень привлекательная стоимость данного модуля порядка 200р если заказывать с AliExpress
Синтаксис:
AT | AT OK |
Тест |
AT+RST | AT+RST | Перезагрузит модуль |
AT+GMR | AT+GMR 00160901 OK |
Версия прошивки |
AT+CWMODE=<mode> | AT+CWMODE=1
OK |
Режим работы модуля <mode>: 1-клиент 2-точка доступа 3-совмещенный |
AT+CWJAP = <SSID>,<PWD> | AT+CWJAP="HOME","password" OK |
Присоединиться к точке доступа <SSID> — имя точки доступа <PWD> — ключ |
AT+CWLAP | AT+CWLAP +CWLAP:(0,"",0) +CWLAP:(4,"Sosed",-77) +CWLAP:(1,"HOME",-54) OK |
Получить список видимых точек доступа Первый параметр — шифрование: 0 — open 1 — WEP 2 — WPA_PSK 3 — WPA2_PSK 4 — WPA_WPA2_PSK Второй параметр — SSID Третий параметр — чувствительность |
AT+CWQAP | AT+CWQAP OK |
Отключиться от точки доступа |
AT+CWSAP=<ssid>,<pwd>,<chl>, <ecn> | AT+CWSAP="TEST","12345678",5,0 OK |
Установить точку доступа <ssid> — имя точки доступа <psd> — ключ <chl> — канал <ecn> — шифрование, см AT+CWLAP |
AT+CWLIF | AT+CWLIF | Список присоединённых устройств |
AT+CIPSTATUS | AT+CIPSTATUS STATUS:3 +CIPSTATUS:0,"TCP","46.38.56.236",80,0 OK |
Статус TCP соединения Возвращаемый параметр — статус соединения 3 — соединение установлено 4 — нет соединения Первый параметер — сессия Второй параметр — соединение: TCP или UDP Третий параметр — IP Четвёртый параметр — порт Пятый параметр — неизвестен |
AT+CIPMUX=<mode> | AT+CIPMUX=0 OK |
Количество соединений 0 — одно соединение 1 — мультисоединение (до 4-х) |
AT+CIPMODE=<mode> | AT+CIPMODE? +CIPMODE:0 |
Режим передачи данных <mode> — неизвестно |
Для одного соединения (+CIPMUX=0): AT+CIPSTART=<type>,<adr>,<port> Для мульти соединения (+CIPMUX=1): AT+CIPSTART=<id>,<type>,<adr>,<port> |
AT+CIPSTART="TCP","alex-exe.ru",80
OK … Unlink |
Соединение TCP/UDP <id> — идентификатор соединения <type> — тип соединения: TCP или UDP <adr> — адрес IP или URL <port> — порт |
Для одного соединения (+CIPMUX=0): AT+CIPSEND=<length> Для мульти соединения (+CIPMUX=1): AT+CIPSTART=<id>,<length> |
AT+CIPSEND=53 > GET /links/links.html HTTP/1.0 Host: alex-exe.ru busy SEND OK +IPD,233:HTTP/1.1 200 OK |
Отправить данные <id> — идентификатор соединения <length> — количество отправляемых данных Передаваемые данные отправляются после приглашения > , после ввода команды.е |
+IPD,1024:<html> <head> <title>Alex_EXE — Сайты</title> … обрезано … OK |
Приём данных Первый параметр <id> — идентификатор соединения (для +CIPMUX=1). Возвращает количество прочитанных байт, после двоеточия возвращает принятые данные. Принимает по 1024 байта, разделяя. |
|
Для +CIPMUX=0: AT+CIPCLOSE Для +CIPMUX=1: AT+CIPCLOSE=<id> |
AT+CIPCLOSE OK Unlink |
Закрыть соединение Единственный параметр <id> для мультипоточного режима — идентификатор соединения |
AT+CIFSR | AT+CIFSR 192.168.1.208 |
Получить IP адрес модуля |
AT+CIPSERVER=<mode>,<port> | AT+CIPSERVER=1,8888 OK |
Поднять сервер <mode> — режим скрытности 0 — скрыт 1 — открытый <port> — порт |
AT+CIPSTO=<time> | AT+CIPSTO=180 OK |
Установить время одной сессии на сервере <time> — время сессии в секундах, от 0 до 28800. |
В данном примере посылаем AT комманды через последовательный монитор Arduino IDE модулю и получаем ответ от него ответ.
https://www.youtube.com/watch?v=XdGFzLANsd4
]]>Основные технические характеристики микросхемы:
Представленная схема стереоусилителя позволяет достичь хороших выходных параметров и стабильности работы.
Низкочастотный сигнал звуковой частоты через сопротивление R1 поступает на переменное сопротивление на резисторе R3.Сопротивление R1 необходимо для ограничения входных цепей от перенапряжения. Для защиты от возможных радиочастот, наведенных во входном кабеле, стоит конденсатор C1.
На транзисторе VT1 собран предварительный каскад усиления сигнал, на который поступает через разделительный конденсатор С3. Использование полевого транзистора по схеме с общим истоком дает значительные преимущества по уровню нелинейных искажений, чем аналогичная схема на биполярном транзисторе, включенного по схеме с общим эмиттером. Отрицательная обратная связь по постоянному и переменному току осуществляется при помощи сопротивления R8, которое подключено к истоку. Данный каскад получает питание через сопротивление R6.
Для установки стереобалланса существует переменное сопротивление R12, которое регулирует уровень выходного сигнала поступающего с каскада предварительного усиления на вход микросхемы.
Усиленный в микросхеме звуковой сигнал поступает на динамик через дроссели L1 и L2. Для предотвращения самовозбуждения микросхемы на ультразвуковых частотах в схеме используеться демпфирующая цепочка R17C26 и R18C27.
Подключенный к микросхеме конденсатор C14 представляет собой фильтр слаботочных узлов микросхемы.
Второй канал работает аналогичным образом. К выходному гнезду XS3 можно подключать стереонаушники с любым сопротивлением.
Для стабильной и хорошей работы стереоусилителя должно выполняться требование по разделению силовых и сигнальных цепей схемы. После правильного и качественного монтажа всех радиодеталей усилитель должен сразу заработать.
]]>Основные технические характеристики микросхемы:
Представленная схема стереоусилителя позволяет достичь хороших выходных параметров и стабильности работы.
Низкочастотный сигнал звуковой частоты через сопротивление R1 поступает на переменное сопротивление на резисторе R3.Сопротивление R1 необходимо для ограничения входных цепей от перенапряжения. Для защиты от возможных радиочастот, наведенных во входном кабеле, стоит конденсатор C1.
На транзисторе VT1 собран предварительный каскад усиления сигнал, на который поступает через разделительный конденсатор С3. Использование полевого транзистора по схеме с общим истоком дает значительные преимущества по уровню нелинейных искажений, чем аналогичная схема на биполярном транзисторе, включенного по схеме с общим эмиттером. Отрицательная обратная связь по постоянному и переменному току осуществляется при помощи сопротивления R8, которое подключено к истоку. Данный каскад получает питание через сопротивление R6.
Для установки стереобалланса существует переменное сопротивление R12, которое регулирует уровень выходного сигнала поступающего с каскада предварительного усиления на вход микросхемы.
Усиленный в микросхеме звуковой сигнал поступает на динамик через дроссели L1 и L2. Для предотвращения самовозбуждения микросхемы на ультразвуковых частотах в схеме используеться демпфирующая цепочка R17C26 и R18C27.
Подключенный к микросхеме конденсатор C14 представляет собой фильтр слаботочных узлов микросхемы.
Второй канал работает аналогичным образом. К выходному гнезду XS3 можно подключать стереонаушники с любым сопротивлением.
Для стабильной и хорошей работы стереоусилителя должно выполняться требование по разделению силовых и сигнальных цепей схемы. После правильного и качественного монтажа всех радиодеталей усилитель должен сразу заработать.
]]>Отсутствие измерительного генератора создает проблемы при плановом обслуживании, настройке, ремонте антенн и другой аппаратуры диапазоном действия от 300Мгц и выше. Генератор СВЧ можно изготовить самостоятельно, что служит решением данной проблемы.
Общий принцип действия такого генератора базируется на применении системы ФАПЧ (фазовой автоматической подстройке частоты). Существенным ее недостатком является невозможность плавной перестройке по частоте. Использование генератора СВЧ значимо расширится, если он будет сконструирован как приставка к генератору ВЧ, который будет выступать генератором образцовой частоты. Изменение частоты генератора ВЧ дает возможность регулировки генератора СВЧ. Такой генератор может работать в диапазоне частот мобильной (сотовой) связи и устройств радиолюбителей.
В основе действия приставки заложен принцип управления режимом функционирования микросхемы синтезатора частоты DA4 микроконтроллером DD1. Специализированная микросборка автоматических генераторов с электронной подстройкой частоты DA5 и DA6 используется как генератор СВЧ диапазона. Интегральные стабилизаторы напряжения DA2 (12 В) и DA3 (5 В) делают постоянным напряжение узлов питания. Внешний генератор ВЧ используется как источник сигнала образцовой частоты. Дополнительный каскад увеличивает управляющее напряжение о максимального значения в 12 В.
Генератор СВЧ имеет основной и дополнительный выход. Уровень сигнала основного соответствует 0 дБ мВт, дополнительного - 60 дБ мВт. Внешний ступенчатый аттенюатор должен обладать уровнем сигнала от 0 до 70 дБ, при шаге Дб, он плавно регулирует выходной сигнал.
Данная конструкция подстраивает частоту генератора СВЧ под кратную внешнего генератора. Режим работы микросхемы соответствует коэффициенту деления ДПД для сигнала генератора равному 1000, в то время как сигнал внешнего генератора соответствует 1. Т.е. на каждый герц частоты внешнего генератора будет приходиться 1 кГЦ генератора СВЧ.
Наладка работы сводится к установке устойчивой работы ФАПЧ, где фазовый шум для полного диапазона частот генератора будет минимальным. Питание устройства может осуществляться с помощью любого стабилизированного блока напряжения от 13 до 15 В или блоком нестабилизированного напряжения от 15 до 20В.
Прошивка для микроконтроллера
:10000000160A2800080C27000304680303060A0ADE
:1000100026040В0А26050605000000000604Е70278
:10002000040A0008460500004604000840000600D7
:100030001F0C02006600030C0109B00C0109120C30
:1000400001091209000С0109000С0109040С010945
:100050001209000C01097D0C0109010C01091209AA
:10006000030С0109В00С0109120С0109120903006В
:02lFFE00EA0FE8
:00000001FF
]]>Отсутствие измерительного генератора создает проблемы при плановом обслуживании, настройке, ремонте антенн и другой аппаратуры диапазоном действия от 300Мгц и выше. Генератор СВЧ можно изготовить самостоятельно, что служит решением данной проблемы.
Общий принцип действия такого генератора базируется на применении системы ФАПЧ (фазовой автоматической подстройке частоты). Существенным ее недостатком является невозможность плавной перестройке по частоте. Использование генератора СВЧ значимо расширится, если он будет сконструирован как приставка к генератору ВЧ, который будет выступать генератором образцовой частоты. Изменение частоты генератора ВЧ дает возможность регулировки генератора СВЧ. Такой генератор может работать в диапазоне частот мобильной (сотовой) связи и устройств радиолюбителей.
В основе действия приставки заложен принцип управления режимом функционирования микросхемы синтезатора частоты DA4 микроконтроллером DD1. Специализированная микросборка автоматических генераторов с электронной подстройкой частоты DA5 и DA6 используется как генератор СВЧ диапазона. Интегральные стабилизаторы напряжения DA2 (12 В) и DA3 (5 В) делают постоянным напряжение узлов питания. Внешний генератор ВЧ используется как источник сигнала образцовой частоты. Дополнительный каскад увеличивает управляющее напряжение о максимального значения в 12 В.
Генератор СВЧ имеет основной и дополнительный выход. Уровень сигнала основного соответствует 0 дБ мВт, дополнительного - 60 дБ мВт. Внешний ступенчатый аттенюатор должен обладать уровнем сигнала от 0 до 70 дБ, при шаге Дб, он плавно регулирует выходной сигнал.
Данная конструкция подстраивает частоту генератора СВЧ под кратную внешнего генератора. Режим работы микросхемы соответствует коэффициенту деления ДПД для сигнала генератора равному 1000, в то время как сигнал внешнего генератора соответствует 1. Т.е. на каждый герц частоты внешнего генератора будет приходиться 1 кГЦ генератора СВЧ.
Наладка работы сводится к установке устойчивой работы ФАПЧ, где фазовый шум для полного диапазона частот генератора будет минимальным. Питание устройства может осуществляться с помощью любого стабилизированного блока напряжения от 13 до 15 В или блоком нестабилизированного напряжения от 15 до 20В.
Прошивка для микроконтроллера
:10000000160A2800080C27000304680303060A0ADE
:1000100026040В0А26050605000000000604Е70278
:10002000040A0008460500004604000840000600D7
:100030001F0C02006600030C0109B00C0109120C30
:1000400001091209000С0109000С0109040С010945
:100050001209000C01097D0C0109010C01091209AA
:10006000030С0109В00С0109120С0109120903006В
:02lFFE00EA0FE8
:00000001FF
]]>Операционный усилитель – представляет собой схему, собранную из полупроводниковых элементов оформленную в интегральном исполнении и имеющую высокий коэффициент усиления. Такая схема имеет 2 входа и один общий выход. Входы имеют названия «прямой» и «инверсный»
Операционные усилители нашли широкое применение с схемах генераторов различных сигналов, фильтрах, усилителях, в системах измерения различных параметров таких как температура, освещенность, влажность и т.д.
Все знают, как работают весы с двумя чашами. Аналогичным образом работает и наш усилитель. Если на вход подать два напряжения различного потенциала то «перевесит» тот у кого потенциал выше и на выходе мы получим определенное значение, полярность которого будет зависит от того какой вход «перевесил» прямой или инверсный, если прямой то на выходе будем иметь положительное значение в противном случае отрицательное.
Для обозначения ОУ используется обычный треугольник.
Рассмотрим схему контроля температуры воздуха с применением операционного усилителя.
На входы усилителя подаеться постоянное напряжение через резистивные делители напряжения. В цепь одного делителя подключен терморезистор, сопротивление которого зависит от температуры.
В нормальном состоянии при комнатной температуре напряжение инверсном входе 2 (точка A) больше чем на входе 3(точка B). На выходе мы имеем минимальное значение напряжения которого недостаточно для открытия транзистора VT1. Ток коллектора равен 0, лампочка VL1 не светит.
С повышением температуры сопротивление терморезистора снижается, в результате уменьшеться и напряжение в точке А. Когда напряжение в т. A станет меньше чем в точке B, на выхое появится сигнал высокого уровня что приведет к открытию транзистора, лампа VL2 загорится, сигнализируя о превышении температуры.
В схеме имеется ООС - отризательная обратная связь выполенная на резисторе R5 номиналом в 510к. Она необходима для снижения чувствительности на небольшие изменения температуры. С повышением напряжения на выходе, его часть передается на инверсный вход 2, тем самым "заставляя" ОУ понизить выходное напряжение.
Порого страбатывания схема на определенную температуру осуществляется при помощи сопротивления R4, вместо него можно поствить переменное сопротивление и подбирать нужное нам сопротивление.
После сборки и монтажа, схема должна сразу заработать, и не нуждается в настройке.
Такую схему можно использовать не только для контроля температуры в комнате но и любой другой температуры объекта к которому подключен терморезистор. К примеру можно контролирвоать температуру воды, с повышением температуры будет размыкаться цепь нагревательного элемента при помощи реле включенной в цепь коллекора.
https://www.youtube.com/watch?v=Gw5D-pLF54w
]]>Операционный усилитель – представляет собой схему, собранную из полупроводниковых элементов оформленную в интегральном исполнении и имеющую высокий коэффициент усиления. Такая схема имеет 2 входа и один общий выход. Входы имеют названия «прямой» и «инверсный»
Операционные усилители нашли широкое применение с схемах генераторов различных сигналов, фильтрах, усилителях, в системах измерения различных параметров таких как температура, освещенность, влажность и т.д.
Все знают, как работают весы с двумя чашами. Аналогичным образом работает и наш усилитель. Если на вход подать два напряжения различного потенциала то «перевесит» тот у кого потенциал выше и на выходе мы получим определенное значение, полярность которого будет зависит от того какой вход «перевесил» прямой или инверсный, если прямой то на выходе будем иметь положительное значение в противном случае отрицательное.
Для обозначения ОУ используется обычный треугольник.
Рассмотрим схему контроля температуры воздуха с применением операционного усилителя.
На входы усилителя подаеться постоянное напряжение через резистивные делители напряжения. В цепь одного делителя подключен терморезистор, сопротивление которого зависит от температуры.
В нормальном состоянии при комнатной температуре напряжение инверсном входе 2 (точка A) больше чем на входе 3(точка B). На выходе мы имеем минимальное значение напряжения которого недостаточно для открытия транзистора VT1. Ток коллектора равен 0, лампочка VL1 не светит.
С повышением температуры сопротивление терморезистора снижается, в результате уменьшеться и напряжение в точке А. Когда напряжение в т. A станет меньше чем в точке B, на выхое появится сигнал высокого уровня что приведет к открытию транзистора, лампа VL2 загорится, сигнализируя о превышении температуры.
В схеме имеется ООС - отризательная обратная связь выполенная на резисторе R5 номиналом в 510к. Она необходима для снижения чувствительности на небольшие изменения температуры. С повышением напряжения на выходе, его часть передается на инверсный вход 2, тем самым "заставляя" ОУ понизить выходное напряжение.
Порого страбатывания схема на определенную температуру осуществляется при помощи сопротивления R4, вместо него можно поствить переменное сопротивление и подбирать нужное нам сопротивление.
После сборки и монтажа, схема должна сразу заработать, и не нуждается в настройке.
Такую схему можно использовать не только для контроля температуры в комнате но и любой другой температуры объекта к которому подключен терморезистор. К примеру можно контролирвоать температуру воды, с повышением температуры будет размыкаться цепь нагревательного элемента при помощи реле включенной в цепь коллекора.
https://www.youtube.com/watch?v=Gw5D-pLF54w
]]>В интренет магазинах есть много разных вариантов индикаторов электромагнитного поля. Но зачем покупать если можно собрать самому)
Электрический сигнал низкого потенциала наведенный в антенне поступает на вход усилителя высокой частоты, выполненного на транзисторе VT1, подключенного по схеме с общей базой и работающего в качестве усилителя с селективностью.
В коллекторную цепь транзистора включен колебательный контур L1-C1. Сигнал с катушки через поступает на диод. который выполняет фукция детектирования. Конденсатор C3 предназначен для фильтрации по высокочастотным составляющим. Фильтр низких частот выполнен на связке R4-C4. После фильтра низких частот электрический сигнал поступает на стрелочный индикатор.
Для изготовления катушки нам понадобится каркас диаметром 7 мм с подстроечным сердечником, положение которого можно регулировать. Меняя положение сердечника мы тем самым регулируем резонансную частоту контура. Для намотки используется провод ПЭВ-1 диаметром в 0.5 мм. Наматывать нужно виток к витку и сделать 10 витков.
Антенна выполнена из проволоки длиной порядка 50 см.
Существуют намного проще схемы без предварительного усиления и источника питания. К примеру для поиска источника высокочастотног сигнала с частотой до 400 МГц можно использовать схемы индикатора магнитного поля представленные на рисунке ниже.
]]>
В интренет магазинах есть много разных вариантов индикаторов электромагнитного поля. Но зачем покупать если можно собрать самому)
Электрический сигнал низкого потенциала наведенный в антенне поступает на вход усилителя высокой частоты, выполненного на транзисторе VT1, подключенного по схеме с общей базой и работающего в качестве усилителя с селективностью.
В коллекторную цепь транзистора включен колебательный контур L1-C1. Сигнал с катушки через поступает на диод. который выполняет фукция детектирования. Конденсатор C3 предназначен для фильтрации по высокочастотным составляющим. Фильтр низких частот выполнен на связке R4-C4. После фильтра низких частот электрический сигнал поступает на стрелочный индикатор.
Для изготовления катушки нам понадобится каркас диаметром 7 мм с подстроечным сердечником, положение которого можно регулировать. Меняя положение сердечника мы тем самым регулируем резонансную частоту контура. Для намотки используется провод ПЭВ-1 диаметром в 0.5 мм. Наматывать нужно виток к витку и сделать 10 витков.
Антенна выполнена из проволоки длиной порядка 50 см.
Существуют намного проще схемы без предварительного усиления и источника питания. К примеру для поиска источника высокочастотног сигнала с частотой до 400 МГц можно использовать схемы индикатора магнитного поля представленные на рисунке ниже.
]]>
Данный детектор металла реагирует на приближение металлических предметов к антенне WA1. Принцип действия основан на регистрации изменения частоты колебательного контура. Антенна является частью колебательного контура, при приближении металлического предмета к антенне происходит изменение индуктивности катушки, и как следствии изменения частоты колебательного контура.
Отдетектированный сигнал поступает на базу транзистора VT2, который в свою очередь влияет на ток базы транзистора VT3. Резистор R9 ограничивающий, необходи м для защиты светодиода HL1.Чем ближе предмет тем интенсивнее загорается светодиод HL1.
Антенна представляет собой катушку намотанную на каркас 8мм с длиной 80мм. Сердечником являеться феррит 600НН. Для намотки используется провод ПЭВ-2 диаметром 0.25мм.
Настройка осуществляется переменным резистором R3 который регилирует порог срабатывания. И подстроечным конденсатором C1, который регулирует частоту колебательного контура. Комбинирую значения этих двух элементов достигается максимальная чувствительность прибора.
]]>Данный детектор металла реагирует на приближение металлических предметов к антенне WA1. Принцип действия основан на регистрации изменения частоты колебательного контура. Антенна является частью колебательного контура, при приближении металлического предмета к антенне происходит изменение индуктивности катушки, и как следствии изменения частоты колебательного контура.
Отдетектированный сигнал поступает на базу транзистора VT2, который в свою очередь влияет на ток базы транзистора VT3. Резистор R9 ограничивающий, необходи м для защиты светодиода HL1.Чем ближе предмет тем интенсивнее загорается светодиод HL1.
Антенна представляет собой катушку намотанную на каркас 8мм с длиной 80мм. Сердечником являеться феррит 600НН. Для намотки используется провод ПЭВ-2 диаметром 0.25мм.
Настройка осуществляется переменным резистором R3 который регилирует порог срабатывания. И подстроечным конденсатором C1, который регулирует частоту колебательного контура. Комбинирую значения этих двух элементов достигается максимальная чувствительность прибора.
]]>В схема использует только один канал операционного усилителя, питание осуществляется от батареи в 9 Вольт.Микрофон подойдет любой электретный.
Выходной каскад передатчика выполнен на одном транзисторе KT3109A, частота транзистора 800 МГц рабочая мощность 0.15-0.2 Вт. Схема работает довольно стабильно частота практически не плавает.
Для подсройки работы жучка используется конденсатор С6. Передаваемый сигнал находится в интревале 94-99 МГц.
Для изготовления катушки используется провод диаметром 0.8мм, им необходимо сделать 6 витков на оправе 5мм. Именно такая конструкция обеспечит требуемую индуктивность катушки.
Для антенны подойдет кусок многожильного провода длиной от 10 до 30 см.
]]>В схема использует только один канал операционного усилителя, питание осуществляется от батареи в 9 Вольт.Микрофон подойдет любой электретный.
Выходной каскад передатчика выполнен на одном транзисторе KT3109A, частота транзистора 800 МГц рабочая мощность 0.15-0.2 Вт. Схема работает довольно стабильно частота практически не плавает.
Для подсройки работы жучка используется конденсатор С6. Передаваемый сигнал находится в интревале 94-99 МГц.
Для изготовления катушки используется провод диаметром 0.8мм, им необходимо сделать 6 витков на оправе 5мм. Именно такая конструкция обеспечит требуемую индуктивность катушки.
Для антенны подойдет кусок многожильного провода длиной от 10 до 30 см.
]]>Документация (datasheet) на A4988
Для настройки определенного уровня дробления нужно на входе MS1,MS2,MS3 установить определенную комбинацию уровней.
Таблица настройки на необходимое дробление:
Выводы драйвера | Дробление | ||
MS1 | MS2 | MS3 | - |
L | L | L | 1 |
H | L | L | 1/2 |
L | H | L | 1/4 |
H | H | L | 1/8 |
H | H | H | 1/16 |
При сборке изначально использовал для питания силовой части блок питания от модема на 12 Вольт, но схема категорически отказывалась работать. После длительных мучений решение было найдено. Оказывается качество выходного напряжение с блока питания оставляет желать наилучшего - т.е высокий уровень нелинейных искажений, а в микросхеме стоит то ли блокиратор то ли еще что то поэтому она и не хотела работать.
После того как подключил батарейку на 9 Вольт, все заработало должным образом. Производитель рекомендут ставить на питании силовой части дополнительно еще и конденсатор.
Шаговик использовал от флоппи дисковода, можно использовать абсолютно любой главное что бы ток не превысил 2 А, иначе драйвер может не выдержать.
На вход step подаются сигнал с определенной частотой которые отвечают за "шаги" двигателя, к нему я подключил 13-й вывод от arduino, вывод DIR подключается к 12-му выводу данный вывод отвечает за направление вращения шаговика.
Код программы прост до безобразия, тут нет никаких библиотек и замудренных регистров и таймеров.
int stp = 13; //connect pin 13 to step int dir = 12; // connect pin 12 to dir int a = 0; // gen counter void setup() { pinMode(stp, OUTPUT); pinMode(dir, OUTPUT); } void loop() { if (a < 200) //sweep 200 step in dir 1 { a++; digitalWrite(stp, HIGH); delay(10); digitalWrite(stp, LOW); delay(10); } else { digitalWrite(dir, HIGH); a++; digitalWrite(stp, HIGH); delay(10); digitalWrite(stp, LOW); delay(10); if (a>400) //sweep 200 in dir 2 { a = 0; digitalWrite(dir, LOW); } } }
Думаю тут никаких пояснений не нужно. Сначала мы крутим в одну сторону потом в другую. Arduino отлично подходит для управления шаговым двигателем.
https://www.youtube.com/watch?v=3Lc7anF1fUw&feature=youtu.be
]]>Документация (datasheet) на A4988
Для настройки определенного уровня дробления нужно на входе MS1,MS2,MS3 установить определенную комбинацию уровней.
Таблица настройки на необходимое дробление:
Выводы драйвера | Дробление | ||
MS1 | MS2 | MS3 | - |
L | L | L | 1 |
H | L | L | 1/2 |
L | H | L | 1/4 |
H | H | L | 1/8 |
H | H | H | 1/16 |
При сборке изначально использовал для питания силовой части блок питания от модема на 12 Вольт, но схема категорически отказывалась работать. После длительных мучений решение было найдено. Оказывается качество выходного напряжение с блока питания оставляет желать наилучшего - т.е высокий уровень нелинейных искажений, а в микросхеме стоит то ли блокиратор то ли еще что то поэтому она и не хотела работать.
После того как подключил батарейку на 9 Вольт, все заработало должным образом. Производитель рекомендут ставить на питании силовой части дополнительно еще и конденсатор.
Шаговик использовал от флоппи дисковода, можно использовать абсолютно любой главное что бы ток не превысил 2 А, иначе драйвер может не выдержать.
На вход step подаются сигнал с определенной частотой которые отвечают за "шаги" двигателя, к нему я подключил 13-й вывод от arduino, вывод DIR подключается к 12-му выводу данный вывод отвечает за направление вращения шаговика.
Код программы прост до безобразия, тут нет никаких библиотек и замудренных регистров и таймеров.
int stp = 13; //connect pin 13 to step int dir = 12; // connect pin 12 to dir int a = 0; // gen counter void setup() { pinMode(stp, OUTPUT); pinMode(dir, OUTPUT); } void loop() { if (a < 200) //sweep 200 step in dir 1 { a++; digitalWrite(stp, HIGH); delay(10); digitalWrite(stp, LOW); delay(10); } else { digitalWrite(dir, HIGH); a++; digitalWrite(stp, HIGH); delay(10); digitalWrite(stp, LOW); delay(10); if (a>400) //sweep 200 in dir 2 { a = 0; digitalWrite(dir, LOW); } } }
Думаю тут никаких пояснений не нужно. Сначала мы крутим в одну сторону потом в другую. Arduino отлично подходит для управления шаговым двигателем.
https://www.youtube.com/watch?v=3Lc7anF1fUw&feature=youtu.be
]]>Схема включает минимальное число радиоэлементов и вссего один транзистор. В данном пример использован мощный транзистор KT808 АМ npn типа.
Первичная обмотка в коллекторе состоит из 5-6 витков медного одножильного провода большого сечения,порядка 5мм. Наматываеться на каркас диаметром 10см.
Вторичная обмотка из провода диаметро 0.5 мм и содерижт 1300 витков. Исользуется провод 0.12мм.Диаметр каркаса порядка 15см. Такая конструкция образует повышающий трансформатор. Сердечник в катушке отсутсвует.
При правильной сборке на вторичной проводке должно появится свечение.
Для стабильной работы схемы и предотвращения перегрева транзистора, его необходимо установить на охлождающий радиатор. Вместо приведенного на схеме транзистора KT808AM можно использовать другие,к примеру КТ805, КТ819 или КТ827.
Даташит (datasheet) транзистора КТ808АМ
Переменный резистор R1 номиналом 10 кОм предназначен для настройки рабочей точки транзистора.
Схема качера работает в диапазоне входного напряжения от 12 до 30В.
Очнь важно соблюдать технику безопасности при запуске качера. Правильно собранный качер обладает достаточной мощностью для того чтобы отставить серьезные ожоги на коже.
https://www.youtube.com/watch?v=p_czTAJGYQE
]]>Схема включает минимальное число радиоэлементов и вссего один транзистор. В данном пример использован мощный транзистор KT808 АМ npn типа.
Первичная обмотка в коллекторе состоит из 5-6 витков медного одножильного провода большого сечения,порядка 5мм. Наматываеться на каркас диаметром 10см.
Вторичная обмотка из провода диаметро 0.5 мм и содерижт 1300 витков. Исользуется провод 0.12мм.Диаметр каркаса порядка 15см. Такая конструкция образует повышающий трансформатор. Сердечник в катушке отсутсвует.
При правильной сборке на вторичной проводке должно появится свечение.
Для стабильной работы схемы и предотвращения перегрева транзистора, его необходимо установить на охлождающий радиатор. Вместо приведенного на схеме транзистора KT808AM можно использовать другие,к примеру КТ805, КТ819 или КТ827.
Даташит (datasheet) транзистора КТ808АМ
Переменный резистор R1 номиналом 10 кОм предназначен для настройки рабочей точки транзистора.
Схема качера работает в диапазоне входного напряжения от 12 до 30В.
Очнь важно соблюдать технику безопасности при запуске качера. Правильно собранный качер обладает достаточной мощностью для того чтобы отставить серьезные ожоги на коже.
https://www.youtube.com/watch?v=p_czTAJGYQE
]]>Представленная схема лабораторного блока питания имеет следующие характеристики:
Микросхема DA1 необходима для ограничения выходного тока на определенное значение, которое задается при помощи резистора R7. При указанных на схеме номиналах элементов в случае превышения максимального тока (перегрузки) на 0.2 ампер, автоматически срабатывает защита по току и выходное напряжение "сбрасывается" в 0.
В случае перегрузки автоматически загарается светодиод HL1, оповещая о перегрузки схемы или о коротком замыкании. Такая индикация существует во многих заводских лабораторных блоках питания.
Для стабилизации выходного напряжения используется стабилитрон VD5, который параллельно подкючен к переменному резистору R16. При помощи которого осуществляется регилировка выходного напряжения.
]]>Представленная схема лабораторного блока питания имеет следующие характеристики:
Микросхема DA1 необходима для ограничения выходного тока на определенное значение, которое задается при помощи резистора R7. При указанных на схеме номиналах элементов в случае превышения максимального тока (перегрузки) на 0.2 ампер, автоматически срабатывает защита по току и выходное напряжение "сбрасывается" в 0.
В случае перегрузки автоматически загарается светодиод HL1, оповещая о перегрузки схемы или о коротком замыкании. Такая индикация существует во многих заводских лабораторных блоках питания.
Для стабилизации выходного напряжения используется стабилитрон VD5, который параллельно подкючен к переменному резистору R16. При помощи которого осуществляется регилировка выходного напряжения.
]]>Схема содержит всего 3 лампы и имеет 2 канала.На лампе 6Н23П выполен каскад предварительного усиления, сигнал с которого через два конденсатора К78-2 поступает на два канала.Регилировка баланса осуществляется при помощи переменного резистора 1к.
Трансформаторы ТН36-127/220-50 и ТН39-127/220-50 являются выходными трансформаторами, которые подключаются в анодную цепь ламп 6П43П. В их вторичную обмотке подключается низкомный динамик 8 Ом.
]]>Схема содержит всего 3 лампы и имеет 2 канала.На лампе 6Н23П выполен каскад предварительного усиления, сигнал с которого через два конденсатора К78-2 поступает на два канала.Регилировка баланса осуществляется при помощи переменного резистора 1к.
Трансформаторы ТН36-127/220-50 и ТН39-127/220-50 являются выходными трансформаторами, которые подключаются в анодную цепь ламп 6П43П. В их вторичную обмотке подключается низкомный динамик 8 Ом.
]]>
]]>
]]>
В представленной схеме имеется ООС по току, сигнал с выхода поступает на инверсный вход микросхемы.
]]>В представленной схеме имеется ООС по току, сигнал с выхода поступает на инверсный вход микросхемы.
]]>Электрический сигнал с микрофона через конденсатор C2 подается на базовый вывод транзистора Q1. Выбор рабочийточки осуществляеться при помощи сопротивления R3, номинал данного тиранзистора подбирается таким образом, чтобы напряжение между коллектором и эмитером транзистора было половина от напряжения источника питания.
С выхода транзистора электрический сигнал попадает на варикап. Смещение на варикапе достигаеться при помощи сопротивлений R5 и R6. В результате входного звукового напряжения емкость варикапа изменяется в такт входного сигнала. Езменение емкости влечет за собойизменение передающей частоты. Таким образом и осуществляется частотная модуляция.
Сцелью уменьшения влияния высокочастотной составляющей на входные цепи звуковой частоты, в схеме существуют конденсатор С11 и катушка(дроссель) L1.
В схеме используется дросель на с индуктивность 100мГн. Для изготовления катушки L2 нам понадобится каркас 5мм на нем необходимосделать 4 витка проводом с диаметром 0.5мм
]]>Электрический сигнал с микрофона через конденсатор C2 подается на базовый вывод транзистора Q1. Выбор рабочийточки осуществляеться при помощи сопротивления R3, номинал данного тиранзистора подбирается таким образом, чтобы напряжение между коллектором и эмитером транзистора было половина от напряжения источника питания.
С выхода транзистора электрический сигнал попадает на варикап. Смещение на варикапе достигаеться при помощи сопротивлений R5 и R6. В результате входного звукового напряжения емкость варикапа изменяется в такт входного сигнала. Езменение емкости влечет за собойизменение передающей частоты. Таким образом и осуществляется частотная модуляция.
Сцелью уменьшения влияния высокочастотной составляющей на входные цепи звуковой частоты, в схеме существуют конденсатор С11 и катушка(дроссель) L1.
В схеме используется дросель на с индуктивность 100мГн. Для изготовления катушки L2 нам понадобится каркас 5мм на нем необходимосделать 4 витка проводом с диаметром 0.5мм
]]>Технические характеристики микросхемы
Схеме содержит минимум деталей, все их модно расположить на печатной плате размером 55 на 40 мм. Схема усилителя на микросхеме tda7386 не нуждается вн настройке и сразу должна заработать после подачи на нее питания и звукового сигнала. В связи с большой выходной мощностью микросхемы, на нее необходимо уставливать охлаждающий радиатор.
https://www.youtube.com/watch?v=WdOr7v88jvI
]]>Технические характеристики микросхемы
Схеме содержит минимум деталей, все их модно расположить на печатной плате размером 55 на 40 мм. Схема усилителя на микросхеме tda7386 не нуждается вн настройке и сразу должна заработать после подачи на нее питания и звукового сигнала. В связи с большой выходной мощностью микросхемы, на нее необходимо уставливать охлаждающий радиатор.
https://www.youtube.com/watch?v=WdOr7v88jvI
]]>Представленная схема усилителя на микросхеме tda1557q содержит помимо микросхемы всего 5 элементов : два резистора и 3 конденсатора. Работает данный усилитель в режиме класса B и имеет 2 канала по 20 Вт.
Входные конденсаторы порядка 0.33мкФ , фильтрующий конденсатор 16в 2000мкФ. Для отвода тепла от микросхемы на нее устанавливается радиатор. Для этой цели существуют специальные вырезы.
https://www.youtube.com/watch?v=rvtEroLqfP0
]]>Представленная схема усилителя на микросхеме tda1557q содержит помимо микросхемы всего 5 элементов : два резистора и 3 конденсатора. Работает данный усилитель в режиме класса B и имеет 2 канала по 20 Вт.
Входные конденсаторы порядка 0.33мкФ , фильтрующий конденсатор 16в 2000мкФ. Для отвода тепла от микросхемы на нее устанавливается радиатор. Для этой цели существуют специальные вырезы.
https://www.youtube.com/watch?v=rvtEroLqfP0
]]>Данный протокол или интерфейс обеспечивате качественный прием и передачу информации (данных) от нескольких различных устройств, к примеру можно измерять температуру и одновременно управлять цифровым потенциометром. Общение происходит програмно, алгоритм общения с датчиком по протоколу I2С записывается в программу Arduino (скетч).
Существуют специальные переходники которые позволяют подключать другие устройства, к примеру имея переходник можно по двум проводом подключить arduino дисплей 1602 (16x2) LCD по протоколу i2c. По запросу LCD i2c на просторах интернета куча информации, вот пример того как должен выглядить переходник под дисплей http://www.ebay.com/itm/310565362720
При работе по этому интерфейсу, одно устройство является ведущим а другое ведомым. Ведущее устройство инициализирует передачу и генерирует сигналы необходимые для синхронизации.
Вемое в свою очередь зависит от ведущего, и начинает передачу данных только после получения команды от ведущего устройства.
Устройство подключенное к шине I2C имеет свой уникальный адрес. Именно по этому адресу осуществляется обращения ведущего устройства.
Подключение осуществляется по двум проводам: SCL- сигнала тактирования или тактового сигнала и SDA - сигнала данных. При этом к шине I2C можно подключать любое количество различных датчиков (ведомых устройств), имеющие свои уникальные id.
Знакомство Arduino и I2C начинается со специально написанной для этих целей библиотеки, имя которой Wire. Перед началом работы ее необходимо импортировать в проект,она имеет специальные команды или методы для "общения" с устройствами.
Для обмена данными с устройствами нужно знать их id. Различные устройства могут иметь разную длину адреса (id) 8 или 7 бит.В библиотеке Wire используется 7-ми битная адресация.
Подключение ведомых устройств осуществляется к выводам на плате Arduino. Каждая версия Arduino имеет свои выводы I2C
Данный пример показывает как устанавливать определенное значение сопротивление в цифровом потенциометре при помощи библиотеки Wire. Установка определенного значения осуществляется при помощи переменной val.
#include <Wire.h> void setup() { Wire.begin(); // join i2c bus (address optional for master) } byte val = 0; void loop() { Wire.beginTransmission(44); // transmit to device #44 (0x2c) // device address is specified in datasheet Wire.write(byte(0x00)); // sends instruction byte Wire.write(val); // sends potentiometer value byte Wire.endTransmission(); // stop transmitting val++; // increment value if (val == 64) // if reached 64th position (max) { val = 0; // start over from lowest value } delay(500); }
https://www.youtube.com/watch?v=RcAg9XpgALI
https://www.youtube.com/watch?v=aYT6OWjSlpM
Вопросы по Arduino можно обсудить на форуме по Arduino
]]>Данный протокол или интерфейс обеспечивате качественный прием и передачу информации (данных) от нескольких различных устройств, к примеру можно измерять температуру и одновременно управлять цифровым потенциометром. Общение происходит програмно, алгоритм общения с датчиком по протоколу I2С записывается в программу Arduino (скетч).
Существуют специальные переходники которые позволяют подключать другие устройства, к примеру имея переходник можно по двум проводом подключить arduino дисплей 1602 (16x2) LCD по протоколу i2c. По запросу LCD i2c на просторах интернета куча информации, вот пример того как должен выглядить переходник под дисплей http://www.ebay.com/itm/310565362720
При работе по этому интерфейсу, одно устройство является ведущим а другое ведомым. Ведущее устройство инициализирует передачу и генерирует сигналы необходимые для синхронизации.
Вемое в свою очередь зависит от ведущего, и начинает передачу данных только после получения команды от ведущего устройства.
Устройство подключенное к шине I2C имеет свой уникальный адрес. Именно по этому адресу осуществляется обращения ведущего устройства.
Подключение осуществляется по двум проводам: SCL- сигнала тактирования или тактового сигнала и SDA - сигнала данных. При этом к шине I2C можно подключать любое количество различных датчиков (ведомых устройств), имеющие свои уникальные id.
Знакомство Arduino и I2C начинается со специально написанной для этих целей библиотеки, имя которой Wire. Перед началом работы ее необходимо импортировать в проект,она имеет специальные команды или методы для "общения" с устройствами.
Для обмена данными с устройствами нужно знать их id. Различные устройства могут иметь разную длину адреса (id) 8 или 7 бит.В библиотеке Wire используется 7-ми битная адресация.
Подключение ведомых устройств осуществляется к выводам на плате Arduino. Каждая версия Arduino имеет свои выводы I2C
Данный пример показывает как устанавливать определенное значение сопротивление в цифровом потенциометре при помощи библиотеки Wire. Установка определенного значения осуществляется при помощи переменной val.
#include <Wire.h> void setup() { Wire.begin(); // join i2c bus (address optional for master) } byte val = 0; void loop() { Wire.beginTransmission(44); // transmit to device #44 (0x2c) // device address is specified in datasheet Wire.write(byte(0x00)); // sends instruction byte Wire.write(val); // sends potentiometer value byte Wire.endTransmission(); // stop transmitting val++; // increment value if (val == 64) // if reached 64th position (max) { val = 0; // start over from lowest value } delay(500); }
https://www.youtube.com/watch?v=RcAg9XpgALI
https://www.youtube.com/watch?v=aYT6OWjSlpM
Вопросы по Arduino можно обсудить на форуме по Arduino
]]>Схема состоит из весьма доступных отечественных радиодеталей. Генерируемый высокочастотный сигнал с частотой порядка 90-100 МГЦ изменяестся в такт звуковой частоты. Таким образом и осуществляется частотная модуляция. Транзистор VT1 - КТ368Б9, VT2 - KT3130Б9
Это достигается зас чет изменения тока коллектора транзистора VT1, вследствии изменения тока транзистора VT2. Настройка рабочей точки транзистора производится при помощи подбора номинала транзистора R3.
Микрофон можно использовать любой электродинамический. В качестве антенны отлично выступит кусок провода длиной 10-15 см. При качественной сборки устройства радиус действия составит порядка 100 метров. Главным преимуществом представленной схемы является низкое напряжение питания всего 3 вольт, в отличии от распространенных 9-ти вольтовых схем.
Для изготовления катушки нам понадобится сделать 4 витка проводом 0,4 мм вокруг оправы 4 мм.
Важно помнить что применение данного устройства в ряде случаев является правонарушением и запрещено законодательством РФ за которое существует уголовная или административная ответственность.
]]>Схема состоит из весьма доступных отечественных радиодеталей. Генерируемый высокочастотный сигнал с частотой порядка 90-100 МГЦ изменяестся в такт звуковой частоты. Таким образом и осуществляется частотная модуляция. Транзистор VT1 - КТ368Б9, VT2 - KT3130Б9
Это достигается зас чет изменения тока коллектора транзистора VT1, вследствии изменения тока транзистора VT2. Настройка рабочей точки транзистора производится при помощи подбора номинала транзистора R3.
Микрофон можно использовать любой электродинамический. В качестве антенны отлично выступит кусок провода длиной 10-15 см. При качественной сборки устройства радиус действия составит порядка 100 метров. Главным преимуществом представленной схемы является низкое напряжение питания всего 3 вольт, в отличии от распространенных 9-ти вольтовых схем.
Для изготовления катушки нам понадобится сделать 4 витка проводом 0,4 мм вокруг оправы 4 мм.
Важно помнить что применение данного устройства в ряде случаев является правонарушением и запрещено законодательством РФ за которое существует уголовная или административная ответственность.
]]>Предаставленная схема простого металлодетектора подойдет в основном для начинающих радиолюбителей.
Микросхема к155ла3 в своем составе имеет 4 логичских элемента 2И-НЕ
Вся схема питается от 5В, напряжение подается на 14 и 7 выводы, 14-й вывод плюсовой.
Схема металлодетектора состоит из двух генераторов, один из них является поисковый в который входит поисковая катушка L2 и эталонный. Эталонный или задающий генератор самовозбуждается за счет резонанса в последовательном колебательном контуре L1-C1. Частота составляет 465 кГц.
Катушка поискового генератора состоит из 30 витков провода диаметром 0,4мм ПЭЛ, оправа катушки 200мм. Переменный конденсатор C2 необходим для настройки контура на нужную частоту.
Если частоты обоих генераторов совпадают то в динамике звук отсутствует. Как только происходит изменение частоты поискового генератора, в динамике появляется звуковой сигнал. Частота звука на выходе определяется интенсивностью отклонения частоты от эталонной.
]]>Предаставленная схема простого металлодетектора подойдет в основном для начинающих радиолюбителей.
Микросхема к155ла3 в своем составе имеет 4 логичских элемента 2И-НЕ
Вся схема питается от 5В, напряжение подается на 14 и 7 выводы, 14-й вывод плюсовой.
Схема металлодетектора состоит из двух генераторов, один из них является поисковый в который входит поисковая катушка L2 и эталонный. Эталонный или задающий генератор самовозбуждается за счет резонанса в последовательном колебательном контуре L1-C1. Частота составляет 465 кГц.
Катушка поискового генератора состоит из 30 витков провода диаметром 0,4мм ПЭЛ, оправа катушки 200мм. Переменный конденсатор C2 необходим для настройки контура на нужную частоту.
Если частоты обоих генераторов совпадают то в динамике звук отсутствует. Как только происходит изменение частоты поискового генератора, в динамике появляется звуковой сигнал. Частота звука на выходе определяется интенсивностью отклонения частоты от эталонной.
]]>Для того чтобы сделать электрошокер необходимо сначала изготовить трансформатор. Для изготовлении силового трансформатора нам понадобится ферритовый стержень диаметром 8 мм и длиной около 50 мм.
Во вторичной обмотки (обмотка 3) включены 4 диода и 4 конденсатора. Заряд конденсаторов происходит до тех пор пока не произойдет пробой воздуха между электродами.
На стержень наматывается 3 обмотки:
От двух обмоток (2-й и 1-й) необходимо сделать отводы от центра намотки.
Витки трансформатора необходимо располагать друг к другу, между каждым слоем необходимо делать изоляцию из фторопласта.
Обмотка трансформатора должны быть хорошо изолирована. Во избежании "удара" электрическим током, важно соблюдать технику безопасности при включении электрошокера.
]]>Для того чтобы сделать электрошокер необходимо сначала изготовить трансформатор. Для изготовлении силового трансформатора нам понадобится ферритовый стержень диаметром 8 мм и длиной около 50 мм.
Во вторичной обмотки (обмотка 3) включены 4 диода и 4 конденсатора. Заряд конденсаторов происходит до тех пор пока не произойдет пробой воздуха между электродами.
На стержень наматывается 3 обмотки:
От двух обмоток (2-й и 1-й) необходимо сделать отводы от центра намотки.
Витки трансформатора необходимо располагать друг к другу, между каждым слоем необходимо делать изоляцию из фторопласта.
Обмотка трансформатора должны быть хорошо изолирована. Во избежании "удара" электрическим током, важно соблюдать технику безопасности при включении электрошокера.
]]>Генератор передатчика работает по схеме индуктивной трехточки. Транзистор в схеме передатчика полевой VT1 КП313А. Модулирование осуществляется при помощи вариапа VD1 посредством сигнал поступающего с микрофона М1. Микрофон можно взять любой электретный. Варикап типа КВС111.
Катушка мотается на каркас диаметром 4 мм, проводом ПЭВ 0,44 необходимо сделать 7 витков, от 3-го витка необходимо сделать отвод.Антенная катушка связи L2 содержит 1 виток и распологается рядом с катушкой L1. Витки катушек должны быть плотно прижаты друг к другу. Сердечника и каркаса быть не должно, иначе индуктивность катушки будет другая и как следсвие передающая частота.
В качестве антенны выступает провод длиной 40-80 см, его можно свернуть чтобы уменьшит габариты.
Рабочая частота передатчика в интервале от 88 до 100 МГц. Настройка схемы осуществляется при помощи индуктивности L1.
]]>Генератор передатчика работает по схеме индуктивной трехточки. Транзистор в схеме передатчика полевой VT1 КП313А. Модулирование осуществляется при помощи вариапа VD1 посредством сигнал поступающего с микрофона М1. Микрофон можно взять любой электретный. Варикап типа КВС111.
Катушка мотается на каркас диаметром 4 мм, проводом ПЭВ 0,44 необходимо сделать 7 витков, от 3-го витка необходимо сделать отвод.Антенная катушка связи L2 содержит 1 виток и распологается рядом с катушкой L1. Витки катушек должны быть плотно прижаты друг к другу. Сердечника и каркаса быть не должно, иначе индуктивность катушки будет другая и как следсвие передающая частота.
В качестве антенны выступает провод длиной 40-80 см, его можно свернуть чтобы уменьшит габариты.
Рабочая частота передатчика в интервале от 88 до 100 МГц. Настройка схемы осуществляется при помощи индуктивности L1.
]]>Схема состоит их 4-х основных частей:
На элементе IC1.1 собран задающий или эталонный генератор, который обладает хорошей стабильностью.Отризательная обратная связь (ООС) этого генератора осуществляется за счет сопротивления R1 и катушки L1. Частота генератора зависит от параметров элементов C1,C2,C3,L1 и составляет порядка 100 кГц. Частоту контура можно подстраивать конденсатором C2.
На втором елементе микросхемы IC1.2 собран поисковый генератор, частота которого зависит от параметров элементов контура L2,C4,C5. Индуктивность катушки L2 зависит от металлических предметов находящиеся в пределах ее "зоны видимости". В следствии изменения индуктивности катушки меняется частота поискового контура.
Полученный такими образом частоты обеих генераторов поступают на вход третьего элемента IC1.3 в котором происходят операции смешения этих двух частот. Наибольшее значение будет иметь сигнал разностной частоты, для уменьшения шумов и лишних гармоник используется цепь R3,C6.
Схема питается от батареии в 9 В, на выходе с микросхемы ток имеет достаточную мощность и напрямую подается на динамик BF1.
]]>Схема состоит их 4-х основных частей:
На элементе IC1.1 собран задающий или эталонный генератор, который обладает хорошей стабильностью.Отризательная обратная связь (ООС) этого генератора осуществляется за счет сопротивления R1 и катушки L1. Частота генератора зависит от параметров элементов C1,C2,C3,L1 и составляет порядка 100 кГц. Частоту контура можно подстраивать конденсатором C2.
На втором елементе микросхемы IC1.2 собран поисковый генератор, частота которого зависит от параметров элементов контура L2,C4,C5. Индуктивность катушки L2 зависит от металлических предметов находящиеся в пределах ее "зоны видимости". В следствии изменения индуктивности катушки меняется частота поискового контура.
Полученный такими образом частоты обеих генераторов поступают на вход третьего элемента IC1.3 в котором происходят операции смешения этих двух частот. Наибольшее значение будет иметь сигнал разностной частоты, для уменьшения шумов и лишних гармоник используется цепь R3,C6.
Схема питается от батареии в 9 В, на выходе с микросхемы ток имеет достаточную мощность и напрямую подается на динамик BF1.
]]>В среде Arduino для этого есть специальная библиотека с примерами программ для работы с такими радиомодулями. Данные модули отлично подойдут для реализации проектов с дистанционным управлением и небольшим объемом передаваемых данных. Радиус действия таких модулей порядка 150 метров.
Данные датчики не используют какие либо протоколы передачи данных, все что поступает на вход data in передатчика передается приемнику. И приемник и передатчик имеют 4 вывода - земля,питание,антенна и данные.
Для того чтобы посмотреть что приходит в приемник его можно подключить к com порту компьютера. И посмотреть данные через программы мониторинга порта, можно использовать тернинал порта среды Arduino. При подключении в терминале будет непрерывный поток данных, среди которого появляются те данные что мы шлем в передатчик. Библиотека VirtualWire позволяет извлекать из этого потока данные отсылаемые передатчиком.
Характеристики передатчика:
Характеристики приемника:
Код передатчика
#include <VirtualWire.h> char *controller; void setup() { pinMode(13,OUTPUT); vw_set_ptt_inverted(true); // vw_set_tx_pin(12); vw_setup(4000);// speed of data transfer Kbps } void loop(){ controller="1" ; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13,1); delay(2000); controller="0" ; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13,0); delay(2000); }
Код приемника
#include <VirtualWire.h> void setup() { vw_set_ptt_inverted(true); // Required for DR3100 vw_set_rx_pin(12); vw_setup(4000); // Bits per sec pinMode(13, OUTPUT); vw_rx_start(); // Start the receiver PLL running } void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; if (vw_get_message(buf, &buflen)) // Non-blocking { if(buf[0]=='1'){ digitalWrite(13,1); } if(buf[0]=='0'){ digitalWrite(13,0); } } }
https://www.youtube.com/watch?v=sIiOoKZoz4Y
]]>В среде Arduino для этого есть специальная библиотека с примерами программ для работы с такими радиомодулями. Данные модули отлично подойдут для реализации проектов с дистанционным управлением и небольшим объемом передаваемых данных. Радиус действия таких модулей порядка 150 метров.
Данные датчики не используют какие либо протоколы передачи данных, все что поступает на вход data in передатчика передается приемнику. И приемник и передатчик имеют 4 вывода - земля,питание,антенна и данные.
Для того чтобы посмотреть что приходит в приемник его можно подключить к com порту компьютера. И посмотреть данные через программы мониторинга порта, можно использовать тернинал порта среды Arduino. При подключении в терминале будет непрерывный поток данных, среди которого появляются те данные что мы шлем в передатчик. Библиотека VirtualWire позволяет извлекать из этого потока данные отсылаемые передатчиком.
Характеристики передатчика:
Характеристики приемника:
Код передатчика
#include <VirtualWire.h> char *controller; void setup() { pinMode(13,OUTPUT); vw_set_ptt_inverted(true); // vw_set_tx_pin(12); vw_setup(4000);// speed of data transfer Kbps } void loop(){ controller="1" ; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13,1); delay(2000); controller="0" ; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13,0); delay(2000); }
Код приемника
#include <VirtualWire.h> void setup() { vw_set_ptt_inverted(true); // Required for DR3100 vw_set_rx_pin(12); vw_setup(4000); // Bits per sec pinMode(13, OUTPUT); vw_rx_start(); // Start the receiver PLL running } void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; if (vw_get_message(buf, &buflen)) // Non-blocking { if(buf[0]=='1'){ digitalWrite(13,1); } if(buf[0]=='0'){ digitalWrite(13,0); } } }
https://www.youtube.com/watch?v=sIiOoKZoz4Y
]]>Даташит транзистров TIP142,TIP147
Мощность в 100 Вт может быть достигнута только при напряжении в 45 В, при меньшем напряжении соответсвено мощность будет ниже. Если после запуска качество звука будет плохим, то можно попробывать добавить резистор между диодами D1,D2.
Транзисторы должны быть установлены на охлаждающие радиаторы, их конструкция это позволяет.
Важно правильно расположить детели при сборке усилителя. Неправильная сборка может привести к самовозбуждению усилителя при котором могут быть достигнуты токи способные вывести из строя транзисторы.
]]>Даташит транзистров TIP142,TIP147
Мощность в 100 Вт может быть достигнута только при напряжении в 45 В, при меньшем напряжении соответсвено мощность будет ниже. Если после запуска качество звука будет плохим, то можно попробывать добавить резистор между диодами D1,D2.
Транзисторы должны быть установлены на охлаждающие радиаторы, их конструкция это позволяет.
Важно правильно расположить детели при сборке усилителя. Неправильная сборка может привести к самовозбуждению усилителя при котором могут быть достигнуты токи способные вывести из строя транзисторы.
]]>Характеристики модуля
unsigned char i; unsigned char j; int Max7219_pinCLK = 10; int Max7219_pinCS = 9; int Max7219_pinDIN = 8; unsigned char disp1[19][8]={ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x60, 0x80, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x60, 0x90, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x60, 0x90, 0x88, 0x40, 0x40, 0x00, 0x00, 0x00, 0x60, 0x90, 0x88, 0x44, 0x40, 0x00, 0x00, 0x00, 0x60, 0x90, 0x88, 0x44, 0x44, 0x00, 0x00, 0x00, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x00, 0x00, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x10, 0x00, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x10, 0x20, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x10, 0x60, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x90, 0x60, 0x60, 0x90, 0x88, 0x44, 0x44, 0x88, 0x90, 0x60 }; void Write_Max7219_byte(unsigned char DATA) { unsigned char i; digitalWrite(Max7219_pinCS,LOW); for(i=8;i>=1;i--) { digitalWrite(Max7219_pinCLK,LOW); digitalWrite(Max7219_pinDIN,DATA&0x80); DATA = DATA<<1; digitalWrite(Max7219_pinCLK,HIGH); } } void Write_Max7219(unsigned char address,unsigned char dat) { digitalWrite(Max7219_pinCS,LOW); Write_Max7219_byte(address); Write_Max7219_byte(dat); digitalWrite(Max7219_pinCS,HIGH); } void Init_MAX7219(void) { Write_Max7219(0x09, 0x00); Write_Max7219(0x0a, 0x03); Write_Max7219(0x0b, 0x07); Write_Max7219(0x0c, 0x01); Write_Max7219(0x0f, 0x00); } void setup() { pinMode(Max7219_pinCLK,OUTPUT); pinMode(Max7219_pinCS,OUTPUT); pinMode(Max7219_pinDIN,OUTPUT); delay(50); Init_MAX7219(); } void loop() { for(j=0;j<19;j++) { for(i=1;i<9;i++) Write_Max7219(i,disp1[j][i-1]); delay(500); } }]]>
Характеристики модуля
unsigned char i; unsigned char j; int Max7219_pinCLK = 10; int Max7219_pinCS = 9; int Max7219_pinDIN = 8; unsigned char disp1[19][8]={ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x60, 0x80, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x60, 0x90, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x60, 0x90, 0x88, 0x40, 0x40, 0x00, 0x00, 0x00, 0x60, 0x90, 0x88, 0x44, 0x40, 0x00, 0x00, 0x00, 0x60, 0x90, 0x88, 0x44, 0x44, 0x00, 0x00, 0x00, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x00, 0x00, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x10, 0x00, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x10, 0x20, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x10, 0x60, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x90, 0x60, 0x60, 0x90, 0x88, 0x44, 0x44, 0x88, 0x90, 0x60 }; void Write_Max7219_byte(unsigned char DATA) { unsigned char i; digitalWrite(Max7219_pinCS,LOW); for(i=8;i>=1;i--) { digitalWrite(Max7219_pinCLK,LOW); digitalWrite(Max7219_pinDIN,DATA&0x80); DATA = DATA<<1; digitalWrite(Max7219_pinCLK,HIGH); } } void Write_Max7219(unsigned char address,unsigned char dat) { digitalWrite(Max7219_pinCS,LOW); Write_Max7219_byte(address); Write_Max7219_byte(dat); digitalWrite(Max7219_pinCS,HIGH); } void Init_MAX7219(void) { Write_Max7219(0x09, 0x00); Write_Max7219(0x0a, 0x03); Write_Max7219(0x0b, 0x07); Write_Max7219(0x0c, 0x01); Write_Max7219(0x0f, 0x00); } void setup() { pinMode(Max7219_pinCLK,OUTPUT); pinMode(Max7219_pinCS,OUTPUT); pinMode(Max7219_pinDIN,OUTPUT); delay(50); Init_MAX7219(); } void loop() { for(j=0;j<19;j++) { for(i=1;i<9;i++) Write_Max7219(i,disp1[j][i-1]); delay(500); } }]]>
Рассмотри основные функции данной библиотеки:
Запуск и инициализация библиотеки
void begin();
void begin(long);
long-cкорость обмена данными, по умолчанию имеет значение 57600.
Печать версии
voidprintVersion(void);
Передает компьютеру информацию о версии протокола.
Сигнализация верcии протокола
void blinkVersion(void);
Данные метод промигивает версию протокола на 13-м пине.
Отправка и версии и прошивки на ПК
void printFirmwareVersion(void);
Установка названия и версии прошивки
void setFirmwareNameAndVersion(const char *name, byte major, byte minor);
данные метод устанавливает название и версию прошивки исходя из названия скетча
Отправка аналоговое сообщение
void sendAnalog(byte pin, int value);
Отправка данных порта
void sendDigitalPort(byte portNumber, int portData);
Отправляет значение целого порта одним сообщением длиной в 8 бит.
void sendSysex(byte b1,byte b2, byte* bytev);
отсылаются в виде массива байт.
void sendString(const char* string);
отправка строки.
void sendString(byte command, const char* string);
отправка строки коммандного типа.
void available(void);
проверка наличии данных в буфере.
void processInput(void);
прочитать данные и отправить всем зарегистрированным функция-обработчикам.
void attach(byte command, callbackFunction newFunction);
void attach(byte command, systemResetCallbackFunction newFunction);
void attach(byte command, stringCallbackFunction newFunction);
void attach(byte command, sysexCallbackFunction newFunction);
методы установки функции обработчика для определенного типа данных.
void detach(byte command);
отмена фунции обработчика для определенного типа сообщения.
#define DIGITAL_MESSAGE 0x90 // данные цифрового порта (8-бит) #define ANALOG_MESSAGE 0xE0 // аналоговое значение пина (PWM) #define REPORT_ANALOG 0xC0 // включить/отключить отчет об аналоговом пине #define REPORT_DIGITAL 0xD0 // включить/отключить отчет о цифровом пине #define SET_PIN_MODE 0xF4 // установить режим пина: INPUT/OUTPUT/PWM/etc #define FIRMATA_STRING 0x71 // строка: stringCallbackFunction #define SYSTEM_RESET 0xFF // сообщение для перезагрузки прошивки: systemResetCallbackFunction
Пример программы которая получает и отправляет данные
#include <Firmata.h> byte analogPin; void analogWriteCallback(byte pin, int value) { pinMode(pin,OUTPUT); analogWrite(pin, value); } void setup() { Firmata.setFirmwareVersion(0, 1); Firmata.attach(ANALOG_MESSAGE, analogWriteCallback); Firmata.begin(); } void loop() { while(Firmata.available()) { Firmata.processInput(); } for(analogPin = 0; analogPin < TOTAL_ANALOG_PINS; analogPin++) { Firmata.sendAnalog(analogPin, analogRead(analogPin)); } }
#include <Firmata.h> #include <Servo.h> Servo servo9; Servo servo10; void analogWriteCallback(byte pin, int value) { if(pin == 9) servo9.write(value); if(pin == 10) servo10.write(value); } void setup() { Firmata.setFirmwareVersion(0, 2); Firmata.attach(ANALOG_MESSAGE, analogWriteCallback); servo9.attach(9); servo10.attach(10); Firmata.begin(9600); } void loop() { while(Firmata.available()) Firmata.processInput(); }
Данная программа получает пакет данных отправлеямых с компьютера через сериал соединение и управляет сервоприводами при помощи библиотеки Firmata.
Данные которые отсылаются с компьютера должны соответсвовать определенному формату или протоколу, описание протокола можно посмотреть на сайте Firmata firmata.org/wiki/Protocol.
Установка определенного значения на выходе порта
uint8_t buf[3]; buf[0] = 0x90 | pin; buf[1] = val & 0x7F; buf[2] = (val >> 7) & 0x7F; port.Write(buf, 3);
Установка аналогового значения
uint8_t buf[3]; buf[0] = 0xE0 | pin; buf[1] = val & 0x7F; buf[2] = (val >> 7) & 0x7F; port.Write(buf, 3);
Установка состояния порта
uint8_t buf[4]; buf[0] = 0xF4; buf[1] = pin; buf[2] = mode; port.Write(buf, 3);
где:
Состояние порта mode может быть следующим:
#define MODE_INPUT 0x00 #define MODE_OUTPUT 0x01 #define MODE_ANALOG 0x02 #define MODE_PWM 0x03 #define MODE_SERVO 0x04 #define MODE_SHIFT 0x05 #define MODE_I2C 0x06]]>
Рассмотри основные функции данной библиотеки:
Запуск и инициализация библиотеки
void begin();
void begin(long);
long-cкорость обмена данными, по умолчанию имеет значение 57600.
Печать версии
voidprintVersion(void);
Передает компьютеру информацию о версии протокола.
Сигнализация верcии протокола
void blinkVersion(void);
Данные метод промигивает версию протокола на 13-м пине.
Отправка и версии и прошивки на ПК
void printFirmwareVersion(void);
Установка названия и версии прошивки
void setFirmwareNameAndVersion(const char *name, byte major, byte minor);
данные метод устанавливает название и версию прошивки исходя из названия скетча
Отправка аналоговое сообщение
void sendAnalog(byte pin, int value);
Отправка данных порта
void sendDigitalPort(byte portNumber, int portData);
Отправляет значение целого порта одним сообщением длиной в 8 бит.
void sendSysex(byte b1,byte b2, byte* bytev);
отсылаются в виде массива байт.
void sendString(const char* string);
отправка строки.
void sendString(byte command, const char* string);
отправка строки коммандного типа.
void available(void);
проверка наличии данных в буфере.
void processInput(void);
прочитать данные и отправить всем зарегистрированным функция-обработчикам.
void attach(byte command, callbackFunction newFunction);
void attach(byte command, systemResetCallbackFunction newFunction);
void attach(byte command, stringCallbackFunction newFunction);
void attach(byte command, sysexCallbackFunction newFunction);
методы установки функции обработчика для определенного типа данных.
void detach(byte command);
отмена фунции обработчика для определенного типа сообщения.
#define DIGITAL_MESSAGE 0x90 // данные цифрового порта (8-бит) #define ANALOG_MESSAGE 0xE0 // аналоговое значение пина (PWM) #define REPORT_ANALOG 0xC0 // включить/отключить отчет об аналоговом пине #define REPORT_DIGITAL 0xD0 // включить/отключить отчет о цифровом пине #define SET_PIN_MODE 0xF4 // установить режим пина: INPUT/OUTPUT/PWM/etc #define FIRMATA_STRING 0x71 // строка: stringCallbackFunction #define SYSTEM_RESET 0xFF // сообщение для перезагрузки прошивки: systemResetCallbackFunction
Пример программы которая получает и отправляет данные
#include <Firmata.h> byte analogPin; void analogWriteCallback(byte pin, int value) { pinMode(pin,OUTPUT); analogWrite(pin, value); } void setup() { Firmata.setFirmwareVersion(0, 1); Firmata.attach(ANALOG_MESSAGE, analogWriteCallback); Firmata.begin(); } void loop() { while(Firmata.available()) { Firmata.processInput(); } for(analogPin = 0; analogPin < TOTAL_ANALOG_PINS; analogPin++) { Firmata.sendAnalog(analogPin, analogRead(analogPin)); } }
#include <Firmata.h> #include <Servo.h> Servo servo9; Servo servo10; void analogWriteCallback(byte pin, int value) { if(pin == 9) servo9.write(value); if(pin == 10) servo10.write(value); } void setup() { Firmata.setFirmwareVersion(0, 2); Firmata.attach(ANALOG_MESSAGE, analogWriteCallback); servo9.attach(9); servo10.attach(10); Firmata.begin(9600); } void loop() { while(Firmata.available()) Firmata.processInput(); }
Данная программа получает пакет данных отправлеямых с компьютера через сериал соединение и управляет сервоприводами при помощи библиотеки Firmata.
Данные которые отсылаются с компьютера должны соответсвовать определенному формату или протоколу, описание протокола можно посмотреть на сайте Firmata firmata.org/wiki/Protocol.
Установка определенного значения на выходе порта
uint8_t buf[3]; buf[0] = 0x90 | pin; buf[1] = val & 0x7F; buf[2] = (val >> 7) & 0x7F; port.Write(buf, 3);
Установка аналогового значения
uint8_t buf[3]; buf[0] = 0xE0 | pin; buf[1] = val & 0x7F; buf[2] = (val >> 7) & 0x7F; port.Write(buf, 3);
Установка состояния порта
uint8_t buf[4]; buf[0] = 0xF4; buf[1] = pin; buf[2] = mode; port.Write(buf, 3);
где:
Состояние порта mode может быть следующим:
#define MODE_INPUT 0x00 #define MODE_OUTPUT 0x01 #define MODE_ANALOG 0x02 #define MODE_PWM 0x03 #define MODE_SERVO 0x04 #define MODE_SHIFT 0x05 #define MODE_I2C 0x06]]>
Точная и грубая настройка радиоприемника осуществляется при помощи колебательного контура VC1,VC2,L1. Также частоту контура можно регулировать путем изменения расстояния меду витками катушки контура. Колебательный контур включен в цепь базы транзистора.
Каскады низкой частоты практически идентичны, оличаются лишь значение сопротивления отвечающего за выбор рабочей точки транзистора.
Катушка состоит из 8 витков медным изолированным проводом 1 мм. Намотка осуществляется на каркас диаметром 4-5 мм.
Транзисторы
В качестве нагрузки выходного каскада используются наушники сопротивлением в 64 Ом.
Радиоприемник отлично принемает сигналы в диапазоне от 87 МГц до 108 МГц.
Катушки можно намотать на обычный гвоздик 100-ку, диаметром порядка 4-5мм.
https://www.youtube.com/watch?v=mA0VkAn4XJo
]]>Точная и грубая настройка радиоприемника осуществляется при помощи колебательного контура VC1,VC2,L1. Также частоту контура можно регулировать путем изменения расстояния меду витками катушки контура. Колебательный контур включен в цепь базы транзистора.
Каскады низкой частоты практически идентичны, оличаются лишь значение сопротивления отвечающего за выбор рабочей точки транзистора.
Катушка состоит из 8 витков медным изолированным проводом 1 мм. Намотка осуществляется на каркас диаметром 4-5 мм.
Транзисторы
В качестве нагрузки выходного каскада используются наушники сопротивлением в 64 Ом.
Радиоприемник отлично принемает сигналы в диапазоне от 87 МГц до 108 МГц.
Катушки можно намотать на обычный гвоздик 100-ку, диаметром порядка 4-5мм.
https://www.youtube.com/watch?v=mA0VkAn4XJo
]]>Основным элементом является интегральный стабилизатор L7812, который преобразует уровень напряжения с 14 - 35 В на 12 В.
Даташит интегрального стабилизатора серии L78xx
Понижающий трансформатор преобразует 220 В переменного тока в 14-35 В. Подойдет любой трансформатор с указанным диапазоном выходного напряжения и током порядка 1 А.
Диодный мост выполнен из 4-х диодов 1N4001,он преобразует переменный ток в однополярный.
Конденсаторы необходимы для сглаживания пульсации напряжения.
Обозначение | Тип | Номинал |
D1 - 1N4001 | диод | |
C1 | электролитический конденсатор | 4700 мкФ |
C2 | конденсатор | 100 нФ |
C3 | конденсатор | 100 нФ |
C4 | электролитический конденсатор | 1 мкФ |
TR1 | трансформатор понижающий c 220 на 14-35 В | |
DA1 - L7812 | интегральный стабилизатор |
Основным элементом является интегральный стабилизатор L7812, который преобразует уровень напряжения с 14 - 35 В на 12 В.
Даташит интегрального стабилизатора серии L78xx
Понижающий трансформатор преобразует 220 В переменного тока в 14-35 В. Подойдет любой трансформатор с указанным диапазоном выходного напряжения и током порядка 1 А.
Диодный мост выполнен из 4-х диодов 1N4001,он преобразует переменный ток в однополярный.
Конденсаторы необходимы для сглаживания пульсации напряжения.
Обозначение | Тип | Номинал |
D1 - 1N4001 | диод | |
C1 | электролитический конденсатор | 4700 мкФ |
C2 | конденсатор | 100 нФ |
C3 | конденсатор | 100 нФ |
C4 | электролитический конденсатор | 1 мкФ |
TR1 | трансформатор понижающий c 220 на 14-35 В | |
DA1 - L7812 | интегральный стабилизатор |
Схема металлоискателя Квазар на микроконтроллере AVR
Схема металлоискателя в формате pdf
Последняя версия прошивки 1.4.5
Обозначение | Тип | Номинал |
R1 | резистор | 100 Ом |
R2 | резистор | 2 кОм |
R3 | резистор | 100 Ом* |
R4 | резистор | 470 Ом |
R5 | резистор | 4.7 кОм |
R6 | резистор | 1.2 кОм |
R7 | резистор | 100 кОм |
R8 | резистор | 330 Ом |
R9 | резистор | 47 кОм |
R10 | резистор | 10 кОм |
R11 | резистор | 1 кОм |
R12 | резистор | 62 Ом |
R13 | резистор | 1 кОм |
R14 | резистор | 1 кОм |
R15 | резистор | 100 кОм |
R16 | резистор | 3.6 кОм |
R17 | резистор | 1.2 кОм |
R16 | резистор | 3.6 кОм |
R18 | резистор | 1.1 кОм |
R21 | резистор | 10 кОм |
R22 | резистор | 1.5 кОм |
R24 | резистор | 100 Ом |
R25 | резистор | 10 Ом |
R26 | резистор | 25 Ом |
R27 | резистор | 25|sum50 Ом |
R28 | переменный резистор | 10 кОм |
R29 | резистор | 10 кОм |
C2 | конденсатор | 0.033 |
C3 | конденсатор | 0.1 |
C5 | конденсатор | 0.1 |
C6 | конденсатор | 0.33* |
C7 | конденсатор | 2200 |
C8 | конденсатор | 1.0 |
C9 | конденсатор | 0.1 |
C10 | конденсатор | 47 |
C12 | конденсатор | 0.1 |
C15 | конденсатор | 0.1 |
C16 | конденсатор | 0.1 (!) |
C17 | конденсатор | 0.1 |
C18 | конденсатор | 22 |
C19 | конденсатор | 0.1 |
C20 | конденсатор | 0.1 |
C21 | конденсатор | 22 |
C22 | конденсатор | 0.47 |
C23 | конденсатор | 0.1 |
C25 | конденсатор | 0.1 |
C27 | конденсатор | 0.1 |
C29 | конденсатор | 0.1 |
C32 | конденсатор | 0.1 |
C11 | электролетический конденсатор | 2200x10V |
C13 | электролетический конденсатор | 1500x10V |
C14 | электролетический конденсатор | 2200x10V |
C33 | электролетический конденсатор | 1000x16V |
C34 | электролетический конденсатор | 1000x16V |
D1 | диод | 1N4148WS |
D2 | диод | LED |
D3 | диод | 1N4148WS |
D4 | диод | 1N4148WS |
D6 | диод | 1N4148WS |
D7 | диод | SK16 |
D8 | диод | HER…, MURS… |
D9 | диод | HER…, MURS… |
VD1 | диод | 1N4148WS |
VD2 | диод | 1N4148WS |
VD3 | диод | 1N4148WS |
VD4 | диод | 1N4148WS |
Q1A, Q1B | транзисторная сборка | IRF7105/SO |
Q2 | транзистор | BC846BL |
Q3 | транзистор | BC857BL |
Q4 | транзистор | BC846BL |
U2 | микросхема | TL431 |
U3 | микросхема | LP2950 |
U4 | микросхема | MCP3201 |
U5 | микросхема | ATmega32A |
U7 | микросхема | LM2941S |
U8 | микросхема | MCP633 |
C1 | конденсатор | 0.1 |
LCD | дисплей | |
RC1602A | с контроллером HD44780 или KS0066 | |
SW1-SW6 | Кнопки 4х-контактные | |
BQ1 | кварц 11.0592 |
Кнопка | Назначение |
SW1 | UP/Barrier+/Autotune |
SW2 | Enter / OK / Ground balance |
SW3 | Right (+) / PinPointer |
SW4 | Left (-) / Backlight |
SW5 | Menu / Esc |
SW6 | Down / Barrier- / Autotune |
Под микроконтроллер AVR есть две версии печатной платы под dip и smd корпуса.
Печатные платы металлоискателя на микроконтроллере AVR для dip и sdm корпусов в формате .lay
Диаметр катушки составялет 230 мм. Катушка состоит из 2-х частей:
Передающий контур TX включается по схеме с последовательным колебательным контуром с емкостью 0.3 мкФ. Частота передающего контура составляет 8,192 кГц, но может работать в диапазоне 4,5 - 9 кГц.
Приемный контур RX представляет собой параллельный колебательный контур, настраивается на частоту ниже контура TX на величину порядка 1,5-2 кГц.
Собранная катушка выглядит следующим образом
После намотки катушки следут залить эпаксидной смолой, что придаст форму и прочность а также защитит от влаги.
https://www.youtube.com/watch?v=afJy6G6G-lY
https://www.youtube.com/watch?v=eECbI2BFpbk
Автор Квазара - Федоров Андрей
Сайт автора металлодетектора Квазар http://fandy.ucoz.org/publ/metalloiskatel_quot_kvazar_quot_quot_quasar_quot/md_kvazar/2-1-0-1
]]>Схема металлоискателя Квазар на микроконтроллере AVR
Схема металлоискателя в формате pdf
Последняя версия прошивки 1.4.5
Обозначение | Тип | Номинал |
R1 | резистор | 100 Ом |
R2 | резистор | 2 кОм |
R3 | резистор | 100 Ом* |
R4 | резистор | 470 Ом |
R5 | резистор | 4.7 кОм |
R6 | резистор | 1.2 кОм |
R7 | резистор | 100 кОм |
R8 | резистор | 330 Ом |
R9 | резистор | 47 кОм |
R10 | резистор | 10 кОм |
R11 | резистор | 1 кОм |
R12 | резистор | 62 Ом |
R13 | резистор | 1 кОм |
R14 | резистор | 1 кОм |
R15 | резистор | 100 кОм |
R16 | резистор | 3.6 кОм |
R17 | резистор | 1.2 кОм |
R16 | резистор | 3.6 кОм |
R18 | резистор | 1.1 кОм |
R21 | резистор | 10 кОм |
R22 | резистор | 1.5 кОм |
R24 | резистор | 100 Ом |
R25 | резистор | 10 Ом |
R26 | резистор | 25 Ом |
R27 | резистор | 25|sum50 Ом |
R28 | переменный резистор | 10 кОм |
R29 | резистор | 10 кОм |
C2 | конденсатор | 0.033 |
C3 | конденсатор | 0.1 |
C5 | конденсатор | 0.1 |
C6 | конденсатор | 0.33* |
C7 | конденсатор | 2200 |
C8 | конденсатор | 1.0 |
C9 | конденсатор | 0.1 |
C10 | конденсатор | 47 |
C12 | конденсатор | 0.1 |
C15 | конденсатор | 0.1 |
C16 | конденсатор | 0.1 (!) |
C17 | конденсатор | 0.1 |
C18 | конденсатор | 22 |
C19 | конденсатор | 0.1 |
C20 | конденсатор | 0.1 |
C21 | конденсатор | 22 |
C22 | конденсатор | 0.47 |
C23 | конденсатор | 0.1 |
C25 | конденсатор | 0.1 |
C27 | конденсатор | 0.1 |
C29 | конденсатор | 0.1 |
C32 | конденсатор | 0.1 |
C11 | электролетический конденсатор | 2200x10V |
C13 | электролетический конденсатор | 1500x10V |
C14 | электролетический конденсатор | 2200x10V |
C33 | электролетический конденсатор | 1000x16V |
C34 | электролетический конденсатор | 1000x16V |
D1 | диод | 1N4148WS |
D2 | диод | LED |
D3 | диод | 1N4148WS |
D4 | диод | 1N4148WS |
D6 | диод | 1N4148WS |
D7 | диод | SK16 |
D8 | диод | HER…, MURS… |
D9 | диод | HER…, MURS… |
VD1 | диод | 1N4148WS |
VD2 | диод | 1N4148WS |
VD3 | диод | 1N4148WS |
VD4 | диод | 1N4148WS |
Q1A, Q1B | транзисторная сборка | IRF7105/SO |
Q2 | транзистор | BC846BL |
Q3 | транзистор | BC857BL |
Q4 | транзистор | BC846BL |
U2 | микросхема | TL431 |
U3 | микросхема | LP2950 |
U4 | микросхема | MCP3201 |
U5 | микросхема | ATmega32A |
U7 | микросхема | LM2941S |
U8 | микросхема | MCP633 |
C1 | конденсатор | 0.1 |
LCD | дисплей | |
RC1602A | с контроллером HD44780 или KS0066 | |
SW1-SW6 | Кнопки 4х-контактные | |
BQ1 | кварц 11.0592 |
Кнопка | Назначение |
SW1 | UP/Barrier+/Autotune |
SW2 | Enter / OK / Ground balance |
SW3 | Right (+) / PinPointer |
SW4 | Left (-) / Backlight |
SW5 | Menu / Esc |
SW6 | Down / Barrier- / Autotune |
Под микроконтроллер AVR есть две версии печатной платы под dip и smd корпуса.
Печатные платы металлоискателя на микроконтроллере AVR для dip и sdm корпусов в формате .lay
Диаметр катушки составялет 230 мм. Катушка состоит из 2-х частей:
Передающий контур TX включается по схеме с последовательным колебательным контуром с емкостью 0.3 мкФ. Частота передающего контура составляет 8,192 кГц, но может работать в диапазоне 4,5 - 9 кГц.
Приемный контур RX представляет собой параллельный колебательный контур, настраивается на частоту ниже контура TX на величину порядка 1,5-2 кГц.
Собранная катушка выглядит следующим образом
После намотки катушки следут залить эпаксидной смолой, что придаст форму и прочность а также защитит от влаги.
https://www.youtube.com/watch?v=afJy6G6G-lY
https://www.youtube.com/watch?v=eECbI2BFpbk
Автор Квазара - Федоров Андрей
Сайт автора металлодетектора Квазар http://fandy.ucoz.org/publ/metalloiskatel_quot_kvazar_quot_quot_quasar_quot/md_kvazar/2-1-0-1
]]>Поисковая катушка идентична катушки для первого варианта.
Наименование | Кол-во |
Индикатор 1602B | 1 |
STM32F100C8T6B | 1 |
ОУ MCP6022-I/SN | 1 |
Стабилизатор LD1117AS33TR | 2 |
'Стабилизатор LD1117DT50CTR | 1 |
Усилитель MC34119D TR | 1 |
ПЗУ 'AT24C08BN-SH-T | 1 |
Сборка ПТ IRF7105 | 1 |
Транзистор BC846 | 3 |
Диод LL4148 | 4 |
Стабилитрон BZX384-C5V1.115 | 2 |
Диод MURS220T3G | 2 |
Диод SK16 | 1 |
Светодиод 0603 | 2 |
резонатор мини 8 MHz (HC-49US) | 1 |
Пленочный 0.033m | 1 |
Пленочный 0.1m | 1 |
CERCAP 0.1/50V 0603 KX7R PBF | 12 |
CERCAP 1/25V 0805 | 2 |
CERCAP 4.7/25V 0805 X5R | 2 |
CERCAP 10/16V 0805 Y5V 5+2на индикатор | 7 |
CERCAP 15p/50v 0603 | 2 |
CERCAP 22p/50V 0603 JNPO | 1 |
CERCAP 4700p/50V 0603 JX7R | 2 |
ECAP 470/16V 0815 105'C | 2 |
ECAP 1000/10V 0814 105'C/JAM | 2 |
Резистор CFR-1 10E ±5% | 1 |
Подстр рез гор WH06-2 22 кОм | 1 |
SMD 1206 100E ±5% | 1 |
SMD 0805 1E ±5% | 2 |
SMD 0805 2E ±5% | 2 |
SMD 0603 0 | 4 |
SMD 0603 1k ±5% | 8 |
SMD 0603 1.2k ±5% | 1 |
SMD 0603 2k ±5% | 3 |
SMD 0603 3k ±5% | 1 |
SMD 0603 3.9k ±5% | 1 |
SMD 0603 4.7k ±5% | 2 |
SMD 0603 10k ±5% | 7 |
SMD 0603 51E ±5% | 4 |
SMD 0603 100E ±5% | 2 |
SMD 0603 100k ±5% | 3 |
SMD 0603 390E ±5% | 1 |
Кнопка 302, 12х12х6мм (L=9,5мм) | 6 |
штыри PLS(индикатор и программатор) шаг2.54 | 1 |
гнездо PBS(индикатор)шаг2.54 | 1 |
LMC7660 (для индикатора при необходимости) | 1 |
Печатная плата металлоискателя в формате .lay
https://www.youtube.com/watch?v=TJtQL_2qvPE
]]>Поисковая катушка идентична катушки для первого варианта.
Наименование | Кол-во |
Индикатор 1602B | 1 |
STM32F100C8T6B | 1 |
ОУ MCP6022-I/SN | 1 |
Стабилизатор LD1117AS33TR | 2 |
'Стабилизатор LD1117DT50CTR | 1 |
Усилитель MC34119D TR | 1 |
ПЗУ 'AT24C08BN-SH-T | 1 |
Сборка ПТ IRF7105 | 1 |
Транзистор BC846 | 3 |
Диод LL4148 | 4 |
Стабилитрон BZX384-C5V1.115 | 2 |
Диод MURS220T3G | 2 |
Диод SK16 | 1 |
Светодиод 0603 | 2 |
резонатор мини 8 MHz (HC-49US) | 1 |
Пленочный 0.033m | 1 |
Пленочный 0.1m | 1 |
CERCAP 0.1/50V 0603 KX7R PBF | 12 |
CERCAP 1/25V 0805 | 2 |
CERCAP 4.7/25V 0805 X5R | 2 |
CERCAP 10/16V 0805 Y5V 5+2на индикатор | 7 |
CERCAP 15p/50v 0603 | 2 |
CERCAP 22p/50V 0603 JNPO | 1 |
CERCAP 4700p/50V 0603 JX7R | 2 |
ECAP 470/16V 0815 105'C | 2 |
ECAP 1000/10V 0814 105'C/JAM | 2 |
Резистор CFR-1 10E ±5% | 1 |
Подстр рез гор WH06-2 22 кОм | 1 |
SMD 1206 100E ±5% | 1 |
SMD 0805 1E ±5% | 2 |
SMD 0805 2E ±5% | 2 |
SMD 0603 0 | 4 |
SMD 0603 1k ±5% | 8 |
SMD 0603 1.2k ±5% | 1 |
SMD 0603 2k ±5% | 3 |
SMD 0603 3k ±5% | 1 |
SMD 0603 3.9k ±5% | 1 |
SMD 0603 4.7k ±5% | 2 |
SMD 0603 10k ±5% | 7 |
SMD 0603 51E ±5% | 4 |
SMD 0603 100E ±5% | 2 |
SMD 0603 100k ±5% | 3 |
SMD 0603 390E ±5% | 1 |
Кнопка 302, 12х12х6мм (L=9,5мм) | 6 |
штыри PLS(индикатор и программатор) шаг2.54 | 1 |
гнездо PBS(индикатор)шаг2.54 | 1 |
LMC7660 (для индикатора при необходимости) | 1 |
Печатная плата металлоискателя в формате .lay
https://www.youtube.com/watch?v=TJtQL_2qvPE
]]>Если в процессе проверки начинает периодически моргать светодиод D2 то это означает что как минимум одна ножка МК замкнута на землю или на плюсовой вывод или собранная схема не соответствует истине.
Если проблема идентифицирована то на LCD экране появится сообщение, информурующее о том какой вывод проблематичен.
В случае если никиках проблем не было обнаружено то сетодиод проморгает 2-3 раза. И можо приступать к следующим этапам настройки.
При помощи подстроечного резистора R28 устанавливается наилучшая видимость изображения.
Далее следует настроить резонансную частоту контура TX датчика. Для этого выбираем следующий пукт меню : "HW Options" > "TX frequency" и выставляем нужную нам частоту, нажимаем OK.
Берем кусок феррита или аллюминия. Вместо последнего можно взять кусок меди. Далее выбираем следующий пункт : "HW Options" > "Ferrite calibration", после того как пункт выбран начинаем махать куском над датчиком и вручную выставляем угол поворота так чтобы кусок ферита давал минимальный отклик.
В меню настройки маски необходимо отключить маску для всех секроторов. Далее опять переходим в основной режим и продолжаем мохать ферритом над датчиком (отклик должен быть в самом левом сегменте), аллюминий в 14-х 15-х сегментах, а медь в 15-15-ом.
Если феррит дает отклик в 16-м сегменте, то необходимо подкорректировать угол калибровки на 1,2 градуса.
Ниже приведены осцилограммы характерных выводов металлоискателя
Напряжение на R3
Напряжение на выводе 6 ОУ U8
Напряжение на выводе 2 АЦП U4
Напряжение на выводе 5 АЦП U4 (цепь _CS)
Напряжение на выводе 6 АЦП U4 (данные)
Напряжение на выводе 7 АЦП U4 (цепь SCK)
]]>
Если в процессе проверки начинает периодически моргать светодиод D2 то это означает что как минимум одна ножка МК замкнута на землю или на плюсовой вывод или собранная схема не соответствует истине.
Если проблема идентифицирована то на LCD экране появится сообщение, информурующее о том какой вывод проблематичен.
В случае если никиках проблем не было обнаружено то сетодиод проморгает 2-3 раза. И можо приступать к следующим этапам настройки.
При помощи подстроечного резистора R28 устанавливается наилучшая видимость изображения.
Далее следует настроить резонансную частоту контура TX датчика. Для этого выбираем следующий пукт меню : "HW Options" > "TX frequency" и выставляем нужную нам частоту, нажимаем OK.
Берем кусок феррита или аллюминия. Вместо последнего можно взять кусок меди. Далее выбираем следующий пункт : "HW Options" > "Ferrite calibration", после того как пункт выбран начинаем махать куском над датчиком и вручную выставляем угол поворота так чтобы кусок ферита давал минимальный отклик.
В меню настройки маски необходимо отключить маску для всех секроторов. Далее опять переходим в основной режим и продолжаем мохать ферритом над датчиком (отклик должен быть в самом левом сегменте), аллюминий в 14-х 15-х сегментах, а медь в 15-15-ом.
Если феррит дает отклик в 16-м сегменте, то необходимо подкорректировать угол калибровки на 1,2 градуса.
Ниже приведены осцилограммы характерных выводов металлоискателя
Напряжение на R3
Напряжение на выводе 6 ОУ U8
Напряжение на выводе 2 АЦП U4
Напряжение на выводе 5 АЦП U4 (цепь _CS)
Напряжение на выводе 6 АЦП U4 (данные)
Напряжение на выводе 7 АЦП U4 (цепь SCK)
]]>
В микроконтроллера Atmega8 существует 10 битный АЦП. 10 бит означает что входное напряжение будет разбито на 210равных частей. МК будет оперировать числами от минимального 0 до максимального 1023. Минимальное будет соответствовать 0 В а максимальное 5 В.
МК имеет 6 каналов АЦП, напряжение на входе измеряется относительно определенного значения заданного на выводе Aref и записывается в 2 регистра ADCH и ADCL. Первый из них хранит старшие биты результата измерения а второй младшие. В процессе измерения микроконтроллер может работать в двух режимах, в режиме однократного преобразования и в режиме непрерывного преобразования. Как следует из названия режимов, непрерывное преобразование происходит постоянно не зависимо от нашего участия, а в режиме однократного мы сами говорим когда нам нужно измерить напряжение.
Номер | Название | Функция |
7 | REFS1 | выбор опорного напряжения |
6 | REFS0 | выбор опорного напряжения |
5 | ADLAR | способ записи значения в ADCL и ADCH |
4 | - | |
3 | MUX3 | бит выбора аналогового канала |
2 | MUX2 | бит выбора аналогового канала |
1 | MUX1 | бит выбора аналогового канала |
0 | MUX0 | бит выбора аналогового канала |
Биты REFS1 и REFS0
Бит ADLAR
При помощи этого бита мы выбираем способ записи измеренного нами значения в регистры ADCL и ADCH
ЕслиADLAR=0
ЕслиADLAR=1
Биты MUX
При помощи этого бита мы выбираем нужный нам канал АЦП.
Номер | Название | Функция |
7 | ADEN | разрешение АЦП ( 0 - АЦП выключен, 1 - АЦП включен) |
6 | ADSC | запуск однократного преобразования ( 0 - преобразование закончено, 1 - старт преобразования)> |
5 | ADFR | режим работы АЦП (0 - однократное, 1 - непрерывное) |
4 | ADIF | флаг преобразования АЦП (выставляется в 1 если преобразование завершено) |
3 | ADIE | разрешение прерывания от АЦП (0 - запрещено,1 - разрешено) |
2 | ADPS2 | тактовая частота АЦП> |
1 | ADPS1 | тактовая частота АЦП |
0 | ADPS0 | тактовая частота АЦП> |
Биты ADPS
Выбор тактовой частоты АЦП
Расмотрим пример настройки АЦП микрокнтроллера Atmega8, если частота нашего МК равно 4,096 МГц. Нам нужно для хорошей точности измерения частоту АЦП меньше чем 200 кГц. Для этого нам нужно выставить преддедитель на CK/32, т.о. получим 4,096/32=128 кГц. Далее необходимо разрешить преобразование от АЦП (для этого записываем в ADEN значение 1), далее выбираем режим преобразования, пусть это будет однократное преобразование (ADFR = 0), и включаем АЦП (ADEN=1). Получается значение 10001101 или (0x8D)которое нам нужно записать в регистр ADCSRA.
Важно отметить одну особенность работы АЦП. Для более точного измерения частота должны быть менее 200 кГц, только при этом условии будет достигнута 10-ти битная точность измерения. А если точность не важна то к примеру на частоте 1 МГц будет 8-ми битная точность, а при 2 МГц 6-ти битная.
//функция инициализации void ADC_init() { //воспользуемся значениями регистров, определенными ранее ADMUX = 0x00; ADCSRA = 0x8D; } //функция получает в качестве аргумента номер канала и возвращает значение на входе unsigned int ADC_result(unsigned char adc_input) { ADMUX=adc_input | (ADMUX & 0xF0); //задержка для стабилизации входного напряжения _delay_us(10); //начинаем преобразование (ADSC = 1) ADCSRA | = 0x40; while((ADCSRA & 0x10)==0); //ждем, пока АЦП закончит преобразование (ADIF = 0) ADCSRA|=0x10;//устанавливаем ADIF return ADCW;//ADCW - содержит ADCH и ADCL как нам нужно }
Приведенная выше функция возвращает как было сказано ранее число от 0 до 1023 в случае 10-битного преобразования, для того чтобы получить значение в Вольтах нужно умножить полученое число на 5/1023=0,0049 .
Пример вывода измеренного напряжения на LCD
https://www.youtube.com/watch?v=1ucUNx3jx-0
]]>В микроконтроллера Atmega8 существует 10 битный АЦП. 10 бит означает что входное напряжение будет разбито на 210равных частей. МК будет оперировать числами от минимального 0 до максимального 1023. Минимальное будет соответствовать 0 В а максимальное 5 В.
МК имеет 6 каналов АЦП, напряжение на входе измеряется относительно определенного значения заданного на выводе Aref и записывается в 2 регистра ADCH и ADCL. Первый из них хранит старшие биты результата измерения а второй младшие. В процессе измерения микроконтроллер может работать в двух режимах, в режиме однократного преобразования и в режиме непрерывного преобразования. Как следует из названия режимов, непрерывное преобразование происходит постоянно не зависимо от нашего участия, а в режиме однократного мы сами говорим когда нам нужно измерить напряжение.
Номер | Название | Функция |
7 | REFS1 | выбор опорного напряжения |
6 | REFS0 | выбор опорного напряжения |
5 | ADLAR | способ записи значения в ADCL и ADCH |
4 | - | |
3 | MUX3 | бит выбора аналогового канала |
2 | MUX2 | бит выбора аналогового канала |
1 | MUX1 | бит выбора аналогового канала |
0 | MUX0 | бит выбора аналогового канала |
Биты REFS1 и REFS0
Бит ADLAR
При помощи этого бита мы выбираем способ записи измеренного нами значения в регистры ADCL и ADCH
ЕслиADLAR=0
ЕслиADLAR=1
Биты MUX
При помощи этого бита мы выбираем нужный нам канал АЦП.
Номер | Название | Функция |
7 | ADEN | разрешение АЦП ( 0 - АЦП выключен, 1 - АЦП включен) |
6 | ADSC | запуск однократного преобразования ( 0 - преобразование закончено, 1 - старт преобразования)> |
5 | ADFR | режим работы АЦП (0 - однократное, 1 - непрерывное) |
4 | ADIF | флаг преобразования АЦП (выставляется в 1 если преобразование завершено) |
3 | ADIE | разрешение прерывания от АЦП (0 - запрещено,1 - разрешено) |
2 | ADPS2 | тактовая частота АЦП> |
1 | ADPS1 | тактовая частота АЦП |
0 | ADPS0 | тактовая частота АЦП> |
Биты ADPS
Выбор тактовой частоты АЦП
Расмотрим пример настройки АЦП микрокнтроллера Atmega8, если частота нашего МК равно 4,096 МГц. Нам нужно для хорошей точности измерения частоту АЦП меньше чем 200 кГц. Для этого нам нужно выставить преддедитель на CK/32, т.о. получим 4,096/32=128 кГц. Далее необходимо разрешить преобразование от АЦП (для этого записываем в ADEN значение 1), далее выбираем режим преобразования, пусть это будет однократное преобразование (ADFR = 0), и включаем АЦП (ADEN=1). Получается значение 10001101 или (0x8D)которое нам нужно записать в регистр ADCSRA.
Важно отметить одну особенность работы АЦП. Для более точного измерения частота должны быть менее 200 кГц, только при этом условии будет достигнута 10-ти битная точность измерения. А если точность не важна то к примеру на частоте 1 МГц будет 8-ми битная точность, а при 2 МГц 6-ти битная.
//функция инициализации void ADC_init() { //воспользуемся значениями регистров, определенными ранее ADMUX = 0x00; ADCSRA = 0x8D; } //функция получает в качестве аргумента номер канала и возвращает значение на входе unsigned int ADC_result(unsigned char adc_input) { ADMUX=adc_input | (ADMUX & 0xF0); //задержка для стабилизации входного напряжения _delay_us(10); //начинаем преобразование (ADSC = 1) ADCSRA | = 0x40; while((ADCSRA & 0x10)==0); //ждем, пока АЦП закончит преобразование (ADIF = 0) ADCSRA|=0x10;//устанавливаем ADIF return ADCW;//ADCW - содержит ADCH и ADCL как нам нужно }
Приведенная выше функция возвращает как было сказано ранее число от 0 до 1023 в случае 10-битного преобразования, для того чтобы получить значение в Вольтах нужно умножить полученое число на 5/1023=0,0049 .
Пример вывода измеренного напряжения на LCD
https://www.youtube.com/watch?v=1ucUNx3jx-0
]]>Характеристики дисплея
Дисплей имеет 16 выводов, назначение каждого приведено ниже:
Для работы с дисплем нам понадобится библиотека<LiquidCrystal.h>
/* LiquidCrystal Library - Hello World Demonstrates the use a 16x2 LCD display. The LiquidCrystal library works with all LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface. This sketch prints "Hello World!" to the LCD and shows the time. The circuit: * LCD RS pin to digital pin 12 * LCD Enable pin to digital pin 11 * LCD D4 pin to digital pin 5 * LCD D5 pin to digital pin 4 * LCD D6 pin to digital pin 3 * LCD D7 pin to digital pin 2 * LCD R/W pin to ground * 10K resistor: * ends to +5V and ground * wiper to LCD VO pin (pin 3) Library originally added 18 Apr 2008 by David A. Mellis library modified 5 Jul 2009 by Limor Fried (http://www.ladyada.net) example added 9 Jul 2009 by Tom Igoe modified 22 Nov 2010 by Tom Igoe This example code is in the public domain. http://www.arduino.cc/en/Tutorial/LiquidCrystal */ // include the library code: #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("hello, world!"); } void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 1); // print the number of seconds since reset: lcd.print(millis()/1000); }
https://www.youtube.com/watch?v=VpPEG6mPadU
]]>Характеристики дисплея
Дисплей имеет 16 выводов, назначение каждого приведено ниже:
Для работы с дисплем нам понадобится библиотека<LiquidCrystal.h>
/* LiquidCrystal Library - Hello World Demonstrates the use a 16x2 LCD display. The LiquidCrystal library works with all LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface. This sketch prints "Hello World!" to the LCD and shows the time. The circuit: * LCD RS pin to digital pin 12 * LCD Enable pin to digital pin 11 * LCD D4 pin to digital pin 5 * LCD D5 pin to digital pin 4 * LCD D6 pin to digital pin 3 * LCD D7 pin to digital pin 2 * LCD R/W pin to ground * 10K resistor: * ends to +5V and ground * wiper to LCD VO pin (pin 3) Library originally added 18 Apr 2008 by David A. Mellis library modified 5 Jul 2009 by Limor Fried (http://www.ladyada.net) example added 9 Jul 2009 by Tom Igoe modified 22 Nov 2010 by Tom Igoe This example code is in the public domain. http://www.arduino.cc/en/Tutorial/LiquidCrystal */ // include the library code: #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("hello, world!"); } void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 1); // print the number of seconds since reset: lcd.print(millis()/1000); }
https://www.youtube.com/watch?v=VpPEG6mPadU
]]>Выходной понижающий трансформатор используется такой же как и в блоках питания от компьютера. Диодный мост на выходе выпрямляют ток трансформатора, диоды D2-D5 должны выдерживать ток порядка 10 А.
На входе блока питания установлен термистор TR1, температурная характеристика которого положительна, в результате с увеличением температуры его сопротивление увеличивается. Необходим для защиты транзисторных ключей Q1 и Q2 от поломки в момент включения блока питания.
Микросхема (драйвер) IR2151 необходима для генерации импульсов с определенной частотой. Импульсные сигналы с выхода микросхемы управляют транзисторными ключами Q1 и Q2, в нагрузочную цепь которых включен трансформатор TR1. Требуемая частота импульсов задается при помощи резистора R2, включенного к выводу Rt и конденсатора C5, включенного к выводу Ct.
Максимальное сопротивление сток-исток составляет порядка 600 В.
Datasheet (даташит) транзистора IRFBC40
Импульсные схемы довольно широко используются в современной радиотехнике. Практически все блоки питания от компьютеров работают по импульсной схеме. И перед тем как собирать компьютер нужно знать как выбрать блок питания компьютера, и на какие характеристики и параметры нужно посмотреть в первую очередь.
]]>Выходной понижающий трансформатор используется такой же как и в блоках питания от компьютера. Диодный мост на выходе выпрямляют ток трансформатора, диоды D2-D5 должны выдерживать ток порядка 10 А.
На входе блока питания установлен термистор TR1, температурная характеристика которого положительна, в результате с увеличением температуры его сопротивление увеличивается. Необходим для защиты транзисторных ключей Q1 и Q2 от поломки в момент включения блока питания.
Микросхема (драйвер) IR2151 необходима для генерации импульсов с определенной частотой. Импульсные сигналы с выхода микросхемы управляют транзисторными ключами Q1 и Q2, в нагрузочную цепь которых включен трансформатор TR1. Требуемая частота импульсов задается при помощи резистора R2, включенного к выводу Rt и конденсатора C5, включенного к выводу Ct.
Максимальное сопротивление сток-исток составляет порядка 600 В.
Datasheet (даташит) транзистора IRFBC40
Импульсные схемы довольно широко используются в современной радиотехнике. Практически все блоки питания от компьютеров работают по импульсной схеме. И перед тем как собирать компьютер нужно знать как выбрать блок питания компьютера, и на какие характеристики и параметры нужно посмотреть в первую очередь.
]]>Для этого нам понадобится следующие детали:
Принцип действия основан на фиксации изменения светового потока проходящего через палец. Световой поток проходящий через ваш палец пропорционален сердцебиению. Полученные данные передаются через Serial соединение на компьютер, где происходит визуализация входящий данных на языке Processing.
Визуализировать можно не только в Processing-е, а в любой другой программе.
Передатчик и приемник подключаются к источнику в 5 В. На передатчике используется резистор сопротивлением в 100 Ом, на приемнике 10 кОм, аналоговое значение снимается с вывода A.
Исходники проекта Arduino+Processing
https://www.youtube.com/watch?v=lHKbA6bPYUQ
]]>Для этого нам понадобится следующие детали:
Принцип действия основан на фиксации изменения светового потока проходящего через палец. Световой поток проходящий через ваш палец пропорционален сердцебиению. Полученные данные передаются через Serial соединение на компьютер, где происходит визуализация входящий данных на языке Processing.
Визуализировать можно не только в Processing-е, а в любой другой программе.
Передатчик и приемник подключаются к источнику в 5 В. На передатчике используется резистор сопротивлением в 100 Ом, на приемнике 10 кОм, аналоговое значение снимается с вывода A.
Исходники проекта Arduino+Processing
https://www.youtube.com/watch?v=lHKbA6bPYUQ
]]>
С подключение проблемвозникнуть не должно, нижи приведена таблица соответствия выводов. Важно помнить что экран питается от напряжения в 3.3 Вольта.
LCD NOKIA 5110 | Arduino UNO |
VCC | Arduino 3.3V |
LIGHT | Arduino GND (I am going to be using it on) |
GND | Arduino GND |
CLK (SCLK) | Arduino pin 7 |
DIN (MOSI) | Arduino pin 6 |
DC | Arduino pin 5 |
CE or CS | Arduino pin 4 |
RST (RESET) | Arduino pin 3 |
Изображение для вывода рисуется в обычном ворде.
В нашем примере мы выводим изображение - эллипс, размер 84 на 48 пикселей. После того как рисунок нарисован его необходимо перевести в код, для этого используется программа LCD Assistant для windows.
После того как мы в программе сгенерирован код изображения, нам необходимо преобразовать его к определенному виду (пример ниже) и сохранить в файл "thename.c".
#include <avr/pgmspace.h> const unsigned char graphic [] PROGMEM= { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xE0, 0xF0, 0xF0, 0xF8, 0xF8, 0xFC, 0xFC, 0xF8, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFE, 0xFE, 0xFE, 0xFC, 0xFC, 0xFC, 0xF8, 0xF8, 0xF0, 0xC0, 0xE0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x0F, 0x1F, 0x1F, 0x3F, 0x3F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x3F, 0x3F, 0x1F, 0x1F, 0x0F, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
После это в среде Arduino создаем новый проект и сохраняем его по нужной дериктории, в эту дерикторию копируем ранее созданный файл"thename.c"
Для работы нам также понадобится специальная библиотека.
#include <LCD5110_Graph> //Including library LCD5110 lcd(7,6,5,3,4); //Creating LCD object extern uint8_t graphic[]; //Including the graphics void setup() { lcd.InitLCD(); //Intializing LCD } void loop() { lcd.clrScr(); //Clearing screen lcd.drawBitmap(0, 0, graphic, 84, 48); //Drawing out bitmap lcd.update(); //Updating the LCD }
]]>
С подключение проблемвозникнуть не должно, нижи приведена таблица соответствия выводов. Важно помнить что экран питается от напряжения в 3.3 Вольта.
LCD NOKIA 5110 | Arduino UNO |
VCC | Arduino 3.3V |
LIGHT | Arduino GND (I am going to be using it on) |
GND | Arduino GND |
CLK (SCLK) | Arduino pin 7 |
DIN (MOSI) | Arduino pin 6 |
DC | Arduino pin 5 |
CE or CS | Arduino pin 4 |
RST (RESET) | Arduino pin 3 |
Изображение для вывода рисуется в обычном ворде.
В нашем примере мы выводим изображение - эллипс, размер 84 на 48 пикселей. После того как рисунок нарисован его необходимо перевести в код, для этого используется программа LCD Assistant для windows.
После того как мы в программе сгенерирован код изображения, нам необходимо преобразовать его к определенному виду (пример ниже) и сохранить в файл "thename.c".
#include <avr/pgmspace.h> const unsigned char graphic [] PROGMEM= { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xE0, 0xF0, 0xF0, 0xF8, 0xF8, 0xFC, 0xFC, 0xF8, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFE, 0xFE, 0xFE, 0xFC, 0xFC, 0xFC, 0xF8, 0xF8, 0xF0, 0xC0, 0xE0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x0F, 0x1F, 0x1F, 0x3F, 0x3F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x3F, 0x3F, 0x1F, 0x1F, 0x0F, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
После это в среде Arduino создаем новый проект и сохраняем его по нужной дериктории, в эту дерикторию копируем ранее созданный файл"thename.c"
Для работы нам также понадобится специальная библиотека.
#include <LCD5110_Graph> //Including library LCD5110 lcd(7,6,5,3,4); //Creating LCD object extern uint8_t graphic[]; //Including the graphics void setup() { lcd.InitLCD(); //Intializing LCD } void loop() { lcd.clrScr(); //Clearing screen lcd.drawBitmap(0, 0, graphic, 84, 48); //Drawing out bitmap lcd.update(); //Updating the LCD }
]]>
Технические характеристики усилителя:
Усилитель способен работать с блоком динамиков с сопротивлением по 4 Ом. Перед тем его включить необходимо потенциометры R5 и R8 установить в среднее положение, а R15 на минимальное значение. После этого необходимо установить ток потребления от источника питания в режиме покоя порядка 100 мА. После этого подключить к выходу вольтметр и перемещая потенциометр R5 установить значение в 0 В (+/-50 мВ).
Обратная связь в усилителе настраивается при помощи сопротивления R8, ОС влияет на чувствительность усилителя. Во время работы необходимо следить за температурой транзисторов, если температура резко возросла то это говорит о возбуждении усилителя. Поэтому транзисторы T8 и T9 необходимо установить на радиаторы.
Также транзисторы T10 и T11 должно должным образом охлаждаться отводить теплоту порядка 40 Вт. На транзисторах T6 и T7 выполнена система защиты от токов короткого замыкания, которая начинает свою работу при выходном сопротивлении менее 2 Ом.
Трансформатор, который питает схему, имеет мощность 200 Вт и имеет 2 вторичные обмотки по 28 Вольт.
Список деталей для сборки усилителя
Обозначение на схеме | Значение |
Т1, Т2, Т3, Т7 |
ВС557, 558 |
Т4, Т8 |
BD135, 335, 139 |
Т5, Т6 |
ВС237, 547, 548 |
T9 |
BD136, 138, 140 |
Т10, Т11 |
2N3055, BDY23 |
R1 |
4,7 кОм |
R2 |
5,6 кОм |
R3, R10 |
1 кОм |
R4 |
6,8 кОм |
R5(PR) |
47 кОм |
D1 |
BZP611C12 |
D2, D3, D4, D5 |
1 N4148 |
D6 |
1 N4001 |
Гнезда |
|
C1 |
1 мкФ MKS |
С2 |
220 мкФ/40 В |
С3 |
30 пФ |
С4 |
100 мкФ/16 В |
С5 |
100 мкФ /35 В |
С6 |
100 пФ |
С7 |
220-470 пФ |
С8,С10 |
100 нФ |
R6, R9, R18 |
680 Ом |
R7 |
22 кОм |
R8, R15 (PR) |
2,2 кОм |
R11 |
2,7 кОм |
R12 |
150 кОм |
R13, R17 |
360 Ом |
R14 |
2,2 кОм |
R16 |
470-510 Ом |
R19, R20 |
1,2 кОм |
R21 |
150 Ом |
R22, R23 |
100 Ом |
R24, R25 |
0,33 Ом/5 Вт |
R26 |
10-15 Ом |
Технические характеристики усилителя:
Усилитель способен работать с блоком динамиков с сопротивлением по 4 Ом. Перед тем его включить необходимо потенциометры R5 и R8 установить в среднее положение, а R15 на минимальное значение. После этого необходимо установить ток потребления от источника питания в режиме покоя порядка 100 мА. После этого подключить к выходу вольтметр и перемещая потенциометр R5 установить значение в 0 В (+/-50 мВ).
Обратная связь в усилителе настраивается при помощи сопротивления R8, ОС влияет на чувствительность усилителя. Во время работы необходимо следить за температурой транзисторов, если температура резко возросла то это говорит о возбуждении усилителя. Поэтому транзисторы T8 и T9 необходимо установить на радиаторы.
Также транзисторы T10 и T11 должно должным образом охлаждаться отводить теплоту порядка 40 Вт. На транзисторах T6 и T7 выполнена система защиты от токов короткого замыкания, которая начинает свою работу при выходном сопротивлении менее 2 Ом.
Трансформатор, который питает схему, имеет мощность 200 Вт и имеет 2 вторичные обмотки по 28 Вольт.
Список деталей для сборки усилителя
Обозначение на схеме | Значение |
Т1, Т2, Т3, Т7 |
ВС557, 558 |
Т4, Т8 |
BD135, 335, 139 |
Т5, Т6 |
ВС237, 547, 548 |
T9 |
BD136, 138, 140 |
Т10, Т11 |
2N3055, BDY23 |
R1 |
4,7 кОм |
R2 |
5,6 кОм |
R3, R10 |
1 кОм |
R4 |
6,8 кОм |
R5(PR) |
47 кОм |
D1 |
BZP611C12 |
D2, D3, D4, D5 |
1 N4148 |
D6 |
1 N4001 |
Гнезда |
|
C1 |
1 мкФ MKS |
С2 |
220 мкФ/40 В |
С3 |
30 пФ |
С4 |
100 мкФ/16 В |
С5 |
100 мкФ /35 В |
С6 |
100 пФ |
С7 |
220-470 пФ |
С8,С10 |
100 нФ |
R6, R9, R18 |
680 Ом |
R7 |
22 кОм |
R8, R15 (PR) |
2,2 кОм |
R11 |
2,7 кОм |
R12 |
150 кОм |
R13, R17 |
360 Ом |
R14 |
2,2 кОм |
R16 |
470-510 Ом |
R19, R20 |
1,2 кОм |
R21 |
150 Ом |
R22, R23 |
100 Ом |
R24, R25 |
0,33 Ом/5 Вт |
R26 |
10-15 Ом |
Все подробную информацию и рабочие характеристики можно посмотреть в документации на микросхему
Схема состоит из 8 конденсаторов и 4-х сопротивлений. Номиналы радиодеталей видны на схеме. Схема стабильно работает в большом разбросе напряжений от 3 до 15 В. Можно вместе со схемой в дополнии собрать простой блок питания с минимальным числом деталей.
https://www.youtube.com/watch?v=fZTJpdiWNSU
]]>Все подробную информацию и рабочие характеристики можно посмотреть в документации на микросхему
Схема состоит из 8 конденсаторов и 4-х сопротивлений. Номиналы радиодеталей видны на схеме. Схема стабильно работает в большом разбросе напряжений от 3 до 15 В. Можно вместе со схемой в дополнии собрать простой блок питания с минимальным числом деталей.
https://www.youtube.com/watch?v=fZTJpdiWNSU
]]>В зависимости от принципа действия и схемы генератора высокой частоты существуют несколько разновидностей трансформатора Теслы.
Класическая катушка, генератор в данной схеме работает при помощи искрового промежутка (разрядника). Такой трансформатор является самым распространенным, в свое время Никола Тесла пользовался именно таким трансформатором. Именно такой тип трансформатора генерирует самые длинные разряды (стримеры).
Кажущаяся на первый взгляд простота схемы может доставить довольно много проблем с правильным подбором деталей.
Батарея конденсаторов MMC собирается из конденсаторов типа К78-2, суммарная емкость такой батареи должны быть в интервале от 40 до 100 нФ.
Первичная обмотка катушки состоит из 4-10 витков толстого медного провода или медной трубки, на мой взгляд лучше брать сплошную медную проволоку т.к. сопротивление в таком случае будет минимальным. По конструкции, первичную катушку можно сделать цилиндрической, вертикальной или конической. Конденсатор и первичная обмотка образуют последовательный колебательный контур.
Вторичная обмотка содержит число витков от 400 до 1000. Один конец катушки необходимо заземлить, а второй подключается к тору. Тор выполен из обычной строительной вентиляционной гофры. Тор выполняет роль конденсатора и также вместе с катушкой образует воторой колебательный контур. Для наилучшего эффекта нужно стремится чтобы резонансная частота второго контура совпадала с частотой первичного контура. Только при выполнении этого условия получается максимальная длина разрядов. Подбор частоты резонанса первичного контура осуществляется при помощи подбора номинала батареии конденсаторов MMC.
На вход необходимо подать напряжение порядка 2-3 кВ, для этих целей отлично подойдет мощный МОТ трансформатор из микроволновой печи. Два дросселя и входной конденсатор образуют фильтр. Электрический ток заряжает конденсаторы до тех пор пока в разряднике не проскачет разряд, в результате во втором контуре создаться значителтный ток достаточный для генерации во второчиной обмотке разрядка(стриммера).
С МОТ трансформатора напряжение через фильтр высоких частот собранного из 2-х катушек и конденсатора поступает на вход первого колебательного контура. Этот фильтр можно и не устанавливать, трансформатор Тесла будет отлично работать и без него.
Лично на мой взгляд такая схема не дает регулировать и эксперементировать с различными значениями частот. Частота разряда стримера в этой схеме зависит от того как часто проскакивает искра в разряднике. Отрегулировать частоту можно либо регилирую зазор междку электродами разрядника либо изменяя емкость конденсаторной батереи, менять эти в параметры в процессе работы не то что не возможно а очень опасно - шибанет так что мало не покажится)
https://www.youtube.com/watch?v=1vBpoWhyLUw
]]>В зависимости от принципа действия и схемы генератора высокой частоты существуют несколько разновидностей трансформатора Теслы.
Класическая катушка, генератор в данной схеме работает при помощи искрового промежутка (разрядника). Такой трансформатор является самым распространенным, в свое время Никола Тесла пользовался именно таким трансформатором. Именно такой тип трансформатора генерирует самые длинные разряды (стримеры).
Кажущаяся на первый взгляд простота схемы может доставить довольно много проблем с правильным подбором деталей.
Батарея конденсаторов MMC собирается из конденсаторов типа К78-2, суммарная емкость такой батареи должны быть в интервале от 40 до 100 нФ.
Первичная обмотка катушки состоит из 4-10 витков толстого медного провода или медной трубки, на мой взгляд лучше брать сплошную медную проволоку т.к. сопротивление в таком случае будет минимальным. По конструкции, первичную катушку можно сделать цилиндрической, вертикальной или конической. Конденсатор и первичная обмотка образуют последовательный колебательный контур.
Вторичная обмотка содержит число витков от 400 до 1000. Один конец катушки необходимо заземлить, а второй подключается к тору. Тор выполен из обычной строительной вентиляционной гофры. Тор выполняет роль конденсатора и также вместе с катушкой образует воторой колебательный контур. Для наилучшего эффекта нужно стремится чтобы резонансная частота второго контура совпадала с частотой первичного контура. Только при выполнении этого условия получается максимальная длина разрядов. Подбор частоты резонанса первичного контура осуществляется при помощи подбора номинала батареии конденсаторов MMC.
На вход необходимо подать напряжение порядка 2-3 кВ, для этих целей отлично подойдет мощный МОТ трансформатор из микроволновой печи. Два дросселя и входной конденсатор образуют фильтр. Электрический ток заряжает конденсаторы до тех пор пока в разряднике не проскачет разряд, в результате во втором контуре создаться значителтный ток достаточный для генерации во второчиной обмотке разрядка(стриммера).
С МОТ трансформатора напряжение через фильтр высоких частот собранного из 2-х катушек и конденсатора поступает на вход первого колебательного контура. Этот фильтр можно и не устанавливать, трансформатор Тесла будет отлично работать и без него.
Лично на мой взгляд такая схема не дает регулировать и эксперементировать с различными значениями частот. Частота разряда стримера в этой схеме зависит от того как часто проскакивает искра в разряднике. Отрегулировать частоту можно либо регилирую зазор междку электродами разрядника либо изменяя емкость конденсаторной батереи, менять эти в параметры в процессе работы не то что не возможно а очень опасно - шибанет так что мало не покажится)
https://www.youtube.com/watch?v=1vBpoWhyLUw
]]>Данная схема позволяет управлять 10-ю нагрузками одновременно, к примеру если на стороне передатчика сразу нажаты 10 кнопок, то 10 светодиодов загорятся на стороне приемника. Вместо светодиодов можно подключить все что угодно сервопривод, электромотор, лампочку и т.д.
Представленная схема передатчика состоит из 2-х основных частей, из управляющего контроллера на микросхеме и трансивера MRF49XA.
Передатчик имеет следующие характеристики:
Приемник имеет следующие характеристики:
Схемы передатчика и приемника очень похожи, отличия лишь в обвязке микроконтроллера.
Трансивер MRF49XA может работать в трех частотыных диапазонах:
Трансивер работает в приведеных частотных границах если применяется опорный кварц в 10 МГц. Если использовать кварцовый резонатор на 11 МГц то частота передачи/приема будет 481МГц.
Программирование микрокнтроллеров
В память EEPROM микроконтроллера передатчика необходимо записать следующее:
где:
Для настройки определенного идентификатора, необходимого для создания определенной пары передатчик - приемник, необходимо в вторую строку первую ячейку записать нужный вам id, такое же значение нужно записать в ячейку приемника. В нашем случае в нее записано значение FF.
В память EEPROM пямять приемника записывается следующее:
Для записи этих значений в память используется программа RFICDA, в которой необходимо выбрать аналог микросхемы MRF49XA микросхему TRC102.
Файлы прошивки и печатных плат
https://www.youtube.com/watch?v=YpJeIrKSGo0
]]>Данная схема позволяет управлять 10-ю нагрузками одновременно, к примеру если на стороне передатчика сразу нажаты 10 кнопок, то 10 светодиодов загорятся на стороне приемника. Вместо светодиодов можно подключить все что угодно сервопривод, электромотор, лампочку и т.д.
Представленная схема передатчика состоит из 2-х основных частей, из управляющего контроллера на микросхеме и трансивера MRF49XA.
Передатчик имеет следующие характеристики:
Приемник имеет следующие характеристики:
Схемы передатчика и приемника очень похожи, отличия лишь в обвязке микроконтроллера.
Трансивер MRF49XA может работать в трех частотыных диапазонах:
Трансивер работает в приведеных частотных границах если применяется опорный кварц в 10 МГц. Если использовать кварцовый резонатор на 11 МГц то частота передачи/приема будет 481МГц.
Программирование микрокнтроллеров
В память EEPROM микроконтроллера передатчика необходимо записать следующее:
где:
Для настройки определенного идентификатора, необходимого для создания определенной пары передатчик - приемник, необходимо в вторую строку первую ячейку записать нужный вам id, такое же значение нужно записать в ячейку приемника. В нашем случае в нее записано значение FF.
В память EEPROM пямять приемника записывается следующее:
Для записи этих значений в память используется программа RFICDA, в которой необходимо выбрать аналог микросхемы MRF49XA микросхему TRC102.
Файлы прошивки и печатных плат
https://www.youtube.com/watch?v=YpJeIrKSGo0
]]>Схема может питаться от напряжения как от 34 В так и от 46 В. В режиме покоя ток в выходном каскаде составляет порядка 1.7 А, настройка осуществляется при помощи резистора R25, падение напряжения на котором должно быть 0.75 В при токе немного меньше чем 1.7 . При такой выходной мощности на транзисторах обязательно должен быть установлен охлаждающий радиатор во избежания их теплового пробоя.
Технические характеристики
Правильно собранная схема усилителя класса А начинает работать сразу и не нуждается особо в настройках. Список деталей для сборки усилителя представлен на схеме.
Сайт автора усилителя :http://mrcshobbies.blogspot.com
]]>Схема может питаться от напряжения как от 34 В так и от 46 В. В режиме покоя ток в выходном каскаде составляет порядка 1.7 А, настройка осуществляется при помощи резистора R25, падение напряжения на котором должно быть 0.75 В при токе немного меньше чем 1.7 . При такой выходной мощности на транзисторах обязательно должен быть установлен охлаждающий радиатор во избежания их теплового пробоя.
Технические характеристики
Правильно собранная схема усилителя класса А начинает работать сразу и не нуждается особо в настройках. Список деталей для сборки усилителя представлен на схеме.
Сайт автора усилителя :http://mrcshobbies.blogspot.com
]]>Схема питается от напряжения в 5 В. Микросхема CD4017 это счетчик делитель на 10. Полученный сигнал с датчика поступает на микросхему, в соответствии с полученным сигналом на выходах Q0-Q9 устанавливается высокое состояние, в нашем к примере на выходу Q1 подклюно реле через транзистор T2. В высоковольтную цепь которой можно подключить все что угодно - начиная от утюга заканчивая холодильником.
Светодиод Status LED сигнализирует о том что сигнал принят и реле включено.
В качестве пульта может использовать и пульт от телевизора.
Схема питается от напряжения в 5 В. Микросхема CD4017 это счетчик делитель на 10. Полученный сигнал с датчика поступает на микросхему, в соответствии с полученным сигналом на выходах Q0-Q9 устанавливается высокое состояние, в нашем к примере на выходу Q1 подклюно реле через транзистор T2. В высоковольтную цепь которой можно подключить все что угодно - начиная от утюга заканчивая холодильником.
Светодиод Status LED сигнализирует о том что сигнал принят и реле включено.
В качестве пульта может использовать и пульт от телевизора.
#ifndef F_CPU #define F_CPU 16000000UL // 16 MHz clock speed #endif #define D0 eS_PORTD0 #define D1 eS_PORTD1 #define D2 eS_PORTD2 #define D3 eS_PORTD3 #define D4 eS_PORTD4 #define D5 eS_PORTD5 #define D6 eS_PORTD6 #define D7 eS_PORTD7 #define RS eS_PORTC6 #define EN eS_PORTC7 #include <avr/io.h> #include <util/delay.h> #include "lcd.h" //Can be download from the bottom of this article int main(void) { DDRD = 0xFF; DDRC = 0xFF; int i; Lcd8_Init(); while(1) { Lcd8_Set_Cursor(1,1); Lcd8_Write_String("electroSome LCD Hello World"); for(i=0;i<15;i++) { _delay_ms(500); Lcd8_Shift_Left(); } for(i=0;i<15;i++) { _delay_ms(500); Lcd8_Shift_Right(); } Lcd8_Clear(); Lcd8_Write_Char('e'); Lcd8_Write_Char('S'); _delay_ms(2000); } }
#ifndef F_CPU #define F_CPU 16000000UL // 16 MHz clock speed #endif #define D4 eS_PORTD4 #define D5 eS_PORTD5 #define D6 eS_PORTD6 #define D7 eS_PORTD7 #define RS eS_PORTC6 #define EN eS_PORTC7 #include <avr/io.h> #include <util/delay.h> #include "lcd.h" //Can be download from the bottom of this article int main(void) { DDRD = 0xFF; DDRC = 0xFF; int i; Lcd4_Init(); while(1) { Lcd4_Set_Cursor(1,1); Lcd4_Write_String("electroSome LCD Hello World"); for(i=0;i<15;i++) { _delay_ms(500); Lcd4_Shift_Left(); } for(i=0;i<15;i++) { _delay_ms(500); Lcd4_Shift_Right(); } Lcd4_Clear(); Lcd4_Set_Cursor(2,1); Lcd4_Write_Char('e'); Lcd4_Write_Char('S'); _delay_ms(2000); } }
Для передачи данных используется шина в 8 бит в первом случае и 4 бита во втором. Для работы с символьным lcd16x2 дисплеем нам понадобится специальная библиотека lcd.h которую необходимо импортировать в проект. В данной библиотеке есть специальные функции которые упрощают работу с дисплеем.
Исходные файлы проектов в среде Atmel Studio и библиотека lcd.h для работы с символьным дисплеем.
https://www.youtube.com/watch?v=4NU8g8ed6_A
]]>
#ifndef F_CPU #define F_CPU 16000000UL // 16 MHz clock speed #endif #define D0 eS_PORTD0 #define D1 eS_PORTD1 #define D2 eS_PORTD2 #define D3 eS_PORTD3 #define D4 eS_PORTD4 #define D5 eS_PORTD5 #define D6 eS_PORTD6 #define D7 eS_PORTD7 #define RS eS_PORTC6 #define EN eS_PORTC7 #include <avr/io.h> #include <util/delay.h> #include "lcd.h" //Can be download from the bottom of this article int main(void) { DDRD = 0xFF; DDRC = 0xFF; int i; Lcd8_Init(); while(1) { Lcd8_Set_Cursor(1,1); Lcd8_Write_String("electroSome LCD Hello World"); for(i=0;i<15;i++) { _delay_ms(500); Lcd8_Shift_Left(); } for(i=0;i<15;i++) { _delay_ms(500); Lcd8_Shift_Right(); } Lcd8_Clear(); Lcd8_Write_Char('e'); Lcd8_Write_Char('S'); _delay_ms(2000); } }
#ifndef F_CPU #define F_CPU 16000000UL // 16 MHz clock speed #endif #define D4 eS_PORTD4 #define D5 eS_PORTD5 #define D6 eS_PORTD6 #define D7 eS_PORTD7 #define RS eS_PORTC6 #define EN eS_PORTC7 #include <avr/io.h> #include <util/delay.h> #include "lcd.h" //Can be download from the bottom of this article int main(void) { DDRD = 0xFF; DDRC = 0xFF; int i; Lcd4_Init(); while(1) { Lcd4_Set_Cursor(1,1); Lcd4_Write_String("electroSome LCD Hello World"); for(i=0;i<15;i++) { _delay_ms(500); Lcd4_Shift_Left(); } for(i=0;i<15;i++) { _delay_ms(500); Lcd4_Shift_Right(); } Lcd4_Clear(); Lcd4_Set_Cursor(2,1); Lcd4_Write_Char('e'); Lcd4_Write_Char('S'); _delay_ms(2000); } }
Для передачи данных используется шина в 8 бит в первом случае и 4 бита во втором. Для работы с символьным lcd16x2 дисплеем нам понадобится специальная библиотека lcd.h которую необходимо импортировать в проект. В данной библиотеке есть специальные функции которые упрощают работу с дисплеем.
Исходные файлы проектов в среде Atmel Studio и библиотека lcd.h для работы с символьным дисплеем.
https://www.youtube.com/watch?v=4NU8g8ed6_A
]]>Есть примеры, что там используют такие стандарты, как PC-104 или сложных АСВА реализаций. Другие решения включают в себя графические контроллеры от компании Fujitsu. Нашел один проект на ACEX за который просили $5000.Это все отличные решения но цены получаются довольно "кусачие".
Первоначальные расчеты показали, что 8-ми разрядный микроконтроллер фирмы ATMEL, с его 16 МГц тактовой частоты предоставления около и 16 MIPS были хорошими кандидатами для дальнейших исследований. Также можно было использовать микроконтроллеры AVR такие как Mega48, Mega88 и Mega168, которые имеют тактовую частоту до 20 МГц. Поэтому я пришел к выводу, что с тактовой частотой 16 МГц я мог достичь чего-то в порядке скорости 8 МГц передаваемых данных из порт. Я также выбрал AVR, как я уже создали довольно тело опыта работы с ним, и поэтому я начал работу проекта.
После примерно двух-трех месяцев исследования, я представляю вам плоды моего труда!
Цель проекта:
Была поставленна цель сделать из общедоступных микроконтроллеров, таких как Atmega8, Atmega16 и похожих, и с минимумом внешних компонентов сделать VGA адаптер своми руками который будет отображать по крайней мере, 15х15 символов на мониторе VGA с использованием стандартных частот VGA. Данные поступают в микроконтроллер при помощи UART порта.Тактовая частота микроконтроллера 16 МГц.
Получились следующие характеристики:
VGA-порт:
Терминал Видео:
Исходные проект подключение vga монитора к микроконтроллеру
Источник статьи проекта VGA адаптера на микроконтроллере
]]>
Есть примеры, что там используют такие стандарты, как PC-104 или сложных АСВА реализаций. Другие решения включают в себя графические контроллеры от компании Fujitsu. Нашел один проект на ACEX за который просили $5000.Это все отличные решения но цены получаются довольно "кусачие".
Первоначальные расчеты показали, что 8-ми разрядный микроконтроллер фирмы ATMEL, с его 16 МГц тактовой частоты предоставления около и 16 MIPS были хорошими кандидатами для дальнейших исследований. Также можно было использовать микроконтроллеры AVR такие как Mega48, Mega88 и Mega168, которые имеют тактовую частоту до 20 МГц. Поэтому я пришел к выводу, что с тактовой частотой 16 МГц я мог достичь чего-то в порядке скорости 8 МГц передаваемых данных из порт. Я также выбрал AVR, как я уже создали довольно тело опыта работы с ним, и поэтому я начал работу проекта.
После примерно двух-трех месяцев исследования, я представляю вам плоды моего труда!
Цель проекта:
Была поставленна цель сделать из общедоступных микроконтроллеров, таких как Atmega8, Atmega16 и похожих, и с минимумом внешних компонентов сделать VGA адаптер своми руками который будет отображать по крайней мере, 15х15 символов на мониторе VGA с использованием стандартных частот VGA. Данные поступают в микроконтроллер при помощи UART порта.Тактовая частота микроконтроллера 16 МГц.
Получились следующие характеристики:
VGA-порт:
Терминал Видео:
Исходные проект подключение vga монитора к микроконтроллеру
Источник статьи проекта VGA адаптера на микроконтроллере
]]>
Представляю вам разработанную мною схему недорогого веб-радио плеера с высококачественным стереозвуком. Проект создан на Arduino и подключен к интернету при помощи модуля расширенияEthernet ENC28J60.
Webradio Плеер управляется двумя переключателями для перехода к следующей или предыдущей радиостанции.Плеер может хранить до 14 различных радиостанций, каналы радиостанций предварительно записываются в программу. Плеер отлично проигрывает потоки аудио данных до 320 кбит/с.
Схема состоит из нескольких компонентов:
Arduino отправляет запрос на сервер веб-радио через модуль Ethernet (ENC28J60).ENC28J60 подключен к серверу веб-радио, посылает запрос и ожидает ответа от сервера.Ответ будет информация заголовок радиостанции с последующим аудиопотока (MP3, AAC и т.д.).Arduino получает ответ от сервера и передает полученные данные в VS1053B mp3, AAC, WMA декодером.VS1053B автоматически распознает тип принятого формата, декодирует его и выводит его на динамики.На ЖК-дисплее будет появился ряд Webradio станции (1-14) и первые 122 символов из заголовка ответа сервера.
Представленный проект настроен на зарубежный сайтhttp://www.internet-radio.com/для российских каналов нужно будет выбрать аналогичный сайт.
Для того чтобы добавить ваши любимые радиоканалы в проект, вам нужно будет открыть исходник Arduino и в нем поменять ip канала и порт
Исходники проекта радио плеера на Arduino
https://www.youtube.com/watch?v=g-jGM48xUrs
]]>Представляю вам разработанную мною схему недорогого веб-радио плеера с высококачественным стереозвуком. Проект создан на Arduino и подключен к интернету при помощи модуля расширенияEthernet ENC28J60.
Webradio Плеер управляется двумя переключателями для перехода к следующей или предыдущей радиостанции.Плеер может хранить до 14 различных радиостанций, каналы радиостанций предварительно записываются в программу. Плеер отлично проигрывает потоки аудио данных до 320 кбит/с.
Схема состоит из нескольких компонентов:
Arduino отправляет запрос на сервер веб-радио через модуль Ethernet (ENC28J60).ENC28J60 подключен к серверу веб-радио, посылает запрос и ожидает ответа от сервера.Ответ будет информация заголовок радиостанции с последующим аудиопотока (MP3, AAC и т.д.).Arduino получает ответ от сервера и передает полученные данные в VS1053B mp3, AAC, WMA декодером.VS1053B автоматически распознает тип принятого формата, декодирует его и выводит его на динамики.На ЖК-дисплее будет появился ряд Webradio станции (1-14) и первые 122 символов из заголовка ответа сервера.
Представленный проект настроен на зарубежный сайтhttp://www.internet-radio.com/для российских каналов нужно будет выбрать аналогичный сайт.
Для того чтобы добавить ваши любимые радиоканалы в проект, вам нужно будет открыть исходник Arduino и в нем поменять ip канала и порт
Исходники проекта радио плеера на Arduino
https://www.youtube.com/watch?v=g-jGM48xUrs
]]>Микросхема TPA3122D2 широко используется в качестве усилителя звука, работающего в режиме класса D. Выходная мощность составляет порядка 15 Вт. Особенностью данной микросхемы является высокая эффективность, что позволяет использовать ее без охлаждающего радиатора.
Схема имеет 2 канала, входной звуковой сигнал поступает на входы 4-LIN и 5-RIN микросхемы. Выходной сигнал снимается с выводов 19-LOUT и 12-ROUT. Выключатель SW2 предназначен для отклучения звука, подача напряжения осуществляется при помощи выключателя SW1.
Технические характеристики микросхемы
Демонстрация работы собранной схемы усилителя на микросхеме
https://www.youtube.com/watch?v=LyA_WDrzdV4
]]>Микросхема TPA3122D2 широко используется в качестве усилителя звука, работающего в режиме класса D. Выходная мощность составляет порядка 15 Вт. Особенностью данной микросхемы является высокая эффективность, что позволяет использовать ее без охлаждающего радиатора.
Схема имеет 2 канала, входной звуковой сигнал поступает на входы 4-LIN и 5-RIN микросхемы. Выходной сигнал снимается с выводов 19-LOUT и 12-ROUT. Выключатель SW2 предназначен для отклучения звука, подача напряжения осуществляется при помощи выключателя SW1.
Технические характеристики микросхемы
Демонстрация работы собранной схемы усилителя на микросхеме
https://www.youtube.com/watch?v=LyA_WDrzdV4
]]>Индикатор состоит из 8-ми сегментов, комбинация которых позволяет отображать цифры от 0 до 9. Комбинации сегментов хранятся в массиве. Нажимая на кнопку мы тем самым увеличиваем индекс массива. Значения той или иной цифры в двоичном коде последовательно записываются (выставляются) в пины с 2-го по 8-й. Схема подключения индикатора к Arduino приведена ниже.
Конденсаторы С1 и сопротивление R1 необходимы для предотвращения дребезга контактов-явление при котором происходит много кратное нажатие кнопки. В нашем случае это привело бы к быстрому увеличению переменной counter. Выводы 8 и 3 это минусовые выводы индикатора, которые через сопротивление R2 подключаются к земле.
/* Arduino 7-Segment LED Display for Common Cathode Displays Arduino Pins: 2,3,4,5,6,7,8 Display Pins: 7,6,4,2,1,9,10 Display Pins 3&8 should go to GND Switch Input is at Pin 9 */ byte numbers[10] = { B11111100, B01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11100110 }; void setup() { for(int i = 2; i <= 8; i++) { pinMode(i, OUTPUT); } pinMode(9, INPUT); } int counter = 0; bool go_by_switch = true; int last_input_value = LOW; void loop() { if(go_by_switch) { int switch_input_value = digitalRead(9); if(last_input_value == LOW && switch_input_value == HIGH) { counter = (counter + 1) % 10; } last_input_value = switch_input_value; } else { delay(500); counter = (counter + 1) % 10; } writeNumber(counter); } void writeNumber(int number) { if(number < 0 || number > 9) { return; } byte mask = numbers[number]; byte currentPinMask = B10000000; for(int i = 2; i <= 8; i++) { if(mask & currentPinMask) digitalWrite(i,HIGH); else digitalWrite(i,LOW); currentPinMask = currentPinMask >> 1; } }
Многие современные игровые приставки как и любая другая цифровая техника имеют свойство ломатся по целому ряду многих причин - одна из самых популярных это поломка связанная с прошивкой. Если у вас "слетела" прошивка то сервис по прошивке приставок в Москве это то что вам нужно.
]]>Индикатор состоит из 8-ми сегментов, комбинация которых позволяет отображать цифры от 0 до 9. Комбинации сегментов хранятся в массиве. Нажимая на кнопку мы тем самым увеличиваем индекс массива. Значения той или иной цифры в двоичном коде последовательно записываются (выставляются) в пины с 2-го по 8-й. Схема подключения индикатора к Arduino приведена ниже.
Конденсаторы С1 и сопротивление R1 необходимы для предотвращения дребезга контактов-явление при котором происходит много кратное нажатие кнопки. В нашем случае это привело бы к быстрому увеличению переменной counter. Выводы 8 и 3 это минусовые выводы индикатора, которые через сопротивление R2 подключаются к земле.
/* Arduino 7-Segment LED Display for Common Cathode Displays Arduino Pins: 2,3,4,5,6,7,8 Display Pins: 7,6,4,2,1,9,10 Display Pins 3&8 should go to GND Switch Input is at Pin 9 */ byte numbers[10] = { B11111100, B01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11100110 }; void setup() { for(int i = 2; i <= 8; i++) { pinMode(i, OUTPUT); } pinMode(9, INPUT); } int counter = 0; bool go_by_switch = true; int last_input_value = LOW; void loop() { if(go_by_switch) { int switch_input_value = digitalRead(9); if(last_input_value == LOW && switch_input_value == HIGH) { counter = (counter + 1) % 10; } last_input_value = switch_input_value; } else { delay(500); counter = (counter + 1) % 10; } writeNumber(counter); } void writeNumber(int number) { if(number < 0 || number > 9) { return; } byte mask = numbers[number]; byte currentPinMask = B10000000; for(int i = 2; i <= 8; i++) { if(mask & currentPinMask) digitalWrite(i,HIGH); else digitalWrite(i,LOW); currentPinMask = currentPinMask >> 1; } }
Многие современные игровые приставки как и любая другая цифровая техника имеют свойство ломатся по целому ряду многих причин - одна из самых популярных это поломка связанная с прошивкой. Если у вас "слетела" прошивка то сервис по прошивке приставок в Москве это то что вам нужно.
]]>
Принцип дейcтвия магнитной пушки основан на быстром последовательном срабатывании электромагнитов L1-L4, каждый из которых создает дополнительную силу, которая ускоряет металлический заряд. Таймер NE555 посылает на микросхему импульсы с периодом приблизительно в 10 мс, частоту импульсов сигнализирует светодиод D1.
При нажатии кнопки PB1, вторая микросхеме IC2 с такмже интревалом последовательно открывает транзисторы c TR1 по TR2, в коллектроную цепь этих транзисторов включены электромагниты L1-L4.
Для изготовления этих электромагнитов нам понадобится медная трубка длиной в 25 см и диаметром в 3 мм. Каждая катушка содердит по 500 витков провода 0.315мм покрытого эмалью. Катушки должны бать сделаны таким образом чтобы они могли свободно перемещатся. В качестве снаряда выступает кусок гвоздя длиной в 3 см и диаметро в 2 мм.
Схема может питаться как от аккумулятора в 25 В, так и от сети переменного тока.
Изменяя положение электромагнитов добиваемся наилучшего эффекта, из рисунка выше видно что интервал между каждой катушкой увеличивается - это связано с увеличением скорости снаряда.
Если ваш iPhone сломался то смело несите его в сервисный центр по ремонту iPhone. Данный сервисный цент имеет свой склад с оригинальными комплектующими, новое оборудование и высококвалифицированный персоонал.
]]>
Принцип дейcтвия магнитной пушки основан на быстром последовательном срабатывании электромагнитов L1-L4, каждый из которых создает дополнительную силу, которая ускоряет металлический заряд. Таймер NE555 посылает на микросхему импульсы с периодом приблизительно в 10 мс, частоту импульсов сигнализирует светодиод D1.
При нажатии кнопки PB1, вторая микросхеме IC2 с такмже интревалом последовательно открывает транзисторы c TR1 по TR2, в коллектроную цепь этих транзисторов включены электромагниты L1-L4.
Для изготовления этих электромагнитов нам понадобится медная трубка длиной в 25 см и диаметром в 3 мм. Каждая катушка содердит по 500 витков провода 0.315мм покрытого эмалью. Катушки должны бать сделаны таким образом чтобы они могли свободно перемещатся. В качестве снаряда выступает кусок гвоздя длиной в 3 см и диаметро в 2 мм.
Схема может питаться как от аккумулятора в 25 В, так и от сети переменного тока.
Изменяя положение электромагнитов добиваемся наилучшего эффекта, из рисунка выше видно что интервал между каждой катушкой увеличивается - это связано с увеличением скорости снаряда.
Если ваш iPhone сломался то смело несите его в сервисный центр по ремонту iPhone. Данный сервисный цент имеет свой склад с оригинальными комплектующими, новое оборудование и высококвалифицированный персоонал.
]]>ATmega8515 выбран потому, что он совместим по выводам с 8051 микроконтроллером. В этом проекте используется тактирование от внутреннего RC генератора, поэтому необходимо выставить фъюз биты для работы с внутренним генератором.
DS1820 Цифровой термометр обеспечивает 9-битные температурные измерения по Цельсию. DS1820 общается по 1-проводной шине, что по определению требует только одну линию данных (и землю) для связи с центральным микропроцессором.
Он имеет диапазон рабочих температур от -55 ° C до + 125 ° C, и с точностью ± 0,5 ° C в диапазоне от -10 ° С до + 85 ° С.Кроме того, DS1820 можно запитыватся непосредственно от линии данных, устраняя необходимость использования внешнего источника питания.
Программа микроконтроллера
‘—————————————————————————————– ‘copyright : (c) 2008-2009, AVRprojects.info ‘purpose : DS1820 / DS18S20 Temperature Indicator ‘—————————————————————————————– $regfile = “m8515.dat” ‘ specify the used micro $crystal = 8000000 ‘ used crystal frequency Declare Sub Read1820 Config 1wire = Portd.7 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1 , Rs = Porta.0 ‘Temp variables Dim Bd1 As Byte Dim Bd2 As Byte Dim Bd7 As Byte Dim Bd8 As Byte Dim I As Byte , Tmp As Byte Dim T As Integer , T1 As Integer Dim Bd(9) As Byte ‘Scratchpad 0-8 72 bits incl CRC, explanations for DS1820 ‘Sc(1) ‘Temperature LSB ‘Sc(2) ‘Temperature MSB ‘Sc(3) ‘TH/user byte 1 also SRAM ‘Sc(4) ‘TL/user byte 2 also SRAM ‘Sc(5) ‘config also SRAM x R1 R0 1 1 1 1 1 – the r1 r0 are config for resolution – write FF to byte for 12 bit – others dont care ‘Sc(6) ‘res ‘Sc(7) ‘res ‘Sc(8) ‘res ‘Sc(9) ‘8 CRC ‘DALLAS DS1820 ROM and scratchpad commands”””””””””””””1wwrite…. ‘&H 33 read rom – single sensor ‘&H CC skip rom ‘&H BE read scratchpad ‘&H 44 convert T ‘ Main loop Cls Cursor Off Do 1wwrite &HCC : 1wwrite &H44 ‘ start measure Waitms 400 ‘ wait for end of conversion Read1820 Wait 1 Loop End ‘end program ‘Read the DS1820 by skipping the ROM checking, since we are using only 1 sensor Sub Read1820 ‘ reads sensor ans calculate ‘ T for 0.1 C 1wreset ‘ reset the bus 1wwrite &HCC ‘ read internal RAM 1wwrite &HBE ‘ read 9 data bytest Bd(1) = 1wread(9) Bd1 = Bd(1) Bd2 = Bd(2) Bd7 = Bd(7) Bd8 = Bd(8) ‘ read bytes in array 1wreset ‘ reset the bus Tmp = Bd1 And 1 If Tmp = 1 Then Decr Bd1 ‘ 0.1C precision T = Bd1 T = T * 50 T = T – 25 T1 = Bd8 – Bd7 T1 = T1 * 100 T1 = T1 / Bd8 T = T + T1 T1 = T / 100 ‘store tens T = T Mod 100 ‘store decimal number Cls Locate 1 , 3 Lcd “Temperature” Locate 2 , 7 Lcd T1 ; “.” ; T End Sub End]]>
ATmega8515 выбран потому, что он совместим по выводам с 8051 микроконтроллером. В этом проекте используется тактирование от внутреннего RC генератора, поэтому необходимо выставить фъюз биты для работы с внутренним генератором.
DS1820 Цифровой термометр обеспечивает 9-битные температурные измерения по Цельсию. DS1820 общается по 1-проводной шине, что по определению требует только одну линию данных (и землю) для связи с центральным микропроцессором.
Он имеет диапазон рабочих температур от -55 ° C до + 125 ° C, и с точностью ± 0,5 ° C в диапазоне от -10 ° С до + 85 ° С.Кроме того, DS1820 можно запитыватся непосредственно от линии данных, устраняя необходимость использования внешнего источника питания.
Программа микроконтроллера
‘—————————————————————————————– ‘copyright : (c) 2008-2009, AVRprojects.info ‘purpose : DS1820 / DS18S20 Temperature Indicator ‘—————————————————————————————– $regfile = “m8515.dat” ‘ specify the used micro $crystal = 8000000 ‘ used crystal frequency Declare Sub Read1820 Config 1wire = Portd.7 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1 , Rs = Porta.0 ‘Temp variables Dim Bd1 As Byte Dim Bd2 As Byte Dim Bd7 As Byte Dim Bd8 As Byte Dim I As Byte , Tmp As Byte Dim T As Integer , T1 As Integer Dim Bd(9) As Byte ‘Scratchpad 0-8 72 bits incl CRC, explanations for DS1820 ‘Sc(1) ‘Temperature LSB ‘Sc(2) ‘Temperature MSB ‘Sc(3) ‘TH/user byte 1 also SRAM ‘Sc(4) ‘TL/user byte 2 also SRAM ‘Sc(5) ‘config also SRAM x R1 R0 1 1 1 1 1 – the r1 r0 are config for resolution – write FF to byte for 12 bit – others dont care ‘Sc(6) ‘res ‘Sc(7) ‘res ‘Sc(8) ‘res ‘Sc(9) ‘8 CRC ‘DALLAS DS1820 ROM and scratchpad commands”””””””””””””1wwrite…. ‘&H 33 read rom – single sensor ‘&H CC skip rom ‘&H BE read scratchpad ‘&H 44 convert T ‘ Main loop Cls Cursor Off Do 1wwrite &HCC : 1wwrite &H44 ‘ start measure Waitms 400 ‘ wait for end of conversion Read1820 Wait 1 Loop End ‘end program ‘Read the DS1820 by skipping the ROM checking, since we are using only 1 sensor Sub Read1820 ‘ reads sensor ans calculate ‘ T for 0.1 C 1wreset ‘ reset the bus 1wwrite &HCC ‘ read internal RAM 1wwrite &HBE ‘ read 9 data bytest Bd(1) = 1wread(9) Bd1 = Bd(1) Bd2 = Bd(2) Bd7 = Bd(7) Bd8 = Bd(8) ‘ read bytes in array 1wreset ‘ reset the bus Tmp = Bd1 And 1 If Tmp = 1 Then Decr Bd1 ‘ 0.1C precision T = Bd1 T = T * 50 T = T – 25 T1 = Bd8 – Bd7 T1 = T1 * 100 T1 = T1 / Bd8 T = T + T1 T1 = T / 100 ‘store tens T = T Mod 100 ‘store decimal number Cls Locate 1 , 3 Lcd “Temperature” Locate 2 , 7 Lcd T1 ; “.” ; T End Sub End]]>
Светодиодные ленты представляют из себя гибки ленты на которых размещены светодиода, они бывают разных видов: одноцветные разных цветов, RGB ленты, RGB ленты со встроенными контроллерами для управления цветом каждого светодиода и ряд других отличающихся друг от друга различными параметрами.
Найти им применения можно абсолютно везде, будь это просто замена лампы накаливания либо светодиодные настенные часы. Некоторые радиолюбители делают из них цветомузыку, некоторые используют для домашнего декора. Из RGB ленты со встроенным микроконтроллером можно даже сделать светодиодные цветной экран.
Цена светодиодной ленты может быть абсолютно разной, в зависимости от многих параметров, степень защищенности от внешних факторов, количество светодиодов на погонный мент, кол-во цветов и т.д. приобрести такую ленту можно заказав с Китая.
Давайте рассмотрим схему подключения светодиодной ленты к плате Arduino, которая позволяет легко управлять RGB лентой.
В схеме используются биполярные транзисторы TIP120. Думая схема особо не нуждается в комментариях, тут и так все понятно.
#define REDPIN 5 #define GREENPIN 6 #define BLUEPIN 3 #define FADESPEED 5 // чем выше число, тем медленнее будет fade-эффект void setup() { pinMode(REDPIN, OUTPUT); pinMode(GREENPIN, OUTPUT); pinMode(BLUEPIN, OUTPUT); } void loop() { int r, g, b; // fade от голубого к фиолетовому for (r = 0; r < 256; r++) { analogWrite(REDPIN, r); delay(FADESPEED); } // fade от фиолетового к красному for (b = 255; b > 0; b--) { analogWrite(BLUEPIN, b); delay(FADESPEED); } // fade от красного к желтому for (g = 0; g < 256; g++) { analogWrite(GREENPIN, g); delay(FADESPEED); } // fade от желтого к зеленому for (r = 255; r > 0; r--) { analogWrite(REDPIN, r); delay(FADESPEED); } // fade от зеленого к зеленовато-голубому for (b = 0; b < 256; b++) { analogWrite(BLUEPIN, b); delay(FADESPEED); } // fade от зеленовато-голубого к голубому for (g = 255; g > 0; g--) { analogWrite(GREENPIN, g); delay(FADESPEED); } }
Данная программа последовательно увеличивает одну из составляющий RGB.
]]>Светодиодные ленты представляют из себя гибки ленты на которых размещены светодиода, они бывают разных видов: одноцветные разных цветов, RGB ленты, RGB ленты со встроенными контроллерами для управления цветом каждого светодиода и ряд других отличающихся друг от друга различными параметрами.
Найти им применения можно абсолютно везде, будь это просто замена лампы накаливания либо светодиодные настенные часы. Некоторые радиолюбители делают из них цветомузыку, некоторые используют для домашнего декора. Из RGB ленты со встроенным микроконтроллером можно даже сделать светодиодные цветной экран.
Цена светодиодной ленты может быть абсолютно разной, в зависимости от многих параметров, степень защищенности от внешних факторов, количество светодиодов на погонный мент, кол-во цветов и т.д. приобрести такую ленту можно заказав с Китая.
Давайте рассмотрим схему подключения светодиодной ленты к плате Arduino, которая позволяет легко управлять RGB лентой.
В схеме используются биполярные транзисторы TIP120. Думая схема особо не нуждается в комментариях, тут и так все понятно.
#define REDPIN 5 #define GREENPIN 6 #define BLUEPIN 3 #define FADESPEED 5 // чем выше число, тем медленнее будет fade-эффект void setup() { pinMode(REDPIN, OUTPUT); pinMode(GREENPIN, OUTPUT); pinMode(BLUEPIN, OUTPUT); } void loop() { int r, g, b; // fade от голубого к фиолетовому for (r = 0; r < 256; r++) { analogWrite(REDPIN, r); delay(FADESPEED); } // fade от фиолетового к красному for (b = 255; b > 0; b--) { analogWrite(BLUEPIN, b); delay(FADESPEED); } // fade от красного к желтому for (g = 0; g < 256; g++) { analogWrite(GREENPIN, g); delay(FADESPEED); } // fade от желтого к зеленому for (r = 255; r > 0; r--) { analogWrite(REDPIN, r); delay(FADESPEED); } // fade от зеленого к зеленовато-голубому for (b = 0; b < 256; b++) { analogWrite(BLUEPIN, b); delay(FADESPEED); } // fade от зеленовато-голубого к голубому for (g = 255; g > 0; g--) { analogWrite(GREENPIN, g); delay(FADESPEED); } }
Данная программа последовательно увеличивает одну из составляющий RGB.
]]>Конечно,изготовить самомудинамическую головку будет довольно проблематично. Под самодельными сабфуверами подразумевается конструкция внешней коробки, различная конфигурация которой позволяет достичь различных параметров звука. О том как самому сделать самодельные сабвуферы вы можете посмотреть здесь.
Схема собрана на микросхеме TDA7294, схема запитана от напряжения в 25 В. На входе в микросхему установлена цепочка R1C1, которая представляет собой фильтр низких частот, не пропускающий частоты свыше 90 кГц. На цепочке R2C2 собран фильтр в противоположность первому он не пропускает частоты ниже 7 Гц.
Сопротивление R2 определяет сопротивление на входе. Схема является неинвертирующей. Отрицательная обратная связь (ООС) собрана на резисторах R3, R4, которые подключены к входному и выходному выводу микросхемы (2-й и 14-й вывод).
Коэффициент усиления: Ku=R4/R3+1=28.5=29Б
Значение коэффициента усиления можно изменить, подберая значение резистора R3. Слишком сильно Ku уменшать нельзя при значении в менее 20 микросхеме может перейти в режим самовозбуждения. Слишком сильно это значение также нельзя увеличивать-это приведет к тому что возрастут нелинейные искажения. При тех значения что указаны на схеме выходная мощность усилителя для сабвуфера состаляет порядка 50Вт при нагрузке в 4 Ом.
На конденсаторе С3 и сопротивлении R3 создана отрицательная обратная связь по постоянному току.
]]>
Конечно,изготовить самомудинамическую головку будет довольно проблематично. Под самодельными сабфуверами подразумевается конструкция внешней коробки, различная конфигурация которой позволяет достичь различных параметров звука. О том как самому сделать самодельные сабвуферы вы можете посмотреть здесь.
Схема собрана на микросхеме TDA7294, схема запитана от напряжения в 25 В. На входе в микросхему установлена цепочка R1C1, которая представляет собой фильтр низких частот, не пропускающий частоты свыше 90 кГц. На цепочке R2C2 собран фильтр в противоположность первому он не пропускает частоты ниже 7 Гц.
Сопротивление R2 определяет сопротивление на входе. Схема является неинвертирующей. Отрицательная обратная связь (ООС) собрана на резисторах R3, R4, которые подключены к входному и выходному выводу микросхемы (2-й и 14-й вывод).
Коэффициент усиления: Ku=R4/R3+1=28.5=29Б
Значение коэффициента усиления можно изменить, подберая значение резистора R3. Слишком сильно Ku уменшать нельзя при значении в менее 20 микросхеме может перейти в режим самовозбуждения. Слишком сильно это значение также нельзя увеличивать-это приведет к тому что возрастут нелинейные искажения. При тех значения что указаны на схеме выходная мощность усилителя для сабвуфера состаляет порядка 50Вт при нагрузке в 4 Ом.
На конденсаторе С3 и сопротивлении R3 создана отрицательная обратная связь по постоянному току.
]]>
Для этого нам также понадобится специальная плата SoftModem под Arduino. Внешний вид платы представлен на рисунке ниже, как видно на ней есть специальный переключатель, который имеет два положения-одно используется при работе с телефонами Samsung, другое под iPhone и Android.
Самое главное при использовании данной платы расширения правильно ее подключить и не допустить попадания высокого напряжения (напряжения питания Arduino) на аудио выход телефона или смартфона. В противном случае iPhone сломается и его придется воспользоватся сервисом по ремонту iPhone.
В данном примере мы подключим iPhone к Arduino и будем управлять инфракрасным светодиодом. Для этого нам понадобится специальная программа под iPhone и специальная библиотека под Arduino.
Код команды из телефона передается через аудиоканал на вход Arduino, где происходит его анализ и в соответсвии с полученным сигналом происходит включение и выключение инфракрасного светодиода. На приемнике происхоид обратный процесс декодирования полученног сигнала.
Код программы под Arduino
In the steup function, we need to initialize the buffer and soft modem. void setup() { Serial.begin(9600); // Initialize the buffer with a capacity for 4 bytes buffer.init(4); delay(1000); modem.begin(); } In the loop() function, Arduino will keep listening to the soft modem. While soft modem is available, we read 2 bytes from the soft modem. Then check if we need to clear the buffer. If not, we put the 2 bytes into the buffer. This is how we get the command from soft modem. When we get the command, we simply use a IRsend to send the command to the IR LED under NEC Protocol. void loop() { while(modem.available()){ int c = modem.read(); if((buffer.getSize() == 4 || buffer.getSize() == 0) && c == 0xFF) { buffer.clear(); } else { buffer.put(c); } } if(buffer.getSize() == 4) { long cmd = buffer.getLong(); Serial.print("Sending cmd: "); Serial.println(cmd, HEX); irsend.sendNEC(cmd, 32); // NEC Protocol command delay(100); }
iOs Application
The demo app is very simple. We have 2 buttons on the main view, and each button represents a command. We also have an info view, in which you can change the command for both buttons. Once the button is pressed, we will use a serial generator to encode a audio signal representing the command, and the signal will be received by the soft modem. - (void)buttonPressed:(UIButton*)button { NSString* buttonKey = (button.tag == 1) ? @"first" : @"second"; NSString* hex = [[NSUserDefaults standardUserDefaults] stringForKey:buttonKey]; hex = [hex substringFromIndex:2]; NSData* hexData = [hex hexToBytes]; //NSLog(@"%@", hex); //NSLog(@"%@", [hex hexToBytes]); [APP_DELEGATE.generator writeByte:0xff]; [APP_DELEGATE.generator writeBytes:[hexData bytes] length:hexData.length]; }
Похожий проект Arduino irremoteв котором arduino выступает в качестве приемника, а управление осуществляется при помощи пульта дистанционного управления.
Более подробно про этот проект можно почитатьна сайте источнике
]]>Для этого нам также понадобится специальная плата SoftModem под Arduino. Внешний вид платы представлен на рисунке ниже, как видно на ней есть специальный переключатель, который имеет два положения-одно используется при работе с телефонами Samsung, другое под iPhone и Android.
Самое главное при использовании данной платы расширения правильно ее подключить и не допустить попадания высокого напряжения (напряжения питания Arduino) на аудио выход телефона или смартфона. В противном случае iPhone сломается и его придется воспользоватся сервисом по ремонту iPhone.
В данном примере мы подключим iPhone к Arduino и будем управлять инфракрасным светодиодом. Для этого нам понадобится специальная программа под iPhone и специальная библиотека под Arduino.
Код команды из телефона передается через аудиоканал на вход Arduino, где происходит его анализ и в соответсвии с полученным сигналом происходит включение и выключение инфракрасного светодиода. На приемнике происхоид обратный процесс декодирования полученног сигнала.
Код программы под Arduino
In the steup function, we need to initialize the buffer and soft modem. void setup() { Serial.begin(9600); // Initialize the buffer with a capacity for 4 bytes buffer.init(4); delay(1000); modem.begin(); } In the loop() function, Arduino will keep listening to the soft modem. While soft modem is available, we read 2 bytes from the soft modem. Then check if we need to clear the buffer. If not, we put the 2 bytes into the buffer. This is how we get the command from soft modem. When we get the command, we simply use a IRsend to send the command to the IR LED under NEC Protocol. void loop() { while(modem.available()){ int c = modem.read(); if((buffer.getSize() == 4 || buffer.getSize() == 0) && c == 0xFF) { buffer.clear(); } else { buffer.put(c); } } if(buffer.getSize() == 4) { long cmd = buffer.getLong(); Serial.print("Sending cmd: "); Serial.println(cmd, HEX); irsend.sendNEC(cmd, 32); // NEC Protocol command delay(100); }
iOs Application
The demo app is very simple. We have 2 buttons on the main view, and each button represents a command. We also have an info view, in which you can change the command for both buttons. Once the button is pressed, we will use a serial generator to encode a audio signal representing the command, and the signal will be received by the soft modem. - (void)buttonPressed:(UIButton*)button { NSString* buttonKey = (button.tag == 1) ? @"first" : @"second"; NSString* hex = [[NSUserDefaults standardUserDefaults] stringForKey:buttonKey]; hex = [hex substringFromIndex:2]; NSData* hexData = [hex hexToBytes]; //NSLog(@"%@", hex); //NSLog(@"%@", [hex hexToBytes]); [APP_DELEGATE.generator writeByte:0xff]; [APP_DELEGATE.generator writeBytes:[hexData bytes] length:hexData.length]; }
Похожий проект Arduino irremoteв котором arduino выступает в качестве приемника, а управление осуществляется при помощи пульта дистанционного управления.
Более подробно про этот проект можно почитатьна сайте источнике
]]>Данный усилитель можно применять для усиления сигнала в схемах радиоприемников, усилителей для наушников, можно использовать в качестве усилителя для радиоэлектронных игрушек и ряду других устройств которые не требуют значительного усиления звукового сигнала.
Список радиодеталей для сборки усилителя на микросхеме LM386
Данный усилитель можно применять для усиления сигнала в схемах радиоприемников, усилителей для наушников, можно использовать в качестве усилителя для радиоэлектронных игрушек и ряду других устройств которые не требуют значительного усиления звукового сигнала.
Список радиодеталей для сборки усилителя на микросхеме LM386
Но лучше это сделать на микроконтроллере, что позволяет использовать минимальное количество радиодеталей и генерировать программно абсолютно любые звуки. Приведенный ниже код генерирует звук при помощи ШИМ.
В данном примере используется микроконтроллер Atmega32 с тактовой частотой в 16 МГц. Динамик в 8-Ом напрямую подключается к выводу PB3. Работу программы можно посмотреть на видео.
Фъюзы должны быть запрограммированы следующим образом:
HIGH FUSE=C9 LOW FUSE=FF
https://www.youtube.com/watch?v=lUhQU8gyG9M
Книга о том как зароботать онлайн, как заработать на публикации стайтей,обучении веб-дизайне, поиске информации и многом другом.
Имя файла pwmsnd.c
/******************************************************************** DESCRIPTION: A Simple program to genarate some random musical tone. MCU: Atmel AVR ATmega32s CPU SPEED: 16Mhz LOW FUSE: 0XFF HIGH FUSE: 0XC9 NOTE: Connect a 8ohm speaker between GND and PB3. AUTHOR: Avinash Gupta DATE: Mar 18, 2010 WEB: www.eXtremeElectronics.co.in *** THIS PROJECT IS PROVIDED FOR EDUCATION/HOBBY USE ONLY *** *** NO PROTION OF THIS WORK CAN BE USED IN COMMERIAL *** *** APPLICATION WITHOUT WRITTEN PERMISSION FROM THE AUTHOR *** EVERYONE IS FREE TO POST/PUBLISH THIS ARTICLE IN PRINTED OR ELECTRONIC FORM IN FREE/PAID WEBSITES/MAGAZINES/BOOKS IF PROPER CREDIT TO ORIGINAL AUTHOR IS MENTIONED WITH LINKS TO ORIGINAL ARTICLE COPYRIGHT (C) 2008-2010 EXTREME ELECTRONICS INDIA. *********************************************************************/ #include <avr/io.h> #include <util/delay.h> #include <avr/pgmspace.h> #include "sin.h" /* Function To Initialize TIMER0 In Fast PWWM Mode. */ void InitPWM() { /* TCCR0 - Timer Counter Control Register (TIMER0) ----------------------------------------------- BITS DESCRIPTION NO: NAME DESCRIPTION -------------------------- BIT 7 : FOC0 Force Output Compare [Not used in this example] BIT 6 : WGM00 Wave form generartion mode [SET to 1] BIT 5 : COM01 Compare Output Mode [SET to 1] BIT 4 : COM00 Compare Output Mode [SET to 0] BIT 3 : WGM01 Wave form generartion mode [SET to 1] BIT 2 : CS02 Clock Select [SET to 0] BIT 1 : CS01 Clock Select [SET to 0] BIT 0 : CS00 Clock Select [SET to 1] The above settings are for -------------------------- Timer Clock = CPU Clock (No Prescalling) Mode = Fast PWM PWM Output = Non Inverted */ TCCR0|=(1<<WGM00)|(1<<WGM01)|(1<<COM01)|(1<<CS00); //Set OC0 PIN as output. It is PB3 on ATmega16 ATmega32 DDRB|=(1<<PB3); } void main() { uint8_t i; InitPWM(); while(1) { uint8_t delay,n; for(delay=1;delay<=50;delay++) { for(n=0;n<(51-delay);n++) { for(i=0;i<=254;i++) { OCR0=pgm_read_byte_near(sine+i); _delay_loop_2(delay); } } } for(delay=50;delay>=2;delay--) { for(n=0;n<(51-delay);n++) { for(i=0;i<=254;i++) { OCR0=pgm_read_byte_near(sine+i); _delay_loop_2(delay); } } } } }
Имя файла sin.h
#include <avr/pgmspace.h> prog_uint8_t sine[256]={ 127, 130, 133, 136, 139, 143, 146, 149, 152, 155, 158, 161, 164, 167, 170, 173, 176, 178, 181, 184, 187, 189, 192, 195, 197, 200, 203, 205, 207, 210, 212, 214, 217, 219, 221, 223, 225, 227, 229, 231, 232, 234, 236, 237, 239, 240, 242, 243, 244, 245, 246, 248, 248, 249, 250, 251, 251, 252, 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, 253, 253, 253, 252, 252, 251, 250, 250, 249, 248, 247, 246, 245, 243, 242, 241, 239, 238, 236, 235, 233, 231, 229, 227, 225, 224, 221, 219, 217, 215, 213, 210, 208, 206, 203, 201, 198, 195, 193, 190, 187, 185, 182, 179, 176, 173, 170, 167, 164, 161, 158, 155, 152, 149, 146, 143, 140, 137, 134, 131, 128, 125, 121, 118, 115, 112, 109, 106, 103, 100, 97, 94, 91, 88, 85, 82, 79, 76, 73, 71, 68, 65, 62, 60, 57, 55, 52, 50, 47, 45, 42, 40, 38, 36, 34, 31, 29, 27, 26, 24, 22, 20, 19, 17, 15, 14, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 19, 21, 22, 24, 26, 28, 30, 32, 34, 36, 39, 41, 43, 45, 48, 50, 53, 55, 58, 61, 63, 66, 69, 72, 74, 77, 80, 83, 86, 89, 92, 95, 98, 101, 104, 107, 110, 113, 116, 119, 122, };]]>
Но лучше это сделать на микроконтроллере, что позволяет использовать минимальное количество радиодеталей и генерировать программно абсолютно любые звуки. Приведенный ниже код генерирует звук при помощи ШИМ.
В данном примере используется микроконтроллер Atmega32 с тактовой частотой в 16 МГц. Динамик в 8-Ом напрямую подключается к выводу PB3. Работу программы можно посмотреть на видео.
Фъюзы должны быть запрограммированы следующим образом:
HIGH FUSE=C9 LOW FUSE=FF
https://www.youtube.com/watch?v=lUhQU8gyG9M
Книга о том как зароботать онлайн, как заработать на публикации стайтей,обучении веб-дизайне, поиске информации и многом другом.
Имя файла pwmsnd.c
/******************************************************************** DESCRIPTION: A Simple program to genarate some random musical tone. MCU: Atmel AVR ATmega32s CPU SPEED: 16Mhz LOW FUSE: 0XFF HIGH FUSE: 0XC9 NOTE: Connect a 8ohm speaker between GND and PB3. AUTHOR: Avinash Gupta DATE: Mar 18, 2010 WEB: www.eXtremeElectronics.co.in *** THIS PROJECT IS PROVIDED FOR EDUCATION/HOBBY USE ONLY *** *** NO PROTION OF THIS WORK CAN BE USED IN COMMERIAL *** *** APPLICATION WITHOUT WRITTEN PERMISSION FROM THE AUTHOR *** EVERYONE IS FREE TO POST/PUBLISH THIS ARTICLE IN PRINTED OR ELECTRONIC FORM IN FREE/PAID WEBSITES/MAGAZINES/BOOKS IF PROPER CREDIT TO ORIGINAL AUTHOR IS MENTIONED WITH LINKS TO ORIGINAL ARTICLE COPYRIGHT (C) 2008-2010 EXTREME ELECTRONICS INDIA. *********************************************************************/ #include <avr/io.h> #include <util/delay.h> #include <avr/pgmspace.h> #include "sin.h" /* Function To Initialize TIMER0 In Fast PWWM Mode. */ void InitPWM() { /* TCCR0 - Timer Counter Control Register (TIMER0) ----------------------------------------------- BITS DESCRIPTION NO: NAME DESCRIPTION -------------------------- BIT 7 : FOC0 Force Output Compare [Not used in this example] BIT 6 : WGM00 Wave form generartion mode [SET to 1] BIT 5 : COM01 Compare Output Mode [SET to 1] BIT 4 : COM00 Compare Output Mode [SET to 0] BIT 3 : WGM01 Wave form generartion mode [SET to 1] BIT 2 : CS02 Clock Select [SET to 0] BIT 1 : CS01 Clock Select [SET to 0] BIT 0 : CS00 Clock Select [SET to 1] The above settings are for -------------------------- Timer Clock = CPU Clock (No Prescalling) Mode = Fast PWM PWM Output = Non Inverted */ TCCR0|=(1<<WGM00)|(1<<WGM01)|(1<<COM01)|(1<<CS00); //Set OC0 PIN as output. It is PB3 on ATmega16 ATmega32 DDRB|=(1<<PB3); } void main() { uint8_t i; InitPWM(); while(1) { uint8_t delay,n; for(delay=1;delay<=50;delay++) { for(n=0;n<(51-delay);n++) { for(i=0;i<=254;i++) { OCR0=pgm_read_byte_near(sine+i); _delay_loop_2(delay); } } } for(delay=50;delay>=2;delay--) { for(n=0;n<(51-delay);n++) { for(i=0;i<=254;i++) { OCR0=pgm_read_byte_near(sine+i); _delay_loop_2(delay); } } } } }
Имя файла sin.h
#include <avr/pgmspace.h> prog_uint8_t sine[256]={ 127, 130, 133, 136, 139, 143, 146, 149, 152, 155, 158, 161, 164, 167, 170, 173, 176, 178, 181, 184, 187, 189, 192, 195, 197, 200, 203, 205, 207, 210, 212, 214, 217, 219, 221, 223, 225, 227, 229, 231, 232, 234, 236, 237, 239, 240, 242, 243, 244, 245, 246, 248, 248, 249, 250, 251, 251, 252, 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, 253, 253, 253, 252, 252, 251, 250, 250, 249, 248, 247, 246, 245, 243, 242, 241, 239, 238, 236, 235, 233, 231, 229, 227, 225, 224, 221, 219, 217, 215, 213, 210, 208, 206, 203, 201, 198, 195, 193, 190, 187, 185, 182, 179, 176, 173, 170, 167, 164, 161, 158, 155, 152, 149, 146, 143, 140, 137, 134, 131, 128, 125, 121, 118, 115, 112, 109, 106, 103, 100, 97, 94, 91, 88, 85, 82, 79, 76, 73, 71, 68, 65, 62, 60, 57, 55, 52, 50, 47, 45, 42, 40, 38, 36, 34, 31, 29, 27, 26, 24, 22, 20, 19, 17, 15, 14, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 19, 21, 22, 24, 26, 28, 30, 32, 34, 36, 39, 41, 43, 45, 48, 50, 53, 55, 58, 61, 63, 66, 69, 72, 74, 77, 80, 83, 86, 89, 92, 95, 98, 101, 104, 107, 110, 113, 116, 119, 122, };]]>
Некое подобие частотомера уже обсуждалось в статье частотомер на микронтроллере.
Программа частотомера
#define F_CPU 1000000 #include "lcd.h" #define SMP 1 int main(void) { unsigned int i; stdout=&lcd_str; initLCD(); _delay_ms(50); while(1) { TCNT1 =0; _delay_ms(1000/SMP); i=TCNT1; LCDcmd(0x01); printf("Freq:%uHz",i*SMP); _delay_ms(500); } return 0; }
Для работы с lcd дисплейм вам также понадобится библиотека lcd.h. О том как подключить символьный lcd дисплей к avr было сказано ранее.
]]>Некое подобие частотомера уже обсуждалось в статье частотомер на микронтроллере.
Программа частотомера
#define F_CPU 1000000 #include "lcd.h" #define SMP 1 int main(void) { unsigned int i; stdout=&lcd_str; initLCD(); _delay_ms(50); while(1) { TCNT1 =0; _delay_ms(1000/SMP); i=TCNT1; LCDcmd(0x01); printf("Freq:%uHz",i*SMP); _delay_ms(500); } return 0; }
Для работы с lcd дисплейм вам также понадобится библиотека lcd.h. О том как подключить символьный lcd дисплей к avr было сказано ранее.
]]>Для измерения атмосферного давления используются датчики давления. В данной статье описан датчик давления SPD005G от Smartec. SPD означает Smart Pressure Device . Эти датчики собраны на основе кремния и пригодны как использования как в промышленности так и для использования в быту. Датчик представляет собой пластиковый корпус с специальным отверстием для измерения атмосферного давления.
Датчик может работать в двух режимах:в режиме абсолютного измерения когда давление измеряется относительно ваккума, и в режиме относительного измерения - когда измерение осуществляется относительно атмосферного давления. Когда датчик работает в режиме абсолютного измерения, то измеряет ся перепад давления между измеряемым давлением и давлением ваккумной камеры, которая находится в самом датчике.
Датчик SPD005G используется в различных медицинских аппаратах, системах кондиционирования воздуха, и многих других устройствах требующих достаточного уровня точности.
В проекте используется символьный LCD дисплей. Про подключение дисплея к Arduino было сказано ранее.
Документация датчика spd005g и его технические характеристики.
Датчик подключается к Arduino через специальный каскад собранным на операционном усилителе LM324. Выходной вывод каскада 12 подключается к выводу A0 arduino. Вывод измеренного значения с датчика давления выводится на символьный LCD дисплей 16x2. Светодиод L2 можно исключить из схемы, он необхоим только лишь для сигнализации наличия напряжения. Переменое сопротивление R4 предназначено для регилировки контрасности дисплея. Передачи данных осуществляется по 4-м проводам подключенным к выводам DB4-DB7.
Питание LCD дисплея 16x2 осуществляется от источника в 5 Вольт.
#include <LiquidCrystal.h> int sensor=A0; int dig_out; float millivolt; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // sets the lcd interfacing pins void setup() { pinMode(sensor,INPUT); // sets A0 as input lcd.begin(16, 2); // initializes the lcd } void loop() { dig_out=analogRead(sensor); // reads the input voltage millivolt=(dig_out*4.882); // converts the reading to millivolt lcd.setCursor(0,0); lcd.print("Pressure Sensor"); // prints "Pressure Sensor" lcd.setCursor(0,1); lcd.print(millivolt); // prints the input voltage lcd.setCursor(9,1); lcd.print("mV"); // prints the"mV" notation delay(300); // 300 mS delay lcd.clear(); // clears screen }]]>
Для измерения атмосферного давления используются датчики давления. В данной статье описан датчик давления SPD005G от Smartec. SPD означает Smart Pressure Device . Эти датчики собраны на основе кремния и пригодны как использования как в промышленности так и для использования в быту. Датчик представляет собой пластиковый корпус с специальным отверстием для измерения атмосферного давления.
Датчик может работать в двух режимах:в режиме абсолютного измерения когда давление измеряется относительно ваккума, и в режиме относительного измерения - когда измерение осуществляется относительно атмосферного давления. Когда датчик работает в режиме абсолютного измерения, то измеряет ся перепад давления между измеряемым давлением и давлением ваккумной камеры, которая находится в самом датчике.
Датчик SPD005G используется в различных медицинских аппаратах, системах кондиционирования воздуха, и многих других устройствах требующих достаточного уровня точности.
В проекте используется символьный LCD дисплей. Про подключение дисплея к Arduino было сказано ранее.
Документация датчика spd005g и его технические характеристики.
Датчик подключается к Arduino через специальный каскад собранным на операционном усилителе LM324. Выходной вывод каскада 12 подключается к выводу A0 arduino. Вывод измеренного значения с датчика давления выводится на символьный LCD дисплей 16x2. Светодиод L2 можно исключить из схемы, он необхоим только лишь для сигнализации наличия напряжения. Переменое сопротивление R4 предназначено для регилировки контрасности дисплея. Передачи данных осуществляется по 4-м проводам подключенным к выводам DB4-DB7.
Питание LCD дисплея 16x2 осуществляется от источника в 5 Вольт.
#include <LiquidCrystal.h> int sensor=A0; int dig_out; float millivolt; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // sets the lcd interfacing pins void setup() { pinMode(sensor,INPUT); // sets A0 as input lcd.begin(16, 2); // initializes the lcd } void loop() { dig_out=analogRead(sensor); // reads the input voltage millivolt=(dig_out*4.882); // converts the reading to millivolt lcd.setCursor(0,0); lcd.print("Pressure Sensor"); // prints "Pressure Sensor" lcd.setCursor(0,1); lcd.print(millivolt); // prints the input voltage lcd.setCursor(9,1); lcd.print("mV"); // prints the"mV" notation delay(300); // 300 mS delay lcd.clear(); // clears screen }]]>
Прошивка осуществляется при помощи специального устройства или программатора. Программаторы для каждых типов микроконтроллера свои. Также программаторы отличаются по способу подключения к компьютеру, могут подключатся через USB, LTP,COM. Существует целое множество разнообразных программаторов под микроконтроллеры AVR.
Наиболее простым на мой взгляд и простым в освоении программатором для AVR является USB-asp программатор. Мой первый проект и использованием такого программатора имел 2 детали, самого контроллера atmega8 и светодиода. После подключения и прошивки контроллера светодиод радостно начал мне подмигивать.
AVR-Doper. Этот программатор поддерживает протокол STK500 ( то есть, может совмещаться со многими утилитами, предназначенными для программирования), поддержка последовательного ISP- программирования и даже высоковольтного HVSP программирования. Прошивка практически всех известных чипов AVR. Возможно сделать самостоятельно, схемы не очень сложные, существует большое количество готовых прошивок, полностью открытый исходный код. Для качественной работы совместно с Windows требуется установка драйвера, который поставляется вместе с исходным кодом.
AVRISP-Mk. Такое название у клона Atmel с поддержкой протокола STK500. Не поддерживается HVSP, но в свободном доступе ISP, TPI и PDI, что позволяет прошить более современные микроконтроллеры типа XMEGA. Поддерживаются многие популярные программы. Его схема невероятно простая, поэтому программатор именно этого типа часто самостоятельно изготавливают. Исходный код открыт, возможна компиляция на другие чипы AVR, имеющие аппаратный интерфейс USB. Для Windows необходим драйвер, он идет в комплекте с исходным кодом. Наиболее подходящая данному программатору утилита AVR Studio 4.19.
AVR Dragon. Не слишком дорогой программатор, который пользуется популярностью с внутрисхемным отладчиком Atmel, его аналоги продаются на eBay за 40-50 американских долларов. Поддержка AVR Studio, IAR Embedded Workbench и многих других сред программирования. Самостоятельно изготовить его нельзя, так как нет ни доступных схем, ни кодов доступа, открытым остался исключительно STK500. Если вы обладаете достаточным количеством средств и хотите развиваться, как программист — стоит приобрести этот программатор. Для работы с Windows требуется драйвер, его можно установить вместе с AVR Studio.
Atmel AVR JTAGICE mk. Его еще называют «тяжелой артиллерией» в программировании и отладке AVR, так как это программатор- ISP со внутрисхемным эмулятором (JTAG, debugWIRE) в одной прошивке. Работа осуществляется с помощью COM-порта и по USB. Доступен для понимания даже avrdude. Хороший во всем, только не радует его стоимость. Может работать с AVR Studio, консольной штатной прогой. Поддержка интерфейсов отладки debugWire и JTAG, всего ассортимента AVR, но не поддерживается высоковольтное программирование HVSP. Очень дорогое удовольствие, которое трудно рекомендовать. Сделать самостоятельно невозможно. Для Windows нужна установка драйвера, идущего в комплекте с AVR Studio.
USBasp. Программатор, успевший получить статус «народного». Его дешево изготовить, схемы достаточно просты, большое количество исходников со свободным доступом дают возможности сделать проект собственными руками. Поддержка большого количества утилит для программирования. Его изготовляют многие компании в том числе и китайские. На ebay цена одной копии USBasp стартует от 4 долларов. Но будьте внимательны — дешевая продукция, как правило, обладает низким качеством. Поддержка исключительно ISP. Не забудьте об установке драйвера для Windows. Применение в USB-бутлоадерах (этому способствуют открытость и простота).
USBtinyISP. Этот проект находится в открытом доступе, есть все исходники. В состав входят 2 ISP-коннектора (6 pin и 10 pin). Использование чипа ATtiny2313-20P. Схема отличается своей простотой.
USB AVR programmer. Не считается официальным аналогом AVR910, но характеристики очень похожие. Схемы и исходники находятся в свободном доступе.
Vusbtiny. Отличается своей необычной простотой и маленькими размерами. USB интерфейс и поддержка ISP.
]]>Прошивка осуществляется при помощи специального устройства или программатора. Программаторы для каждых типов микроконтроллера свои. Также программаторы отличаются по способу подключения к компьютеру, могут подключатся через USB, LTP,COM. Существует целое множество разнообразных программаторов под микроконтроллеры AVR.
Наиболее простым на мой взгляд и простым в освоении программатором для AVR является USB-asp программатор. Мой первый проект и использованием такого программатора имел 2 детали, самого контроллера atmega8 и светодиода. После подключения и прошивки контроллера светодиод радостно начал мне подмигивать.
AVR-Doper. Этот программатор поддерживает протокол STK500 ( то есть, может совмещаться со многими утилитами, предназначенными для программирования), поддержка последовательного ISP- программирования и даже высоковольтного HVSP программирования. Прошивка практически всех известных чипов AVR. Возможно сделать самостоятельно, схемы не очень сложные, существует большое количество готовых прошивок, полностью открытый исходный код. Для качественной работы совместно с Windows требуется установка драйвера, который поставляется вместе с исходным кодом.
AVRISP-Mk. Такое название у клона Atmel с поддержкой протокола STK500. Не поддерживается HVSP, но в свободном доступе ISP, TPI и PDI, что позволяет прошить более современные микроконтроллеры типа XMEGA. Поддерживаются многие популярные программы. Его схема невероятно простая, поэтому программатор именно этого типа часто самостоятельно изготавливают. Исходный код открыт, возможна компиляция на другие чипы AVR, имеющие аппаратный интерфейс USB. Для Windows необходим драйвер, он идет в комплекте с исходным кодом. Наиболее подходящая данному программатору утилита AVR Studio 4.19.
AVR Dragon. Не слишком дорогой программатор, который пользуется популярностью с внутрисхемным отладчиком Atmel, его аналоги продаются на eBay за 40-50 американских долларов. Поддержка AVR Studio, IAR Embedded Workbench и многих других сред программирования. Самостоятельно изготовить его нельзя, так как нет ни доступных схем, ни кодов доступа, открытым остался исключительно STK500. Если вы обладаете достаточным количеством средств и хотите развиваться, как программист — стоит приобрести этот программатор. Для работы с Windows требуется драйвер, его можно установить вместе с AVR Studio.
Atmel AVR JTAGICE mk. Его еще называют «тяжелой артиллерией» в программировании и отладке AVR, так как это программатор- ISP со внутрисхемным эмулятором (JTAG, debugWIRE) в одной прошивке. Работа осуществляется с помощью COM-порта и по USB. Доступен для понимания даже avrdude. Хороший во всем, только не радует его стоимость. Может работать с AVR Studio, консольной штатной прогой. Поддержка интерфейсов отладки debugWire и JTAG, всего ассортимента AVR, но не поддерживается высоковольтное программирование HVSP. Очень дорогое удовольствие, которое трудно рекомендовать. Сделать самостоятельно невозможно. Для Windows нужна установка драйвера, идущего в комплекте с AVR Studio.
USBasp. Программатор, успевший получить статус «народного». Его дешево изготовить, схемы достаточно просты, большое количество исходников со свободным доступом дают возможности сделать проект собственными руками. Поддержка большого количества утилит для программирования. Его изготовляют многие компании в том числе и китайские. На ebay цена одной копии USBasp стартует от 4 долларов. Но будьте внимательны — дешевая продукция, как правило, обладает низким качеством. Поддержка исключительно ISP. Не забудьте об установке драйвера для Windows. Применение в USB-бутлоадерах (этому способствуют открытость и простота).
USBtinyISP. Этот проект находится в открытом доступе, есть все исходники. В состав входят 2 ISP-коннектора (6 pin и 10 pin). Использование чипа ATtiny2313-20P. Схема отличается своей простотой.
USB AVR programmer. Не считается официальным аналогом AVR910, но характеристики очень похожие. Схемы и исходники находятся в свободном доступе.
Vusbtiny. Отличается своей необычной простотой и маленькими размерами. USB интерфейс и поддержка ISP.
]]>На основе данного датчика относительного давления можно спроектировать некое подобие климатической установки, регулирующей влажность в помещении либо в теплице с растениями. Для этого в программ у добавить условие : "если влажность менее 60% то подать напряжение на распылитель". Тут под "распылителем" понимается устройство распыляющее влагу.
Характеристики датчика DHT11
Расположение и назначение выводов датчика влажности
Для подключения датчика используется 4 вывода, два из них выводы напряжения (vcc и gnd), третий не подключен, четвертый является линией данных. Между линией данных и плюсовым выводом питания необходимо установить резистор сопротивлением в 10 кОм. В некоторые аналогичных датчиках влажности уже есть данный резистор. Если такой резистор уже имеется то припаивать новый уже не следует.
Датчик подключается по 3-м проводам, линия данных подключена к выводу 2, т.к. в программе объект датчика привязывается к этому выводу. 3-й вывод как видно из схемы никуда не подключается.
Программа Arduino коммутации с датчиком
#include "DHT.h" #define DHTPIN 2 //DHT dht(DHTPIN, DHT22); DHT dht(DHTPIN, DHT11); void setup()]]>
{ Serial.begin(9600);
dht.begin();
} void loop() { delay(1000); float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.print("Не считываются показания");
Serial.pringln(""); return; } Serial.print("Влажность воздуха: "+h+" %\t"+"Температура воздуха: "+t+" *C "); }
На основе данного датчика относительного давления можно спроектировать некое подобие климатической установки, регулирующей влажность в помещении либо в теплице с растениями. Для этого в программ у добавить условие : "если влажность менее 60% то подать напряжение на распылитель". Тут под "распылителем" понимается устройство распыляющее влагу.
Характеристики датчика DHT11
Расположение и назначение выводов датчика влажности
Для подключения датчика используется 4 вывода, два из них выводы напряжения (vcc и gnd), третий не подключен, четвертый является линией данных. Между линией данных и плюсовым выводом питания необходимо установить резистор сопротивлением в 10 кОм. В некоторые аналогичных датчиках влажности уже есть данный резистор. Если такой резистор уже имеется то припаивать новый уже не следует.
Датчик подключается по 3-м проводам, линия данных подключена к выводу 2, т.к. в программе объект датчика привязывается к этому выводу. 3-й вывод как видно из схемы никуда не подключается.
Программа Arduino коммутации с датчиком
#include "DHT.h" #define DHTPIN 2 //DHT dht(DHTPIN, DHT22); DHT dht(DHTPIN, DHT11); void setup()]]>
{ Serial.begin(9600);
dht.begin();
} void loop() { delay(1000); float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.print("Не считываются показания");
Serial.pringln(""); return; } Serial.print("Влажность воздуха: "+h+" %\t"+"Температура воздуха: "+t+" *C "); }
Схема светодиодного драйвера для светодиода состоит из С4 – входного конденсатора, R1 – регулировка потока выходного тока, С3 – выходного конденсатора. С1 и С2 – внутренние конденсаторы. Если действует дежурный режим – потребление тока находится практически на нулевом уровне. Когда используется R1, ток светодиода на одном канале будет равен 25 мА.
Когда проходит включение, светодиодные драйверы будут работать в режиме 1Х. это значит, что выходное направление будет равно входному. Если уровня выходного напряжения будет хватать для запуска светодиодной системы, то продолжится работа в таком режиме. Но в тех случаях, если выходное напряжение будет недостаточным для запуска и работы светодиодных драйверов, то в автоматическом порядке произойдет увеличение уровня входного тока, что будет в 1,5 Х раза отличаться от действующих размеров входного тока.
Далее следует подобрать сопротивление. Они будут меняться в зависимости от тока светодиода (мA). К примеру, если ток светодиода будет минимальным и равным 1 мА — R1 (кОм) составит 649. 5 мА — 287 кОм, 10 мА — 102 кОм, 15 мА — 49.9 кОм, 20 мА — 32.4 кОм, 25 мА — 23.7 кОм, 30 мА — 15.4 кОм.
Существует ряд замечаний, которые необходимо учитывать при использовании:
Схема светодиодного драйвера для светодиода состоит из С4 – входного конденсатора, R1 – регулировка потока выходного тока, С3 – выходного конденсатора. С1 и С2 – внутренние конденсаторы. Если действует дежурный режим – потребление тока находится практически на нулевом уровне. Когда используется R1, ток светодиода на одном канале будет равен 25 мА.
Когда проходит включение, светодиодные драйверы будут работать в режиме 1Х. это значит, что выходное направление будет равно входному. Если уровня выходного напряжения будет хватать для запуска светодиодной системы, то продолжится работа в таком режиме. Но в тех случаях, если выходное напряжение будет недостаточным для запуска и работы светодиодных драйверов, то в автоматическом порядке произойдет увеличение уровня входного тока, что будет в 1,5 Х раза отличаться от действующих размеров входного тока.
Далее следует подобрать сопротивление. Они будут меняться в зависимости от тока светодиода (мA). К примеру, если ток светодиода будет минимальным и равным 1 мА — R1 (кОм) составит 649. 5 мА — 287 кОм, 10 мА — 102 кОм, 15 мА — 49.9 кОм, 20 мА — 32.4 кОм, 25 мА — 23.7 кОм, 30 мА — 15.4 кОм.
Существует ряд замечаний, которые необходимо учитывать при использовании:
Цифровой датчик ds18b20 имеет температурный диапазон от -55 до +125 градусов по Цельсию, точность датчика составляет порядка 0.5 градуса. Подключение датчика осуществляется по 3м проводам, 2 из них это питание, а 3-й это линия данных.
Код программы
‘—————————————————————————————– ‘purpose : DS1820 / DS18S20 Temperature Indicator ‘—————————————————————————————– $regfile = “m8515.dat” ‘ specify the used micro $crystal = 8000000 ‘ used crystal frequency Declare Sub Read1820 Config 1wire = Portd.7 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1 , Rs = Porta.0 ‘Temp variables Dim Bd1 As Byte Dim Bd2 As Byte Dim Bd7 As Byte Dim Bd8 As Byte Dim I As Byte , Tmp As Byte Dim T As Integer , T1 As Integer Dim Bd(9) As Byte ‘Scratchpad 0-8 72 bits incl CRC, explanations for DS1820 ‘Sc(1) ‘Temperature LSB ‘Sc(2) ‘Temperature MSB ‘Sc(3) ‘TH/user byte 1 also SRAM ‘Sc(4) ‘TL/user byte 2 also SRAM ‘Sc(5) ‘config also SRAM x R1 R0 1 1 1 1 1 – the r1 r0 are config for resolution – write FF to byte for 12 bit – others dont care ‘Sc(6) ‘res ‘Sc(7) ‘res ‘Sc(8) ‘res ‘Sc(9) ‘8 CRC ‘DALLAS DS1820 ROM and scratchpad commands”””””””””””””1wwrite…. ‘&H 33 read rom – single sensor ‘&H CC skip rom ‘&H BE read scratchpad ‘&H 44 convert T ‘ Main loop Cls Cursor Off Do 1wwrite &HCC : 1wwrite &H44 ‘ start measure Waitms 400 ‘ wait for end of conversion Read1820 Wait 1 Loop End ‘end program ‘Read the DS1820 by skipping the ROM checking, since we are using only 1 sensor Sub Read1820 ‘ reads sensor ans calculate ‘ T for 0.1 C 1wreset ‘ reset the bus 1wwrite &HCC ‘ read internal RAM 1wwrite &HBE ‘ read 9 data bytest Bd(1) = 1wread(9) Bd1 = Bd(1) Bd2 = Bd(2) Bd7 = Bd(7) Bd8 = Bd(8) ‘ read bytes in array 1wreset ‘ reset the bus Tmp = Bd1 And 1 If Tmp = 1 Then Decr Bd1 ‘ 0.1C precision T = Bd1 T = T * 50 T = T – 25 T1 = Bd8 – Bd7 T1 = T1 * 100 T1 = T1 / Bd8 T = T + T1 T1 = T / 100 ‘store tens T = T Mod 100 ‘store decimal number Cls Locate 1 , 3 Lcd “Temperature” Locate 2 , 7 Lcd T1 ; “.” ; T End Sub End
Цифровой датчик ds18b20 имеет температурный диапазон от -55 до +125 градусов по Цельсию, точность датчика составляет порядка 0.5 градуса. Подключение датчика осуществляется по 3м проводам, 2 из них это питание, а 3-й это линия данных.
Код программы
‘—————————————————————————————– ‘purpose : DS1820 / DS18S20 Temperature Indicator ‘—————————————————————————————– $regfile = “m8515.dat” ‘ specify the used micro $crystal = 8000000 ‘ used crystal frequency Declare Sub Read1820 Config 1wire = Portd.7 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1 , Rs = Porta.0 ‘Temp variables Dim Bd1 As Byte Dim Bd2 As Byte Dim Bd7 As Byte Dim Bd8 As Byte Dim I As Byte , Tmp As Byte Dim T As Integer , T1 As Integer Dim Bd(9) As Byte ‘Scratchpad 0-8 72 bits incl CRC, explanations for DS1820 ‘Sc(1) ‘Temperature LSB ‘Sc(2) ‘Temperature MSB ‘Sc(3) ‘TH/user byte 1 also SRAM ‘Sc(4) ‘TL/user byte 2 also SRAM ‘Sc(5) ‘config also SRAM x R1 R0 1 1 1 1 1 – the r1 r0 are config for resolution – write FF to byte for 12 bit – others dont care ‘Sc(6) ‘res ‘Sc(7) ‘res ‘Sc(8) ‘res ‘Sc(9) ‘8 CRC ‘DALLAS DS1820 ROM and scratchpad commands”””””””””””””1wwrite…. ‘&H 33 read rom – single sensor ‘&H CC skip rom ‘&H BE read scratchpad ‘&H 44 convert T ‘ Main loop Cls Cursor Off Do 1wwrite &HCC : 1wwrite &H44 ‘ start measure Waitms 400 ‘ wait for end of conversion Read1820 Wait 1 Loop End ‘end program ‘Read the DS1820 by skipping the ROM checking, since we are using only 1 sensor Sub Read1820 ‘ reads sensor ans calculate ‘ T for 0.1 C 1wreset ‘ reset the bus 1wwrite &HCC ‘ read internal RAM 1wwrite &HBE ‘ read 9 data bytest Bd(1) = 1wread(9) Bd1 = Bd(1) Bd2 = Bd(2) Bd7 = Bd(7) Bd8 = Bd(8) ‘ read bytes in array 1wreset ‘ reset the bus Tmp = Bd1 And 1 If Tmp = 1 Then Decr Bd1 ‘ 0.1C precision T = Bd1 T = T * 50 T = T – 25 T1 = Bd8 – Bd7 T1 = T1 * 100 T1 = T1 / Bd8 T = T + T1 T1 = T / 100 ‘store tens T = T Mod 100 ‘store decimal number Cls Locate 1 , 3 Lcd “Temperature” Locate 2 , 7 Lcd T1 ; “.” ; T End Sub End
Широкий диапазон питающих напряжений дает возможность использовать микросхему TDA7294 совместно с нагрузкой при сопротивлении более 8 ОМ, и это без значительной потери мощности на выходе. Если использовать обе микросхемы, то верхняя граница усилителя будет не меньше 16 ОМ. Микросхема отдает мощность до 70 Вт при коэффициенте гармонических искажений равном 0,5%.
В схеме, показанной выше, не используются функции "MUTE" и "STAND-BY". Тут все дело в том, что усилитель включается в блоке питания. Входное сопротивление создают резисторы R1 и R4, а пары R1, С1 и R4, С4 выполняют ограничение нижней полосы пропускания. Ну а такие элементы, как R2, С2 и R5, С5 в цепи ООС задают нижнюю границу этой полосы. Коэффициент усиления УМЗЧ задается соотношением сопротивлений элементов R3/R2 и элементов R6/R5.
Если брать указанные номиналы элементов R2, R3, R5, R6, их коэффициент усиления составляет 30 дБ. Переключатель SA1 используется для выбора режима УМЗЧ, выбрать можно либо режим «стерео» либо режим «моно». Когда включен режим «Стерео» микросхемы работают независимо друг от друга, а когда включен режим «Моно» схема DA2 из не инвертирующего усилителя превращается в инвертирующий.
Что касается преобразователя блока питания, то он построен на микросхеме КР1114ЕУ4, которая является импортным аналогом микросхемы TL494CN. Благодаря тому, что такие микросхемы наделены собственными узлами защиты, в их случае не нужно думать об установке схем защиты непосредственно в блоке питания.
Микросхема КР1114ЕУ4 прекрасно работает как в однотактных преобразователях, так и в двухтактных. В данном блоке питания выполнено подключение вывода 13 к источнику напряжения +5 В. Выходы микросхемы подключаются через резисторы к базам биполярных транзисторов, идет речь о резисторах R16, R17 и о транзисторах VT1 и VT2. В связи с тем, что у данной микросхемы преобразователя есть выводы коллекторов и выходных транзисторов ,их можно без проблем выключить по схеме с общим коллектором и эмиттером, тут все зависит от структуры транзисторов.
В роли VD1 можно применить диоды из серий КД2999 и КД2997. Транзисторы КТ898А при желании можно заменить. Транзисторы VT2 и БП VT1 и микросхемы DA1, DA2 нужно ставить на раздельные теплоотводы. Что касается конкретно микросхем, то их можно установить на один теплоотвод, только в таком случае надо будет выполнить изоляцию, потому что корпус теплоотвода имеет металлическую подложку, а микросхемы обладают напряжением.
Если все элементы усилителя исправны, он будет работать без сбоев при первом же запуске. Настраивать придется только лишь блок питания. Кстати, именно из-за этого монтаж и последующая настройка устройства производится в два этапа. Сначала на печатную плату ставятся элементы блока питания, потом выпаивается резистор R14. После замеряется напряжение, оно должно быть в районе 26-28 В.
Следом впаивается R14, а R12 выпаивается. Вторая цепь настраивается аналогично. По завершении настройки впаивается резистор R12. Уже после производится монтаж деталей УМЗЧ и проверка работоспособности устройства. Что касается устройства автоматического включения усилителя, то его настраивать не надо.
]]>Широкий диапазон питающих напряжений дает возможность использовать микросхему TDA7294 совместно с нагрузкой при сопротивлении более 8 ОМ, и это без значительной потери мощности на выходе. Если использовать обе микросхемы, то верхняя граница усилителя будет не меньше 16 ОМ. Микросхема отдает мощность до 70 Вт при коэффициенте гармонических искажений равном 0,5%.
В схеме, показанной выше, не используются функции "MUTE" и "STAND-BY". Тут все дело в том, что усилитель включается в блоке питания. Входное сопротивление создают резисторы R1 и R4, а пары R1, С1 и R4, С4 выполняют ограничение нижней полосы пропускания. Ну а такие элементы, как R2, С2 и R5, С5 в цепи ООС задают нижнюю границу этой полосы. Коэффициент усиления УМЗЧ задается соотношением сопротивлений элементов R3/R2 и элементов R6/R5.
Если брать указанные номиналы элементов R2, R3, R5, R6, их коэффициент усиления составляет 30 дБ. Переключатель SA1 используется для выбора режима УМЗЧ, выбрать можно либо режим «стерео» либо режим «моно». Когда включен режим «Стерео» микросхемы работают независимо друг от друга, а когда включен режим «Моно» схема DA2 из не инвертирующего усилителя превращается в инвертирующий.
Что касается преобразователя блока питания, то он построен на микросхеме КР1114ЕУ4, которая является импортным аналогом микросхемы TL494CN. Благодаря тому, что такие микросхемы наделены собственными узлами защиты, в их случае не нужно думать об установке схем защиты непосредственно в блоке питания.
Микросхема КР1114ЕУ4 прекрасно работает как в однотактных преобразователях, так и в двухтактных. В данном блоке питания выполнено подключение вывода 13 к источнику напряжения +5 В. Выходы микросхемы подключаются через резисторы к базам биполярных транзисторов, идет речь о резисторах R16, R17 и о транзисторах VT1 и VT2. В связи с тем, что у данной микросхемы преобразователя есть выводы коллекторов и выходных транзисторов ,их можно без проблем выключить по схеме с общим коллектором и эмиттером, тут все зависит от структуры транзисторов.
В роли VD1 можно применить диоды из серий КД2999 и КД2997. Транзисторы КТ898А при желании можно заменить. Транзисторы VT2 и БП VT1 и микросхемы DA1, DA2 нужно ставить на раздельные теплоотводы. Что касается конкретно микросхем, то их можно установить на один теплоотвод, только в таком случае надо будет выполнить изоляцию, потому что корпус теплоотвода имеет металлическую подложку, а микросхемы обладают напряжением.
Если все элементы усилителя исправны, он будет работать без сбоев при первом же запуске. Настраивать придется только лишь блок питания. Кстати, именно из-за этого монтаж и последующая настройка устройства производится в два этапа. Сначала на печатную плату ставятся элементы блока питания, потом выпаивается резистор R14. После замеряется напряжение, оно должно быть в районе 26-28 В.
Следом впаивается R14, а R12 выпаивается. Вторая цепь настраивается аналогично. По завершении настройки впаивается резистор R12. Уже после производится монтаж деталей УМЗЧ и проверка работоспособности устройства. Что касается устройства автоматического включения усилителя, то его настраивать не надо.
]]>Вывод данных осуществляется в программу написанную для компьютера под Windows. При этом компьютер может быть абсолютно любым,будь это моноблок,стационарный компьютер или ноутбук,к примеру можно купить моноблок dell. В этом примере программа вольтметра была написана в среде разработке Visual C++. Статья ориентированна на тех кто уже имел дело с языком программирования C++
Измерение напряжения начинается только после того как со стороны компьютера поступят команды 0xAC и 0x1y. Где y представляет собой номер канала аналого цифрового преобразователя Arduino, и может принемать значение от 0 до 2.
После того как arduino получила команды старта измерения, начинается процесс измерения напряжения, измеренное напряжение отсылается обратно в компьютер с интервалом в 50 миллисекунд. Имеют следующий формат: 0xAB, 0xaa, 0xbb, где aa и bb максимальное и минимальное значение.
Прекращение измерения напряжения начинается после того как с компьютера поступят команды 0xAC и 0x00.
Программа написанная под Arduino (скетч) довольно проста - здесь нет ничего сложного,измеренное значение в последовательный порт. Измеренное значение напряжения умещается в 10 бит от 0x000 до 0x0400 хранится в переменной типа integer.
Последовательный порт имеет возможность передавать данные в пакете по 8 бит. Поэтому наше измеренное напряжение можно поделить на 2 пакета, каждый по 8 бит.Сначала осуществляется сдвиг на 8 бит, а затем делится на 256.
Программа вольтметра под компьютер
После того как интерфейс программы создан необходимо добавить объект последовательного порта. Этот объект позволяет изменять и задавать такие параметры как название порта, кол-во бит, скорость передачи. Добавляя поля контролирующие переменные объекта можно динамически (в процессе работы программы) изменять эти значения. В этом примере использована возможность только выбора порта.
По умолчанию программа выбирает первый порт. Важно помнить что порт ПК может быть использован только одним приложением, использование одного порта в двух приложения приведет к ошибке.
Считывание данных осуществляется при помощи события или прерывания. Выбор осуществляется во вкладке свойства.
Кнопка создания метода обработки полученных данных.
Код программы под windows можете скачать тут
]]>Вывод данных осуществляется в программу написанную для компьютера под Windows. При этом компьютер может быть абсолютно любым,будь это моноблок,стационарный компьютер или ноутбук,к примеру можно купить моноблок dell. В этом примере программа вольтметра была написана в среде разработке Visual C++. Статья ориентированна на тех кто уже имел дело с языком программирования C++
Измерение напряжения начинается только после того как со стороны компьютера поступят команды 0xAC и 0x1y. Где y представляет собой номер канала аналого цифрового преобразователя Arduino, и может принемать значение от 0 до 2.
После того как arduino получила команды старта измерения, начинается процесс измерения напряжения, измеренное напряжение отсылается обратно в компьютер с интервалом в 50 миллисекунд. Имеют следующий формат: 0xAB, 0xaa, 0xbb, где aa и bb максимальное и минимальное значение.
Прекращение измерения напряжения начинается после того как с компьютера поступят команды 0xAC и 0x00.
Программа написанная под Arduino (скетч) довольно проста - здесь нет ничего сложного,измеренное значение в последовательный порт. Измеренное значение напряжения умещается в 10 бит от 0x000 до 0x0400 хранится в переменной типа integer.
Последовательный порт имеет возможность передавать данные в пакете по 8 бит. Поэтому наше измеренное напряжение можно поделить на 2 пакета, каждый по 8 бит.Сначала осуществляется сдвиг на 8 бит, а затем делится на 256.
Программа вольтметра под компьютер
После того как интерфейс программы создан необходимо добавить объект последовательного порта. Этот объект позволяет изменять и задавать такие параметры как название порта, кол-во бит, скорость передачи. Добавляя поля контролирующие переменные объекта можно динамически (в процессе работы программы) изменять эти значения. В этом примере использована возможность только выбора порта.
По умолчанию программа выбирает первый порт. Важно помнить что порт ПК может быть использован только одним приложением, использование одного порта в двух приложения приведет к ошибке.
Считывание данных осуществляется при помощи события или прерывания. Выбор осуществляется во вкладке свойства.
Кнопка создания метода обработки полученных данных.
Код программы под windows можете скачать тут
]]>В журнала уже неоднократно приводились схемы различных подобных усилителей, но наибольшая мощность на выходе(и нелинейных искажениях,которые не превышают 10 %) усилителей, собранных на одной микросхеме с небольшой обвязкой, как правило, не превышает 100-120 Ватт при выборе доступных по цене микросхем. Даже в тех случаях, когда используют две микросхемы TDA7294, включенные по мостовой схеме, выходную мощность все равно не удается получить больше чем 200 Ватт.
Но бывают таки еслучаи когда требуется мощность значительно больше. Ниже представлена схема мощного усилителя, который собран на микросхеме с параметрами которые позволяют достичь отдачу порядка 300 Вт.
В описанной ниже схеме усилителя используется гибридная интегральная STK4231-II микросхема SANYO. По причине того что она имеет 2 канала, то используется вариант включения схемы по типу "мост". Сборка усилителя на данной микросхеме потребуется радиодеталей побольше чем при сборке усилка на микросхемах серии TDA, но все это оправдывается, поскольку использование STK4231-II позволяет достичь хорошую выходную мощность.
Корпус микросхемы не соединен электрически со схемой, поэтому ее можно смонтировать прям на металлический корпус всего УМЗЧ. А в микросхемах TDA корпус микросхемы под напряжением, в результате чего нужно приходится придумывать как избежать контакта с металлическим корпусом усилителя,что бывает порой очень не легко.
Напряжение подводится от нестабилизированного источника напряжения на 2 канала по (45...55) В.
Усиливаемый сигнал через R3 и C2 попадает на третий вывод DA2 (STK4231-II), который в свою очередь является вход второго усилителя, вход второго канала выполнен на 20-м выводе, сигнал поступает через инвертирующий каскад, собранный на ОУ (операционном усилителе) DA1. Питание ОУ осуществляется стабилизированным напряжением порядка 15 В, которое обеспечивают микросхемы DA4 и DA3. Эти стабилизаторы также могут запитать предварительный усилитель, в котором установлены фильтры кроссовера и регулятор тембра.
Данная схема усилителя мощности позволяет осуществлять корректировку коэффициента своего усиления подбором номинала сопротивлений R11 и R6 которые выполняют функцию обратной связи , значение сопротивления которых в обоих каналах усиления должно быть эквивалентным.
Защита по току осуществляется при помощи транзисторов VT1-VT4, которые защищают нашу микросхему DA2 от значительных токов в случае перегрузке. Если в такой схеме нет необходимости, то эти четыре транзистора, а также связанные с ними элементы могут не впаиваться в плату усилителя.
Особое внимание при сборке описанного УМЗЧ необходимо уделить способу установки микросхем к теплоотводящей поверхности. Применение прокладок из слюды в качестве изоляторов из-за крайне не желательно по причине значительной мощности. Хорошего охлаждения можно добиться установкой принудительного охлаждения на вентиляторах.
При правильной сборке данный усилитель не требует наладки.
]]>В журнала уже неоднократно приводились схемы различных подобных усилителей, но наибольшая мощность на выходе(и нелинейных искажениях,которые не превышают 10 %) усилителей, собранных на одной микросхеме с небольшой обвязкой, как правило, не превышает 100-120 Ватт при выборе доступных по цене микросхем. Даже в тех случаях, когда используют две микросхемы TDA7294, включенные по мостовой схеме, выходную мощность все равно не удается получить больше чем 200 Ватт.
Но бывают таки еслучаи когда требуется мощность значительно больше. Ниже представлена схема мощного усилителя, который собран на микросхеме с параметрами которые позволяют достичь отдачу порядка 300 Вт.
В описанной ниже схеме усилителя используется гибридная интегральная STK4231-II микросхема SANYO. По причине того что она имеет 2 канала, то используется вариант включения схемы по типу "мост". Сборка усилителя на данной микросхеме потребуется радиодеталей побольше чем при сборке усилка на микросхемах серии TDA, но все это оправдывается, поскольку использование STK4231-II позволяет достичь хорошую выходную мощность.
Корпус микросхемы не соединен электрически со схемой, поэтому ее можно смонтировать прям на металлический корпус всего УМЗЧ. А в микросхемах TDA корпус микросхемы под напряжением, в результате чего нужно приходится придумывать как избежать контакта с металлическим корпусом усилителя,что бывает порой очень не легко.
Напряжение подводится от нестабилизированного источника напряжения на 2 канала по (45...55) В.
Усиливаемый сигнал через R3 и C2 попадает на третий вывод DA2 (STK4231-II), который в свою очередь является вход второго усилителя, вход второго канала выполнен на 20-м выводе, сигнал поступает через инвертирующий каскад, собранный на ОУ (операционном усилителе) DA1. Питание ОУ осуществляется стабилизированным напряжением порядка 15 В, которое обеспечивают микросхемы DA4 и DA3. Эти стабилизаторы также могут запитать предварительный усилитель, в котором установлены фильтры кроссовера и регулятор тембра.
Данная схема усилителя мощности позволяет осуществлять корректировку коэффициента своего усиления подбором номинала сопротивлений R11 и R6 которые выполняют функцию обратной связи , значение сопротивления которых в обоих каналах усиления должно быть эквивалентным.
Защита по току осуществляется при помощи транзисторов VT1-VT4, которые защищают нашу микросхему DA2 от значительных токов в случае перегрузке. Если в такой схеме нет необходимости, то эти четыре транзистора, а также связанные с ними элементы могут не впаиваться в плату усилителя.
Особое внимание при сборке описанного УМЗЧ необходимо уделить способу установки микросхем к теплоотводящей поверхности. Применение прокладок из слюды в качестве изоляторов из-за крайне не желательно по причине значительной мощности. Хорошего охлаждения можно добиться установкой принудительного охлаждения на вентиляторах.
При правильной сборке данный усилитель не требует наладки.
]]>
Характеристики микросхемы можно посмотреть в документации на нее. Datasheet микросхемы ba5406
Микросхема усилителя имеет 2 изолированных канала, низкий уровень шума и незначительное тепловое выделение, выполнена в корпусе SIP12.
Конденсаторы C11 и C12 необходимы для развязки микросхемы от постоянной составляющей входного сигнала на входе в каналы LeftIn и RightIn.Конденсаторы C3,C2 на левом канале и C6,C7 необходимы для снижения колебаний на выходе и улучшения стабильности частоты усилителя - своего рода фильтрация выходного сигнала от нелинейных искажений. Регулировка уровня громкости осуществляется переменными сопротивлениями R5 и R6 номиналов в 22 кОм каждый.
После сборки схема должна сразу заработать и не требует особой наладки.
Примечания:
Характеристики микросхемы можно посмотреть в документации на нее. Datasheet микросхемы ba5406
Микросхема усилителя имеет 2 изолированных канала, низкий уровень шума и незначительное тепловое выделение, выполнена в корпусе SIP12.
Конденсаторы C11 и C12 необходимы для развязки микросхемы от постоянной составляющей входного сигнала на входе в каналы LeftIn и RightIn.Конденсаторы C3,C2 на левом канале и C6,C7 необходимы для снижения колебаний на выходе и улучшения стабильности частоты усилителя - своего рода фильтрация выходного сигнала от нелинейных искажений. Регулировка уровня громкости осуществляется переменными сопротивлениями R5 и R6 номиналов в 22 кОм каждый.
После сборки схема должна сразу заработать и не требует особой наладки.
Примечания:
На этой микросхеме можно, к примеру сделать, усилитель для аудио колонок компьютера также на 4 канала. Главное при это собрать правильно схему, не домустить попадания питающего напряжения 14 В на вход микросхемы, иначе в случае не правильной сборки можно сломать не только микросхему но и саму материнскую плату компьютера, и придется нести его в сервис по ремонту, а ремонт компьютеров стоит не маленькие деньги.
Схема содержит минимум радиодеталей - 10 конденсаторов и 2 резистора. Корпус микросхемы, при таких мощностях необходимо устанавливать на радиатор. Схема запитана от напряжения в 14.4 В. Входной сигнал подается на выводы с 11 по 14 через конденсаторы в 100 нф. Эти конденстаторы необходимы для отсечения постоянной состовляющей сигнала. Конденсатор в 4700 пФ необходим для сглаживания пульсации питающего напряжения в пики потребляемой мощности. Все техническию информацию и параметры микросхемы TDA7560 можно посмотреть в документации на нее.
После окончания сборки схема должа сразу же заработать и не нуждается в настройке.
]]>На этой микросхеме можно, к примеру сделать, усилитель для аудио колонок компьютера также на 4 канала. Главное при это собрать правильно схему, не домустить попадания питающего напряжения 14 В на вход микросхемы, иначе в случае не правильной сборки можно сломать не только микросхему но и саму материнскую плату компьютера, и придется нести его в сервис по ремонту, а ремонт компьютеров стоит не маленькие деньги.
Схема содержит минимум радиодеталей - 10 конденсаторов и 2 резистора. Корпус микросхемы, при таких мощностях необходимо устанавливать на радиатор. Схема запитана от напряжения в 14.4 В. Входной сигнал подается на выводы с 11 по 14 через конденсаторы в 100 нф. Эти конденстаторы необходимы для отсечения постоянной состовляющей сигнала. Конденсатор в 4700 пФ необходим для сглаживания пульсации питающего напряжения в пики потребляемой мощности. Все техническию информацию и параметры микросхемы TDA7560 можно посмотреть в документации на нее.
После окончания сборки схема должа сразу же заработать и не нуждается в настройке.
]]>Особенности схемы:
Особенности схемы:
Автомобильный аккумулятор использует от 5,5 до 6,5 А для заряда, а такой ток можно найти в любом аккумуляторе, который имеет нанимал более 150 ватт. Но не забудьте выпаять провода с зарядами: +12, +5, -12, -5.
Резистор "R1" на 4,7 кОм,с напряжением в +5 В придется удалить. Тогда можно будет установить 27 кОм, который будет выдавать +12 В. Кроме того, потребуется отключить выход 16, а 14 и 15 перерезать.
На задней крышке устанавливаем потенциометр - регулятор тока для R10 и крепи сеть и выходные клемы.
Для улучшения подключения можно применить блок резисторов.
Парочка 5WR2J — 5 Вт; 0,2 Ом соединяется параллельно и все готово. Тогда вы получите 10 Вт с сопротивлением в 0,1 Ом.
Резистор R1, который установлен здесь же, поможет настроить вашу зарядку.
Не забудьте избавиться от возможных замыканий с корпусом. Этот шаг намного важней чем он может показаться на первый взгляд, так что если вам не хочется сжечь оборудование, то не пренебрегайте мерами безопасности.
Прежде чем, вы соберете прибор настройте его на 13 - 14 В. Этот поток равен заряду полной батареи.
Остается лишь закрепить крокодилы разных цветов.
Не стоит путать цвета и вид напряжения, это чревато потерей всех основных деталей вашего блока питания. Потом его останется только выкинуть. Напоминает, что красный крокодильчик это плюс, а синий или черный это минус
При полном заряде ваше устройство должно полностью стабилизироваться. Блок зарядки не будет перегреваться и создавать аварийные ситуации для аккумулятора или своих деталей, а время такого простоя ограничивается лишь вашей экономией электричества.
При зарядке автомобильных батарей в 14,2 В, можно не пользоваться оборудованием для вычисления мощности и напряжения. Но если вы все же предпочитаете вести контроль зарядки, то они конечно же не помешают.
Не стоит избегать оборудования, которое позволит вам следить за установкой начального заряда. Иначе вы просто не сумеете точно зарядить аккумулятор и это может привести к неожиданной разрядке в самый неподходящий момент или ваш заряд будет слабым и не стабильным, а автомобиль заведется лишь в теплую погоду, а в зимние холода придется перезаряжать.
]]>
Автомобильный аккумулятор использует от 5,5 до 6,5 А для заряда, а такой ток можно найти в любом аккумуляторе, который имеет нанимал более 150 ватт. Но не забудьте выпаять провода с зарядами: +12, +5, -12, -5.
Резистор "R1" на 4,7 кОм,с напряжением в +5 В придется удалить. Тогда можно будет установить 27 кОм, который будет выдавать +12 В. Кроме того, потребуется отключить выход 16, а 14 и 15 перерезать.
На задней крышке устанавливаем потенциометр - регулятор тока для R10 и крепи сеть и выходные клемы.
Для улучшения подключения можно применить блок резисторов.
Парочка 5WR2J — 5 Вт; 0,2 Ом соединяется параллельно и все готово. Тогда вы получите 10 Вт с сопротивлением в 0,1 Ом.
Резистор R1, который установлен здесь же, поможет настроить вашу зарядку.
Не забудьте избавиться от возможных замыканий с корпусом. Этот шаг намного важней чем он может показаться на первый взгляд, так что если вам не хочется сжечь оборудование, то не пренебрегайте мерами безопасности.
Прежде чем, вы соберете прибор настройте его на 13 - 14 В. Этот поток равен заряду полной батареи.
Остается лишь закрепить крокодилы разных цветов.
Не стоит путать цвета и вид напряжения, это чревато потерей всех основных деталей вашего блока питания. Потом его останется только выкинуть. Напоминает, что красный крокодильчик это плюс, а синий или черный это минус
При полном заряде ваше устройство должно полностью стабилизироваться. Блок зарядки не будет перегреваться и создавать аварийные ситуации для аккумулятора или своих деталей, а время такого простоя ограничивается лишь вашей экономией электричества.
При зарядке автомобильных батарей в 14,2 В, можно не пользоваться оборудованием для вычисления мощности и напряжения. Но если вы все же предпочитаете вести контроль зарядки, то они конечно же не помешают.
Не стоит избегать оборудования, которое позволит вам следить за установкой начального заряда. Иначе вы просто не сумеете точно зарядить аккумулятор и это может привести к неожиданной разрядке в самый неподходящий момент или ваш заряд будет слабым и не стабильным, а автомобиль заведется лишь в теплую погоду, а в зимние холода придется перезаряжать.
]]>Подаваемое электричество усиливается в десятки, а то и сотни раз. Таким образом 50 герц используются в усиленном режиме и не тратят больших объемов электрической сети. Проще говоря, используют обычные 220 вольт. Суть работы такого устройства в разнице объемов, как ведер с водой. Можно перенести десять литров десять раз или один раз но десяти литровым ведром.
Так и преобразовывается сетевой вольтаж в менее низкий. Используя этот компонент достигаются 600 – 700 Ватт, которые весьма востребованы в современной электронике. Устройство компьютерного блока питания может иметь сразу несколько таких систем, но и стоимость такого блока выше обычного.
Основной контролер как правило побольше и по мощней, ну а два других поменьше и являются дублирующими системами, которые даже при полном отсутствии работоспособности, сохранят потоковый вольтаж в необходимом состоянии, чем и позволят работать блоку питания пока его не исправят или полностью заменят.
Низкий вольтаж поступает на диоды и прочие блоки сглаживания, тогда блок выдает более низкую пульсацию, а напряжение подается в стабильном режиме. При образованный поток более приемлем для управления.
В самых простых боках применяют даже групповую стабилизацию, но это подход не лучше и используется за недостатком дорогих компонентов. Такие блоки весьма ненадежны и могут выходить из строя при помощи маленьких частей системы. Устройство компьютерного блока питания имеет основной силовой дроссель который сглаживает +12 и +5 В. Так экономятся элементы, а значит и объем прибора.
Что же касается напряжения, то его меняют теряя качество, но все же этот подход удобней и надежней. Это понижение напряжения позволяет даже в критических ситуациях сохранять детали не испорченными и в работоспособном состоянии. Своего рода предохранитель. Не остается в стороне и схема управления напряжением.
Она повышает напряжение сразу на всех линиях и даже усиливает параллельную, которая была не загружена в этот момент. Используется принцип равновесия весов. В более дорогих ситуация обстоит иначе, для всех отдельных линий используется отдельная система напряжения, которая регулируется отдельными компонентами.
]]>Подаваемое электричество усиливается в десятки, а то и сотни раз. Таким образом 50 герц используются в усиленном режиме и не тратят больших объемов электрической сети. Проще говоря, используют обычные 220 вольт. Суть работы такого устройства в разнице объемов, как ведер с водой. Можно перенести десять литров десять раз или один раз но десяти литровым ведром.
Так и преобразовывается сетевой вольтаж в менее низкий. Используя этот компонент достигаются 600 – 700 Ватт, которые весьма востребованы в современной электронике. Устройство компьютерного блока питания может иметь сразу несколько таких систем, но и стоимость такого блока выше обычного.
Основной контролер как правило побольше и по мощней, ну а два других поменьше и являются дублирующими системами, которые даже при полном отсутствии работоспособности, сохранят потоковый вольтаж в необходимом состоянии, чем и позволят работать блоку питания пока его не исправят или полностью заменят.
Низкий вольтаж поступает на диоды и прочие блоки сглаживания, тогда блок выдает более низкую пульсацию, а напряжение подается в стабильном режиме. При образованный поток более приемлем для управления.
В самых простых боках применяют даже групповую стабилизацию, но это подход не лучше и используется за недостатком дорогих компонентов. Такие блоки весьма ненадежны и могут выходить из строя при помощи маленьких частей системы. Устройство компьютерного блока питания имеет основной силовой дроссель который сглаживает +12 и +5 В. Так экономятся элементы, а значит и объем прибора.
Что же касается напряжения, то его меняют теряя качество, но все же этот подход удобней и надежней. Это понижение напряжения позволяет даже в критических ситуациях сохранять детали не испорченными и в работоспособном состоянии. Своего рода предохранитель. Не остается в стороне и схема управления напряжением.
Она повышает напряжение сразу на всех линиях и даже усиливает параллельную, которая была не загружена в этот момент. Используется принцип равновесия весов. В более дорогих ситуация обстоит иначе, для всех отдельных линий используется отдельная система напряжения, которая регулируется отдельными компонентами.
]]>При этом стоимость таких устройств разнится в большом диапазоне – от нескольких сотен рублей до сотен тысяч долларов. Что касается отношения людей к таким устройствам, то можно выделить тех, кто является ярым поклонником однотактной схемотехники, и тех, кто вовсе не приемлет таких устройств.
Положительные высказывания сторонников этого устройства сводятся к тому, что однотактный ламповый усилитель создает особую чуткость и певучесть в отношении звучания, своеобразную музыкальность (хотя до конца неясно, что именно подразумевают сторонники этого устройства под последним словом). В большей степени все эти показатели субъективны.
На основании их сложно говорить, насколько качественным является устройство.
Позиция противников базируется на иных показателях – во внимание принимаются объективные данные, которыми характеризуется однотактный ламповый усилитель. В первоочередном порядке это слабая мощность, ограничения в верхнем и нижнем частотном диапазоне, при измерении наблюдается высокая степень искажений.
Чтобы как-то разобраться в ситуации и понять, насколько хорошим или плохим является однотактный ламповый усилитель, нужно получить ответ на следующий вопрос: какой мощности достаточно для прослушивания музыки дома?
Ответ дилетанта в этом деле прост: лучше та мощность, которая больше. Но не все так просто, как может показаться. Высокой мощности можно достичь, если перевести выходной каскад в класс АВ. Это, в свою очередь, с вероятностью в 100% вызовет увеличение всех видов искажений. Уменьшить эти искажения можно только за счет обращения к глубокой отрицательной обратной связи, но качество звучания таким методом не повысится. При этом стоит отметить, что в рамках домашнего прослушивания, используя акустическую систему, чувствительность которой 90 дБ и более, уровень искажений в 5-6% при полной мощности считается вполне приемлемым, обеспечивающим высокое качество звука.
Если прочитать статью «Мощность», автором которой является А.М.Лихницкий, станет понятным следующее: акустическая система, чувствительность которой 90 дБ, вкупе с усилителем, мощность которого 10 Вт, в помещении площадью 20 кв.м создает звуковое давление, полноценно передающее forte fortissimo симфонического оркестра. Этого вполне достаточно для прослушивания музыки в домашних условиях.
Усилитель
R1 — МЛТ 0,5 470 кОм
С1 — 47 мкФ, 450 В
R2, R3 — МЛТ 0,5 1,5 кОм
С3 — 1000 мкФ, 6ЗВ
R4 — МЛТ 1 20кОм
С2 — 0,15 мкФ, 250В
R5 — МЛТ 0,5 220кОм
С4 — 300 пФ (К78)
R6, R10 — МЛТ 0,5 1,0кОм
R7, R11 — МЛТ 1 100 Ом
R8, R12 — МЛТ 0.5 22 Ом
R9 — ПЭВ 10 240 Ом
R13* — МЛТ 0,5 30—120* кОм
V1, V2 — 6Н9С
V3, V4 — 6ПЗС
С2 (К72 П6, К72 П9)
С1, СЗ (К50—27, К50—37, К50—42, Rubicоn, Nichicоn, Jamicon)
Блок питания
VI — 5ЦЗС
L1, L2 — 2,5Гн х 0.14 А
С1, С2, СЗ — 220 мкФ, 450 В
С4 — 47 мкФ, 100 В
R1 — МЛТ 1 300кОм
R2 — МЛТ 1 — 43кОм
C1, C2, СЗ (K50—27, К50—37, К50—42, Rubicon, Nichicon, Jamcon)
При этом стоимость таких устройств разнится в большом диапазоне – от нескольких сотен рублей до сотен тысяч долларов. Что касается отношения людей к таким устройствам, то можно выделить тех, кто является ярым поклонником однотактной схемотехники, и тех, кто вовсе не приемлет таких устройств.
Положительные высказывания сторонников этого устройства сводятся к тому, что однотактный ламповый усилитель создает особую чуткость и певучесть в отношении звучания, своеобразную музыкальность (хотя до конца неясно, что именно подразумевают сторонники этого устройства под последним словом). В большей степени все эти показатели субъективны.
На основании их сложно говорить, насколько качественным является устройство.
Позиция противников базируется на иных показателях – во внимание принимаются объективные данные, которыми характеризуется однотактный ламповый усилитель. В первоочередном порядке это слабая мощность, ограничения в верхнем и нижнем частотном диапазоне, при измерении наблюдается высокая степень искажений.
Чтобы как-то разобраться в ситуации и понять, насколько хорошим или плохим является однотактный ламповый усилитель, нужно получить ответ на следующий вопрос: какой мощности достаточно для прослушивания музыки дома?
Ответ дилетанта в этом деле прост: лучше та мощность, которая больше. Но не все так просто, как может показаться. Высокой мощности можно достичь, если перевести выходной каскад в класс АВ. Это, в свою очередь, с вероятностью в 100% вызовет увеличение всех видов искажений. Уменьшить эти искажения можно только за счет обращения к глубокой отрицательной обратной связи, но качество звучания таким методом не повысится. При этом стоит отметить, что в рамках домашнего прослушивания, используя акустическую систему, чувствительность которой 90 дБ и более, уровень искажений в 5-6% при полной мощности считается вполне приемлемым, обеспечивающим высокое качество звука.
Если прочитать статью «Мощность», автором которой является А.М.Лихницкий, станет понятным следующее: акустическая система, чувствительность которой 90 дБ, вкупе с усилителем, мощность которого 10 Вт, в помещении площадью 20 кв.м создает звуковое давление, полноценно передающее forte fortissimo симфонического оркестра. Этого вполне достаточно для прослушивания музыки в домашних условиях.
Усилитель
R1 — МЛТ 0,5 470 кОм
С1 — 47 мкФ, 450 В
R2, R3 — МЛТ 0,5 1,5 кОм
С3 — 1000 мкФ, 6ЗВ
R4 — МЛТ 1 20кОм
С2 — 0,15 мкФ, 250В
R5 — МЛТ 0,5 220кОм
С4 — 300 пФ (К78)
R6, R10 — МЛТ 0,5 1,0кОм
R7, R11 — МЛТ 1 100 Ом
R8, R12 — МЛТ 0.5 22 Ом
R9 — ПЭВ 10 240 Ом
R13* — МЛТ 0,5 30—120* кОм
V1, V2 — 6Н9С
V3, V4 — 6ПЗС
С2 (К72 П6, К72 П9)
С1, СЗ (К50—27, К50—37, К50—42, Rubicоn, Nichicоn, Jamicon)
Блок питания
VI — 5ЦЗС
L1, L2 — 2,5Гн х 0.14 А
С1, С2, СЗ — 220 мкФ, 450 В
С4 — 47 мкФ, 100 В
R1 — МЛТ 1 300кОм
R2 — МЛТ 1 — 43кОм
C1, C2, СЗ (K50—27, К50—37, К50—42, Rubicon, Nichicon, Jamcon)
Если сам датчик находится в сухом состоянии то на выходе модуля напряжение составляет 5 В, как только на датчик попадет капля жидкости проводящий электрический ток на выходе модуля будет значение от 5 до 0 пропорционально количеству влаги.
С целью сигнализации в схему добавлен динамик через транзистор BC547.
Код программы Arduino сигнализации дождя
int rainSensePin= 0; // аналоговый вход 0 для сигнала датчика int alertPin= 8; // цифровой выход 8 - для сигнализации int curCounter= 0; // счётчик - инкрементируется на 1 каждую секунду после срабатывания датчика void setup(){ Serial.begin(9600); pinMode(alertPin, OUTPUT); pinMode(rainSensePin, INPUT); } void loop(){ int rainSenseReading = analogRead(rainSensePin); Serial.println(rainSenseReading); // для мониторинга через последовательный порт delay(250); // короткая задержка if (curCounter >= 30){ // конец временной задержки digitalWrite(alertPin, HIGH); // срабатывание сигнализации } // если дождя больше нет, сбрасываем счетчик if (rainSenseReading <300){ curCounter++; } else if (rainSenseReading >300) { // если интенсивность дождя не превышает порога digitalWrite(alertPin, LOW); // не включаем сигнализацию curCounter = 0; // сбрасываем счетчик в 0 } delay(1000); }]]>
Если сам датчик находится в сухом состоянии то на выходе модуля напряжение составляет 5 В, как только на датчик попадет капля жидкости проводящий электрический ток на выходе модуля будет значение от 5 до 0 пропорционально количеству влаги.
С целью сигнализации в схему добавлен динамик через транзистор BC547.
Код программы Arduino сигнализации дождя
int rainSensePin= 0; // аналоговый вход 0 для сигнала датчика int alertPin= 8; // цифровой выход 8 - для сигнализации int curCounter= 0; // счётчик - инкрементируется на 1 каждую секунду после срабатывания датчика void setup(){ Serial.begin(9600); pinMode(alertPin, OUTPUT); pinMode(rainSensePin, INPUT); } void loop(){ int rainSenseReading = analogRead(rainSensePin); Serial.println(rainSenseReading); // для мониторинга через последовательный порт delay(250); // короткая задержка if (curCounter >= 30){ // конец временной задержки digitalWrite(alertPin, HIGH); // срабатывание сигнализации } // если дождя больше нет, сбрасываем счетчик if (rainSenseReading <300){ curCounter++; } else if (rainSenseReading >300) { // если интенсивность дождя не превышает порога digitalWrite(alertPin, LOW); // не включаем сигнализацию curCounter = 0; // сбрасываем счетчик в 0 } delay(1000); }]]>
На прилавках магазинов, в основном представлены устройства с суммарной мощностью до 3 Вт, в домашних же условиях можно изготовить пятиваттный самодельный электрошокер. В качестве корпуса допускается использовать любую подходящую и удобную емкость, например, корпус фонарика. Схема электрошокера представлена на рисунке ниже.
Основные элементы электрошокера – это инвертор, источник питания, трансформатор, высоковольтная катушка и конденсаторы, а также разрядник. Схема модуля инвертора собрана на единственном полевом транзисторе, где сопротивление затворного резистора допускается варьировать в диапазоне от 40 до 820 Ом. Самодельный электрошокер питается от связки батареек из никель-кадмия емкостью 350 мА/ч. Заявленного напряжения в 480 В вполне достаточно для эффективности работы устройства. В качестве катушки подойдет трансформатор общей мощностью до 50 Вт.
После демонтажа исходных обмоток трансформатора, аккуратно монтируются первичная и вторичная обмотки. Первая обмотка состоит из 2*4 витков диаметром 0,6-0,8 мм, повышающая из 650 витков, причем в каждом слое содержится 70 витков. Слои первой и второй обмоток требуется изолировать скотчем.
При изготовлении основного элемента электрошокера, высоковольтной передающей катушки, применяют ферритовый стержень. До начала намотки стержень необходимо качественно заизолировать. Первая обмотка состоит из 14 витков диаметром 0,6-0,8 мм, повышающая из 500 витков, в каждом слое наматывается по 70 витков. Толщина провода повышающей обмотки 0,1 мм. Все слои высоковольтной катушки тщательно изолируются. После окончания намотки, трансформатор размещается в подходящую емкость, например, шприц, и обрабатывается эпоксидкой смолой.
В самодельный электрошокер устанавливаются два конденсатора по 0.1-0,22 мкФ. Схема сборки конденсаторов – последовательная, допустимое напряжение каждого из них не менее 1000 Вольт.
В качестве искрового разрядника допускается использование кусков провода. Диаметра провода в 0,8 мм при расстоянии между концами в 1 мм вполне достаточно для надежной работы устройства. Если же, по каким-то причинам, самодельный разрядник изготовить не получается, то можно воспользоваться заводским, пробиваемым напряжением в 700-900 Вольт.
В качестве выпрямительного диода используется КЦ106 или три импульсных диода с общим напряжением не менее 3000 Вольт. Схема соединения диодов – последовательная.
Не имея большого опыта в электротехнике, практически каждый любитель может собрать электрошокер для защиты себя и своих близких.
На прилавках магазинов, в основном представлены устройства с суммарной мощностью до 3 Вт, в домашних же условиях можно изготовить пятиваттный самодельный электрошокер. В качестве корпуса допускается использовать любую подходящую и удобную емкость, например, корпус фонарика. Схема электрошокера представлена на рисунке ниже.
Основные элементы электрошокера – это инвертор, источник питания, трансформатор, высоковольтная катушка и конденсаторы, а также разрядник. Схема модуля инвертора собрана на единственном полевом транзисторе, где сопротивление затворного резистора допускается варьировать в диапазоне от 40 до 820 Ом. Самодельный электрошокер питается от связки батареек из никель-кадмия емкостью 350 мА/ч. Заявленного напряжения в 480 В вполне достаточно для эффективности работы устройства. В качестве катушки подойдет трансформатор общей мощностью до 50 Вт.
После демонтажа исходных обмоток трансформатора, аккуратно монтируются первичная и вторичная обмотки. Первая обмотка состоит из 2*4 витков диаметром 0,6-0,8 мм, повышающая из 650 витков, причем в каждом слое содержится 70 витков. Слои первой и второй обмоток требуется изолировать скотчем.
При изготовлении основного элемента электрошокера, высоковольтной передающей катушки, применяют ферритовый стержень. До начала намотки стержень необходимо качественно заизолировать. Первая обмотка состоит из 14 витков диаметром 0,6-0,8 мм, повышающая из 500 витков, в каждом слое наматывается по 70 витков. Толщина провода повышающей обмотки 0,1 мм. Все слои высоковольтной катушки тщательно изолируются. После окончания намотки, трансформатор размещается в подходящую емкость, например, шприц, и обрабатывается эпоксидкой смолой.
В самодельный электрошокер устанавливаются два конденсатора по 0.1-0,22 мкФ. Схема сборки конденсаторов – последовательная, допустимое напряжение каждого из них не менее 1000 Вольт.
В качестве искрового разрядника допускается использование кусков провода. Диаметра провода в 0,8 мм при расстоянии между концами в 1 мм вполне достаточно для надежной работы устройства. Если же, по каким-то причинам, самодельный разрядник изготовить не получается, то можно воспользоваться заводским, пробиваемым напряжением в 700-900 Вольт.
В качестве выпрямительного диода используется КЦ106 или три импульсных диода с общим напряжением не менее 3000 Вольт. Схема соединения диодов – последовательная.
Не имея большого опыта в электротехнике, практически каждый любитель может собрать электрошокер для защиты себя и своих близких.
Выходная мощность состаляет порядка 150 Вт, если требуется большая мощность то необходимо на симистор установить дополнительно охлаждающей радиоатор.
Файл прошивки для микроконтроллера
]]>
Выходная мощность состаляет порядка 150 Вт, если требуется большая мощность то необходимо на симистор установить дополнительно охлаждающей радиоатор.
Файл прошивки для микроконтроллера
]]>
Согласно документации напряжение питания микросхемы составляет 5В.
Согласно документации напряжение питания микросхемы составляет 5В.
Использую шаговый двигатель можно точно спозиционировать положение вала, поворот вала осуществляется на определенный угол по "шагам". Также ШД может удерживать текущую позицию, даже при наличии обратного крутящего момента на валу. Они бывают 2-х типов: униполярные и биполярные. Лучшими силовыми характеристиками обладают биполярные двигатели. Биполятрные двигатель имеет 4 провода, которые подключены к 2-м наборам внутренних электромагнитных катушек. Направление вращения вала ШД осуществляется путем изменения направления тока в катушках.
Для того чтобы управлять ШД нельзя взять и просто подать постоянное напряжение - он работать не будет. Для его работы необходим модуль или драйвер шагового двигателя. При помощи его можно осуществлять контроль над скоростью вращения и напрявлением вала двигателя. В нашем примере используется модуль на микросхеме L298H. Но существую также и другие варианты драйвера на других микросхемах.
В нашем примере в качестве контроллера выступает Arduino UNO но можно также использовать и другие платы. На шаговом двигателе есть 2 пары проводов, первая пара A,A+ на двигателе подключается к выводам МА,МА+ на контроллере. Аналогично и другая пара B,B+ на двигателе подключается к выводам МB,МB+ на контроллер ШД. Подключение напряжения осуществляется к выводам +12V, GND и +5V. GND - общий минусовой провод, +12V необходимо для питания двигателя а +5V для питания самого драйвера ШД. Управляющие выводы IN1,IN2,IN3,IN4 подключаются к выводам D8,D9,D10,D11 соответственно. По этим проводам передаются управляющие сигналы, которые представляют собой импульсы.
Далее нам необходимо залить саму программу, она есть в готовых примерах среды Arduino и называется stepper_oneRevolution.
#include const int stepsPerRevolution = 200; // steps per revolution of your motor // initialize the stepper library on pins 8 through 11: Stepper myStepper(stepsPerRevolution, 8,9,10,11); void setup() { // set the speed at 60 rpm: myStepper.setSpeed(60); // initialize the serial port: Serial.begin(9600); } void loop() { // step one revolution in one direction: Serial.println("clockwise"); myStepper.step(stepsPerRevolution); delay(500); // step one revolution in the other direction: Serial.println("counterclockwise"); myStepper.step(-stepsPerRevolution); delay(500); }]]>
Использую шаговый двигатель можно точно спозиционировать положение вала, поворот вала осуществляется на определенный угол по "шагам". Также ШД может удерживать текущую позицию, даже при наличии обратного крутящего момента на валу. Они бывают 2-х типов: униполярные и биполярные. Лучшими силовыми характеристиками обладают биполярные двигатели. Биполятрные двигатель имеет 4 провода, которые подключены к 2-м наборам внутренних электромагнитных катушек. Направление вращения вала ШД осуществляется путем изменения направления тока в катушках.
Для того чтобы управлять ШД нельзя взять и просто подать постоянное напряжение - он работать не будет. Для его работы необходим модуль или драйвер шагового двигателя. При помощи его можно осуществлять контроль над скоростью вращения и напрявлением вала двигателя. В нашем примере используется модуль на микросхеме L298H. Но существую также и другие варианты драйвера на других микросхемах.
В нашем примере в качестве контроллера выступает Arduino UNO но можно также использовать и другие платы. На шаговом двигателе есть 2 пары проводов, первая пара A,A+ на двигателе подключается к выводам МА,МА+ на контроллере. Аналогично и другая пара B,B+ на двигателе подключается к выводам МB,МB+ на контроллер ШД. Подключение напряжения осуществляется к выводам +12V, GND и +5V. GND - общий минусовой провод, +12V необходимо для питания двигателя а +5V для питания самого драйвера ШД. Управляющие выводы IN1,IN2,IN3,IN4 подключаются к выводам D8,D9,D10,D11 соответственно. По этим проводам передаются управляющие сигналы, которые представляют собой импульсы.
Далее нам необходимо залить саму программу, она есть в готовых примерах среды Arduino и называется stepper_oneRevolution.
#include const int stepsPerRevolution = 200; // steps per revolution of your motor // initialize the stepper library on pins 8 through 11: Stepper myStepper(stepsPerRevolution, 8,9,10,11); void setup() { // set the speed at 60 rpm: myStepper.setSpeed(60); // initialize the serial port: Serial.begin(9600); } void loop() { // step one revolution in one direction: Serial.println("clockwise"); myStepper.step(stepsPerRevolution); delay(500); // step one revolution in the other direction: Serial.println("counterclockwise"); myStepper.step(-stepsPerRevolution); delay(500); }]]>
На транзисторе VT1 собран генератор который генерирует переодические колебания с частотой в 100Гц. Резистор R3 необходим для подстройки частоты генератора. На микросхеме DD1.1 собран трагген который выолняет функцию делителя, в результат на выходе 12 и 13 получается напряжение в противофазе исходному с частотой в 50 Гц. Выходной сигнал с микросхемы поочередно открывает и закрывает транзисторы VT2 и VT3, которые работают по схеме усилителя мощности в 2 такта. В нагрузке и них "висит" повышающий трансформатор T1, который повышает входное напряжение до значения в 220В. Стабилизация осуществляется при помози VD1, для питания микросхем есть сглаживающий конденсатор C1 и R1.
Выходная мощность преобразователя составляет порядка 100Вт. Этой мощности вполне достаточно чтобы использовать его для большинства электроприборов.Им можно к примеру зарядить свой планшет ноутбук или ноутбук. Но важно помнить что неправильная сборка схемы может привести к тому что на выходе может получится напряжение которое отличается от требуемого что в свою очередь приведе к поломке вашего ноутбука или планшета. К счастью в наще время много разнообразных сервисных центров.
Список радиодеталей для сборки преобразователя
Настройка работы преобразователя
Для начала необходимо от обмоток 1 и 2 отключить "плюс". Далее при помощи осциллогрофа проверяем частоту на транзисторах VT2 и VT3. Переменным резисторм R2 добиваемся постоянного свечения светодиода, снижаем напряжение до 10 В. После подключаем обратно "плюс" к обмотка м 1 и 2 (провод который посередине на схеме).
Транзисторы в схеме VT2 и VT3 КТ827 можно заменить на аналогичные с любым буквенным индексом, предпочтительнее с большим значением коэффициента по передачи тока. Стабилитрон должен быть со значением стабилизации напряжения порядка 8-9В. В трансформаторе использован магнитопровод ПЛМ 27-40-58. Первичная обмотка намотана ПБД-2 (ПСД-2) -проводом и содержит по 15 витков. Вторая обмотка(вторичная) намотана проводом ПЭВ-2, диаметром 0.64 витка и содержит 704 витка. Конденсатор С2 необходимо утановить на выводах микросхемы DD1.
Данный преобразователь тестировался на небольших нагрузках порядка 100 Вт. При током потреблении ток аккумулятора составляет порядка 10А, при отсутсвии нагрузки ток потребления соствляет поряжка 1А. Преобразователь способен выдрежить пусковый токи котые возникают от таких электропотребителей как электродрель иди электронасос.
]]>На транзисторе VT1 собран генератор который генерирует переодические колебания с частотой в 100Гц. Резистор R3 необходим для подстройки частоты генератора. На микросхеме DD1.1 собран трагген который выолняет функцию делителя, в результат на выходе 12 и 13 получается напряжение в противофазе исходному с частотой в 50 Гц. Выходной сигнал с микросхемы поочередно открывает и закрывает транзисторы VT2 и VT3, которые работают по схеме усилителя мощности в 2 такта. В нагрузке и них "висит" повышающий трансформатор T1, который повышает входное напряжение до значения в 220В. Стабилизация осуществляется при помози VD1, для питания микросхем есть сглаживающий конденсатор C1 и R1.
Выходная мощность преобразователя составляет порядка 100Вт. Этой мощности вполне достаточно чтобы использовать его для большинства электроприборов.Им можно к примеру зарядить свой планшет ноутбук или ноутбук. Но важно помнить что неправильная сборка схемы может привести к тому что на выходе может получится напряжение которое отличается от требуемого что в свою очередь приведе к поломке вашего ноутбука или планшета. К счастью в наще время много разнообразных сервисных центров.
Список радиодеталей для сборки преобразователя
Настройка работы преобразователя
Для начала необходимо от обмоток 1 и 2 отключить "плюс". Далее при помощи осциллогрофа проверяем частоту на транзисторах VT2 и VT3. Переменным резисторм R2 добиваемся постоянного свечения светодиода, снижаем напряжение до 10 В. После подключаем обратно "плюс" к обмотка м 1 и 2 (провод который посередине на схеме).
Транзисторы в схеме VT2 и VT3 КТ827 можно заменить на аналогичные с любым буквенным индексом, предпочтительнее с большим значением коэффициента по передачи тока. Стабилитрон должен быть со значением стабилизации напряжения порядка 8-9В. В трансформаторе использован магнитопровод ПЛМ 27-40-58. Первичная обмотка намотана ПБД-2 (ПСД-2) -проводом и содержит по 15 витков. Вторая обмотка(вторичная) намотана проводом ПЭВ-2, диаметром 0.64 витка и содержит 704 витка. Конденсатор С2 необходимо утановить на выводах микросхемы DD1.
Данный преобразователь тестировался на небольших нагрузках порядка 100 Вт. При током потреблении ток аккумулятора составляет порядка 10А, при отсутсвии нагрузки ток потребления соствляет поряжка 1А. Преобразователь способен выдрежить пусковый токи котые возникают от таких электропотребителей как электродрель иди электронасос.
]]>И для этого нам понадобится:
http сервер;
интерпритатор python.
Код управления на Java Script
//Порт к которому подключен Arduino var serialPort = 'COM5'; //непосредственно управляющая функция var Arduino = function(command, callback){ $.get('c.py',{ c:command, p:serialPort }, callback); }
В этом коде единственное нужно поменять имя порта, поставить то на которм у вас сидит arduino. Узнать где у вас Arduino можно посмотев в диспетчере устройств windows. Это имя скриптом передается интрепритатору phyton который подключается к arduino.
К примеру елси мы вызвали нашу функций Aruduino() с параметрами "123" то создастся запрос вида "index.html?с=123&p=COM5" который примент python скрипт. Что он из себя представляет.
#!/Python33/python.exe import serial import cgi print ("STATUS: 200 OK\n") req = cgi.FieldStorage(); ser = serial.Serial(req['p'].value, 9600, timeout=1) ser.write(bytes(req['c'].value,'latin')) ser.close() print ("ok") По сути он просто принемает параметр "с", и передает его в serial port "p" и далее выводит "ок" Код под Arduino #include <Servo.h> Servo myservo; void setup() { Serial.begin(9600); } String getParam(){ String re; while (Serial.available()) { re.concat(Serial.read()-48); } return re; } int getPin(String p){ return p.substring(0,2).toInt(); } int getVal(String p){ return p.substring(2,6).toInt(); } // Главный цикл void loop() { while (Serial.available()) { char command = (char)Serial.read(); String param = getParam(); int pin = getPin(param); int p; switch (command) { case '0': //Digital write pinMode(pin,OUTPUT); digitalWrite(pin, LOW); break; case '1': //Digital write pinMode(pin,OUTPUT); digitalWrite(pin, HIGH); break; case '2': //Servo myservo.attach(pin); p = getVal(param); myservo.write(p); break; case '3': //Digital read pinMode(pin,INPUT); Serial.print(digitalRead(pin)); break; case '4': { //Analog read int aPin = A0; switch (pin) { case 1: aPin = A1; break; case 2: aPin = A2; break; case 3: aPin = A3; break; case 4: aPin = A4; break; case 5: aPin = A5; break; } Serial.print(analogRead(aPin)); } break; case '5': //Analog write pinMode(pin,OUTPUT); p = getVal(param); analogWrite(pin, p); break; } } }
Через последовательное соединение мы будет передовать данные следующего 1234567 где:
{1} номер команды;
{23} - номер пина;
{4567} - данные пина(если нужны);
К примеру:
Код прогаммы можно дописывать самому.
Таки образом,используя интерпритатор и ajax можно обмениваться данными с arduino главное чтобы был интернет, причем все равно какой интренет wifi, проводной или мобильный. Для доступа в Интернет через сети мобильных провайдеров можно к примеру использовать 3G маршрутизатор.
]]>И для этого нам понадобится:
http сервер;
интерпритатор python.
Код управления на Java Script
//Порт к которому подключен Arduino var serialPort = 'COM5'; //непосредственно управляющая функция var Arduino = function(command, callback){ $.get('c.py',{ c:command, p:serialPort }, callback); }
В этом коде единственное нужно поменять имя порта, поставить то на которм у вас сидит arduino. Узнать где у вас Arduino можно посмотев в диспетчере устройств windows. Это имя скриптом передается интрепритатору phyton который подключается к arduino.
К примеру елси мы вызвали нашу функций Aruduino() с параметрами "123" то создастся запрос вида "index.html?с=123&p=COM5" который примент python скрипт. Что он из себя представляет.
#!/Python33/python.exe import serial import cgi print ("STATUS: 200 OK\n") req = cgi.FieldStorage(); ser = serial.Serial(req['p'].value, 9600, timeout=1) ser.write(bytes(req['c'].value,'latin')) ser.close() print ("ok") По сути он просто принемает параметр "с", и передает его в serial port "p" и далее выводит "ок" Код под Arduino #include <Servo.h> Servo myservo; void setup() { Serial.begin(9600); } String getParam(){ String re; while (Serial.available()) { re.concat(Serial.read()-48); } return re; } int getPin(String p){ return p.substring(0,2).toInt(); } int getVal(String p){ return p.substring(2,6).toInt(); } // Главный цикл void loop() { while (Serial.available()) { char command = (char)Serial.read(); String param = getParam(); int pin = getPin(param); int p; switch (command) { case '0': //Digital write pinMode(pin,OUTPUT); digitalWrite(pin, LOW); break; case '1': //Digital write pinMode(pin,OUTPUT); digitalWrite(pin, HIGH); break; case '2': //Servo myservo.attach(pin); p = getVal(param); myservo.write(p); break; case '3': //Digital read pinMode(pin,INPUT); Serial.print(digitalRead(pin)); break; case '4': { //Analog read int aPin = A0; switch (pin) { case 1: aPin = A1; break; case 2: aPin = A2; break; case 3: aPin = A3; break; case 4: aPin = A4; break; case 5: aPin = A5; break; } Serial.print(analogRead(aPin)); } break; case '5': //Analog write pinMode(pin,OUTPUT); p = getVal(param); analogWrite(pin, p); break; } } }
Через последовательное соединение мы будет передовать данные следующего 1234567 где:
{1} номер команды;
{23} - номер пина;
{4567} - данные пина(если нужны);
К примеру:
Код прогаммы можно дописывать самому.
Таки образом,используя интерпритатор и ajax можно обмениваться данными с arduino главное чтобы был интернет, причем все равно какой интренет wifi, проводной или мобильный. Для доступа в Интернет через сети мобильных провайдеров можно к примеру использовать 3G маршрутизатор.
]]>Для того чтобы подключить нам понадобются следующие детали:
Соеденительные провода
Для того чтобы подключится к разъему SPS нужен слегка подредактировать провод "джампер". Штырьки в радиомодуле довольно толстые и поэтому необходимо слегка увеличить отверстие в разъеме либо найти специальный и впаять его к вместо имеющегося. Ну или конечно если вам не жалко радиомодуль можно напрямую припаять, без всяких соеденительных проводов.
Также нужно будет добавить в 2 провода резисторы. Они необходимы для согласования уровней. Радиомодуль работает от напряжение в 3.3В а на пинах arduino 5В. У некоторых работает и без этих проводов, но я как то побаиваюсь подключаться напрямую, вдруг радиомодуль испортится. И тогдв придется нести мой джостик вместе с радиомодулем в сервис по ремонту sony playstation 4 или заказывать новый и ждать 2-3 недели, а на это просто не хватит терпения. Провод с припаеным резистором представлен ниже, номиналы сопротивлений можно посмотреть на схеме.
Распиновка радиомодуля от PS3, здесь представленны только задействованные пины.
Вот так будет выглядить разъем с выведенными проводами
Настройка программы
Для того чтобы запустить наш проект нам понадобится:
Скачать и установить библиотеку PS2X_lib
Открыть пример который идет вместе с библиотекой. Пример с комменариями на русском языке.
Настраиваем нужные нам пины в прогамме (скетче).
Загружаем скетч в arduino
Открываем монитор порта.
Если радиомодуль не перехоидит в режим поиска, то необходимо сделать следующее: оключить в включить питание радиомодуля, перезапустить Arduino.
]]>Для того чтобы подключить нам понадобются следующие детали:
Соеденительные провода
Для того чтобы подключится к разъему SPS нужен слегка подредактировать провод "джампер". Штырьки в радиомодуле довольно толстые и поэтому необходимо слегка увеличить отверстие в разъеме либо найти специальный и впаять его к вместо имеющегося. Ну или конечно если вам не жалко радиомодуль можно напрямую припаять, без всяких соеденительных проводов.
Также нужно будет добавить в 2 провода резисторы. Они необходимы для согласования уровней. Радиомодуль работает от напряжение в 3.3В а на пинах arduino 5В. У некоторых работает и без этих проводов, но я как то побаиваюсь подключаться напрямую, вдруг радиомодуль испортится. И тогдв придется нести мой джостик вместе с радиомодулем в сервис по ремонту sony playstation 4 или заказывать новый и ждать 2-3 недели, а на это просто не хватит терпения. Провод с припаеным резистором представлен ниже, номиналы сопротивлений можно посмотреть на схеме.
Распиновка радиомодуля от PS3, здесь представленны только задействованные пины.
Вот так будет выглядить разъем с выведенными проводами
Настройка программы
Для того чтобы запустить наш проект нам понадобится:
Скачать и установить библиотеку PS2X_lib
Открыть пример который идет вместе с библиотекой. Пример с комменариями на русском языке.
Настраиваем нужные нам пины в прогамме (скетче).
Загружаем скетч в arduino
Открываем монитор порта.
Если радиомодуль не перехоидит в режим поиска, то необходимо сделать следующее: оключить в включить питание радиомодуля, перезапустить Arduino.
]]>arduino/peredacha-temperatury-na-smartfon.jpg" alt="Передача температуры на смартфон" width="492" height="371" />
Для связи смартфона с термометром, используется программа которая осуществляет получения и вывод данных на ваш экран. Использовать для контроля температуры, можно не только смартфон, но и планшет.
Устройства взаимодействуют между собой с помощью микроконтроллера Ардуино(Arduino). Настройка дистанционного управления и получение на экран данных, можно с помощью RemoteXY. Она позволяет управлять любыми микроконтроллерами в зоне действия Bluetooth.
Из деталей нам понадобится резистор на 1 кОм, термистор на 1 кОм, но подойдут и другие главное чтобы сопротивление было в пределах от 1 до 100 кОм. Тольк при использовании термисторов с другим сопротивленим неоходимо чтобы резистор с каким он подключается имел аналогичное значение.
Получили делителя напряжения, состоящий их термистора и резистора. Колебания температуры в районе термистора изменит его сопротивление, что повлияет на общее сопротивление делителя. Вывод которого подключен к плате Arduino.
Затем нужно настроить соответствие показаний измерителя температуры и входной величиной отображаемой на экране. Для этого необходимо два эталонных напряжения, например температуры в комнате и вашего тела. Если допустить, что процессы происходящие в термисторе при меняющейся температуры будут линейными, то можно воспользоваться приближенным определением значения заменив ее линейной функцией, способ линейной интерполяции.
Для настройки определяем значение поступающее от АЦП Arduino, при эталонных значениях температуры датчика. Применяем интерфейс Serial и монитор порта, для передачи данных от АЦП к компьютеру. В Arduino загружаем простой скетч, который будет измерять напряжение на аналоговом выводе и в цифровом виде передавать в Serial. Поступающие данные просматриваем через дисплей порта. Переписываем показания АЦП при эталонных температурах получаемых от термистора. Показания будут следующими: Т=25,0 АЦП=580, Т=36,6 АЦП=514.
Первым делом нам необходимо составить код который будет переводить полученное значение с термистора в виде аналогового значения Arduino в понятное нам т.е. в градусы. Для этого нам сначала нужно определить что приходит с Arduino. Это можно посмотреть через Serial монитор. Для этого сначала зальем простой код
void setup() { Serial.begin(9600); } void loop() { int sensorValue = analogRead(A5); Serial.println(sensorValue); delay(1); }
Кож самой программы
///////////////////////////////////////////// // RemoteXY include library // ///////////////////////////////////////////// /* определение режима соединения и подключение библиотеки RemoteXY */ #define REMOTEXY_MODE__SOFTWARESERIAL #include <SoftwareSerial.h> #include <RemoteXY.h> /* настройки соединения */ #define REMOTEXY_SERIAL_RX 2 #define REMOTEXY_SERIAL_TX 3 #define REMOTEXY_SERIAL_SPEED 9600 /* конфигурация интерфейса */ unsigned char RemoteXY_CONF[] = { 0,11,27,0,1,5,67,0,24,23 ,54,16,2,11,129,0,23,12,39,9 ,0,84,101,109,112,44,32,194,176,67 ,0 }; /* структура определяет все переменные вашего интерфейса управления */ struct { /* output variable */ char text_1[11]; /* =строка оканчивающаяся нулем UNICODE */ /* other variable */ unsigned char connect_flag; /* =1 if wire connected, else =0 */ } RemoteXY; ///////////////////////////////////////////// // END RemoteXY include // ///////////////////////////////////////////// /* первое замеренное значение - первая точка */ #define SENS_1_VAL 514 #define SENS_1_TMP 36.6 /* второе замеренное значение - вторая точка */ #define SENS_2_VAL 580 #define SENS_2_TMP 25.0 void setup() { RemoteXY_Init (); Serial.begin(9600); } void loop() { RemoteXY_Handler (); /* получаем значение АЦП */ int sensorValue = analogRead(A5); /* вычисляем текущую температуру используя линейную интерполяцию по двум известным точкам */ double temp = SENS_1_TMP + (SENS_2_TMP - SENS_1_TMP) / (SENS_2_VAL - SENS_1_VAL) * (sensorValue - SENS_1_VAL); /* преобразуем значение температуры в строку и помещаем ее сразу в поле text_1 структуры RemoteXY */ dtostrf(temp, 0, 1, RemoteXY.text_1); /* отправляем значение АЦП в Serial для того что бы мы могли проверить значения */ Serial.println(sensorValue); delay(1); }
Интерфейс создается в редакторе RemoteXY, который представляет собой текстовое поле. Именно оно отвечает за передачу полученной температуры. Полученные данные будут ''-40.0'' или ''100.0 '', определяющее количество знаков в строке равным 5. Стандартно длина составляет 10 символов, выбор делается на ваше усмотрение.
Исходный код формируется с помощью платформы Arduino(SoftwareSerial), library version. Обязательно загрузите RemoteXY и подключите к Arduino. После этого подставляем данные полученных температур и АЦП в текстовое поле RemoteXY. Скетч загружается в Arduino, а RemoteXY в мобильное устройство или планшет. Теперь можно следить за измеряемой температурой с помощью Bluetooth.
Использовать это устройство можно абсолютно везде главное чтобы был нормальный заряд батареи смартфона и arduino. К примеру если у вас возникла необходимость измерять температуру в походных условиях то можно использовать зарядку на солнечных батареях, которая зарядит ваши гаджеты где бы вы не находились.
]]>arduino/peredacha-temperatury-na-smartfon.jpg" alt="Передача температуры на смартфон" width="492" height="371" />
Для связи смартфона с термометром, используется программа которая осуществляет получения и вывод данных на ваш экран. Использовать для контроля температуры, можно не только смартфон, но и планшет.
Устройства взаимодействуют между собой с помощью микроконтроллера Ардуино(Arduino). Настройка дистанционного управления и получение на экран данных, можно с помощью RemoteXY. Она позволяет управлять любыми микроконтроллерами в зоне действия Bluetooth.
Из деталей нам понадобится резистор на 1 кОм, термистор на 1 кОм, но подойдут и другие главное чтобы сопротивление было в пределах от 1 до 100 кОм. Тольк при использовании термисторов с другим сопротивленим неоходимо чтобы резистор с каким он подключается имел аналогичное значение.
Получили делителя напряжения, состоящий их термистора и резистора. Колебания температуры в районе термистора изменит его сопротивление, что повлияет на общее сопротивление делителя. Вывод которого подключен к плате Arduino.
Затем нужно настроить соответствие показаний измерителя температуры и входной величиной отображаемой на экране. Для этого необходимо два эталонных напряжения, например температуры в комнате и вашего тела. Если допустить, что процессы происходящие в термисторе при меняющейся температуры будут линейными, то можно воспользоваться приближенным определением значения заменив ее линейной функцией, способ линейной интерполяции.
Для настройки определяем значение поступающее от АЦП Arduino, при эталонных значениях температуры датчика. Применяем интерфейс Serial и монитор порта, для передачи данных от АЦП к компьютеру. В Arduino загружаем простой скетч, который будет измерять напряжение на аналоговом выводе и в цифровом виде передавать в Serial. Поступающие данные просматриваем через дисплей порта. Переписываем показания АЦП при эталонных температурах получаемых от термистора. Показания будут следующими: Т=25,0 АЦП=580, Т=36,6 АЦП=514.
Первым делом нам необходимо составить код который будет переводить полученное значение с термистора в виде аналогового значения Arduino в понятное нам т.е. в градусы. Для этого нам сначала нужно определить что приходит с Arduino. Это можно посмотреть через Serial монитор. Для этого сначала зальем простой код
void setup() { Serial.begin(9600); } void loop() { int sensorValue = analogRead(A5); Serial.println(sensorValue); delay(1); }
Кож самой программы
///////////////////////////////////////////// // RemoteXY include library // ///////////////////////////////////////////// /* определение режима соединения и подключение библиотеки RemoteXY */ #define REMOTEXY_MODE__SOFTWARESERIAL #include <SoftwareSerial.h> #include <RemoteXY.h> /* настройки соединения */ #define REMOTEXY_SERIAL_RX 2 #define REMOTEXY_SERIAL_TX 3 #define REMOTEXY_SERIAL_SPEED 9600 /* конфигурация интерфейса */ unsigned char RemoteXY_CONF[] = { 0,11,27,0,1,5,67,0,24,23 ,54,16,2,11,129,0,23,12,39,9 ,0,84,101,109,112,44,32,194,176,67 ,0 }; /* структура определяет все переменные вашего интерфейса управления */ struct { /* output variable */ char text_1[11]; /* =строка оканчивающаяся нулем UNICODE */ /* other variable */ unsigned char connect_flag; /* =1 if wire connected, else =0 */ } RemoteXY; ///////////////////////////////////////////// // END RemoteXY include // ///////////////////////////////////////////// /* первое замеренное значение - первая точка */ #define SENS_1_VAL 514 #define SENS_1_TMP 36.6 /* второе замеренное значение - вторая точка */ #define SENS_2_VAL 580 #define SENS_2_TMP 25.0 void setup() { RemoteXY_Init (); Serial.begin(9600); } void loop() { RemoteXY_Handler (); /* получаем значение АЦП */ int sensorValue = analogRead(A5); /* вычисляем текущую температуру используя линейную интерполяцию по двум известным точкам */ double temp = SENS_1_TMP + (SENS_2_TMP - SENS_1_TMP) / (SENS_2_VAL - SENS_1_VAL) * (sensorValue - SENS_1_VAL); /* преобразуем значение температуры в строку и помещаем ее сразу в поле text_1 структуры RemoteXY */ dtostrf(temp, 0, 1, RemoteXY.text_1); /* отправляем значение АЦП в Serial для того что бы мы могли проверить значения */ Serial.println(sensorValue); delay(1); }
Интерфейс создается в редакторе RemoteXY, который представляет собой текстовое поле. Именно оно отвечает за передачу полученной температуры. Полученные данные будут ''-40.0'' или ''100.0 '', определяющее количество знаков в строке равным 5. Стандартно длина составляет 10 символов, выбор делается на ваше усмотрение.
Исходный код формируется с помощью платформы Arduino(SoftwareSerial), library version. Обязательно загрузите RemoteXY и подключите к Arduino. После этого подставляем данные полученных температур и АЦП в текстовое поле RemoteXY. Скетч загружается в Arduino, а RemoteXY в мобильное устройство или планшет. Теперь можно следить за измеряемой температурой с помощью Bluetooth.
Использовать это устройство можно абсолютно везде главное чтобы был нормальный заряд батареи смартфона и arduino. К примеру если у вас возникла необходимость измерять температуру в походных условиях то можно использовать зарядку на солнечных батареях, которая зарядит ваши гаджеты где бы вы не находились.
]]>Питание схемы осуществлятеся от 6 вольтового аккумулятора. Управление осуществляется при помощи ШИМ сигналов который поступают на вход драйвера микросхемы L293D. Робот имеет 3 кнопки которые механически соеденины с "бамперами" робота на его корпусе.
Двигатели постоянного тока управляются при помощи драйвера шагового двигателя собранного на микросхеме LD293D. Внешний вид собранной печатной платы представлен на рисунке ниже.
В качестве корпуса робота подойдет какая нибудь пластиковая емкость в примере использовано ведерко
В качестве механики были использованы колеса и моторчики от игрушечного автомобиля вы можете использовать абсолутно любую механику все ограничено лишь вашей фантазией.
Всасывающая часто сделана на кортоном каркасе и всасывающего куллера в качестве фильтра выступает обычная салфетка.
Кнопки кнопки нажимаются при помощи "бамперов"
]]>Питание схемы осуществлятеся от 6 вольтового аккумулятора. Управление осуществляется при помощи ШИМ сигналов который поступают на вход драйвера микросхемы L293D. Робот имеет 3 кнопки которые механически соеденины с "бамперами" робота на его корпусе.
Двигатели постоянного тока управляются при помощи драйвера шагового двигателя собранного на микросхеме LD293D. Внешний вид собранной печатной платы представлен на рисунке ниже.
В качестве корпуса робота подойдет какая нибудь пластиковая емкость в примере использовано ведерко
В качестве механики были использованы колеса и моторчики от игрушечного автомобиля вы можете использовать абсолутно любую механику все ограничено лишь вашей фантазией.
Всасывающая часто сделана на кортоном каркасе и всасывающего куллера в качестве фильтра выступает обычная салфетка.
Кнопки кнопки нажимаются при помощи "бамперов"
]]>
Размеры печатной платы 48x35. Схема содериж минимальное необходимое число радиодеталей.
Программное обеспечение написано по ОС WIN98,ME,2000,XP. Написанов среде разработке Visual C++ и использовании библиотеке HID Windows DDK. Температура выводится на экран в градусах Цельсия. Программу можно свернуть в трей. Если устройстов не подключено или работает не правильно то цвет температуры в трее будет серый, если температура менее нуля градусов то синий если больше 0 то красный.
]]>
Размеры печатной платы 48x35. Схема содериж минимальное необходимое число радиодеталей.
Программное обеспечение написано по ОС WIN98,ME,2000,XP. Написанов среде разработке Visual C++ и использовании библиотеке HID Windows DDK. Температура выводится на экран в градусах Цельсия. Программу можно свернуть в трей. Если устройстов не подключено или работает не правильно то цвет температуры в трее будет серый, если температура менее нуля градусов то синий если больше 0 то красный.
]]>В квадрокоптерах применяются безколлекторные двигатели. Они многофазные, а их питание током обеспечивает ЭКС, заставляя вращаться вал двигателя.
Исходя из мощности мотора, подбирают ЭКС по пропускной способности тока. ЭКС служит своеобразным преобразователем постоянного тока аккумулятора в трёхфазный, и управляется с помощью отдельных дистанционных сигналов конкретной модуляции, меняющихся с частотой 200-300 Герц. Подобрать и сравнить необходимые комплектрующие а также посмотреть обзоры квадрокоптеров различных моделей можно по следующей ссылке.
При выборе ЭКСа нужно ориентироваться : На силу тока, который он может создать. Чем выше, тем лучьше, но не ниже 10 Ампер, а если двигатель мощный – то не ниже пикового потребления. На программную совместимость контролёра и платы управления.
Для обеспечения электроэнергией квадрокоптера, применяют аккумуляторы.
Для данных целей лучше всего подходят литий-полимерные батареи. Их неоспоримым преимуществом является наименьшая среди аналогов масса (что для летательных аппаратов – самый важный фактор) и подходящий, в данном случае, ток отдачи.
В крайнем случае можно пользоваться эконом-вариантом – никель-металлгидритными аккумуляторами, но они ощутимо тяжелее.Напряжение. Литий-полимерные аккумуляторы поставляются как отдельными элементами по 3,7 Вольта, так и в сборе – 10 секционной и больше батареей (37 Вольт и больше). Самыми популярными у любителей квадрокоптеров являются батареи с тремя элементами, общим напряжением в 11,1 Вольта. Ёмкость аккумуляторов.
При выборе источников питания нужно учесть такие моменты:
Энергопотребление двигателей. Время полёта. Вес аккумуляторов.
Оптимальное время полёта условно определяется так: общая мощность двигателей должна количественно равняться заряду батареи.Степень разрядки батареи. От этого показателя будет зависеть, какой максимальный ток можно получить от аккумуляторов.
Он рассчитывается умножением степени разрядки на ёмкость, и потребление всех систем аппарата не должно его превышать. Инерционно-измерительный комплекс (ИИК). Это система датчиков (акселерометры, гироскопы, магнитометры), которые передают всю информацию о режиме полёта на управляемый модуль.Выбор ИИК.
В продаже есть датчики всех типов, но лучше для начинающего конструктора приобрести комплекс датчиков уже собранных на одной плате и имеющих 6 или 9 степеней свободы. При выборе ИКК нужно ориентироваться на возможности системы управления, о которых можно узнать из прилагаемой инструкции.Управление полётом. Для управления квадрокоптером, пульт (ЦВМ – центральный вычислительный модуль) можно приобрести целиком, либо собрать из комплектующих, но для этого необходимы некоторые навыки изнания.
Существует два режима радиоуправления: Темп (аэробатика) – режим, при котором управление полётом осуществляется только с помощью тяги двигателей.
Для новичков он может быть сложным.Автостабилизация – режим, при котором, «пилот» даёт команды с помощью джойстика, а сенсоры будут управлять симметричными действиями для поддержания общего баланса.
Если квадрокоптеру нужны дополнительные возможности, то их обеспечат:GPS – модуль – даёт информацию о точном местонахождении аппарата, особенно полезна эта функция для автоматического режима.
Ультразвуковой датчик – указывает высоту полёта, тоже очень полезная штука при автополёте. Но диапазон определения высоты составляет до 7 метров.
Барометр – используется для определения высоты полёта, когда ультразвуковой уже не справляется. На малых высотах – не эффективен. Кроме того может показывать влажность воздуха.
Существует ещё множество дополнительных устройств, имеющих разнообразное предназначение, и в которых схема электроники квадрокоптера не сильно нуждается.
]]>В квадрокоптерах применяются безколлекторные двигатели. Они многофазные, а их питание током обеспечивает ЭКС, заставляя вращаться вал двигателя.
Исходя из мощности мотора, подбирают ЭКС по пропускной способности тока. ЭКС служит своеобразным преобразователем постоянного тока аккумулятора в трёхфазный, и управляется с помощью отдельных дистанционных сигналов конкретной модуляции, меняющихся с частотой 200-300 Герц. Подобрать и сравнить необходимые комплектрующие а также посмотреть обзоры квадрокоптеров различных моделей можно по следующей ссылке.
При выборе ЭКСа нужно ориентироваться : На силу тока, который он может создать. Чем выше, тем лучьше, но не ниже 10 Ампер, а если двигатель мощный – то не ниже пикового потребления. На программную совместимость контролёра и платы управления.
Для обеспечения электроэнергией квадрокоптера, применяют аккумуляторы.
Для данных целей лучше всего подходят литий-полимерные батареи. Их неоспоримым преимуществом является наименьшая среди аналогов масса (что для летательных аппаратов – самый важный фактор) и подходящий, в данном случае, ток отдачи.
В крайнем случае можно пользоваться эконом-вариантом – никель-металлгидритными аккумуляторами, но они ощутимо тяжелее.Напряжение. Литий-полимерные аккумуляторы поставляются как отдельными элементами по 3,7 Вольта, так и в сборе – 10 секционной и больше батареей (37 Вольт и больше). Самыми популярными у любителей квадрокоптеров являются батареи с тремя элементами, общим напряжением в 11,1 Вольта. Ёмкость аккумуляторов.
При выборе источников питания нужно учесть такие моменты:
Энергопотребление двигателей. Время полёта. Вес аккумуляторов.
Оптимальное время полёта условно определяется так: общая мощность двигателей должна количественно равняться заряду батареи.Степень разрядки батареи. От этого показателя будет зависеть, какой максимальный ток можно получить от аккумуляторов.
Он рассчитывается умножением степени разрядки на ёмкость, и потребление всех систем аппарата не должно его превышать. Инерционно-измерительный комплекс (ИИК). Это система датчиков (акселерометры, гироскопы, магнитометры), которые передают всю информацию о режиме полёта на управляемый модуль.Выбор ИИК.
В продаже есть датчики всех типов, но лучше для начинающего конструктора приобрести комплекс датчиков уже собранных на одной плате и имеющих 6 или 9 степеней свободы. При выборе ИКК нужно ориентироваться на возможности системы управления, о которых можно узнать из прилагаемой инструкции.Управление полётом. Для управления квадрокоптером, пульт (ЦВМ – центральный вычислительный модуль) можно приобрести целиком, либо собрать из комплектующих, но для этого необходимы некоторые навыки изнания.
Существует два режима радиоуправления: Темп (аэробатика) – режим, при котором управление полётом осуществляется только с помощью тяги двигателей.
Для новичков он может быть сложным.Автостабилизация – режим, при котором, «пилот» даёт команды с помощью джойстика, а сенсоры будут управлять симметричными действиями для поддержания общего баланса.
Если квадрокоптеру нужны дополнительные возможности, то их обеспечат:GPS – модуль – даёт информацию о точном местонахождении аппарата, особенно полезна эта функция для автоматического режима.
Ультразвуковой датчик – указывает высоту полёта, тоже очень полезная штука при автополёте. Но диапазон определения высоты составляет до 7 метров.
Барометр – используется для определения высоты полёта, когда ультразвуковой уже не справляется. На малых высотах – не эффективен. Кроме того может показывать влажность воздуха.
Существует ещё множество дополнительных устройств, имеющих разнообразное предназначение, и в которых схема электроники квадрокоптера не сильно нуждается.
]]>Каждой модели микроконтроллеров характерны свои варианты программирования. Так, например, микроконтроллеры семейства ATiny программируются исключительно первым способом, а более поздние модели семейства ATmega поддерживают одновременно до трёх типов программирования.
У микроконтроллеров AVR также встречается возможность само программирования, что делает возможным программирование из пользовательской программы. Более поздние модели семейства ATiny позволяют производить модифицирование Flash-памяти с использованием режима отладки и одно контактного провода dW, что полезно при массовом производстве.
Также при массовом производстве часто используется высоковольтное программирование – и последовательное, и параллельное. При таком программировании задействуется большое количество выводов микроконтроллера и дополнительный источник питания. Это в свою очередь осложняет схему программатора, что делает эти способы невыгодными для «точечных» нужд.
Интерфейс JTAG удобен при отладке, поскольку он позволяет производить проверку отдельных запрограммированных циклов. Увы, используется он редко из-за высокой стоимости фирменных программаторов и узкой совместимости с устройствами (проще говоря, не все семейства микроконтроллеров его поддерживают).
Самым распространённым способом принято считать низковольтное программирование с использованием SPI. Он получил своё распространение благодаря широте использования (всего пара моделей ATtiny11x и ATtiny28x не поддерживают его) и простоте использования программаторов. Стоит отметить, что в качестве пользовательского приложения для такого программирования AVR микроконтроллеров используется полюбившаяся многим PonyProg. Второй программатор более совершённый и используется там, где важна точность программирования, и базируется на известной AVR ISP, выпущенной фирмой ATMEL, интегрируется с IDE AVR Studio.
При низковольтном программировании обычно используется интерфейс SPI, что в свою очередь тоже создаёт ряд требований: - Задействуются 5 выводов контроллера: линия вывода SPI (MISO, MOSI, SCK), RESET и GND;
Рассмотрим внутрисхемное программирование AVR микроконтроллера в количестве одной штуки.
По схеме видно, что при программировании к выводам MISO, MOSI и SCK подключаются дополнительные сопротивления малого номинала. Также важно, чтобы напряжения микроконтроллера и программатора имели максимально приближённые значения. Возможно производить и программирование нескольких микроконтроллеров, что может быть полезным, когда они уже запаяны в плату. В таком случае необходимо учесть следующее: одновременно может быть только один активный микроконтроллер. Поэтому следует заранее побеспокоится о наличии переключателя, отвечающего за активацию разных микроконтроллеров, что изображено на схеме в виде обозначений J1 и J2:
Важно! Следует помнить, что изменение значений в таких битах, как RSTDISBL и DWEN приводит к блокировке микроконтроллера. Первый бит отвечает за состояние линии RESET, превращая её в линию порта ввода-вывода. Также существуют 2 бита CKSEL3:CKSEL0, которые отвечают за выбор собственного источника тактовой частоты.
Микроконтроллеры AVR, в процессе программирования, должны работать от собственного генератора и если случайно сбить настройки этих трёх битов, то микроконтроллер потеряет всю работоспособность. Есть еще один критичный бит SPIEN, который отвечает за доступность SPI-линии. Если поменять его настройку, возможность произвести программирование AVR микроконтроллера, используя описанные 2 способа станет невозможно. К, счастью, создатели чипов выставляет по умолчанию корректные значения, поэтому их можно просто не трогать.
]]>Каждой модели микроконтроллеров характерны свои варианты программирования. Так, например, микроконтроллеры семейства ATiny программируются исключительно первым способом, а более поздние модели семейства ATmega поддерживают одновременно до трёх типов программирования.
У микроконтроллеров AVR также встречается возможность само программирования, что делает возможным программирование из пользовательской программы. Более поздние модели семейства ATiny позволяют производить модифицирование Flash-памяти с использованием режима отладки и одно контактного провода dW, что полезно при массовом производстве.
Также при массовом производстве часто используется высоковольтное программирование – и последовательное, и параллельное. При таком программировании задействуется большое количество выводов микроконтроллера и дополнительный источник питания. Это в свою очередь осложняет схему программатора, что делает эти способы невыгодными для «точечных» нужд.
Интерфейс JTAG удобен при отладке, поскольку он позволяет производить проверку отдельных запрограммированных циклов. Увы, используется он редко из-за высокой стоимости фирменных программаторов и узкой совместимости с устройствами (проще говоря, не все семейства микроконтроллеров его поддерживают).
Самым распространённым способом принято считать низковольтное программирование с использованием SPI. Он получил своё распространение благодаря широте использования (всего пара моделей ATtiny11x и ATtiny28x не поддерживают его) и простоте использования программаторов. Стоит отметить, что в качестве пользовательского приложения для такого программирования AVR микроконтроллеров используется полюбившаяся многим PonyProg. Второй программатор более совершённый и используется там, где важна точность программирования, и базируется на известной AVR ISP, выпущенной фирмой ATMEL, интегрируется с IDE AVR Studio.
При низковольтном программировании обычно используется интерфейс SPI, что в свою очередь тоже создаёт ряд требований: - Задействуются 5 выводов контроллера: линия вывода SPI (MISO, MOSI, SCK), RESET и GND;
Рассмотрим внутрисхемное программирование AVR микроконтроллера в количестве одной штуки.
По схеме видно, что при программировании к выводам MISO, MOSI и SCK подключаются дополнительные сопротивления малого номинала. Также важно, чтобы напряжения микроконтроллера и программатора имели максимально приближённые значения. Возможно производить и программирование нескольких микроконтроллеров, что может быть полезным, когда они уже запаяны в плату. В таком случае необходимо учесть следующее: одновременно может быть только один активный микроконтроллер. Поэтому следует заранее побеспокоится о наличии переключателя, отвечающего за активацию разных микроконтроллеров, что изображено на схеме в виде обозначений J1 и J2:
Важно! Следует помнить, что изменение значений в таких битах, как RSTDISBL и DWEN приводит к блокировке микроконтроллера. Первый бит отвечает за состояние линии RESET, превращая её в линию порта ввода-вывода. Также существуют 2 бита CKSEL3:CKSEL0, которые отвечают за выбор собственного источника тактовой частоты.
Микроконтроллеры AVR, в процессе программирования, должны работать от собственного генератора и если случайно сбить настройки этих трёх битов, то микроконтроллер потеряет всю работоспособность. Есть еще один критичный бит SPIEN, который отвечает за доступность SPI-линии. Если поменять его настройку, возможность произвести программирование AVR микроконтроллера, используя описанные 2 способа станет невозможно. К, счастью, создатели чипов выставляет по умолчанию корректные значения, поэтому их можно просто не трогать.
]]>Напряжение питания может варьироваться в пределах от 4,5 - 8 В.
Рабочий диапазон температуры от -40 до +85 градусов.
Микросхема доступна в корпусах 8-pin SOIC и 8-pin DIP.
Контроль уровня громкости осущестляется при помощи кнопок S1 и S2
Datasheet микросхемы DS1669-10
]]>Напряжение питания может варьироваться в пределах от 4,5 - 8 В.
Рабочий диапазон температуры от -40 до +85 градусов.
Микросхема доступна в корпусах 8-pin SOIC и 8-pin DIP.
Контроль уровня громкости осущестляется при помощи кнопок S1 и S2
Datasheet микросхемы DS1669-10
]]>Схема усилителя мощности в 1000 Вт. Вариант 1
Схема усилителя мощности в 1000 Вт. Вариант 2
Во втором варианте изменился входной каскад выходной. Выходные каскады в обоих вариантах выполнены на мощных MOSFET транзисторах IRFP240. Которые обладают следующими характеристиками:
Транисторы IRFP240 довольно сильно греется поэтому для их стабильной работы требуется хорошего охлаждения. Печатную плату можно использовать вытянутую а можно использовать и квадратную. В первом случае расположение радиодеталей такое же как в принципиальной схеме во втором выходные каскады расположены в центре платы.
Размеры платы 300 на 75 мм. Скачать чертеж печатной платы усилителя.
Внешний вид готовой печатной платы и платы с радиодеталями
Внешний вид собранного усилителя
Второй вариант печатной платы
Скачать второй вариант печатной платы усилителя мощности
Представленную выше схему можно модернизировать убрав часть выходных транзисторов в каждом каскаде до 6 шт, всего 12 транзисторов. Напряжение питание также +- 95 В. В итоге выходная мощность понизиться до 500 Вт, а коэффициент нелинейных искажений (КНИ) понизиться до 0,18%. В этом случае нужно использовать транзисторы IRFP240.
Если в этой схеме использовать те же транзисторы IRFP260 как и в первой схеме на 1000 Вт, до и в этой схеме с 12 транзисторами можно получить ту же выходную мощность порядка 1 кВт. В характеристиках транзистора можно найти информацию про то что при таком же напряжении в сток-исток и сток-затвор до 200 В. ток через сток будет 46 А, а в момент пика достигать значения до 184 А. Рассеиваемая мощность транзистора при таких параметрах составит до 280 Вт.
В качестве нагрузки выходных каскадов может выступать динамик в 4 Ом или в 8 Ом.
Печатная плата для него:
После пайки и монтажа должно получится следующее
По аналогии с предыдущими схемами в этой схеме также уменьшено количество транзисторов, в этой схеме всего 4 транзистора IRFP260, можно использовать IRFP240. Если схема не будет работать должным образом на одних транзисторах то можно поставить другие. Сопротивление нагрузки также составляет 8 Ом. Питающее напряжение снижено до +- 50 В. Уменьшились и нелинейные искажения и шумы и соответсвенно выросли качественные показатели звучания, КНИ составляет 0,1% а если мощность 100 Ватт то 0,018.
Печатная плата идентична предыдущей, в ней последние 4 каскада просто убрали.
Тажа схема но на транзисторах MOSFET IRFP240
Следует обратить внимание что вместо биполярного транзистора BD139 установлен полевой IRF510, а также на то что изменились некоторые номиналы радиодеталей.
Все представленные выше схемы обладают хорошими мощностными показателями, стабильностью работы. Не требуют особых настроек, при условии что схема собрана правильно с использованием указаных номиналов схема должна сразу заработать.
]]>Схема усилителя мощности в 1000 Вт. Вариант 1
Схема усилителя мощности в 1000 Вт. Вариант 2
Во втором варианте изменился входной каскад выходной. Выходные каскады в обоих вариантах выполнены на мощных MOSFET транзисторах IRFP240. Которые обладают следующими характеристиками:
Транисторы IRFP240 довольно сильно греется поэтому для их стабильной работы требуется хорошего охлаждения. Печатную плату можно использовать вытянутую а можно использовать и квадратную. В первом случае расположение радиодеталей такое же как в принципиальной схеме во втором выходные каскады расположены в центре платы.
Размеры платы 300 на 75 мм. Скачать чертеж печатной платы усилителя.
Внешний вид готовой печатной платы и платы с радиодеталями
Внешний вид собранного усилителя
Второй вариант печатной платы
Скачать второй вариант печатной платы усилителя мощности
Представленную выше схему можно модернизировать убрав часть выходных транзисторов в каждом каскаде до 6 шт, всего 12 транзисторов. Напряжение питание также +- 95 В. В итоге выходная мощность понизиться до 500 Вт, а коэффициент нелинейных искажений (КНИ) понизиться до 0,18%. В этом случае нужно использовать транзисторы IRFP240.
Если в этой схеме использовать те же транзисторы IRFP260 как и в первой схеме на 1000 Вт, до и в этой схеме с 12 транзисторами можно получить ту же выходную мощность порядка 1 кВт. В характеристиках транзистора можно найти информацию про то что при таком же напряжении в сток-исток и сток-затвор до 200 В. ток через сток будет 46 А, а в момент пика достигать значения до 184 А. Рассеиваемая мощность транзистора при таких параметрах составит до 280 Вт.
В качестве нагрузки выходных каскадов может выступать динамик в 4 Ом или в 8 Ом.
Печатная плата для него:
После пайки и монтажа должно получится следующее
По аналогии с предыдущими схемами в этой схеме также уменьшено количество транзисторов, в этой схеме всего 4 транзистора IRFP260, можно использовать IRFP240. Если схема не будет работать должным образом на одних транзисторах то можно поставить другие. Сопротивление нагрузки также составляет 8 Ом. Питающее напряжение снижено до +- 50 В. Уменьшились и нелинейные искажения и шумы и соответсвенно выросли качественные показатели звучания, КНИ составляет 0,1% а если мощность 100 Ватт то 0,018.
Печатная плата идентична предыдущей, в ней последние 4 каскада просто убрали.
Тажа схема но на транзисторах MOSFET IRFP240
Следует обратить внимание что вместо биполярного транзистора BD139 установлен полевой IRF510, а также на то что изменились некоторые номиналы радиодеталей.
Все представленные выше схемы обладают хорошими мощностными показателями, стабильностью работы. Не требуют особых настроек, при условии что схема собрана правильно с использованием указаных номиналов схема должна сразу заработать.
]]>Схема таймера выполнена на микроконтроллере ATtiny2313 который имеет 20 выводов. Развязка силовой часть от управляющей осуществляется через оптореле А1. Схема имеет также звуковую сигнализацию, пьезоэлектрический пассивный звукоизлучатель подключен к выводам 3 и 6.
Установка требуемого значения времени осуществляться при помощи трех кнопок, S1,S2,S3. Две из них необходимы для установки времени, это кнопки S1 и S2 а другая для запуска таймера, это кнопка S3. После того вы выставили время и нажали запуск срабатывает реле и включается нагрузка. После того как значение времени достигнет нулевого значения нагрузка выключится.
Для питании схемы таймера на микроконтроллере необходим источник в 5 В, который подключается к штекеру X4. Штекер X3 - розетка под нагрузку. Программатор подключатся к разъему X1.
Микроконтроллер затактирован от кварцевого резонатора с частотой в 4 МГц. В качестве табло выступает трехразрядный индикатор с общим катодом, тут используется динамическая индикация. Переключение каждого семисегментного индикатора осуществляется при помощи 3-х транзисторов VT1-VT3. Сопротивление R2-R9 необходимы для ограничения протекающего тока через семисегментный индикаторы.
Прошивка для таймера на микроконтроллере - скачать (1,5 Кб). Необходимые фьюзы отмечены галочками SPIEN, BODLEVEL2, BODLEVEL1, SUTO, CKSEL1
]]>Схема таймера выполнена на микроконтроллере ATtiny2313 который имеет 20 выводов. Развязка силовой часть от управляющей осуществляется через оптореле А1. Схема имеет также звуковую сигнализацию, пьезоэлектрический пассивный звукоизлучатель подключен к выводам 3 и 6.
Установка требуемого значения времени осуществляться при помощи трех кнопок, S1,S2,S3. Две из них необходимы для установки времени, это кнопки S1 и S2 а другая для запуска таймера, это кнопка S3. После того вы выставили время и нажали запуск срабатывает реле и включается нагрузка. После того как значение времени достигнет нулевого значения нагрузка выключится.
Для питании схемы таймера на микроконтроллере необходим источник в 5 В, который подключается к штекеру X4. Штекер X3 - розетка под нагрузку. Программатор подключатся к разъему X1.
Микроконтроллер затактирован от кварцевого резонатора с частотой в 4 МГц. В качестве табло выступает трехразрядный индикатор с общим катодом, тут используется динамическая индикация. Переключение каждого семисегментного индикатора осуществляется при помощи 3-х транзисторов VT1-VT3. Сопротивление R2-R9 необходимы для ограничения протекающего тока через семисегментный индикаторы.
Прошивка для таймера на микроконтроллере - скачать (1,5 Кб). Необходимые фьюзы отмечены галочками SPIEN, BODLEVEL2, BODLEVEL1, SUTO, CKSEL1
]]>SPI - довольно распространенный интерфейс для обмена данными с другими микросхемами, обмен данными осуществляться последовательно. Этот интерфейс так же как и I2C, являются наиболее распространенными интерфейсами обмена данными между микросхемами. Интерфейс SPI придумала компания Motorola, по сей день этот интерфейс существует и им пользуются многие производители электроники. Сокращение SPI представляет собой аббревиатуру от "Serial Peripheral Bus" что означает шина для подключения внешних периферийных устройств. Работает она схеме "подчиненный-ведущий". В роли ведущего выступает микроконтроллер, также может быть программируемая логика, какая нибудь специализированная ИС или DSP контроллер. В качестве подчиненных могу выступать:
Главными составными блоками последовательного интерфейса SPI являются сдвиговой регистр, сигнал синхронизации, сигнал ввода/вывода. SPI можно также назвать протоколом обмена данными от одного сдвигового регистра к другому, каждый их этих сдвиговых регистров одновременно играют роль как передатчике так и приемника. Но для того чтобы этот интерфейс правильно работал нужен сигнал синхронизации шины. Функцию генерации тактового сигнала или сигнала синхронизации берет на себя ведущее устройство и от него полностью зависит работа подчерненных устройств.
По интерфейсу SPI существует 3 основных способа подключения, в каждом таком способе используются 4 сигнала. Самый простой способ подключения включает всего две микросхемы. В этом случае ведущее устройство осуществляет передачу данных по линии MOSI, передачи осуществляется синхронно вместе с сигналом SCLK который также генерируется ведущим устройством. На другой стороне подчиненное устройство осуществляет прием данных, прием осуществляется по определенным фронтам сигнала синхронизации. Одновременно с этими операциями передаются данных ведомого устройства (направления потока информации показаны на рисунке стрелками). Если обратная связь не предусматривается устройством, т.е. если в ответных данных от ведомого устройства нет необходимости до линию MISO можно исключить. Передачу данных в одну осуществляется на таких микросхемах как цифровые потенциометры, драйверы и программируемые усилители. Для них требуется 3 или 4 линии связи.
Для того чтобы подчиненное устройство начало не только принимать но и передавать данные, необходимо не только наличие сигнала синхронизации но и чтобы линия SS имела низкое состояние. Если линия будет иметь другой уровень то передачи данных ведомым устройством будет не возможна. Для корректной работы подчиненного устройства необходимо чтобы линия SS соединяла ведущее устройство и ведомое.
В случае подключения нескольких устройств к одной шине SPI, можно использовать независимое подключение или параллельное, а можно каскадное или последовательное. Независимое (параллельное) подключение используется чаще. В этой схеме все линии соединены параллельно, за исключением линии выбора устройства. Используя эту линию ведущее устройство выбирает ту или иную микросхему с которой он будет обмениваться теми или иными данными. Но у этого соединение есть один недостаток в виде увеличения количество линий. Количество линий будет равно 3+n, где n - количество подключенных подчиненных устройств.
Если у вас много подчиненных устройств. Для того чтобы уменьшить количество линий нужно использовать каскадное соединение. В этом случае все подсоединенные устройства образуют одни сдвиговый регистр. В этом случае выход одной микросхемы подсоединяют ко входу другой. Все выходы выбора микросхемы SS соединяются в одну линию. Используя такую схему подключения подчиненных устройств равно 4-м. Только такое соединение устройств возможно только в том случае если все подключенные устройства поддерживают такое соединение. Узнать поддерживает устройство такой режим работы или нет можно узнать в документации на микросхему, такое соединение называется 'daisy-chaining'
Принцип работы протокола SPI схож с принципом работы сдвигового регистра, который основан на операциях сдвига, и как следствие ввода вывода данных по определенным фронтам которые поступат по линии сигнала синхронизации. Установка принимаемых данных при отсылке и выборка при приеме всегда осуществляется по противоположным фронтам сигнала синхронизации. Это нужно для гаранта выборки данных после их надежного установления. Первый фронт в цикле при передачи может быть нарастающий или спадающий сигнал, то возможны четыре случая работы интерфейса SPI. Все эти варианты носят название режимы работы интерфейса SPI и описываются двумя разными параметрами:
CPOL - начальный уровень сигнала линии сигнализации, если CPOL=0 то от начала и до конца цикла передачи линия синхронизации имеет низкий уровень, т.е. нарастающий первый фронт и падающий последний. Если CPOL=1 то наоборот первый фронт падающий а последний нарастающий.
CPHA - фаза линии синхронизации, от значения этого параметра зависит последовательность выполнения и выборки данных (если CPHA имеет низкое значение то по переднему фронту будет производится выборка данных, а далее по заднему будет установка данных. Если значение CPHA будет иметь высокий уровень то установка данных будет осуществятся по переднему фронту в цикле синхронизации, а выборка наоборот по заднему.
Подчиненная и ведущая микросхемы, работающие в разных режимах SPI будут несовместимы, поэтому перед использованием подчиненных микросхем важно знать какие режимы работы могут поддерживаться ведущим шины. Если в микросхеме SPI осуществляется аппаратно то они могут поддерживать любой режим SPI и к ним можно подключать практически любые подчиненные SPI микросхем (только независимый вариант подключения). Любой режим SPI можно реализовывать программно.
Не меньшей популярность также как и SPI пользуется протокол I2C. Для сравнения ниже представлена таблица преимуществ этих протоколов.
Преимущества SPI интерфейса
Простота протокола передачи и как следствие высокая надежность и быстродействие. Скорость передачи данных измеряется десятками мегагерц, поэтому такой протокол отлично подходит для тех схем где требуется передачи значительных объемов данных к примеру высокоскоростные ЦАП и АЦП, микросхемы памяти, драйвера светодиодных дисплеев. Все линии в шине одно направлены, что упрощает задачу преобразование уровней а также гальваническую изоляцию микросхем. Протокол SPI можно реализовать программно.
Преимущества I2C
Главным преимуществом шины I2C является тот факт что она двухпроводная, число проводов не зависит от количества подключенных к ней микросхем. Существует возможность работы с несколькими ведущими микросхемам, такой режим работы называется мультимастерный. Основным на мой взгляд преимуществом является стандартизация протокола I2C, т.е. отсутствует проблема несовместимости компонентов.
Microwire
Данный протокол передачи данных от компании National Semiconductor идентичен в режиме 0 протоколу SPI (CPOL=0, CPHA=0)
Протокол от компании Maxim
Особенностью этого интерфейса заключается в том, что полудуплексная передача осуществляется по одной двунаправленной линии DQ
Протокол QSPI
Является высокоуровневым протоколом, в отличии от SPI позволяет осуществлять автоматическую передачу без использования ЦПУ.
Ведущий шины | Подчиненный шины | ||||
Основное обозначение | Альтернативное обозначение | Описание | Основное обозначение | Альтернативное обозначение | Описание |
MOSI | DO, SDO, DOUT | Выход последовательной передачи данных | MOSI | DI, SDI, DIN | Вход последовательного приема данных |
MISO | DI, SDI, DIN | Вход последовательного приема данных | MISO | DO, SDO, DOUT | Выход последовательной передачи данных |
SCLK | DCLOCK, CLK, SCK | Выход синхронизации передачи данных | SCLK | DCLOCK, CLK, SCK | Вход синхронизации приема данных |
SS | CS | Выход выбора подчиненного (выбор микросхемы) | SS | CS | Вход выбора подчиненного (выбор микросхемы) |
Режим SPI | 0 | 1 | 2 | 3 |
CPOL | 0 | 1 | 0 | 1 |
CPHA | 0 | 0 | 1 | 1 |
Временная диаграмма первого цикла синхронизации |
SPI - довольно распространенный интерфейс для обмена данными с другими микросхемами, обмен данными осуществляться последовательно. Этот интерфейс так же как и I2C, являются наиболее распространенными интерфейсами обмена данными между микросхемами. Интерфейс SPI придумала компания Motorola, по сей день этот интерфейс существует и им пользуются многие производители электроники. Сокращение SPI представляет собой аббревиатуру от "Serial Peripheral Bus" что означает шина для подключения внешних периферийных устройств. Работает она схеме "подчиненный-ведущий". В роли ведущего выступает микроконтроллер, также может быть программируемая логика, какая нибудь специализированная ИС или DSP контроллер. В качестве подчиненных могу выступать:
Главными составными блоками последовательного интерфейса SPI являются сдвиговой регистр, сигнал синхронизации, сигнал ввода/вывода. SPI можно также назвать протоколом обмена данными от одного сдвигового регистра к другому, каждый их этих сдвиговых регистров одновременно играют роль как передатчике так и приемника. Но для того чтобы этот интерфейс правильно работал нужен сигнал синхронизации шины. Функцию генерации тактового сигнала или сигнала синхронизации берет на себя ведущее устройство и от него полностью зависит работа подчерненных устройств.
По интерфейсу SPI существует 3 основных способа подключения, в каждом таком способе используются 4 сигнала. Самый простой способ подключения включает всего две микросхемы. В этом случае ведущее устройство осуществляет передачу данных по линии MOSI, передачи осуществляется синхронно вместе с сигналом SCLK который также генерируется ведущим устройством. На другой стороне подчиненное устройство осуществляет прием данных, прием осуществляется по определенным фронтам сигнала синхронизации. Одновременно с этими операциями передаются данных ведомого устройства (направления потока информации показаны на рисунке стрелками). Если обратная связь не предусматривается устройством, т.е. если в ответных данных от ведомого устройства нет необходимости до линию MISO можно исключить. Передачу данных в одну осуществляется на таких микросхемах как цифровые потенциометры, драйверы и программируемые усилители. Для них требуется 3 или 4 линии связи.
Для того чтобы подчиненное устройство начало не только принимать но и передавать данные, необходимо не только наличие сигнала синхронизации но и чтобы линия SS имела низкое состояние. Если линия будет иметь другой уровень то передачи данных ведомым устройством будет не возможна. Для корректной работы подчиненного устройства необходимо чтобы линия SS соединяла ведущее устройство и ведомое.
В случае подключения нескольких устройств к одной шине SPI, можно использовать независимое подключение или параллельное, а можно каскадное или последовательное. Независимое (параллельное) подключение используется чаще. В этой схеме все линии соединены параллельно, за исключением линии выбора устройства. Используя эту линию ведущее устройство выбирает ту или иную микросхему с которой он будет обмениваться теми или иными данными. Но у этого соединение есть один недостаток в виде увеличения количество линий. Количество линий будет равно 3+n, где n - количество подключенных подчиненных устройств.
Если у вас много подчиненных устройств. Для того чтобы уменьшить количество линий нужно использовать каскадное соединение. В этом случае все подсоединенные устройства образуют одни сдвиговый регистр. В этом случае выход одной микросхемы подсоединяют ко входу другой. Все выходы выбора микросхемы SS соединяются в одну линию. Используя такую схему подключения подчиненных устройств равно 4-м. Только такое соединение устройств возможно только в том случае если все подключенные устройства поддерживают такое соединение. Узнать поддерживает устройство такой режим работы или нет можно узнать в документации на микросхему, такое соединение называется 'daisy-chaining'
Принцип работы протокола SPI схож с принципом работы сдвигового регистра, который основан на операциях сдвига, и как следствие ввода вывода данных по определенным фронтам которые поступат по линии сигнала синхронизации. Установка принимаемых данных при отсылке и выборка при приеме всегда осуществляется по противоположным фронтам сигнала синхронизации. Это нужно для гаранта выборки данных после их надежного установления. Первый фронт в цикле при передачи может быть нарастающий или спадающий сигнал, то возможны четыре случая работы интерфейса SPI. Все эти варианты носят название режимы работы интерфейса SPI и описываются двумя разными параметрами:
CPOL - начальный уровень сигнала линии сигнализации, если CPOL=0 то от начала и до конца цикла передачи линия синхронизации имеет низкий уровень, т.е. нарастающий первый фронт и падающий последний. Если CPOL=1 то наоборот первый фронт падающий а последний нарастающий.
CPHA - фаза линии синхронизации, от значения этого параметра зависит последовательность выполнения и выборки данных (если CPHA имеет низкое значение то по переднему фронту будет производится выборка данных, а далее по заднему будет установка данных. Если значение CPHA будет иметь высокий уровень то установка данных будет осуществятся по переднему фронту в цикле синхронизации, а выборка наоборот по заднему.
Подчиненная и ведущая микросхемы, работающие в разных режимах SPI будут несовместимы, поэтому перед использованием подчиненных микросхем важно знать какие режимы работы могут поддерживаться ведущим шины. Если в микросхеме SPI осуществляется аппаратно то они могут поддерживать любой режим SPI и к ним можно подключать практически любые подчиненные SPI микросхем (только независимый вариант подключения). Любой режим SPI можно реализовывать программно.
Не меньшей популярность также как и SPI пользуется протокол I2C. Для сравнения ниже представлена таблица преимуществ этих протоколов.
Преимущества SPI интерфейса
Простота протокола передачи и как следствие высокая надежность и быстродействие. Скорость передачи данных измеряется десятками мегагерц, поэтому такой протокол отлично подходит для тех схем где требуется передачи значительных объемов данных к примеру высокоскоростные ЦАП и АЦП, микросхемы памяти, драйвера светодиодных дисплеев. Все линии в шине одно направлены, что упрощает задачу преобразование уровней а также гальваническую изоляцию микросхем. Протокол SPI можно реализовать программно.
Преимущества I2C
Главным преимуществом шины I2C является тот факт что она двухпроводная, число проводов не зависит от количества подключенных к ней микросхем. Существует возможность работы с несколькими ведущими микросхемам, такой режим работы называется мультимастерный. Основным на мой взгляд преимуществом является стандартизация протокола I2C, т.е. отсутствует проблема несовместимости компонентов.
Microwire
Данный протокол передачи данных от компании National Semiconductor идентичен в режиме 0 протоколу SPI (CPOL=0, CPHA=0)
Протокол от компании Maxim
Особенностью этого интерфейса заключается в том, что полудуплексная передача осуществляется по одной двунаправленной линии DQ
Протокол QSPI
Является высокоуровневым протоколом, в отличии от SPI позволяет осуществлять автоматическую передачу без использования ЦПУ.
Ведущий шины | Подчиненный шины | ||||
Основное обозначение | Альтернативное обозначение | Описание | Основное обозначение | Альтернативное обозначение | Описание |
MOSI | DO, SDO, DOUT | Выход последовательной передачи данных | MOSI | DI, SDI, DIN | Вход последовательного приема данных |
MISO | DI, SDI, DIN | Вход последовательного приема данных | MISO | DO, SDO, DOUT | Выход последовательной передачи данных |
SCLK | DCLOCK, CLK, SCK | Выход синхронизации передачи данных | SCLK | DCLOCK, CLK, SCK | Вход синхронизации приема данных |
SS | CS | Выход выбора подчиненного (выбор микросхемы) | SS | CS | Вход выбора подчиненного (выбор микросхемы) |
Режим SPI | 0 | 1 | 2 | 3 |
CPOL | 0 | 1 | 0 | 1 |
CPHA | 0 | 0 | 1 | 1 |
Временная диаграмма первого цикла синхронизации |
Используемая в схеме лампа 12UA7 ее также обозначают ECC82 представляет собой триод да не просто триод а двойной, она широко известна в Европе. Особенностью лампы является низкое рабочее напряжение. Такие усилительные лампы применяются в винтажных усилителей звуковой частоты. Также она широко использовалась в вольтметрах и срок ее службы достигал несколько десятилетий. Лампа имеет коэффициент по усилению порядка 17, у похожей лампы 12АХ7 усиление составляет 100. В ламповом усилителе для наушников NP-100v12 лампа 12AU7 работает по схеме с общим катодом, при такой схема входной сигнал усиливается примерно на 10 дБ. Для питания ламп необходимо напряжение свыше 120 В. При отсутствии такового можно использовать напряжение ниже указанного, лампа при этом может выдавать довольно не плохое звучание.
Лампы от разных производителей 12AU7 (ECC82)
Рабочая точка находится возле ветки линии - 6 В. При это ток анода будет колебаться в от линии 0 В до линии -12 В. Особенностью схемы является отсутствие какого либо напряжения смещения.
Лампа имеет 9 выводов, по 3 вывода от каждого триода, нить накала и средняя точка нити накала.
Особенность лампы является ее компактное исполнение с двумя триодами. Возможность установки напряжения нити накала от 12,6 и 6,3 В как постоянного тока так и переменного. Питание постоянным током предпочтительнее так как в этом случае уменьшаются шумы во время работы усилителя. В идеальном случае хороший звук получается при питании от аккумулятора постоянного тока. Так как в таких источниках постоянного тока напрочь отсутствую какие либо пульсации. Но аккумуляторы быстро разряжаются при токе потребления в 400 мА и их хватает ориентировочно на 2 часа работы.
Для питания можно использовать блок питания с хорошим стабилизированным напряжением, к примеру хорошими параметрами обладает блок питания для принтера Canon K30120 с напряжением в 13 В и силой тока 1800 мА. Он имеет хорошую фильтрацию и напряжение на выходе стабилизировано. Такой блок питания можно легко найти в интернет магазинах.
Представленная схема лампового усилителя для наушников состоит из входной лампы MOSFET транзистора и источника тока на LM317. Вместо указанного полевого можно установить биполярный транзистор. Использование полевого предпочтительнее так как он стабильнее работает при колебании температуры. Важно знать что МОП транзисторы могут выйти из строя из за статического электричества.
Входной сигнал который нам необходимо усилить поступает на вход лампы точнее на ее сетку через разделительный конденсатор. Усиленный сигнал с лампы идет на затвор транзистора, далее через конденсатор C3 идет на наушники.
Ток который идет через транзистор равен приблизительно 0,125 А. При помощи LM317 можно поменять значение силы тока, сделать это можно при помощи резистора R4. Во время работы транзистор и LM317 нагреваются. Выделяемая тепловая мощность транзистора составляет порядка 1,6 Вт, а LM317 2 Вт. Для лучшей теплоотдачи на них можно установить охлаждающие радиаторы. Для транзистора важно использовать слюдяные прокладки и изолирующие шайбы. Усилитель на лампе для наушников тестировался в течении 24 часа, внутренний объем корпуса составил 150 см. в кубе.
На схеме представлен всего лишь одни канал, второй канал собирается точно также.
Особых глубоких познаний в сборке ламповых усилителей вам не потребуется. Достаточно иметь хороший паяльник и тестер под рукой. Все используемые в схеме детали легко достать в любом радиомагазине. Можно использовать качественные радиодетали других фирм, к примеру Nichicon FG, Elna или KZ у них можно приобрести электролитические конденсаторы.
Во время тестирования и настройки усилителя желательно подключать обычные наушники которые не жалко если сгорят в случае неправильной настройки или сборки схемы.
Радиодетали усилителя
Вместо переменного сопротивления Р1 можно использовать R3, номинал которого должен быть таким чтобы напряжение питания на аноде составляло ровно половину.
Вместо указанного на схеме можно использовать IRF610, IRF612 или IRF611,а такие транзисторы как IRF530 и IRF540 желательно не использовать. Конденсатор C1 является не полярным электролитическим ил и пленочным емкость на 2,2 мкФ. Многие меломаны утверждают что пленочный конденсатор обеспечивают лучшее звучание.
На транзистор и LM317 радиаторы можно установить небольшие охлаждающие радиаторы.
Плата сделана по технологии ЛУТ. По это запросу в интернете полно информации. На плату устанавливается 1 лампа и 2 канала усилителя. Схему можно также собрать и на макетной плате. Травление печатной платы осуществляется раствором соляной кислоты или хлорным железом и перекисью водорода - у кого какие предпочтения. Смесь соляной кислоты и перекиси водорода дешевле чем хлорное железо.
Печатная плата была начерчена в программе CADSOFT Eagle размер печатной платы составляет 50 на 100 мм.
Лампа устанавливается в специальное гнездо
]]>
Используемая в схеме лампа 12UA7 ее также обозначают ECC82 представляет собой триод да не просто триод а двойной, она широко известна в Европе. Особенностью лампы является низкое рабочее напряжение. Такие усилительные лампы применяются в винтажных усилителей звуковой частоты. Также она широко использовалась в вольтметрах и срок ее службы достигал несколько десятилетий. Лампа имеет коэффициент по усилению порядка 17, у похожей лампы 12АХ7 усиление составляет 100. В ламповом усилителе для наушников NP-100v12 лампа 12AU7 работает по схеме с общим катодом, при такой схема входной сигнал усиливается примерно на 10 дБ. Для питания ламп необходимо напряжение свыше 120 В. При отсутствии такового можно использовать напряжение ниже указанного, лампа при этом может выдавать довольно не плохое звучание.
Лампы от разных производителей 12AU7 (ECC82)
Рабочая точка находится возле ветки линии - 6 В. При это ток анода будет колебаться в от линии 0 В до линии -12 В. Особенностью схемы является отсутствие какого либо напряжения смещения.
Лампа имеет 9 выводов, по 3 вывода от каждого триода, нить накала и средняя точка нити накала.
Особенность лампы является ее компактное исполнение с двумя триодами. Возможность установки напряжения нити накала от 12,6 и 6,3 В как постоянного тока так и переменного. Питание постоянным током предпочтительнее так как в этом случае уменьшаются шумы во время работы усилителя. В идеальном случае хороший звук получается при питании от аккумулятора постоянного тока. Так как в таких источниках постоянного тока напрочь отсутствую какие либо пульсации. Но аккумуляторы быстро разряжаются при токе потребления в 400 мА и их хватает ориентировочно на 2 часа работы.
Для питания можно использовать блок питания с хорошим стабилизированным напряжением, к примеру хорошими параметрами обладает блок питания для принтера Canon K30120 с напряжением в 13 В и силой тока 1800 мА. Он имеет хорошую фильтрацию и напряжение на выходе стабилизировано. Такой блок питания можно легко найти в интернет магазинах.
Представленная схема лампового усилителя для наушников состоит из входной лампы MOSFET транзистора и источника тока на LM317. Вместо указанного полевого можно установить биполярный транзистор. Использование полевого предпочтительнее так как он стабильнее работает при колебании температуры. Важно знать что МОП транзисторы могут выйти из строя из за статического электричества.
Входной сигнал который нам необходимо усилить поступает на вход лампы точнее на ее сетку через разделительный конденсатор. Усиленный сигнал с лампы идет на затвор транзистора, далее через конденсатор C3 идет на наушники.
Ток который идет через транзистор равен приблизительно 0,125 А. При помощи LM317 можно поменять значение силы тока, сделать это можно при помощи резистора R4. Во время работы транзистор и LM317 нагреваются. Выделяемая тепловая мощность транзистора составляет порядка 1,6 Вт, а LM317 2 Вт. Для лучшей теплоотдачи на них можно установить охлаждающие радиаторы. Для транзистора важно использовать слюдяные прокладки и изолирующие шайбы. Усилитель на лампе для наушников тестировался в течении 24 часа, внутренний объем корпуса составил 150 см. в кубе.
На схеме представлен всего лишь одни канал, второй канал собирается точно также.
Особых глубоких познаний в сборке ламповых усилителей вам не потребуется. Достаточно иметь хороший паяльник и тестер под рукой. Все используемые в схеме детали легко достать в любом радиомагазине. Можно использовать качественные радиодетали других фирм, к примеру Nichicon FG, Elna или KZ у них можно приобрести электролитические конденсаторы.
Во время тестирования и настройки усилителя желательно подключать обычные наушники которые не жалко если сгорят в случае неправильной настройки или сборки схемы.
Радиодетали усилителя
Вместо переменного сопротивления Р1 можно использовать R3, номинал которого должен быть таким чтобы напряжение питания на аноде составляло ровно половину.
Вместо указанного на схеме можно использовать IRF610, IRF612 или IRF611,а такие транзисторы как IRF530 и IRF540 желательно не использовать. Конденсатор C1 является не полярным электролитическим ил и пленочным емкость на 2,2 мкФ. Многие меломаны утверждают что пленочный конденсатор обеспечивают лучшее звучание.
На транзистор и LM317 радиаторы можно установить небольшие охлаждающие радиаторы.
Плата сделана по технологии ЛУТ. По это запросу в интернете полно информации. На плату устанавливается 1 лампа и 2 канала усилителя. Схему можно также собрать и на макетной плате. Травление печатной платы осуществляется раствором соляной кислоты или хлорным железом и перекисью водорода - у кого какие предпочтения. Смесь соляной кислоты и перекиси водорода дешевле чем хлорное железо.
Печатная плата была начерчена в программе CADSOFT Eagle размер печатной платы составляет 50 на 100 мм.
Лампа устанавливается в специальное гнездо
]]>
Давайте рассмотрим ее принцип действия схемы бегущего огня на микросхеме. На 4-х логических элементах 2ИЛИ-НЕ собран генератор на выходе которого следуют прямоугольные импульсы с частотой от 3 до 10 Гц. Частоту следования импульсов можно регулировать при помощи подстроечного резистора R2. Частоту также можно поменять при помощи подбора емкости конденсатора С1. Полученные импульсы с микросхемы K561ЛЕ5 следуют на вход микросхемы K561ИЕ8.
В момент подачи напряжения на ток заряда конденсатора C2 создает на сопротивлении R3 падение напряжение, т.е. положительный импульс который далее при помощи элементов DD1.1 и DD1.3 преобразуется в 1 логическую единицу. Далее этот сигнал поступает на сброс счетчика reset и на 3-м выводе появляется сигнал и далее последовательно начинает появляться на других выводах. Как только цикл закончится и на 11-м выводе появится очередной сигнал. Происходит очередной сброс микросхемы DD2 и цикл начинается заново.
Обозначение | Тип | Номинал | Количество | Примечание |
---|---|---|---|---|
DD1 | Микросхема | К561ЛЕ5 | 1 | |
DD2 | Микросхема | К561ИЕ8 | 1 | |
VT1-VT9 | Биполярный транзистор |
КТ315Б
|
9 | |
C1 | Конденсатор | 0.15 мкФ | 1 | |
C2 | Электролитический конденсатор | 10 мкФ 16В | 1 | |
R1 | Резистор |
100 кОм
|
1 | |
R2 | Подстроечный резистор | 470 кОм | 1 | |
R3-R12 | Резистор |
1 кОм
|
10 | |
R13-R21 | Резистор |
620 Ом
|
9 |
Давайте рассмотрим ее принцип действия схемы бегущего огня на микросхеме. На 4-х логических элементах 2ИЛИ-НЕ собран генератор на выходе которого следуют прямоугольные импульсы с частотой от 3 до 10 Гц. Частоту следования импульсов можно регулировать при помощи подстроечного резистора R2. Частоту также можно поменять при помощи подбора емкости конденсатора С1. Полученные импульсы с микросхемы K561ЛЕ5 следуют на вход микросхемы K561ИЕ8.
В момент подачи напряжения на ток заряда конденсатора C2 создает на сопротивлении R3 падение напряжение, т.е. положительный импульс который далее при помощи элементов DD1.1 и DD1.3 преобразуется в 1 логическую единицу. Далее этот сигнал поступает на сброс счетчика reset и на 3-м выводе появляется сигнал и далее последовательно начинает появляться на других выводах. Как только цикл закончится и на 11-м выводе появится очередной сигнал. Происходит очередной сброс микросхемы DD2 и цикл начинается заново.
Обозначение | Тип | Номинал | Количество | Примечание |
---|---|---|---|---|
DD1 | Микросхема | К561ЛЕ5 | 1 | |
DD2 | Микросхема | К561ИЕ8 | 1 | |
VT1-VT9 | Биполярный транзистор |
КТ315Б
|
9 | |
C1 | Конденсатор | 0.15 мкФ | 1 | |
C2 | Электролитический конденсатор | 10 мкФ 16В | 1 | |
R1 | Резистор |
100 кОм
|
1 | |
R2 | Подстроечный резистор | 470 кОм | 1 | |
R3-R12 | Резистор |
1 кОм
|
10 | |
R13-R21 | Резистор |
620 Ом
|
9 |
Такие интерфейсы как COM, MIDI, LPT широко использовались в свое время, но сейчас они морально устарели и все реже и реже встречаются в современных компьютерах в основном в компьютерах для промышленного и узкоспециализированного оборудования. Для связи собранного устройства с компьютером можно использовать всевозможные переходники конвертеры и эмуляторы, но как показывает практика они порождают множество проблем.
Для того чтобы использовать подружить USB и AVR можно пойти 3-мя путями:
Использовать аппаратную поддрежку USB интерфейса, к примеру микроконтроллера AT90USB*. Для того чтобы его использовать нужно написать для него особую прошивку. И если вашу собраное устройство не стандартного класса USB то придется для компьютера писать драйвер, который объяснит ПК с каким устройством имеем дело.
Использовать конверторы USB в какой нибудь другой интерфейст (к примеру USB-UART на микросхеме FTDI FT232RL). В качествое других интерфейсов может выступать RS232, I2C или другие. При таком подходе нам не нужно замарачиваться и знать как работает интерфейс USB, также нужда в драйвере для компьютера тоже отпадает, так как драйвера для таких конверторов уже написаны производителем.
Можно сделать все хитрее взять микроконтроллер AVR и написать для него программу которая будет эмулировать работу USB. При таком подходе возникает трудность в реализации большой скорости передачи данных. Интерфейс USB работает на большой скорости которая может быть: LowSpeed - 1,5 Mbit/s, FullSpeed - 12 Mbit/s, HighSpeed - 480 Mbit/s, а у интерфейса USB 3.0 скорость может быть еще выше. Поэтому на микроконтроллерах AVR можно сделать устройство только со скоростью LowSpeed. Для большинства самодельных устройств такой скорости вполне достаточно.
Мы будем использовать способо программной эмуляции. В настоящее время уже есть три готовых проекта под микроконтроллеры AVR для эмуляции интерфейса USB.
Igor Cesko первый кто сделал такой проект, он был написан на языке assembler.
После появился проект V-USB который написан на языке C с использованием ассемблерного кода Используя V-USB был сделан проект ИК приемника для компьютера.
USBtiny в свою очередь является произволным от ранней версии проекта V-USB. По возможности он уступает V-USB но зато гараздо проще теоретически и относительно легок в освоении.
Мы будем использовать проект V-USB
Он имеет следующие основные преимущества:
В своих USB экспериментах, прошивку для микроконтроллера писал на языке C в среде AVR-Studio 4 + WinAVR, программа для ПК была разработана при помощи среды Borland C++ Builder как самый простенький и хустрый вариант. Поэтому все следующие примеры будут такими же. От правильного выбора инструментов зависит количество головной боли на последующих шагах. По поводу того что лучше C или Assembler можно говорить много. Как по мне то нужно владеть всеми инструментами, каким-то в большей степени каким-то в меньшей и использовать тот или другой в зависимости от конкретной поставленной задачи.
Считаю важным сказать пару слов про идентификаторы VID и PID которые представляют 16-битные числа. Эти числа использует операционная система и определяет какой подгрузить драйвер. Стоимость Vendor-ID на usb.org составляет 2000$. По поводу легальности использования VID/PID можно прочитать на станчике эмбеддера BSVi. V-SUB предоставлят свободную пару VID/PID. У вас наверное возникнет вопрос "Как подключить сразу несколько устройст с однинаковыми значениями VID/PID". Подключить несколько устройств с одниковами значениями вы можете, ничего страшного в этом нет так как каждое устройство USB имеет также свой VENDOR_NAME и DEVICE_NAME идентификаторы.
Давайте попробуем собрать свое первое USB HID устройство на микроконтроллере Atmega8 и научим его общаться с компьютером при помощи интерфейса USB. Может возникнуть вопрос "почему именно HID устройство". Ответ самый простой- потому что мы не хотим замарачиваться,выносить себе мозг и писать всякие там драйвера под Windows. А когда мы подключаетм HID устройство то операционная система сама выбирает и включает необходимый драйвер. Наша программа под компьютер не будет нуждаться в установки и настройки чего либо она сразу будет использовать готовый алгоритм для работы с HID устройством.
Для работы нам понадобятся следующие программы:
Микроконтроллер ATmega8 подключается по классической 5-ти вольтовой схеме питания. Другие схемы можно посмотреть в архиве V-USB в каталоге cirtuits. В интерфейсе USB на линиях D+ и D- уровень сигнала составляет 3,3 В, а вся наша схема работает от напряжения в 5 В. Поэтому нужно согласовать уровни USB с нашей схемой, для этого устанавливаются стабилитроны D1 и D2, которые снижают сигнал с микроконтроллера на гасящих резисторах R3 и R4 до требуемого уровня в 3,3 В необходимого стандарту. Для определения версии протокола используется делитель напряжения на резисторах R1 и R2 который создает на линии D- уровень в 3,4 В в режиме холостого хода. Если использовать другой номинал резистора 1,5 кОм вместо указанного R1 2,2 кОм, или если не установить резистор R2 вовсе то вместо 3,4 В получится 3,7 В что приведет к открыванию стабилитрона D1 который уменьшит его до напряжения открывания 3,4 В - 3,5 В. В итоге у нас получится перекос по току на холостом ходу (стабилитрон D2 получится не нагружен совсем, а по D1 уже будет течь ток) и это будет отражаться на длинных проводах USB. Значения сопротивлений R3 и R4 опреляются по току, в данной USB AVR схеме они равны значению в 68 Ом.
Ассесмблерная часть V-USB написана с поддержкой следующего ряда частот: 12 МГц, 12,8 МГц,15 МГц,16 МГц,16.5 МГц, 18 МГц, 20 МГц. Другие частоты не поддерживаются. Данная частота вручную нигде не прописывается, она определяется в конфигурации проект AVR Studio. Proget>Configuration Options>General(вкладка)> Frequency (поле). Частота указывается в Герцах, если не правильно выставить частоту то при компиляции всплывет куча предупреждений и программа так и не будет скомпелированна. В студии сществует переменная F_CPU которую использует компилятор и она доступна всему проекту, V-USB также использует его. Для правильной работы кварца необходимо правильно выставить FUSE биты микроконтроллера.
12 Мгц - частоиспользуемая частота для V-USB, она является минимальной частотой при которой возможна эмуляция всех необходимых таймингов спецификации USB;
15 МГц - близка к 12 МГц, местами выставлены NOP-ы. Использование такой частоты делает код несколько меньше, это связано с тем что большая частота позволяет чаше использовать циклы;
16 МГц - эта частота была добавлена для пользователей Arduino и других плат которые имеют кварцевый резонатор на 16 МГц. Ассемблерная реализация данной частоты была написна с некоторыми тонкостями которые применяют циклы замедления. Это происходит потому что 16 МГц не возможно разделить нацело на USB low speed bit clock;
12.8 МГц и 16,5 МГц - данные частоты предназначены для тактирования от внутреннего RC генератора, точность составляет 1%.
18 МГц - такая частота наиболее близка к стандартам USB. Использование такой частоты позволяет производить проверку входящих пакетов CRC прямо на лету. Если пакеты имеют не верную контрольную сумму то они отклоняются.ТАкже существует опция проверки данных на целостность на уровне программы.
20 МГц - для тех кто любит большие скоростя. Так как 20 МГц не делится нацело на USB speed bit clock 1,5 Мгц. То применяются циклы замедления как и при частоте 16 МГц.
Создаем проект AVR GCC, назовем его например Hid_example_firmware. И начнем писать нашу прошивку.
Далее нам необходимо скопировать все файлы с ранее скаченного архиваvusb.tar.gz в каталог проекта. Далее добавляем в проект следующие файлы:
Для того чтобы добавить файла нужно выбрать в контекстном меню "Add existing Source File(s)"
Далее нам необходимо корректно настроить файл usbconfig.h и также его поместить в папку с проектом. Inline комментарии usbconfig.h была переведена на русский язык. Код приведен ниже.
Теперь правильно настроим usbconfig.h и также поместим в каталог с проектом (ссылка рабочего проекта-примера в конце статьи). Inline документацию usbconfig.h я перевел на русский (использовал перевод от microsin.ru + дополнял сам). Там очень много опций, в статье опишу самые необходимые для быстрого старта (подробности смотрим внутри файла).
#define USB_CFG_IOPORTNAME D /* Указан порт, к которому подключена шина USB. Если Вы сконфигурируете "B", * будут использоваться регистры PORTB, PINB и DDRB. */ #define USB_CFG_DMINUS_BIT 4 /* Это номер бита в USB_CFG_IOPORT, куда подключен сигнал D-, может * использоваться любой бит в порте. */ #define USB_CFG_DPLUS_BIT 2 /* Это номер бита в USB_CFG_IOPORTNAME, куда подключен сигнал D+, может * использоваться любой бит в порте. Пожалуйста, примите во внимание, что D+ * должен быть также подсоединен к ножке прерывания INT0! [Вы можете также * использовать другие прерывания, см. секцию "Optional MCU Description" далее, * или Вы можете подсоединить D- к прерыванию, как это необходимо если Вы * используете опцию USB_COUNT_SOF. Если Вы используете D- для прерывания, * оно будет срабатывать также от маркеров Start-Of-Frame каждую * милисекунду.] */ #define USB_CFG_VENDOR_NAME 'w', 'e', '.', 'e', 'a', 's', 'y', 'e', 'l', 'e', 'c', 't', 'r', 'o', 'n', 'i', 'c', 's', '.', 'r', 'u' #define USB_CFG_VENDOR_NAME_LEN 21 /* Здесь указывают имя вендора (vendor name), возвращаемое устройством. * Имя должно предоставляться как список символов в одиночных * кавычках, а USB_CFG_VENDOR_NAME_LEN задает их количество. Символы * интерпретируются как Unicode (UTF-16). Если Вам не нужно имя вендора, * закомментируйте этот макрос. ВСЕГДА указывайте имя вендора, содержащее Ваше * доменное имя Internet, если Вы используете свободно распространяемую пару * obdev VID/PID. За деталями обращайтесь к файлу USB-IDs-for-free.txt. */ #define USB_CFG_DEVICE_NAME 'H', 'i', 'd', ' ', 'e', 'x', 'a', 'm', 'p', 'l', 'e' #define USB_CFG_DEVICE_NAME_LEN 11 /* Здесь указывается имя устройства (device name) таким же способом, как и в * предыдущем параметре указывается имя вендора. Если Вам не нужно имя * устройства, закомментируйте этот макрос. См. файл USB-IDs-for-free.txt * перед назначением имени, если Вы используете свободно распространяемую * пару obdev VID/PID. */ #define USB_CFG_INTERFACE_CLASS 3 /* Установленное значение 3 означает что наше устройство будет * принадлежать класу HID. */
Перед тем как начать писать программу для МК, необходимо разобраться с базовыми принципами работы. HID устройство обменивается с хотом данными, данные поступают блоками фиксированного размера - или репортами. Их структура описана в дискрипторе HID, это дискриптор предоставляет хосту при подключении. Инизиализацию приема и передачу данных осуществляет хост прогамма на компьютере. В случае если хост хочет послать данные устройству то он сначала посылает команду HID_SET_REPORT, при этом V-USB вызывает функцию usbFunctionRead().
Линия данных D+ подключается к прерыванию INT0 так как это прерывание с наивысшим приоритетом. В процессе обмена данных по USB, микроконтроллер постоянно уходит на обработку INT0, на котором как раз и подключен V-USB. И только после этого управление будет передано основной программе. Если вам в вашем устройстве нужно еще и обрабатывать свои прерывания, то нужно выставить глобальный флаг прерывания используя команду sei(), для того чтобы смогло сработать INT0 с целью правильной работы V-USB.
Такая функция как usbPoll() сообщает хосту что подключенное устройство еще находится в живом состоянии и готово к работе, эту функцию нужно вызвать не реже чем 50 ms. Если не выполнять это условие то операционная система Windows напишет следующее " Подключено неизвестное устройство"
Интервал в 50ms - это USB timeout for accepting a Setup message- представляет собой специальную команду хоста в нашем примере HID_SET_REPORT и HID_GET_REPORT.
Функция usbFunctionSetup() занимается setup сообщениями, здесь происходит обработка управляющих команд USB, далее происходит запуск функции usbFunctionRead() или функции usbFunctionWrite().
Объясняя более понятными словами то это константы собранные в массив и зашитые в Flash память устройства, которые необходимы и описывают структуру пакетов данных (HID репортов). В нем содержится инфорамация о количестве пакетов которое поддерживает устройство. Каждый бит и каждый байт в пакете имеет свое назначение. После того как устройство подключается к компьютеру, дескриптор сообщает все свои параметры, в свое очередь операционная система компьютера поймет как следует общаться с таким устройством, к примеру будет знать какие биты ответсвенны за нажатие тех или иных кнопок джостика.
У нас будет "HID совместимое устройство" которое будет передавать разные данные определенного размера (это не мышь и не дждостик). В нашем примере дескриптор предаставляет собой некоторого рода набор произвольных чисел с комментариями. Полезная информация про дескрипторуUSnooBie's USB HID Report Descriptor TutorialиHID Related Specifications.
Меняя дескриптор можно представиться конкретным HID устройством, к примеру клавиатурой или чем либо еще. Интересные примеры на эту тему:Маленькая USB пакостьиThe Haunted USB Cable!. Много интресных примеров находится на сайте V-USB.
С целью передачи данных сделаем структуру, ее использование сделает код удобнее и гибче к переделкам чем простое использование массива. Если нужен массив то в его можно добавить и использовать внутри структуры. В нашем дескрипторе есть один вид репорта который имеет размер 8 бит - REPORT_SIZE, его количество равно размеру передаваемой структуры - REPORT_COUNT. Получается что данные передаются порциями по 8 бит. По умолчанию V-USB поддерживает передачу и прием размером по 254 байта. Если нам нужен размер по больше тогла нам нужено в файле usbconfig.h выставитьUSB_CFG_LONG_TRANSFERS в значение 1, только в этом случае увеличится размер самого драйвера.
Обработку входящих и передаваемых данных внутри микроконтроллера берут на себя две функции:
Для простоты структура данных заполняется внтури этих функций, но так делать не обязательно, заполнить их можно в других участках кода, в этом случае их необходимо объявить как volatile.
Такой парамет как *data представляет собой указатель на буфер V-USB где происхоид чтение и запись данных которые имеют размер len. Такой буффер данных имеет максимальный размер в 1 байт типа uchar и данное значение равняется размеру нашего репорта. А размер нашей структуры имее рамер больше чем 1 байт, именно по этой причине процесс передачи данных происходит по частям. Для этого существуют переменные currentAddress и bytesRemaining в которых хранится информация про текущую передачу.
Запись вида uchar *buffer = (uchar*)&pdata означает:
Получается что мы объявили указатель с именем uchar *buffer на определенное место в памяти где находится(хранится) наша структура. Передача осуществляется кусками uchar.
#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/pgmspace.h> /* нужно для usbdrv.h */ #include "usbdrv.h" struct dataexchange_t // Описание структуры для передачи данных { uchar b1; // Я решил для примера написать структуру на 3 байта. uchar b2; // На каждый байт подцепим ногу из PORTB. Конечно это uchar b3; // не рационально (всего то 3 бита нужно). }; // Но в целях демонстрации в самый раз. // Для наглядности прикрутить по светодиоду и созерцать :) struct dataexchange_t pdata ={0,0,0}; PROGMEM char usbHidReportDescriptor[22]={// USB report descriptor // Дескриптор описывает структуру пакета данных для обмена 0x06,0x00,0xff, // USAGE_PAGE (Generic Desktop) 0x09,0x01, // USAGE (Vendor Usage 1) 0xa1,0x01, // COLLECTION (Application) 0x15,0x00, // LOGICAL_MINIMUM (0) // min. значение для данных 0x26,0xff,0x00, // LOGICAL_MAXIMUM (255) // max. значение для данных, 255 тут не случайно, а чтобы уложиться в 1 байт 0x75,0x08, // REPORT_SIZE (8) // информация передается порциями, это размер одного "репорта" 8 бит 0x95,sizeof(struct dataexchange_t), // REPORT_COUNT // количество порций (у нашем примере = 3, описанная выше структура передастся за три репорта) 0x09,0x00, // USAGE (Undefined) 0xb2,0x02,0x01, // FEATURE (Data,Var,Abs,Buf) 0xc0 // END_COLLECTION }; /* Здесь мы описали только один report, из-за чего не нужно использовать report-ID (он должен быть первым байтом). * С его помощью передадим 3 байта данных (размер одного REPORT_SIZE = 8 бит = 1 байт, их количество REPORT_COUNT = 3). */ /* Эти переменные хранят статус текущей передачи */ static uchar currentAddress; static uchar bytesRemaining; /* usbFunctionRead() вызывается когда хост запрашивает порцию данных от устройства * Для дополнительной информации см. документацию в usbdrv.h */ uchar usbFunctionRead(uchar *data, uchar len) { if(len > bytesRemaining) len = bytesRemaining; uchar *buffer =(uchar*)&pdata; if(!currentAddress) // Ни один кусок данных еще не прочитан. { // Заполним структуру для передачи if( PINB & _BV(1)) pdata.b1 =1; else pdata.b1 =0; if( PINB & _BV(2)) pdata.b2 =1; else pdata.b2 =0; if( PINB & _BV(3)) pdata.b3 =1; else pdata.b3 =0; } uchar j; for(j=0; j<len; j++) data[j]= buffer[j+currentAddress]; currentAddress += len; bytesRemaining -= len; return len; } /* usbFunctionWrite() вызывается когда хост отправляет порцию данных к устройству * Для дополнительной информации см. документацию в usbdrv.h */ uchar usbFunctionWrite(uchar *data, uchar len) { if(bytesRemaining ==0) return1; /* конец передачи */ if(len > bytesRemaining) len = bytesRemaining; uchar *buffer =(uchar*)&pdata; uchar j; for(j=0; j<len; j++) buffer[j+currentAddress]= data[j]; currentAddress += len; bytesRemaining -= len; if(bytesRemaining ==0) // Все данные получены { // Выставим значения на PORTB if( pdata.b1 ) PORTB |= _BV(1); else PORTB &=~_BV(1); if( pdata.b2 ) PORTB |= _BV(2); else PORTB &=~_BV(2); if( pdata.b3 ) PORTB |= _BV(3); else PORTB &=~_BV(3); } return bytesRemaining ==0;/* 0 означает, что есть еще данные */ } /* ------------------------------------------------------------------------- */ usbMsgLen_t usbFunctionSetup(uchar data[8]) { usbRequest_t *rq =(void*)data; if((rq->bmRequestType & USBRQ_TYPE_MASK)== USBRQ_TYPE_CLASS){ /* HID устройство */ if(rq->bRequest == USBRQ_HID_GET_REPORT){ /* wValue: ReportType (highbyte), ReportID (lowbyte) */ // у нас только одна разновидность репорта, можем игнорировать report-ID bytesRemaining =sizeof(struct dataexchange_t); currentAddress =0; return USB_NO_MSG; // используем usbFunctionRead() для отправки данных хосту }elseif(rq->bRequest == USBRQ_HID_SET_REPORT){ // у нас только одна разновидность репорта, можем игнорировать report-ID bytesRemaining =sizeof(struct dataexchange_t); currentAddress =0; return USB_NO_MSG; // используем usbFunctionWrite() для получения данных от хоста } }else{ /* остальные запросы мы просто игнорируем */ } return0; } /* ------------------------------------------------------------------------- */ int main(void) { DDRB =0b00001110; // PB1,PB2,PB3 - выход usbInit(); usbDeviceDisconnect(); // принудительно отключаемся от хоста, так делать можно только при выключенных прерываниях! uchar i =0; while(--i){ // пауза > 250 ms _delay_ms(1); } usbDeviceConnect(); // подключаемся sei(); // разрешаем прерывания for(;;){ // главный цикл программы usbPoll(); // эту функцию надо регулярно вызывать с главного цикла, максимальная задержка между вызовами - 50 ms } return0; }
Компилируем, заливаем прошивку в микроконтроллер, подключаем к USB порту компьютера и вуаля:
Далее нам необходимо откомпилировать программу и записать ее в микроконтроллер. Если все настроено и сделано правильно то после подключения микроконтроллера к USB, компьютер должен определить ваше устройстов как HID.
Программы писали в среде C++ Builder 6, интерфейс программы создавался в визуальном редакторе. В форму добавил 3 чекбокса и две кнопки.
После создания проекта нам необходимо скопировать туда специальную библиотеку для работы с устройствами HID из среды C++ Builder, называется она hidlibrary.h сделана как класс. Эта библиотека при помощи LoadLibrary-WINAPI функции, подгружает hid.dll, далее при помощи GetProcAddress - происходит вычисление адреса функции внутри hid.dll.
Предоставляется удобный и простой интерфейс для работы с HID. Полезая стать "общение с контроллером по USB". На настройку проекта и передачу данных ушло довольно много времени, пока не наткнулся на эту библиотеку.
#define uchar unsigned char
#include <vcl.h>
#pragma hdrstop
#include "main.h"
#include "hidlibrary.h" // Библиотека для работы с Hid устройствами
#include "../Hid_example_firmware/usbconfig.h" // Здесь пишем путь к usbconfig.h
char vendorName[] ={USB_CFG_VENDOR_NAME,0};// для того что бы знать как
char productName[]={USB_CFG_DEVICE_NAME,0};// называется наше устройство
struct dataexchange_t // Описание структуры для передачи данных
{
uchar b1; // Я решил для примера написать структуру на 3 байта.
uchar b2; // На каждый байт подцепим ногу из PORTB. Конечно это
uchar b3; // не рационально (всего то 3 бита нужно).
}; // Но в целях демонстрации в самый раз.
// Для наглядности прикрутить по светодиоду и созерцать :)
struct dataexchange_t pdata ={0,0,0};
HIDLibrary<dataexchange_t> hid;// создаем экземпляр класса с типом нашей структуры
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent*Owner)
:TForm(Owner)
{
}
//---------------------------------------------------------------------------
int connect() // этой функцией будем подключаться к устройству
{
int i, n, res=0;
string exampleDeviceName ="";
exampleDeviceName += vendorName;
exampleDeviceName +=" ";
exampleDeviceName += productName;
n = hid.EnumerateHIDDevices();// узнаем все Hid устройства vid_16c0&pid_05df
// vid и pid указаны в hidlibrary.h константой idstring
for(i=0; i<n; i++) // ищем среди них наше
{
hid.Connect(i);
// GetConnectedDeviceName() возвращает string,
// где через пробел указаны vendor и product Name.
// Сравниваем, если совпало - значить устройство наше
if( hid.GetConnectedDeviceName()== exampleDeviceName )
{
res =1;
break;
}
}
return res;
}
//---------------------------------------------------------------------------
// Кнопка "Принять данные"
void __fastcall TForm1::Button1Click(TObject*Sender)
{
if(1== connect())
{
hid.ReceiveData(&pdata); // Читаем данные с устройства
if(pdata.b1)
CheckBox1->Checked=true;
else
CheckBox1->Checked=false;
if(pdata.b2)
CheckBox2->Checked=true;
else
CheckBox2->Checked=false;
if(pdata.b3)
CheckBox3->Checked=true;
else
CheckBox3->Checked=false;
}
else
{
AnsiString s ="";
s += vendorName;
s +=" ";
s += productName;
s +=" не подключено.";
ShowMessage(s);
}
}
//---------------------------------------------------------------------------
// Кнопка "Отправить данные"
void __fastcall TForm1::Button2Click(TObject*Sender)
{
if(1== connect())
{
if(CheckBox1->Checked)
pdata.b1 =1;
else
pdata.b1 =0;
if(CheckBox2->Checked)
pdata.b2 =1;
else
pdata.b2 =0;
if(CheckBox3->Checked)
pdata.b3 =1;
else
pdata.b3 =0;
hid.SendData(&pdata); // Отправляем данные устройству
}
else
{
AnsiString s ="";
s += vendorName;
s +=" ";
s += productName;
s +=" не подключено.";
ShowMessage(s);
}
}
В коде ничего сложного нет, есть функция connect() она необходима для подключения устройства, также обработчики событий для отправки данных и для принятия данных. Используя эти кнопочки можно теперь мигать светодиодами, включать и выключать нагрузки. Данные передаются при помощи структуры dataexchange_t, для микроконтроллера описана точно такая же структура.
Для того чтобы написанная нами прогрмма работа и на других компбютерах где не установлена программа Borland C++, нам нужно перейти настройки проекта и там выключить использование динамических библиотек. Для этого нужно выполнить следующее: Project>Options. Во вкладках Linker и Packages снять галочки напротив "Use dynamic RTL" и "Build with runtime packages.
Оригинал статьи: AVR и USB
]]>Такие интерфейсы как COM, MIDI, LPT широко использовались в свое время, но сейчас они морально устарели и все реже и реже встречаются в современных компьютерах в основном в компьютерах для промышленного и узкоспециализированного оборудования. Для связи собранного устройства с компьютером можно использовать всевозможные переходники конвертеры и эмуляторы, но как показывает практика они порождают множество проблем.
Для того чтобы использовать подружить USB и AVR можно пойти 3-мя путями:
Использовать аппаратную поддрежку USB интерфейса, к примеру микроконтроллера AT90USB*. Для того чтобы его использовать нужно написать для него особую прошивку. И если вашу собраное устройство не стандартного класса USB то придется для компьютера писать драйвер, который объяснит ПК с каким устройством имеем дело.
Использовать конверторы USB в какой нибудь другой интерфейст (к примеру USB-UART на микросхеме FTDI FT232RL). В качествое других интерфейсов может выступать RS232, I2C или другие. При таком подходе нам не нужно замарачиваться и знать как работает интерфейс USB, также нужда в драйвере для компьютера тоже отпадает, так как драйвера для таких конверторов уже написаны производителем.
Можно сделать все хитрее взять микроконтроллер AVR и написать для него программу которая будет эмулировать работу USB. При таком подходе возникает трудность в реализации большой скорости передачи данных. Интерфейс USB работает на большой скорости которая может быть: LowSpeed - 1,5 Mbit/s, FullSpeed - 12 Mbit/s, HighSpeed - 480 Mbit/s, а у интерфейса USB 3.0 скорость может быть еще выше. Поэтому на микроконтроллерах AVR можно сделать устройство только со скоростью LowSpeed. Для большинства самодельных устройств такой скорости вполне достаточно.
Мы будем использовать способо программной эмуляции. В настоящее время уже есть три готовых проекта под микроконтроллеры AVR для эмуляции интерфейса USB.
Igor Cesko первый кто сделал такой проект, он был написан на языке assembler.
После появился проект V-USB который написан на языке C с использованием ассемблерного кода Используя V-USB был сделан проект ИК приемника для компьютера.
USBtiny в свою очередь является произволным от ранней версии проекта V-USB. По возможности он уступает V-USB но зато гараздо проще теоретически и относительно легок в освоении.
Мы будем использовать проект V-USB
Он имеет следующие основные преимущества:
В своих USB экспериментах, прошивку для микроконтроллера писал на языке C в среде AVR-Studio 4 + WinAVR, программа для ПК была разработана при помощи среды Borland C++ Builder как самый простенький и хустрый вариант. Поэтому все следующие примеры будут такими же. От правильного выбора инструментов зависит количество головной боли на последующих шагах. По поводу того что лучше C или Assembler можно говорить много. Как по мне то нужно владеть всеми инструментами, каким-то в большей степени каким-то в меньшей и использовать тот или другой в зависимости от конкретной поставленной задачи.
Считаю важным сказать пару слов про идентификаторы VID и PID которые представляют 16-битные числа. Эти числа использует операционная система и определяет какой подгрузить драйвер. Стоимость Vendor-ID на usb.org составляет 2000$. По поводу легальности использования VID/PID можно прочитать на станчике эмбеддера BSVi. V-SUB предоставлят свободную пару VID/PID. У вас наверное возникнет вопрос "Как подключить сразу несколько устройст с однинаковыми значениями VID/PID". Подключить несколько устройств с одниковами значениями вы можете, ничего страшного в этом нет так как каждое устройство USB имеет также свой VENDOR_NAME и DEVICE_NAME идентификаторы.
Давайте попробуем собрать свое первое USB HID устройство на микроконтроллере Atmega8 и научим его общаться с компьютером при помощи интерфейса USB. Может возникнуть вопрос "почему именно HID устройство". Ответ самый простой- потому что мы не хотим замарачиваться,выносить себе мозг и писать всякие там драйвера под Windows. А когда мы подключаетм HID устройство то операционная система сама выбирает и включает необходимый драйвер. Наша программа под компьютер не будет нуждаться в установки и настройки чего либо она сразу будет использовать готовый алгоритм для работы с HID устройством.
Для работы нам понадобятся следующие программы:
Микроконтроллер ATmega8 подключается по классической 5-ти вольтовой схеме питания. Другие схемы можно посмотреть в архиве V-USB в каталоге cirtuits. В интерфейсе USB на линиях D+ и D- уровень сигнала составляет 3,3 В, а вся наша схема работает от напряжения в 5 В. Поэтому нужно согласовать уровни USB с нашей схемой, для этого устанавливаются стабилитроны D1 и D2, которые снижают сигнал с микроконтроллера на гасящих резисторах R3 и R4 до требуемого уровня в 3,3 В необходимого стандарту. Для определения версии протокола используется делитель напряжения на резисторах R1 и R2 который создает на линии D- уровень в 3,4 В в режиме холостого хода. Если использовать другой номинал резистора 1,5 кОм вместо указанного R1 2,2 кОм, или если не установить резистор R2 вовсе то вместо 3,4 В получится 3,7 В что приведет к открыванию стабилитрона D1 который уменьшит его до напряжения открывания 3,4 В - 3,5 В. В итоге у нас получится перекос по току на холостом ходу (стабилитрон D2 получится не нагружен совсем, а по D1 уже будет течь ток) и это будет отражаться на длинных проводах USB. Значения сопротивлений R3 и R4 опреляются по току, в данной USB AVR схеме они равны значению в 68 Ом.
Ассесмблерная часть V-USB написана с поддержкой следующего ряда частот: 12 МГц, 12,8 МГц,15 МГц,16 МГц,16.5 МГц, 18 МГц, 20 МГц. Другие частоты не поддерживаются. Данная частота вручную нигде не прописывается, она определяется в конфигурации проект AVR Studio. Proget>Configuration Options>General(вкладка)> Frequency (поле). Частота указывается в Герцах, если не правильно выставить частоту то при компиляции всплывет куча предупреждений и программа так и не будет скомпелированна. В студии сществует переменная F_CPU которую использует компилятор и она доступна всему проекту, V-USB также использует его. Для правильной работы кварца необходимо правильно выставить FUSE биты микроконтроллера.
12 Мгц - частоиспользуемая частота для V-USB, она является минимальной частотой при которой возможна эмуляция всех необходимых таймингов спецификации USB;
15 МГц - близка к 12 МГц, местами выставлены NOP-ы. Использование такой частоты делает код несколько меньше, это связано с тем что большая частота позволяет чаше использовать циклы;
16 МГц - эта частота была добавлена для пользователей Arduino и других плат которые имеют кварцевый резонатор на 16 МГц. Ассемблерная реализация данной частоты была написна с некоторыми тонкостями которые применяют циклы замедления. Это происходит потому что 16 МГц не возможно разделить нацело на USB low speed bit clock;
12.8 МГц и 16,5 МГц - данные частоты предназначены для тактирования от внутреннего RC генератора, точность составляет 1%.
18 МГц - такая частота наиболее близка к стандартам USB. Использование такой частоты позволяет производить проверку входящих пакетов CRC прямо на лету. Если пакеты имеют не верную контрольную сумму то они отклоняются.ТАкже существует опция проверки данных на целостность на уровне программы.
20 МГц - для тех кто любит большие скоростя. Так как 20 МГц не делится нацело на USB speed bit clock 1,5 Мгц. То применяются циклы замедления как и при частоте 16 МГц.
Создаем проект AVR GCC, назовем его например Hid_example_firmware. И начнем писать нашу прошивку.
Далее нам необходимо скопировать все файлы с ранее скаченного архиваvusb.tar.gz в каталог проекта. Далее добавляем в проект следующие файлы:
Для того чтобы добавить файла нужно выбрать в контекстном меню "Add existing Source File(s)"
Далее нам необходимо корректно настроить файл usbconfig.h и также его поместить в папку с проектом. Inline комментарии usbconfig.h была переведена на русский язык. Код приведен ниже.
Теперь правильно настроим usbconfig.h и также поместим в каталог с проектом (ссылка рабочего проекта-примера в конце статьи). Inline документацию usbconfig.h я перевел на русский (использовал перевод от microsin.ru + дополнял сам). Там очень много опций, в статье опишу самые необходимые для быстрого старта (подробности смотрим внутри файла).
#define USB_CFG_IOPORTNAME D /* Указан порт, к которому подключена шина USB. Если Вы сконфигурируете "B", * будут использоваться регистры PORTB, PINB и DDRB. */ #define USB_CFG_DMINUS_BIT 4 /* Это номер бита в USB_CFG_IOPORT, куда подключен сигнал D-, может * использоваться любой бит в порте. */ #define USB_CFG_DPLUS_BIT 2 /* Это номер бита в USB_CFG_IOPORTNAME, куда подключен сигнал D+, может * использоваться любой бит в порте. Пожалуйста, примите во внимание, что D+ * должен быть также подсоединен к ножке прерывания INT0! [Вы можете также * использовать другие прерывания, см. секцию "Optional MCU Description" далее, * или Вы можете подсоединить D- к прерыванию, как это необходимо если Вы * используете опцию USB_COUNT_SOF. Если Вы используете D- для прерывания, * оно будет срабатывать также от маркеров Start-Of-Frame каждую * милисекунду.] */ #define USB_CFG_VENDOR_NAME 'w', 'e', '.', 'e', 'a', 's', 'y', 'e', 'l', 'e', 'c', 't', 'r', 'o', 'n', 'i', 'c', 's', '.', 'r', 'u' #define USB_CFG_VENDOR_NAME_LEN 21 /* Здесь указывают имя вендора (vendor name), возвращаемое устройством. * Имя должно предоставляться как список символов в одиночных * кавычках, а USB_CFG_VENDOR_NAME_LEN задает их количество. Символы * интерпретируются как Unicode (UTF-16). Если Вам не нужно имя вендора, * закомментируйте этот макрос. ВСЕГДА указывайте имя вендора, содержащее Ваше * доменное имя Internet, если Вы используете свободно распространяемую пару * obdev VID/PID. За деталями обращайтесь к файлу USB-IDs-for-free.txt. */ #define USB_CFG_DEVICE_NAME 'H', 'i', 'd', ' ', 'e', 'x', 'a', 'm', 'p', 'l', 'e' #define USB_CFG_DEVICE_NAME_LEN 11 /* Здесь указывается имя устройства (device name) таким же способом, как и в * предыдущем параметре указывается имя вендора. Если Вам не нужно имя * устройства, закомментируйте этот макрос. См. файл USB-IDs-for-free.txt * перед назначением имени, если Вы используете свободно распространяемую * пару obdev VID/PID. */ #define USB_CFG_INTERFACE_CLASS 3 /* Установленное значение 3 означает что наше устройство будет * принадлежать класу HID. */
Перед тем как начать писать программу для МК, необходимо разобраться с базовыми принципами работы. HID устройство обменивается с хотом данными, данные поступают блоками фиксированного размера - или репортами. Их структура описана в дискрипторе HID, это дискриптор предоставляет хосту при подключении. Инизиализацию приема и передачу данных осуществляет хост прогамма на компьютере. В случае если хост хочет послать данные устройству то он сначала посылает команду HID_SET_REPORT, при этом V-USB вызывает функцию usbFunctionRead().
Линия данных D+ подключается к прерыванию INT0 так как это прерывание с наивысшим приоритетом. В процессе обмена данных по USB, микроконтроллер постоянно уходит на обработку INT0, на котором как раз и подключен V-USB. И только после этого управление будет передано основной программе. Если вам в вашем устройстве нужно еще и обрабатывать свои прерывания, то нужно выставить глобальный флаг прерывания используя команду sei(), для того чтобы смогло сработать INT0 с целью правильной работы V-USB.
Такая функция как usbPoll() сообщает хосту что подключенное устройство еще находится в живом состоянии и готово к работе, эту функцию нужно вызвать не реже чем 50 ms. Если не выполнять это условие то операционная система Windows напишет следующее " Подключено неизвестное устройство"
Интервал в 50ms - это USB timeout for accepting a Setup message- представляет собой специальную команду хоста в нашем примере HID_SET_REPORT и HID_GET_REPORT.
Функция usbFunctionSetup() занимается setup сообщениями, здесь происходит обработка управляющих команд USB, далее происходит запуск функции usbFunctionRead() или функции usbFunctionWrite().
Объясняя более понятными словами то это константы собранные в массив и зашитые в Flash память устройства, которые необходимы и описывают структуру пакетов данных (HID репортов). В нем содержится инфорамация о количестве пакетов которое поддерживает устройство. Каждый бит и каждый байт в пакете имеет свое назначение. После того как устройство подключается к компьютеру, дескриптор сообщает все свои параметры, в свое очередь операционная система компьютера поймет как следует общаться с таким устройством, к примеру будет знать какие биты ответсвенны за нажатие тех или иных кнопок джостика.
У нас будет "HID совместимое устройство" которое будет передавать разные данные определенного размера (это не мышь и не дждостик). В нашем примере дескриптор предаставляет собой некоторого рода набор произвольных чисел с комментариями. Полезная информация про дескрипторуUSnooBie's USB HID Report Descriptor TutorialиHID Related Specifications.
Меняя дескриптор можно представиться конкретным HID устройством, к примеру клавиатурой или чем либо еще. Интересные примеры на эту тему:Маленькая USB пакостьиThe Haunted USB Cable!. Много интресных примеров находится на сайте V-USB.
С целью передачи данных сделаем структуру, ее использование сделает код удобнее и гибче к переделкам чем простое использование массива. Если нужен массив то в его можно добавить и использовать внутри структуры. В нашем дескрипторе есть один вид репорта который имеет размер 8 бит - REPORT_SIZE, его количество равно размеру передаваемой структуры - REPORT_COUNT. Получается что данные передаются порциями по 8 бит. По умолчанию V-USB поддерживает передачу и прием размером по 254 байта. Если нам нужен размер по больше тогла нам нужено в файле usbconfig.h выставитьUSB_CFG_LONG_TRANSFERS в значение 1, только в этом случае увеличится размер самого драйвера.
Обработку входящих и передаваемых данных внутри микроконтроллера берут на себя две функции:
Для простоты структура данных заполняется внтури этих функций, но так делать не обязательно, заполнить их можно в других участках кода, в этом случае их необходимо объявить как volatile.
Такой парамет как *data представляет собой указатель на буфер V-USB где происхоид чтение и запись данных которые имеют размер len. Такой буффер данных имеет максимальный размер в 1 байт типа uchar и данное значение равняется размеру нашего репорта. А размер нашей структуры имее рамер больше чем 1 байт, именно по этой причине процесс передачи данных происходит по частям. Для этого существуют переменные currentAddress и bytesRemaining в которых хранится информация про текущую передачу.
Запись вида uchar *buffer = (uchar*)&pdata означает:
Получается что мы объявили указатель с именем uchar *buffer на определенное место в памяти где находится(хранится) наша структура. Передача осуществляется кусками uchar.
#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/pgmspace.h> /* нужно для usbdrv.h */ #include "usbdrv.h" struct dataexchange_t // Описание структуры для передачи данных { uchar b1; // Я решил для примера написать структуру на 3 байта. uchar b2; // На каждый байт подцепим ногу из PORTB. Конечно это uchar b3; // не рационально (всего то 3 бита нужно). }; // Но в целях демонстрации в самый раз. // Для наглядности прикрутить по светодиоду и созерцать :) struct dataexchange_t pdata ={0,0,0}; PROGMEM char usbHidReportDescriptor[22]={// USB report descriptor // Дескриптор описывает структуру пакета данных для обмена 0x06,0x00,0xff, // USAGE_PAGE (Generic Desktop) 0x09,0x01, // USAGE (Vendor Usage 1) 0xa1,0x01, // COLLECTION (Application) 0x15,0x00, // LOGICAL_MINIMUM (0) // min. значение для данных 0x26,0xff,0x00, // LOGICAL_MAXIMUM (255) // max. значение для данных, 255 тут не случайно, а чтобы уложиться в 1 байт 0x75,0x08, // REPORT_SIZE (8) // информация передается порциями, это размер одного "репорта" 8 бит 0x95,sizeof(struct dataexchange_t), // REPORT_COUNT // количество порций (у нашем примере = 3, описанная выше структура передастся за три репорта) 0x09,0x00, // USAGE (Undefined) 0xb2,0x02,0x01, // FEATURE (Data,Var,Abs,Buf) 0xc0 // END_COLLECTION }; /* Здесь мы описали только один report, из-за чего не нужно использовать report-ID (он должен быть первым байтом). * С его помощью передадим 3 байта данных (размер одного REPORT_SIZE = 8 бит = 1 байт, их количество REPORT_COUNT = 3). */ /* Эти переменные хранят статус текущей передачи */ static uchar currentAddress; static uchar bytesRemaining; /* usbFunctionRead() вызывается когда хост запрашивает порцию данных от устройства * Для дополнительной информации см. документацию в usbdrv.h */ uchar usbFunctionRead(uchar *data, uchar len) { if(len > bytesRemaining) len = bytesRemaining; uchar *buffer =(uchar*)&pdata; if(!currentAddress) // Ни один кусок данных еще не прочитан. { // Заполним структуру для передачи if( PINB & _BV(1)) pdata.b1 =1; else pdata.b1 =0; if( PINB & _BV(2)) pdata.b2 =1; else pdata.b2 =0; if( PINB & _BV(3)) pdata.b3 =1; else pdata.b3 =0; } uchar j; for(j=0; j<len; j++) data[j]= buffer[j+currentAddress]; currentAddress += len; bytesRemaining -= len; return len; } /* usbFunctionWrite() вызывается когда хост отправляет порцию данных к устройству * Для дополнительной информации см. документацию в usbdrv.h */ uchar usbFunctionWrite(uchar *data, uchar len) { if(bytesRemaining ==0) return1; /* конец передачи */ if(len > bytesRemaining) len = bytesRemaining; uchar *buffer =(uchar*)&pdata; uchar j; for(j=0; j<len; j++) buffer[j+currentAddress]= data[j]; currentAddress += len; bytesRemaining -= len; if(bytesRemaining ==0) // Все данные получены { // Выставим значения на PORTB if( pdata.b1 ) PORTB |= _BV(1); else PORTB &=~_BV(1); if( pdata.b2 ) PORTB |= _BV(2); else PORTB &=~_BV(2); if( pdata.b3 ) PORTB |= _BV(3); else PORTB &=~_BV(3); } return bytesRemaining ==0;/* 0 означает, что есть еще данные */ } /* ------------------------------------------------------------------------- */ usbMsgLen_t usbFunctionSetup(uchar data[8]) { usbRequest_t *rq =(void*)data; if((rq->bmRequestType & USBRQ_TYPE_MASK)== USBRQ_TYPE_CLASS){ /* HID устройство */ if(rq->bRequest == USBRQ_HID_GET_REPORT){ /* wValue: ReportType (highbyte), ReportID (lowbyte) */ // у нас только одна разновидность репорта, можем игнорировать report-ID bytesRemaining =sizeof(struct dataexchange_t); currentAddress =0; return USB_NO_MSG; // используем usbFunctionRead() для отправки данных хосту }elseif(rq->bRequest == USBRQ_HID_SET_REPORT){ // у нас только одна разновидность репорта, можем игнорировать report-ID bytesRemaining =sizeof(struct dataexchange_t); currentAddress =0; return USB_NO_MSG; // используем usbFunctionWrite() для получения данных от хоста } }else{ /* остальные запросы мы просто игнорируем */ } return0; } /* ------------------------------------------------------------------------- */ int main(void) { DDRB =0b00001110; // PB1,PB2,PB3 - выход usbInit(); usbDeviceDisconnect(); // принудительно отключаемся от хоста, так делать можно только при выключенных прерываниях! uchar i =0; while(--i){ // пауза > 250 ms _delay_ms(1); } usbDeviceConnect(); // подключаемся sei(); // разрешаем прерывания for(;;){ // главный цикл программы usbPoll(); // эту функцию надо регулярно вызывать с главного цикла, максимальная задержка между вызовами - 50 ms } return0; }
Компилируем, заливаем прошивку в микроконтроллер, подключаем к USB порту компьютера и вуаля:
Далее нам необходимо откомпилировать программу и записать ее в микроконтроллер. Если все настроено и сделано правильно то после подключения микроконтроллера к USB, компьютер должен определить ваше устройстов как HID.
Программы писали в среде C++ Builder 6, интерфейс программы создавался в визуальном редакторе. В форму добавил 3 чекбокса и две кнопки.
После создания проекта нам необходимо скопировать туда специальную библиотеку для работы с устройствами HID из среды C++ Builder, называется она hidlibrary.h сделана как класс. Эта библиотека при помощи LoadLibrary-WINAPI функции, подгружает hid.dll, далее при помощи GetProcAddress - происходит вычисление адреса функции внутри hid.dll.
Предоставляется удобный и простой интерфейс для работы с HID. Полезая стать "общение с контроллером по USB". На настройку проекта и передачу данных ушло довольно много времени, пока не наткнулся на эту библиотеку.
#define uchar unsigned char
#include <vcl.h>
#pragma hdrstop
#include "main.h"
#include "hidlibrary.h" // Библиотека для работы с Hid устройствами
#include "../Hid_example_firmware/usbconfig.h" // Здесь пишем путь к usbconfig.h
char vendorName[] ={USB_CFG_VENDOR_NAME,0};// для того что бы знать как
char productName[]={USB_CFG_DEVICE_NAME,0};// называется наше устройство
struct dataexchange_t // Описание структуры для передачи данных
{
uchar b1; // Я решил для примера написать структуру на 3 байта.
uchar b2; // На каждый байт подцепим ногу из PORTB. Конечно это
uchar b3; // не рационально (всего то 3 бита нужно).
}; // Но в целях демонстрации в самый раз.
// Для наглядности прикрутить по светодиоду и созерцать :)
struct dataexchange_t pdata ={0,0,0};
HIDLibrary<dataexchange_t> hid;// создаем экземпляр класса с типом нашей структуры
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent*Owner)
:TForm(Owner)
{
}
//---------------------------------------------------------------------------
int connect() // этой функцией будем подключаться к устройству
{
int i, n, res=0;
string exampleDeviceName ="";
exampleDeviceName += vendorName;
exampleDeviceName +=" ";
exampleDeviceName += productName;
n = hid.EnumerateHIDDevices();// узнаем все Hid устройства vid_16c0&pid_05df
// vid и pid указаны в hidlibrary.h константой idstring
for(i=0; i<n; i++) // ищем среди них наше
{
hid.Connect(i);
// GetConnectedDeviceName() возвращает string,
// где через пробел указаны vendor и product Name.
// Сравниваем, если совпало - значить устройство наше
if( hid.GetConnectedDeviceName()== exampleDeviceName )
{
res =1;
break;
}
}
return res;
}
//---------------------------------------------------------------------------
// Кнопка "Принять данные"
void __fastcall TForm1::Button1Click(TObject*Sender)
{
if(1== connect())
{
hid.ReceiveData(&pdata); // Читаем данные с устройства
if(pdata.b1)
CheckBox1->Checked=true;
else
CheckBox1->Checked=false;
if(pdata.b2)
CheckBox2->Checked=true;
else
CheckBox2->Checked=false;
if(pdata.b3)
CheckBox3->Checked=true;
else
CheckBox3->Checked=false;
}
else
{
AnsiString s ="";
s += vendorName;
s +=" ";
s += productName;
s +=" не подключено.";
ShowMessage(s);
}
}
//---------------------------------------------------------------------------
// Кнопка "Отправить данные"
void __fastcall TForm1::Button2Click(TObject*Sender)
{
if(1== connect())
{
if(CheckBox1->Checked)
pdata.b1 =1;
else
pdata.b1 =0;
if(CheckBox2->Checked)
pdata.b2 =1;
else
pdata.b2 =0;
if(CheckBox3->Checked)
pdata.b3 =1;
else
pdata.b3 =0;
hid.SendData(&pdata); // Отправляем данные устройству
}
else
{
AnsiString s ="";
s += vendorName;
s +=" ";
s += productName;
s +=" не подключено.";
ShowMessage(s);
}
}
В коде ничего сложного нет, есть функция connect() она необходима для подключения устройства, также обработчики событий для отправки данных и для принятия данных. Используя эти кнопочки можно теперь мигать светодиодами, включать и выключать нагрузки. Данные передаются при помощи структуры dataexchange_t, для микроконтроллера описана точно такая же структура.
Для того чтобы написанная нами прогрмма работа и на других компбютерах где не установлена программа Borland C++, нам нужно перейти настройки проекта и там выключить использование динамических библиотек. Для этого нужно выполнить следующее: Project>Options. Во вкладках Linker и Packages снять галочки напротив "Use dynamic RTL" и "Build with runtime packages.
Оригинал статьи: AVR и USB
]]>Применять металлоискатели стали лишь в 30-х годах двадцатого века. Первоначальная функция металлоискателей заключалась в обнаружении снарядов, невзорвавшихся по той или иной причине. В современном мире область применения металлоискателя различна. Он необходим как в деревообрабатывающей так и в пищевой промышленности, широко применяется в археологических и экологических исследованиях, в аэропортах, на железнодорожных станциях, а также при досмотре людей, транспорта и грузов
Так как металлоискатели востребованы уже достаточно длительное время их внешний вид и принцип работы различен. По типу работы эти устройства подразделяют на несколько категорий: импульсные металлоискатели, металлоискатели, основанные на «биениях» или «потерях», устройства использующие принцип «передатчик-приемник» и т.д.
Каждый металлоискатель имеет свою задачу и возможности. При таком разнообразии названий и принципов работы новичку, а порой и специалисту, тяжело определить металлоискатель необходимый для решения поставленной задачи. Чтобы хоть как-то решить эту проблему, все металлоискатели разделили на 3 класса: локационные (основанные на принципе «передатчик - приемник», методе индуктивного равновесия и т.д.), параметрические металлоискатели (частотные, металлоискатели на «потерях» и т.д.) и магниточувствительные.
Второе название локационных и параметрических металлоискателей – индукционные. Их главным и чувствительным элементом, за счет которого осуществляется работа, является катушка индуктивности. Именно они применяются в работе таможенного контроля.
Для еще большего упрощения задачи по выбору металлоискателя, каждое устройство имеет свои так называемые возможности или параметры. У каждого вида металлоискателей они индивидуальны:
1. Чувствительность – обуславливает способность металлоискателя находить мелкие предметы. Чем больше чувствительность, тем более мелкий предмет способно найти устройство.
2. Величина зоны поиска – диапазон, в котором может быть обнаружен предмет
3. Проникающая способность – параметр, характеризующий глубину на которую распространяется ЭМП.
Для работы любому металлоискателю необходим датчик, чаще всего для этих целей используют магнитные рамочные антенны. Эти антенны различны, могут быть как одиночные (чаще всего используемые в параметрических металлоискателях), так и трёхрамочные конструкции.
На эффективность работы металлоискателя влияет множество факторов, такие как тип металла, его размер, масса и форма.
Каждый в своей жизни хоть раз мечтал найти клад. Раньше многие даже пытались осуществить его поиски, но все попытки были тщетны. С появлением металлоискателей картина изменилась. Помимо их основной деятельности в научной деятельности и промышленности, поиски с помощью металлоискателя для многих стали неким хобби. Для того, чтобы приобщиться к этому роду деятельности, необходимо для начала узнать о металлоискателях. Выделяют следующие их виды:
1. Ручной металлоискатель – используется при досмотре на таможенных станциях, для обнаружения мелких металлических предметов.
2. Арочный металлоискатель – представляет собой рамку, располагающуюся, как правило, в местах с большим потоком людей: вокзалы, аэропорты и т.д.
3. Глубинный металлоискатель – из названия понятно, что необходимы такие устройства для осуществления поисков предметов на больших глубинах. Несмотря на возможность поиска на большой глубине, мелкие предметы данный вид металлоискателя обнаружить не сможет. Глубинный металлоискатель относится к профессиональным устройствам и имеет высокую стоимость. Не предназначен для одиночных поисков, применяется для обслуживания подземных коммуникаций.
4. Металлоискатель точного обнаружения предмета – показывает расположение цели вплоть до миллиметра, прост в использовании, и имеет небольшие размеры. Главным минусом является возможность обнаружения на глубине 5-6 см.
5. Металлоискатель для золота – такие приборы относятся к чисто профессиональным. Они имеют возможность для осуществления очень точной настройки на грунт, способен обнаружить металл на глубине более одного метра, и очень четко распознает все поступающие сигналы.
6. Простой грунтовый металлоискатель – создан для новичков и любителей. Имеет простые функции и легок в использовании. Глубина обнаружения предмета чаще всего зависит от грунта, но слишком большой не бывает никогда. Иногда грунтовые металлоискатели имеют функцию по определению физического и химического состава метла, а также возможность по определению глубины залегания металла.
7. Полупрофессиональный металлоискатель – чаще всего эти устройства приобретают люди имеющие опыт в работе с металлоискателем. Для новичков они являются сложными в эксплуатации. Они имеют свой принцип действия, основанный на многочастотности, и, благодаря, числу VDI способен определять к «цветным» или «черным» металлам относится предмет. Такие устройства обладают как визуальной, так и звуковой информацией.
8. Профессиональный металлоискатель – считаются лучшим вариантом для обученных поисковиков. Обладают точностью определения вида металла до 80%. При работе с данным металлоискателем поисковик обладает сразу визуальной, звуковой и цифровой информацией. Подобрав необходимую частоту, с данным устройством возможно обнаружить металл на максимальной глубине при минимальных размерах.
Узнав достаточную информацию о металлоискателях, необходимо понять с какой целью его планируется использовать, после чего устройство можно смело приобретать и начинать поиски.
]]>Применять металлоискатели стали лишь в 30-х годах двадцатого века. Первоначальная функция металлоискателей заключалась в обнаружении снарядов, невзорвавшихся по той или иной причине. В современном мире область применения металлоискателя различна. Он необходим как в деревообрабатывающей так и в пищевой промышленности, широко применяется в археологических и экологических исследованиях, в аэропортах, на железнодорожных станциях, а также при досмотре людей, транспорта и грузов
Так как металлоискатели востребованы уже достаточно длительное время их внешний вид и принцип работы различен. По типу работы эти устройства подразделяют на несколько категорий: импульсные металлоискатели, металлоискатели, основанные на «биениях» или «потерях», устройства использующие принцип «передатчик-приемник» и т.д.
Каждый металлоискатель имеет свою задачу и возможности. При таком разнообразии названий и принципов работы новичку, а порой и специалисту, тяжело определить металлоискатель необходимый для решения поставленной задачи. Чтобы хоть как-то решить эту проблему, все металлоискатели разделили на 3 класса: локационные (основанные на принципе «передатчик - приемник», методе индуктивного равновесия и т.д.), параметрические металлоискатели (частотные, металлоискатели на «потерях» и т.д.) и магниточувствительные.
Второе название локационных и параметрических металлоискателей – индукционные. Их главным и чувствительным элементом, за счет которого осуществляется работа, является катушка индуктивности. Именно они применяются в работе таможенного контроля.
Для еще большего упрощения задачи по выбору металлоискателя, каждое устройство имеет свои так называемые возможности или параметры. У каждого вида металлоискателей они индивидуальны:
1. Чувствительность – обуславливает способность металлоискателя находить мелкие предметы. Чем больше чувствительность, тем более мелкий предмет способно найти устройство.
2. Величина зоны поиска – диапазон, в котором может быть обнаружен предмет
3. Проникающая способность – параметр, характеризующий глубину на которую распространяется ЭМП.
Для работы любому металлоискателю необходим датчик, чаще всего для этих целей используют магнитные рамочные антенны. Эти антенны различны, могут быть как одиночные (чаще всего используемые в параметрических металлоискателях), так и трёхрамочные конструкции.
На эффективность работы металлоискателя влияет множество факторов, такие как тип металла, его размер, масса и форма.
Каждый в своей жизни хоть раз мечтал найти клад. Раньше многие даже пытались осуществить его поиски, но все попытки были тщетны. С появлением металлоискателей картина изменилась. Помимо их основной деятельности в научной деятельности и промышленности, поиски с помощью металлоискателя для многих стали неким хобби. Для того, чтобы приобщиться к этому роду деятельности, необходимо для начала узнать о металлоискателях. Выделяют следующие их виды:
1. Ручной металлоискатель – используется при досмотре на таможенных станциях, для обнаружения мелких металлических предметов.
2. Арочный металлоискатель – представляет собой рамку, располагающуюся, как правило, в местах с большим потоком людей: вокзалы, аэропорты и т.д.
3. Глубинный металлоискатель – из названия понятно, что необходимы такие устройства для осуществления поисков предметов на больших глубинах. Несмотря на возможность поиска на большой глубине, мелкие предметы данный вид металлоискателя обнаружить не сможет. Глубинный металлоискатель относится к профессиональным устройствам и имеет высокую стоимость. Не предназначен для одиночных поисков, применяется для обслуживания подземных коммуникаций.
4. Металлоискатель точного обнаружения предмета – показывает расположение цели вплоть до миллиметра, прост в использовании, и имеет небольшие размеры. Главным минусом является возможность обнаружения на глубине 5-6 см.
5. Металлоискатель для золота – такие приборы относятся к чисто профессиональным. Они имеют возможность для осуществления очень точной настройки на грунт, способен обнаружить металл на глубине более одного метра, и очень четко распознает все поступающие сигналы.
6. Простой грунтовый металлоискатель – создан для новичков и любителей. Имеет простые функции и легок в использовании. Глубина обнаружения предмета чаще всего зависит от грунта, но слишком большой не бывает никогда. Иногда грунтовые металлоискатели имеют функцию по определению физического и химического состава метла, а также возможность по определению глубины залегания металла.
7. Полупрофессиональный металлоискатель – чаще всего эти устройства приобретают люди имеющие опыт в работе с металлоискателем. Для новичков они являются сложными в эксплуатации. Они имеют свой принцип действия, основанный на многочастотности, и, благодаря, числу VDI способен определять к «цветным» или «черным» металлам относится предмет. Такие устройства обладают как визуальной, так и звуковой информацией.
8. Профессиональный металлоискатель – считаются лучшим вариантом для обученных поисковиков. Обладают точностью определения вида металла до 80%. При работе с данным металлоискателем поисковик обладает сразу визуальной, звуковой и цифровой информацией. Подобрав необходимую частоту, с данным устройством возможно обнаружить металл на максимальной глубине при минимальных размерах.
Узнав достаточную информацию о металлоискателях, необходимо понять с какой целью его планируется использовать, после чего устройство можно смело приобретать и начинать поиски.
]]>
Напряжение питания подводится к выводам микросхемы 4 и 14. Антенна через конденсатор С3 подключается напрямую к выводу 11 микросхемы. Настройка на требуемую частоту осуществляется при помощи колебательного контура L1-C10. Звуковая частота снимается со второго вывода микросхемы.
Обозначение на схеме |
Номинал |
C1 |
3900 |
C2 |
180 |
C3 |
330 |
C4 |
330 |
C5 |
0,1 |
C6 |
330 |
C7 |
220 |
C9 |
180 |
C8 |
3300 |
C10 |
27...47 |
C13 |
0,01 |
C11 |
0,01 |
C12 |
0,15 |
C14 |
1800 |
L1 |
0,56мкГн |
R1 |
22кОм |
Микросхема |
К174ХА42Б |
Напряжение питания подводится к выводам микросхемы 4 и 14. Антенна через конденсатор С3 подключается напрямую к выводу 11 микросхемы. Настройка на требуемую частоту осуществляется при помощи колебательного контура L1-C10. Звуковая частота снимается со второго вывода микросхемы.
Обозначение на схеме |
Номинал |
C1 |
3900 |
C2 |
180 |
C3 |
330 |
C4 |
330 |
C5 |
0,1 |
C6 |
330 |
C7 |
220 |
C9 |
180 |
C8 |
3300 |
C10 |
27...47 |
C13 |
0,01 |
C11 |
0,01 |
C12 |
0,15 |
C14 |
1800 |
L1 |
0,56мкГн |
R1 |
22кОм |
Микросхема |
К174ХА42Б |
Схема на рисунке 1 может ретранслировать аудио сигнал от сотового телефона в радиовещательный диапазон FM. Когда пользователь помещает динамик телефона возле микрофона, он или она может слушать аудио сотового телефона через FM приемник автомобиля. Это можно использовать как встроенный в автомобиль громкоговорящий телефон.
Микросхема IC1 представляет собой генератор промежуточной частоты, его настройка осуществляется при помощи управляющего напряжения (ГУН) с дифференциальным выходом, охватывается весь диапазон частот от 70 МГц до 150 МГц. При помощи дросселя L1 устанавливается средний диапазон настройки ГУН. Номинал дросселя нужно выбрать таким чтобы выходная частота на выходе составила величину 100 МГц. Такая частота находится по середине диапазона FM. Индуктивность в 270 nH покрывает весь диапазон настройки от 97 до 128 МГц.
После нам необходимо выставить резистор RADJ с целью настройки ГУН на нужную частоту FM радиостанции. Станции FM располагаются на нечетных интервалах с шагом в 0,2 МГц. При правильной настройки мощность на выходе будет составлять до - 8 дБм. Согласно законодательству передача должна осуществляется ниже 250 мкВ при изменении и на расстоянии 3 м.
Резистор R1 необходим для создания определенного напряжения смещения на электретом микрофоне. Аудио сигнал с микрофона изменят выходную частоту ГУН, изменение происходит по амплитуде аудио сигнала. Величина сигнала в 20mBRMS (значение действующего напряжения) является наиболее предпочтительным для обеспечения наилучшей функциональности.
В этой схеме микрофон заменен входной линией из конденсатора для прямого подключения к разъему аудиовыхода. После подключения громкость необходимо отрегулировать таким образом чтобы была достигнута оптимальная производительность. В случае прямого подключения к аудиовыходу, устраняется фоновый шум который существует при подключении к микрофону.
]]>Схема на рисунке 1 может ретранслировать аудио сигнал от сотового телефона в радиовещательный диапазон FM. Когда пользователь помещает динамик телефона возле микрофона, он или она может слушать аудио сотового телефона через FM приемник автомобиля. Это можно использовать как встроенный в автомобиль громкоговорящий телефон.
Микросхема IC1 представляет собой генератор промежуточной частоты, его настройка осуществляется при помощи управляющего напряжения (ГУН) с дифференциальным выходом, охватывается весь диапазон частот от 70 МГц до 150 МГц. При помощи дросселя L1 устанавливается средний диапазон настройки ГУН. Номинал дросселя нужно выбрать таким чтобы выходная частота на выходе составила величину 100 МГц. Такая частота находится по середине диапазона FM. Индуктивность в 270 nH покрывает весь диапазон настройки от 97 до 128 МГц.
После нам необходимо выставить резистор RADJ с целью настройки ГУН на нужную частоту FM радиостанции. Станции FM располагаются на нечетных интервалах с шагом в 0,2 МГц. При правильной настройки мощность на выходе будет составлять до - 8 дБм. Согласно законодательству передача должна осуществляется ниже 250 мкВ при изменении и на расстоянии 3 м.
Резистор R1 необходим для создания определенного напряжения смещения на электретом микрофоне. Аудио сигнал с микрофона изменят выходную частоту ГУН, изменение происходит по амплитуде аудио сигнала. Величина сигнала в 20mBRMS (значение действующего напряжения) является наиболее предпочтительным для обеспечения наилучшей функциональности.
В этой схеме микрофон заменен входной линией из конденсатора для прямого подключения к разъему аудиовыхода. После подключения громкость необходимо отрегулировать таким образом чтобы была достигнута оптимальная производительность. В случае прямого подключения к аудиовыходу, устраняется фоновый шум который существует при подключении к микрофону.
]]>Технические характеристики усилителя:
Схема собрана на трех транзисторах КТ315 npn проводимости, эти транзисторы можно заменить на другие с похожими параметрами и той же проводимостью. На резисторах R3 и R4 осуществляется выбор рабочей точки транзистора VT1. Конденсаторы C1 и C2,С3 электролитические. Регулировка громкости осуществляется при помощи переменного сопротивления R1. Для питания используется напряжение в 9 В, можно использовать батарею "Крона" либо блок стабилизированный блок питания. Все номиналы радиодеталей представлены на схеме.
После сборки схема не нуждается в какой либо настройки и должна сразу заработать.
]]>Технические характеристики усилителя:
Схема собрана на трех транзисторах КТ315 npn проводимости, эти транзисторы можно заменить на другие с похожими параметрами и той же проводимостью. На резисторах R3 и R4 осуществляется выбор рабочей точки транзистора VT1. Конденсаторы C1 и C2,С3 электролитические. Регулировка громкости осуществляется при помощи переменного сопротивления R1. Для питания используется напряжение в 9 В, можно использовать батарею "Крона" либо блок стабилизированный блок питания. Все номиналы радиодеталей представлены на схеме.
После сборки схема не нуждается в какой либо настройки и должна сразу заработать.
]]>Текущее значение времени и температуры происходит поочередно сначала время а потом температура с нтервалом в 4 секунды. Формат отображения времени ЧЧ.ММ (часы,минуты). Первый ноль не отображается. О ходе отсчета времени сигнализирует мигающая точка.
Точность отображения температуры составляет десятые доли градуса. Погрешность в интевале температуры от -10 до 85 градусов составляет порядка +/- 0.5. В другом диапазоне точность уже +/- 2 градуса.
Температура замеряется 1 раз в минуту. Измеренное значение отправляется в память контроллера в которой может хранится пять послених измеренных значения. Измеренная температура округляется до целого значения. На дисплее имеются специальные символы повашения температуры (стрелка вверх) и понижения температуры (стрелка вниз), которые показывают как изменилась температура повисилась она или понизилась.
Если нажать на кнопке "меньше" то на дисплее сразу отобразится время. Если кнопку "больше" то отобразится температура последнего измеренного значения и начнется новый процесс измеерения температуры и новое значение отобразиться на дисплее в этом случае точность составит десятые доли и в таком формате будет отображатся в течении минуты. Если датчик температуры неисправен или отсутсвует подключение то будет оторажаться только время.
Представленные схемы отличаются только общим выводом индикатора анод и катод. Индикаторы работают в динамической индикации. Динамическая индикация раелизована программно. Каждый семисегментный индикатор включается с интервалом 100 раз за 1 секунду. остальное время выключен.
Прошивка для микроконтроллера
В архиве имеются файлы Proteus и сама прошивка написана на ассемблере. Прошивка может работать для двух вышеприведенных схем, для схемы с индикатором с общим катодом и схемы индикатора с общим анодом. При прошивке микроконтроллера важно выствыить fuse-биты: CKSEL3, CKSEL1, CKSEL0, SUT0, BODLEVEL1, BODLEVEL0.
Скачать: прошивка микроконтроллера
Вход в режим усановки времени осуществляется нажатием и удерживанием кнопки "ввод". После того как пройдет 3 секунды начнется режим установки минут. Для того чтобы устаноыить новое значение времени нужно использовать кнопки "больше" и "менеше". Для того чтобы перейти в режим установки часов необходимо нажать на кнопку "ввод". Для того чтобы сохранить выбранное время нужно также нажать и удерживать кнопку "ввод" после этого программа выйдет из режима установки времени. Если после этих всех операций в течении 10 секунд не будет нажата какия нибудь кнопка то часы перейдут в рабочее состояние и новое значение времени не будет сохраненно.
Для устройства необходимы две печатные платы из одностороннего стеклотекстолита который имеет размеры 50 на 100 мм, на одной плате устанавливаются индикатор с кнопками, а на другой сами часы. Равзодка платы в формате SpringLayout.
Индикатор или дисплей собран на двух семисегментных индикаторах FYD-8021BS-11, каждый имеет 2 разряда и имеют общий анод.
Вместо указаных на схеме вернхних включающих транзисторов платы можно использовать другие к примеру KT361B.
Исходник статьи: Часы-термометр
]]>Текущее значение времени и температуры происходит поочередно сначала время а потом температура с нтервалом в 4 секунды. Формат отображения времени ЧЧ.ММ (часы,минуты). Первый ноль не отображается. О ходе отсчета времени сигнализирует мигающая точка.
Точность отображения температуры составляет десятые доли градуса. Погрешность в интевале температуры от -10 до 85 градусов составляет порядка +/- 0.5. В другом диапазоне точность уже +/- 2 градуса.
Температура замеряется 1 раз в минуту. Измеренное значение отправляется в память контроллера в которой может хранится пять послених измеренных значения. Измеренная температура округляется до целого значения. На дисплее имеются специальные символы повашения температуры (стрелка вверх) и понижения температуры (стрелка вниз), которые показывают как изменилась температура повисилась она или понизилась.
Если нажать на кнопке "меньше" то на дисплее сразу отобразится время. Если кнопку "больше" то отобразится температура последнего измеренного значения и начнется новый процесс измеерения температуры и новое значение отобразиться на дисплее в этом случае точность составит десятые доли и в таком формате будет отображатся в течении минуты. Если датчик температуры неисправен или отсутсвует подключение то будет оторажаться только время.
Представленные схемы отличаются только общим выводом индикатора анод и катод. Индикаторы работают в динамической индикации. Динамическая индикация раелизована программно. Каждый семисегментный индикатор включается с интервалом 100 раз за 1 секунду. остальное время выключен.
Прошивка для микроконтроллера
В архиве имеются файлы Proteus и сама прошивка написана на ассемблере. Прошивка может работать для двух вышеприведенных схем, для схемы с индикатором с общим катодом и схемы индикатора с общим анодом. При прошивке микроконтроллера важно выствыить fuse-биты: CKSEL3, CKSEL1, CKSEL0, SUT0, BODLEVEL1, BODLEVEL0.
Скачать: прошивка микроконтроллера
Вход в режим усановки времени осуществляется нажатием и удерживанием кнопки "ввод". После того как пройдет 3 секунды начнется режим установки минут. Для того чтобы устаноыить новое значение времени нужно использовать кнопки "больше" и "менеше". Для того чтобы перейти в режим установки часов необходимо нажать на кнопку "ввод". Для того чтобы сохранить выбранное время нужно также нажать и удерживать кнопку "ввод" после этого программа выйдет из режима установки времени. Если после этих всех операций в течении 10 секунд не будет нажата какия нибудь кнопка то часы перейдут в рабочее состояние и новое значение времени не будет сохраненно.
Для устройства необходимы две печатные платы из одностороннего стеклотекстолита который имеет размеры 50 на 100 мм, на одной плате устанавливаются индикатор с кнопками, а на другой сами часы. Равзодка платы в формате SpringLayout.
Индикатор или дисплей собран на двух семисегментных индикаторах FYD-8021BS-11, каждый имеет 2 разряда и имеют общий анод.
Вместо указаных на схеме вернхних включающих транзисторов платы можно использовать другие к примеру KT361B.
Исходник статьи: Часы-термометр
]]>Причины помех могут быть разные, если причину той или иной помехи нельзя устранить то устанавливают фильтры. Преимущества и недостатки того или иного технического решения можно узнать только применив ее на практике, либо смоделировать конкретный случай условий работы на компьютере. Если к микроконтроллеру присоединены импульсные узлы или блоки, то они могу быть источниками различного рода помех. Таким образом следующая функция фильтров это уменьшение не только "входящие" помехи но и "исходящие".
Причины помех могут быть разные, если причину той или иной помехи нельзя устранить то устанавливают фильтры. Преимущества и недостатки того или иного технического решения можно узнать только применив ее на практике, либо смоделировать конкретный случай условий работы на компьютере. Если к микроконтроллеру присоединены импульсные узлы или блоки, то они могу быть источниками различного рода помех. Таким образом следующая функция фильтров это уменьшение не только "входящие" помехи но и "исходящие".
К примеру тактовая частота в 8 МГц означает что МК за 1 секунду выполнить 8000000 различных операций таких как сложение, вычитание, запись данных в регистры и чтение данных т.д. Такая частота кажется довольно большой но как показывает практика это далеко не так, к примеру частота тактирования современных процессора компьютера составляет уже от 2 ГГц, а некоторые модели уже имеют частоту в 4 ГГц.
Существует 4 способа тактирование микроконтроллера:
Давайте в вкратце рассмотрим каждый из этих способов тактирования микроконтроллера. Выбор того или иного способа осуществляется путем выставления фьюз битов микроконтроллера.
При этом способе нам не нужно подключать какие либо внешние детали. Тактирование осуществляется от RC генератора который находится внутри и который может работать на частотах 1,2,4,8 МГц. А если вам требуется какая нибудь другая частота, то этот способ не подходит. Так же этот способ не подойдет если вам нужны точные интервалы времени, дело в том что задающая частота RC генератора плавает в зависимости от температуры.
Этот способ несколько сложнее, для того чтобы его подключить нам нужно знать расположение выводов микроконтроллера и их название, далее находим выводы "XTAL1" и "XTAL2".
Емкость конденсаторов должана быть в интервале от 15 до 22 пФ, один вывод подсоединятеся к резонатору а другой к земле.
В представленной схеме тактирования конденсатор берется емкостью не менее 22 пФ, а резистор от 10 Ом до 100 кОм. Внешний RC генератор так же как и внутренний имеет нестабильную частоту которая "плавает " в зависимости от температуры. Но если в проектах не нужна стабильная частота то можно использовать эти два способа.
Частота тактирования рассчитывает по формуле
F=2/3 R*C
F-это частота в Герцах;
R- номинал сопротивления в Ом;
C - емкость конденсатора в Фарадах.
По дефолту все МК AVR (за исключением страх AT90S2313 и AT90S8535 и другие) настроены так чтобы испольщовать внутренний тактовый генератор. Получается как только мы подаем на него напряжение то МК сразу начинает работать.
За выбор источника тактирования отвечает биты CKSEL
выставляя биты нужным образом получаем нужный нам источник тактирования.
CKSEL3...0=0000 - это внешний источник тактового синнала.
CKSEL3...0=0100 - внутренний RC генератор 8 МГц.
Для того чтобы использовать внешний RC генерато нужно выставлять следующие биты, в зависимости от расчетного значения частоты.
К примеру тактовая частота в 8 МГц означает что МК за 1 секунду выполнить 8000000 различных операций таких как сложение, вычитание, запись данных в регистры и чтение данных т.д. Такая частота кажется довольно большой но как показывает практика это далеко не так, к примеру частота тактирования современных процессора компьютера составляет уже от 2 ГГц, а некоторые модели уже имеют частоту в 4 ГГц.
Существует 4 способа тактирование микроконтроллера:
Давайте в вкратце рассмотрим каждый из этих способов тактирования микроконтроллера. Выбор того или иного способа осуществляется путем выставления фьюз битов микроконтроллера.
При этом способе нам не нужно подключать какие либо внешние детали. Тактирование осуществляется от RC генератора который находится внутри и который может работать на частотах 1,2,4,8 МГц. А если вам требуется какая нибудь другая частота, то этот способ не подходит. Так же этот способ не подойдет если вам нужны точные интервалы времени, дело в том что задающая частота RC генератора плавает в зависимости от температуры.
Этот способ несколько сложнее, для того чтобы его подключить нам нужно знать расположение выводов микроконтроллера и их название, далее находим выводы "XTAL1" и "XTAL2".
Емкость конденсаторов должана быть в интервале от 15 до 22 пФ, один вывод подсоединятеся к резонатору а другой к земле.
В представленной схеме тактирования конденсатор берется емкостью не менее 22 пФ, а резистор от 10 Ом до 100 кОм. Внешний RC генератор так же как и внутренний имеет нестабильную частоту которая "плавает " в зависимости от температуры. Но если в проектах не нужна стабильная частота то можно использовать эти два способа.
Частота тактирования рассчитывает по формуле
F=2/3 R*C
F-это частота в Герцах;
R- номинал сопротивления в Ом;
C - емкость конденсатора в Фарадах.
По дефолту все МК AVR (за исключением страх AT90S2313 и AT90S8535 и другие) настроены так чтобы испольщовать внутренний тактовый генератор. Получается как только мы подаем на него напряжение то МК сразу начинает работать.
За выбор источника тактирования отвечает биты CKSEL
выставляя биты нужным образом получаем нужный нам источник тактирования.
CKSEL3...0=0000 - это внешний источник тактового синнала.
CKSEL3...0=0100 - внутренний RC генератор 8 МГц.
Для того чтобы использовать внешний RC генерато нужно выставлять следующие биты, в зависимости от расчетного значения частоты.
Технические характеристики:
Порты ввода/вывода
Порты микроконтроллера сгруппированы в 3 группы:
Порт D
Порт C
Порт B
Выводы для питания микроконтроллера
Datasheet микроконтроллера Atmega8
]]>Технические характеристики:
Порты ввода/вывода
Порты микроконтроллера сгруппированы в 3 группы:
Порт D
Порт C
Порт B
Выводы для питания микроконтроллера
Datasheet микроконтроллера Atmega8
]]>Основой частотомера, так сказать его сердцем является микроконтроллер Atmega16, тактирование осуществляется с частотой 8 МГц от внутреннего RC генератора. О тактировании микроконтроллера было сказано раннее. Перед подачей измеряемой частоты в микроконтроллер она проходит через делитель на 16, собраного на 4-х битном счетчике 74HC191. Как видно из схемы задействован только Q3 вывод счетчика, в этом случае входная частота будет делится на 16.
Измерение осуществляется при помощи "щупа" W1 который подключается к входу микроконтроллер PB0 и через счетчик-делитель на вход PB1.
Вывод измеренной микроконтроллером частоты осуществляется на дисплей, который состоит из 4-х семисегментных индикатора, с общим выводом - анодом.
Выводы с E1 по E4 включают разряды, вывод E1 включает младший разряд (крайний справа).
Согласно описанию микроконтроллера Atmega16 ток на выходе микроконтроллера составляет 40 мА, по этой причине нет необходимости использовать ключи на выходе микроконтроллера, а можно напрямую подключить их индикатору.
На схеме указан внутрисхемный коннектор J1. Который позволяет загружать ПО (прошивку или программу) в микроконтроллер и тем самым корректирую работу прибора и редактируя некоотрорые переменные отвечающие за яркость дисплея, мерцания дисплея и д.р.
Как известно частота - это количество колебаний совершаемых за единицу времени. Максимальную частоту которую может измерить Atmega16 не модет быть больше тактовой поделенной на 2.5. У нас микроконтроллер с тактовой частотой в 8 МГц, если мы напрямую будем подключать то мы сможем измерять частоту до 3.2 МГц. Для того чтобы увеличить максимальное значение измеряемой частоты неоюходимо на входе установить счетчик который выполняет функцию делителя, при помощи которого можем измерить частоту до 40 МГц.
Алгоритм микроконтроллера, измеряет исходную частоту которая напрямую поступае на вход (Fo) и частоту которая идет с делителя (Fd).
в программе есть константа и именем factor, они инициализируется в начале программы и ее присваивается значение 31.78581, она калибруется путем измерения эталонной частоты которая вычисляется по формуле:
factor=Fcpu/(1024*256)=8e6(1024*256)=30.51757
По умолчанию микроконтроллер Atmega16 настроен на работу от внутреннего генератора с частотой 1 МГц. Для нормальной работы программы нам необходимо установить частоту в 8 МГц, делается ето при помоши последовательного программатора путем устанвоки Fuse битов CKSEL3..0 в значение 0100. Выставив биты таким образом мы тем самым изменяем частоту тактирования микроконтроллера на 8 МГц.
]]>Основой частотомера, так сказать его сердцем является микроконтроллер Atmega16, тактирование осуществляется с частотой 8 МГц от внутреннего RC генератора. О тактировании микроконтроллера было сказано раннее. Перед подачей измеряемой частоты в микроконтроллер она проходит через делитель на 16, собраного на 4-х битном счетчике 74HC191. Как видно из схемы задействован только Q3 вывод счетчика, в этом случае входная частота будет делится на 16.
Измерение осуществляется при помощи "щупа" W1 который подключается к входу микроконтроллер PB0 и через счетчик-делитель на вход PB1.
Вывод измеренной микроконтроллером частоты осуществляется на дисплей, который состоит из 4-х семисегментных индикатора, с общим выводом - анодом.
Выводы с E1 по E4 включают разряды, вывод E1 включает младший разряд (крайний справа).
Согласно описанию микроконтроллера Atmega16 ток на выходе микроконтроллера составляет 40 мА, по этой причине нет необходимости использовать ключи на выходе микроконтроллера, а можно напрямую подключить их индикатору.
На схеме указан внутрисхемный коннектор J1. Который позволяет загружать ПО (прошивку или программу) в микроконтроллер и тем самым корректирую работу прибора и редактируя некоотрорые переменные отвечающие за яркость дисплея, мерцания дисплея и д.р.
Как известно частота - это количество колебаний совершаемых за единицу времени. Максимальную частоту которую может измерить Atmega16 не модет быть больше тактовой поделенной на 2.5. У нас микроконтроллер с тактовой частотой в 8 МГц, если мы напрямую будем подключать то мы сможем измерять частоту до 3.2 МГц. Для того чтобы увеличить максимальное значение измеряемой частоты неоюходимо на входе установить счетчик который выполняет функцию делителя, при помощи которого можем измерить частоту до 40 МГц.
Алгоритм микроконтроллера, измеряет исходную частоту которая напрямую поступае на вход (Fo) и частоту которая идет с делителя (Fd).
в программе есть константа и именем factor, они инициализируется в начале программы и ее присваивается значение 31.78581, она калибруется путем измерения эталонной частоты которая вычисляется по формуле:
factor=Fcpu/(1024*256)=8e6(1024*256)=30.51757
По умолчанию микроконтроллер Atmega16 настроен на работу от внутреннего генератора с частотой 1 МГц. Для нормальной работы программы нам необходимо установить частоту в 8 МГц, делается ето при помоши последовательного программатора путем устанвоки Fuse битов CKSEL3..0 в значение 0100. Выставив биты таким образом мы тем самым изменяем частоту тактирования микроконтроллера на 8 МГц.
]]>Энкодер или как его еще называют датчик угла поворота - представляет собой электромеханическое устройство, которое преобразует положение угла вала в электрический сигнал. Энкодеры делятся на 2 типа абсолютные и инкрементные.
В инкрементных энкодерах при повороте вала формируются импульсы, количество этих импульсов пропорционально углу поворота вала. Если подсчитать эти импульсы то можно узнать угол поворота вала энкодера. Если ручка энкодера находится в покое то импульсы не формируются. Такие энкодеры широко применяются в аудио системах и промышленных средствах управления.
Абсолтные энкодеры имеют совершенно другой принцип дейставия, основаная на выдачи уникального кода каждому положению вала. Формирование импульсов происходит когда вал вращается и когда он в покое. Причем информация о текущем положения вала, сохранится даже после прекращения подачи напряжения.
В нашем примере мы подключим инкрементный энкодер с микроконтроллером. Энкодер PEC12 422OF SOO24 который имеет 24 импульса за 1 оборот.
Энкодер имеет 5 выводов, 3 из них это выводы самого энкодера, а другие два это кнопка. У выводов энкодера одни вывод общий а 2 другие сигнальные. Схема подключения ничем не отличается от схемы подключения обычной кнопки. Сигнальные выводы подключаются в портам ввода/вывода микроконтроллера. А общий вывод котоый посередине соединяется к земле. С целью защиты от дребезга контактов можно добавить конденсаторы емкостью несколько нФ. Выводы к которым мы подключили энкодер настраиваем в программе как входы и включаем подтягивающие резисторы, можно подключить внешние резисторы.
Принцип действия энкодера основан на замыкании и размыкании контактов, когда ручку никто не крутит то на входе в МК имеется логическая еденица. Когда ручку начинают поворачивать то появляются два прямоугольных импульса которые сдвинуты друг относительно друга. От того в какую сторону крутим будет зависить какой сигнал опережает.
Но так как имеется друбезг контактов в любых картина будет выглядить следующим образом.
Алгоритм работы программы микроконтроллера
С определенным интервалом начинается вызов функции опроса энкодера. Эта функция считывает логические уровни, которые присутсвуют на выводах микроконтроллера и производит запись этого значения во временную переменную. Внутри функции опроса энкодера существует другая статичная переменная которая сохраняется при выходе из этой функции в ней хранится последовательность предыдуших значений. Из этой переменной берется последнее записанное значение и сравнивается с текущим для того чтобы определить были ли изменения. Если эти значения равны тот происходит выход из функции, а если они отличаются то значение статичной переменной сдвигается на 2 разряда влево и в "свободное" место записывается новое (текущее) значение.
Получается что когда вал энкодера вращается то во временную переменную будет постоянно записываться новое значение и получится повторяющаяся кодовая последовательность. Если вращаем вправо булед : 11100001, а если влево то 11010010. По этим значениям можно понять в какую сторону крутится вал.
В архиве есть 2 файла encoder.h и encoder.c. Изначалоно нужно задать порт и номер выводов к которым производится подключение это переменные LEFT_SPIN и RIGHT_SPIN. В файле "c" находится реализация функций.
Вызов функции опроса энкодера происходит с частототй в 4 кГц. Если опрашивать с меньшей частотой то МК может пропустить импульсы в случае быстрого вращения вала.
]]>Энкодер или как его еще называют датчик угла поворота - представляет собой электромеханическое устройство, которое преобразует положение угла вала в электрический сигнал. Энкодеры делятся на 2 типа абсолютные и инкрементные.
В инкрементных энкодерах при повороте вала формируются импульсы, количество этих импульсов пропорционально углу поворота вала. Если подсчитать эти импульсы то можно узнать угол поворота вала энкодера. Если ручка энкодера находится в покое то импульсы не формируются. Такие энкодеры широко применяются в аудио системах и промышленных средствах управления.
Абсолтные энкодеры имеют совершенно другой принцип дейставия, основаная на выдачи уникального кода каждому положению вала. Формирование импульсов происходит когда вал вращается и когда он в покое. Причем информация о текущем положения вала, сохранится даже после прекращения подачи напряжения.
В нашем примере мы подключим инкрементный энкодер с микроконтроллером. Энкодер PEC12 422OF SOO24 который имеет 24 импульса за 1 оборот.
Энкодер имеет 5 выводов, 3 из них это выводы самого энкодера, а другие два это кнопка. У выводов энкодера одни вывод общий а 2 другие сигнальные. Схема подключения ничем не отличается от схемы подключения обычной кнопки. Сигнальные выводы подключаются в портам ввода/вывода микроконтроллера. А общий вывод котоый посередине соединяется к земле. С целью защиты от дребезга контактов можно добавить конденсаторы емкостью несколько нФ. Выводы к которым мы подключили энкодер настраиваем в программе как входы и включаем подтягивающие резисторы, можно подключить внешние резисторы.
Принцип действия энкодера основан на замыкании и размыкании контактов, когда ручку никто не крутит то на входе в МК имеется логическая еденица. Когда ручку начинают поворачивать то появляются два прямоугольных импульса которые сдвинуты друг относительно друга. От того в какую сторону крутим будет зависить какой сигнал опережает.
Но так как имеется друбезг контактов в любых картина будет выглядить следующим образом.
Алгоритм работы программы микроконтроллера
С определенным интервалом начинается вызов функции опроса энкодера. Эта функция считывает логические уровни, которые присутсвуют на выводах микроконтроллера и производит запись этого значения во временную переменную. Внутри функции опроса энкодера существует другая статичная переменная которая сохраняется при выходе из этой функции в ней хранится последовательность предыдуших значений. Из этой переменной берется последнее записанное значение и сравнивается с текущим для того чтобы определить были ли изменения. Если эти значения равны тот происходит выход из функции, а если они отличаются то значение статичной переменной сдвигается на 2 разряда влево и в "свободное" место записывается новое (текущее) значение.
Получается что когда вал энкодера вращается то во временную переменную будет постоянно записываться новое значение и получится повторяющаяся кодовая последовательность. Если вращаем вправо булед : 11100001, а если влево то 11010010. По этим значениям можно понять в какую сторону крутится вал.
В архиве есть 2 файла encoder.h и encoder.c. Изначалоно нужно задать порт и номер выводов к которым производится подключение это переменные LEFT_SPIN и RIGHT_SPIN. В файле "c" находится реализация функций.
Вызов функции опроса энкодера происходит с частототй в 4 кГц. Если опрашивать с меньшей частотой то МК может пропустить импульсы в случае быстрого вращения вала.
]]>Для работы нам понадобятся два канала АЦП, это каналы ADC0 и ADC1, при помощи одного мы мерием напяржение при помощи другого силу тока. В качестве источника внутренного напряжения используется внтуренней опорное напряжение в 2.56 В. АЦП работают с разрядность в 10 бит. Микроконтроллер Atmega8 затактирован от внутреннего RC генератора с частотой в 4 МГц.
Вывод информации на дисплей осуществляется следующим образом:
Напряжение которое нам нужно померить сначала подается на делитель напряжения, и уже с него подается на вход АЦП ADC1. Делить собран на резисторах с номиналами в 100 кОм и 10 кОм, получается что отношение входного и выходного напряжения 10 к 1. Максимальное напряжение которое можно подать на вход делителя составляет 28.13 В.
Для того чтобы померить силу тока нам понадобится токовый шунт, его включаем в разры цепи ток в которой хотим померть. Падение напряжения на шутнте нетрудно определить по закону Ома, эта величина меряется други АЦП ADC0. Нужно стремится к уменьшению сопротивлению шунта, чем он меньше тем лучше. Если сопротивление равно 0,1 Ом то при силе тока в 1 Ампера получается падение напряжения в 0,1В.
Если у нас ток в 2 А то падение напряжения составит 0,2 В. Это значение очень мало для того чтобы его подать на вход АЦП микроконтроллера, поэтому его можно устелить при помощи ОУ (операционного усилителя). В нашем примере можно использовать схему неинвертирующего усилителя. Коэффициент усиления составит
Ku=1+(R2/R2)
Нудно чтобы это коэффициент был равен 10, для того чтобы измеряемы ток, к примеру 1 А соответствовал напряжение на выходе ОУ в 2В. В связи с тем что ИОП (источник опорного напряжения) 2.56 В. то мы не может подать больше этого значения. Шаг измерения тока состовит: 2.56А/2024=2.5 мА.
Таким образом для того чтобы получить значение тока, нам нужно напряжение измеренное АЦП умножить на 2.5
Измерение происходит по прерыванию окончания преобразования АЦП. Сначала выбирается канал 1 и снимается напряжения, далее выбирается второй и также снимается напряжение. Измерения каналов происхоид 400 раз, далее вычисляется среднее значение и выводятся на символьный дисплей.
// Измерение постоянного тока с помощью AVR #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> unsigned int voltage, current, adc_counter; volatile unsigned long voltage_value, current_value; // Функции работы с LCD #define RS PD0 #define EN PD2 // Функция передачи команды void lcd_com(unsigned char p) { PORTD &= ~(1 << RS); // RS = 0 (запись команд) PORTD |= (1 << EN); // EN = 1 (начало записи команды в LCD) PORTD &= 0x0F; PORTD |= (p & 0xF0); // старший нибл _delay_us(100); PORTD &= ~(1 << EN); // EN = 0 (конец записи команды в LCD) _delay_us(100); PORTD |= (1 << EN); // EN = 1 (начало записи команды в LCD) PORTD &= 0x0F; PORTD |= (p << 4); // младший нибл _delay_us(100); PORTD &= ~(1 << EN); // EN = 0 (конец записи команды в LCD) _delay_us(100); } // Функция передачи данных void lcd_data(unsigned char p) { PORTD |= (1 << RS)|(1 << EN); // RS = 1 (запись данных), EN - 1 (начало записи команды в LCD) PORTD &= 0x0F; PORTD |= (p & 0xF0); // старший нибл _delay_us(100); PORTD &= ~(1 << EN); // EN = 0 (конец записи команды в LCD) _delay_us(100); PORTD |= (1 << EN); // EN = 1 (начало записи команды в LCD) PORTD &= 0x0F; PORTD |= (p << 4); // младший нибл _delay_us(100); PORTD &= ~(1 << EN); // EN = 0 (конец записи команды в LCD) _delay_us(100); } // Функция вывода строки на LCD void lcd_string(unsigned char command, char *string) { lcd_com(0x0C); lcd_com(command); while(*string != '\0') { lcd_data(*string); string++; } } // Функция вывода переменной void lcd_num_to_str(unsigned int value, unsigned char nDigit) { switch(nDigit) { case 4: lcd_data((value/1000)+'0'); case 3: lcd_data(((value/100)%10)+'0'); case 2: lcd_data(((value/10)%10)+'0'); case 1: lcd_data((value%10)+'0'); } } // Функция инициализации LCD void lcd_init(void) { DDRD = 0xFF; PORTD = 0x00; _delay_ms(50); // Ожидание готовности ЖК-модуля // Конфигурирование четырехразрядного режима PORTD |= (1 << PD5); PORTD &= ~(1 << PD4); // Активизация четырехразрядного режима PORTD |= (1 << EN); PORTD &= ~(1 << EN); _delay_ms(5); lcd_com(0x28); // шина 4 бит, LCD - 2 строки lcd_com(0x08); // полное выключение дисплея lcd_com(0x01); // очистка дисплея _delay_us(100); lcd_com(0x06); // сдвиг курсора вправо lcd_com(0x0C); // включение дисплея, курсор не видим } // Обработчик прерывания от АЦП ISR(ADC_vect) { ADCSRA = 0; // Выключаем АЦП if((ADMUX & 0x0F)==1) // Если был выбран канал ADC1 { voltage_value = voltage_value + ADC; // Суммируем измеренные значения напряжения и помещаем в буфер ADMUX = (ADMUX & 0xF0) | 0; // Выбираем канал ADC0 } else { current_value = current_value + ADC; // Суммируем измеренные значения тока и помещаем в буфер ADMUX = (ADMUX & 0xF0) | 1; // Выбираем канал ADC1 adc_counter++; // Увеличиваем счетчик выборок АЦП на 1 } // Включаем АЦП ADCSRA |= (1 << ADEN)|(1 << ADSC)|(1 << ADPS2)|(1 << ADPS1)|(1 << ADPS0)|(1 << ADIE); } int main(void) { ADMUX |= (1 << REFS1)|(1 << REFS0); // Внутренний ИОН 2,56V ADMUX |= (1 << MUX0); // Подключаем канал ADC1 ADCSRA |= (1 << ADEN) // разрешение АЦП |(1 << ADSC) // запуск преобразования |(1 << ADPS2)|(1 << ADPS1)|(1 << ADPS0) // предделитель на 128 |(1 << ADIE); // разрешение прерывания от АЦП sei(); // Глобально разрешаем прерывания lcd_init(); // Инициализация LCD _delay_ms(25); lcd_string(0x80 ,"VOLTS * AMPERES"); lcd_string(0xC0 ," . * . "); while(1) { // вычисляем среднее значение АЦП if (adc_counter > 400) { ADCSRA = 0; // Выключаем АЦП // преабразуем данные в реальное значение напряжения voltage = (voltage_value/adc_counter) * 11/4; // преабразуем данные в реальное значение тока current = (current_value/adc_counter) * 10/4; adc_counter = 0; // Обнуляем счетчик выборок АЦП voltage_value = 0; // Обнуляем буфер значений напряжения current_value = 0; // Обнуляем буфер значений тока // Выводим данные на LCD lcd_com(0xC0); lcd_num_to_str(voltage/100, 2); lcd_com(0xC3); lcd_num_to_str(voltage, 2); lcd_com(0xC9); lcd_num_to_str(current/1000, 1); lcd_com(0xCB); lcd_num_to_str(current, 3); // Включаем АЦП ADCSRA |= (1 << ADEN)|(1 << ADSC)|(1 << ADPS2)|(1 << ADPS1)|(1 << ADPS0)|(1 << ADIE); } _delay_ms(1); } }]]>
Для работы нам понадобятся два канала АЦП, это каналы ADC0 и ADC1, при помощи одного мы мерием напяржение при помощи другого силу тока. В качестве источника внутренного напряжения используется внтуренней опорное напряжение в 2.56 В. АЦП работают с разрядность в 10 бит. Микроконтроллер Atmega8 затактирован от внутреннего RC генератора с частотой в 4 МГц.
Вывод информации на дисплей осуществляется следующим образом:
Напряжение которое нам нужно померить сначала подается на делитель напряжения, и уже с него подается на вход АЦП ADC1. Делить собран на резисторах с номиналами в 100 кОм и 10 кОм, получается что отношение входного и выходного напряжения 10 к 1. Максимальное напряжение которое можно подать на вход делителя составляет 28.13 В.
Для того чтобы померить силу тока нам понадобится токовый шунт, его включаем в разры цепи ток в которой хотим померть. Падение напряжения на шутнте нетрудно определить по закону Ома, эта величина меряется други АЦП ADC0. Нужно стремится к уменьшению сопротивлению шунта, чем он меньше тем лучше. Если сопротивление равно 0,1 Ом то при силе тока в 1 Ампера получается падение напряжения в 0,1В.
Если у нас ток в 2 А то падение напряжения составит 0,2 В. Это значение очень мало для того чтобы его подать на вход АЦП микроконтроллера, поэтому его можно устелить при помощи ОУ (операционного усилителя). В нашем примере можно использовать схему неинвертирующего усилителя. Коэффициент усиления составит
Ku=1+(R2/R2)
Нудно чтобы это коэффициент был равен 10, для того чтобы измеряемы ток, к примеру 1 А соответствовал напряжение на выходе ОУ в 2В. В связи с тем что ИОП (источник опорного напряжения) 2.56 В. то мы не может подать больше этого значения. Шаг измерения тока состовит: 2.56А/2024=2.5 мА.
Таким образом для того чтобы получить значение тока, нам нужно напряжение измеренное АЦП умножить на 2.5
Измерение происходит по прерыванию окончания преобразования АЦП. Сначала выбирается канал 1 и снимается напряжения, далее выбирается второй и также снимается напряжение. Измерения каналов происхоид 400 раз, далее вычисляется среднее значение и выводятся на символьный дисплей.
// Измерение постоянного тока с помощью AVR #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> unsigned int voltage, current, adc_counter; volatile unsigned long voltage_value, current_value; // Функции работы с LCD #define RS PD0 #define EN PD2 // Функция передачи команды void lcd_com(unsigned char p) { PORTD &= ~(1 << RS); // RS = 0 (запись команд) PORTD |= (1 << EN); // EN = 1 (начало записи команды в LCD) PORTD &= 0x0F; PORTD |= (p & 0xF0); // старший нибл _delay_us(100); PORTD &= ~(1 << EN); // EN = 0 (конец записи команды в LCD) _delay_us(100); PORTD |= (1 << EN); // EN = 1 (начало записи команды в LCD) PORTD &= 0x0F; PORTD |= (p << 4); // младший нибл _delay_us(100); PORTD &= ~(1 << EN); // EN = 0 (конец записи команды в LCD) _delay_us(100); } // Функция передачи данных void lcd_data(unsigned char p) { PORTD |= (1 << RS)|(1 << EN); // RS = 1 (запись данных), EN - 1 (начало записи команды в LCD) PORTD &= 0x0F; PORTD |= (p & 0xF0); // старший нибл _delay_us(100); PORTD &= ~(1 << EN); // EN = 0 (конец записи команды в LCD) _delay_us(100); PORTD |= (1 << EN); // EN = 1 (начало записи команды в LCD) PORTD &= 0x0F; PORTD |= (p << 4); // младший нибл _delay_us(100); PORTD &= ~(1 << EN); // EN = 0 (конец записи команды в LCD) _delay_us(100); } // Функция вывода строки на LCD void lcd_string(unsigned char command, char *string) { lcd_com(0x0C); lcd_com(command); while(*string != '\0') { lcd_data(*string); string++; } } // Функция вывода переменной void lcd_num_to_str(unsigned int value, unsigned char nDigit) { switch(nDigit) { case 4: lcd_data((value/1000)+'0'); case 3: lcd_data(((value/100)%10)+'0'); case 2: lcd_data(((value/10)%10)+'0'); case 1: lcd_data((value%10)+'0'); } } // Функция инициализации LCD void lcd_init(void) { DDRD = 0xFF; PORTD = 0x00; _delay_ms(50); // Ожидание готовности ЖК-модуля // Конфигурирование четырехразрядного режима PORTD |= (1 << PD5); PORTD &= ~(1 << PD4); // Активизация четырехразрядного режима PORTD |= (1 << EN); PORTD &= ~(1 << EN); _delay_ms(5); lcd_com(0x28); // шина 4 бит, LCD - 2 строки lcd_com(0x08); // полное выключение дисплея lcd_com(0x01); // очистка дисплея _delay_us(100); lcd_com(0x06); // сдвиг курсора вправо lcd_com(0x0C); // включение дисплея, курсор не видим } // Обработчик прерывания от АЦП ISR(ADC_vect) { ADCSRA = 0; // Выключаем АЦП if((ADMUX & 0x0F)==1) // Если был выбран канал ADC1 { voltage_value = voltage_value + ADC; // Суммируем измеренные значения напряжения и помещаем в буфер ADMUX = (ADMUX & 0xF0) | 0; // Выбираем канал ADC0 } else { current_value = current_value + ADC; // Суммируем измеренные значения тока и помещаем в буфер ADMUX = (ADMUX & 0xF0) | 1; // Выбираем канал ADC1 adc_counter++; // Увеличиваем счетчик выборок АЦП на 1 } // Включаем АЦП ADCSRA |= (1 << ADEN)|(1 << ADSC)|(1 << ADPS2)|(1 << ADPS1)|(1 << ADPS0)|(1 << ADIE); } int main(void) { ADMUX |= (1 << REFS1)|(1 << REFS0); // Внутренний ИОН 2,56V ADMUX |= (1 << MUX0); // Подключаем канал ADC1 ADCSRA |= (1 << ADEN) // разрешение АЦП |(1 << ADSC) // запуск преобразования |(1 << ADPS2)|(1 << ADPS1)|(1 << ADPS0) // предделитель на 128 |(1 << ADIE); // разрешение прерывания от АЦП sei(); // Глобально разрешаем прерывания lcd_init(); // Инициализация LCD _delay_ms(25); lcd_string(0x80 ,"VOLTS * AMPERES"); lcd_string(0xC0 ," . * . "); while(1) { // вычисляем среднее значение АЦП if (adc_counter > 400) { ADCSRA = 0; // Выключаем АЦП // преабразуем данные в реальное значение напряжения voltage = (voltage_value/adc_counter) * 11/4; // преабразуем данные в реальное значение тока current = (current_value/adc_counter) * 10/4; adc_counter = 0; // Обнуляем счетчик выборок АЦП voltage_value = 0; // Обнуляем буфер значений напряжения current_value = 0; // Обнуляем буфер значений тока // Выводим данные на LCD lcd_com(0xC0); lcd_num_to_str(voltage/100, 2); lcd_com(0xC3); lcd_num_to_str(voltage, 2); lcd_com(0xC9); lcd_num_to_str(current/1000, 1); lcd_com(0xCB); lcd_num_to_str(current, 3); // Включаем АЦП ADCSRA |= (1 << ADEN)|(1 << ADSC)|(1 << ADPS2)|(1 << ADPS1)|(1 << ADPS0)|(1 << ADIE); } _delay_ms(1); } }]]>
Термопары испольщуются там где нам нужно измерить высокую температуру до 2000 градусов. При таких температурах цифровые датчики сразу бы вышли из строя. Есть много разных видов теромопар, но наибольшей популярностью пользуются термопары типа K (хромель-алюминий), это связано с их практически линейным графиком изменения теромоэдс. Такие термопары устанавливаются в различные виды водонагревателей, паяльных станций, их используют в установках по плавке металла.
График зависимости термоэдс от температуры для термопар типа K практически линейный на всем диапазоне температуры.
Измеренно значение термоэдс нужно преобразовать в температуру. Преобразование осуществляется при помощи коэффициента который постояннен для всего диапазано измерения температуры.
Для измерения термоэдс будем использовать АЦП (аналого-цифровой преобразователь). Для того чтобы подлючить термопару к микрокнтроллеру используется ОУ (операционный усилитель) который включается по неинвертирующей схеме. Дело в том что значение эдс очень мало и его необходимо усилить при помощи ОУ.\
Для того чтобы найти отношение входного и выходного напряжения нужно воспользоваться формулой:
Vout/Vin=1+(R2/R1)
От номинала сопротилений R1 и R2 которые выполняют функцию обратной связи, зависит отношение входного и выходного напряжения. Уселение сигнала должно выбирать исходя из выбранного ИОН - источника опорного напряжения. Например если в качестве ИОН выбрано напряжения в 5 В, а максимальный предел измеряемой температуры 1000 градусов, при такой температуре термоэдм состовит 41.3 мВ. Это напряжение необходимо будет преобразовать в 5 В на входе в АЦП. Т.е нам нужно чтобы при такой температуре на входе в АЦП было напряжение в 5 В. Коэффициент усиления получился равным 120.
В результате получилась такой модуль:
А так выглядит теомапара которая шла в комплекте с мультиметром
Код программы
$regfile = "m8def.dat" $crystal = 8000000 Dim W As Integer 'подключение двухстрочного дисплея Config Lcdpin=Pin,Rs=Portb.0,E=Portd.7,Db4=Portd.6,Db5=Portd.5,Db6=Portb.7,Db7=Portb.6 Config Lcd = 16 * 2 Cursor Off Cls 'считывание значения с АЦП по прерыванию от таймера Config Timer1 = Timer , Prescale = 64 On Timer1 Acp 'конфигурация АЦП Config Adc = Single , Prescaler = Auto , Reference = Avcc Enable Interrupts Enable Timer1 Do Cls Rem Температура: Lcd "Teјѕepaїypa:" Lowerline Lcd W Waitms 200 Loop 'работа с АЦП Acp: Start Adc 'запуск АЦП W = Getadc(1) W = W / 1.28 'подгоняем замеры под действ. температуру Return End
Число 1.28 бы подогнато опытным путем. В качестве эталонной температуры была температура кипения воды 100 градусов. Зная температуру и подгоняя коэффициент добиваемся аналогичных показаний на дисплее.
После того как выставил показания, измерил температуру в пламени зажигалки, прибор показал значение в 700 градусов. При комнатной температуре 25 градусов прибор почему то показывал 50.
]]>Термопары испольщуются там где нам нужно измерить высокую температуру до 2000 градусов. При таких температурах цифровые датчики сразу бы вышли из строя. Есть много разных видов теромопар, но наибольшей популярностью пользуются термопары типа K (хромель-алюминий), это связано с их практически линейным графиком изменения теромоэдс. Такие термопары устанавливаются в различные виды водонагревателей, паяльных станций, их используют в установках по плавке металла.
График зависимости термоэдс от температуры для термопар типа K практически линейный на всем диапазоне температуры.
Измеренно значение термоэдс нужно преобразовать в температуру. Преобразование осуществляется при помощи коэффициента который постояннен для всего диапазано измерения температуры.
Для измерения термоэдс будем использовать АЦП (аналого-цифровой преобразователь). Для того чтобы подлючить термопару к микрокнтроллеру используется ОУ (операционный усилитель) который включается по неинвертирующей схеме. Дело в том что значение эдс очень мало и его необходимо усилить при помощи ОУ.\
Для того чтобы найти отношение входного и выходного напряжения нужно воспользоваться формулой:
Vout/Vin=1+(R2/R1)
От номинала сопротилений R1 и R2 которые выполняют функцию обратной связи, зависит отношение входного и выходного напряжения. Уселение сигнала должно выбирать исходя из выбранного ИОН - источника опорного напряжения. Например если в качестве ИОН выбрано напряжения в 5 В, а максимальный предел измеряемой температуры 1000 градусов, при такой температуре термоэдм состовит 41.3 мВ. Это напряжение необходимо будет преобразовать в 5 В на входе в АЦП. Т.е нам нужно чтобы при такой температуре на входе в АЦП было напряжение в 5 В. Коэффициент усиления получился равным 120.
В результате получилась такой модуль:
А так выглядит теомапара которая шла в комплекте с мультиметром
Код программы
$regfile = "m8def.dat" $crystal = 8000000 Dim W As Integer 'подключение двухстрочного дисплея Config Lcdpin=Pin,Rs=Portb.0,E=Portd.7,Db4=Portd.6,Db5=Portd.5,Db6=Portb.7,Db7=Portb.6 Config Lcd = 16 * 2 Cursor Off Cls 'считывание значения с АЦП по прерыванию от таймера Config Timer1 = Timer , Prescale = 64 On Timer1 Acp 'конфигурация АЦП Config Adc = Single , Prescaler = Auto , Reference = Avcc Enable Interrupts Enable Timer1 Do Cls Rem Температура: Lcd "Teјѕepaїypa:" Lowerline Lcd W Waitms 200 Loop 'работа с АЦП Acp: Start Adc 'запуск АЦП W = Getadc(1) W = W / 1.28 'подгоняем замеры под действ. температуру Return End
Число 1.28 бы подогнато опытным путем. В качестве эталонной температуры была температура кипения воды 100 градусов. Зная температуру и подгоняя коэффициент добиваемся аналогичных показаний на дисплее.
После того как выставил показания, измерил температуру в пламени зажигалки, прибор показал значение в 700 градусов. При комнатной температуре 25 градусов прибор почему то показывал 50.
]]>]]>
]]>
Первай каскад усиления собран на лампе 6С4П в анодную цепь которого стоит резистор не большого сопротивления, использование такого резистора обеспечивает широкую АЧХ. На катодных резисторах не рассеивается лишнее тепло, так как есть фиксированное смещение.
Лампы выходного каскада включены параллельно в результате внутреннее сопротивление ламп уменьшается. Такое соединение ламп в итоге уменьшает выходное сопротивление усилителя, выходная мощность растет.
Автор: Петрушини В.Н. , г. Уссурийск
]]>
Первай каскад усиления собран на лампе 6С4П в анодную цепь которого стоит резистор не большого сопротивления, использование такого резистора обеспечивает широкую АЧХ. На катодных резисторах не рассеивается лишнее тепло, так как есть фиксированное смещение.
Лампы выходного каскада включены параллельно в результате внутреннее сопротивление ламп уменьшается. Такое соединение ламп в итоге уменьшает выходное сопротивление усилителя, выходная мощность растет.
Автор: Петрушини В.Н. , г. Уссурийск
]]>На самом деле было внесено несколько корректив к существующей схеме, которые содействуют более рациональной эксплуатации ламп, но модификации в их структуре были незначительными. Электрическая схема канала видоизмененного лампового усилителя представлена на рисунке.
Добавленные компоненты изменили общепринятую сигнатуру на принципиальной схеме. В связи с этим следует обратить внимание на тот момент, что дальше будет употребляться другая нумерация.
Для начала, в связи с настоятельными предложениями настоящих любителей качественной звукотехники, ввели теплообменники в катодные цепи автоматического смещения (С4 и С7 для ламп VL1 иYL2 в соответствии). Эти конденсаторы способствуют устранению воздействия резисторов в цепи катода на выходное противодействие каскадов – усилителей. В случае, если на каскаде VL1 это сказывается не так очевидно, то введение теплообменника С7 в катодную цепь выходного пентода VL2 дает возможность сделать больше допустимую мощность.
Немного сложнее стала цепь подачи общей отрицательной обратной связи (R4,R7) лампы. Это было осуществлено для того, чтобы сделать слабее взаимодействие показателей данной цепи на работу лампы VL1. В результате напряжения смещения данной лампы оно почти целиком предопределяется силой сопротивляемости катодного резистора R5. В связи с этим, не нужно его подбирать вследствие модификации глубины обратной связи.
Схема лампового усилителя отличается введением еще одной двухпозиционной перемычки JP2, который дает возможность увеличить комфорт для экспериментаторов. С помощью джампера возникает возможность совершать переключение лампы из пентодного в триодный режим и обратно.
Схема лампового усилителя отображает пентодное включение, в то время когда сетка электровакуумного прибора совершает подключение к самому аноду. В данном случае вольт – амперные показатели ламп подобны характеристикам триодов, чем и объясняется этимология данного названия.
Следует отметить, что этот способ экспериментаторы должны применять достаточно осторожно, так как модификация лампового режима может повлечь потребность коррекции величины смещения на первой сетке. В результате данных манипуляций придется менять и величину сопротивления R10.В печатную плату тоже внесли доработки. При этом первоначальные габариты и показатели были сохранены, но ее монтаж стал более плотным.
Печатная плата в тандеме с перемычкой JP2 не рекомендуется к использованию, так как множество сопутствующих проводников значительно увеличивают плотность монтажа.
Нагрев конденсаторов
Было замечено много случаев, когда во время использования усилителя происходит перегрев электролитических конденсаторов. Это результат излучения тепла лампами, что не сеть большой проблемой, так как температура нагрева конденсаторов не переступает отметку 45 градусов по Цельсию, а это не составляет никакой опасности. В случае размещения усилителя на печатной плате, сборка которой предполагает открытую конструкцию, возможно, возникнет надобность задействовать тепловые элементы, чтобы снизить уровень нагрева конденсаторов.
Замена ламп
Лампы 6П14П и 6П18П очень схожи по своим показателям, отличия касаются только номинального напряжения на аноде. Заменив одну лампу на другую - поправок в схеме делать не нужно. Но замена этих двух моделей ламп иными лампами предполагает подбор катодного резистора. Подобные по характеристикам к 6П14П лампы представлены в таблице.
Здесь можно задействовать лампу 6П1П, но она имеет иную цоколевку, и при этом нужно будет менять рисунок печатной платы. Использование лампы 6П43П будет не рациональным в связи с большой величиной необходимого смещения. Лампу 6Н3П без всяких модификаций можно заменить на 6Н26П. Использование 6Н1П тоже не предусматривает корректировки схемы, но у нее другая цоколевка.
]]>На самом деле было внесено несколько корректив к существующей схеме, которые содействуют более рациональной эксплуатации ламп, но модификации в их структуре были незначительными. Электрическая схема канала видоизмененного лампового усилителя представлена на рисунке.
Добавленные компоненты изменили общепринятую сигнатуру на принципиальной схеме. В связи с этим следует обратить внимание на тот момент, что дальше будет употребляться другая нумерация.
Для начала, в связи с настоятельными предложениями настоящих любителей качественной звукотехники, ввели теплообменники в катодные цепи автоматического смещения (С4 и С7 для ламп VL1 иYL2 в соответствии). Эти конденсаторы способствуют устранению воздействия резисторов в цепи катода на выходное противодействие каскадов – усилителей. В случае, если на каскаде VL1 это сказывается не так очевидно, то введение теплообменника С7 в катодную цепь выходного пентода VL2 дает возможность сделать больше допустимую мощность.
Немного сложнее стала цепь подачи общей отрицательной обратной связи (R4,R7) лампы. Это было осуществлено для того, чтобы сделать слабее взаимодействие показателей данной цепи на работу лампы VL1. В результате напряжения смещения данной лампы оно почти целиком предопределяется силой сопротивляемости катодного резистора R5. В связи с этим, не нужно его подбирать вследствие модификации глубины обратной связи.
Схема лампового усилителя отличается введением еще одной двухпозиционной перемычки JP2, который дает возможность увеличить комфорт для экспериментаторов. С помощью джампера возникает возможность совершать переключение лампы из пентодного в триодный режим и обратно.
Схема лампового усилителя отображает пентодное включение, в то время когда сетка электровакуумного прибора совершает подключение к самому аноду. В данном случае вольт – амперные показатели ламп подобны характеристикам триодов, чем и объясняется этимология данного названия.
Следует отметить, что этот способ экспериментаторы должны применять достаточно осторожно, так как модификация лампового режима может повлечь потребность коррекции величины смещения на первой сетке. В результате данных манипуляций придется менять и величину сопротивления R10.В печатную плату тоже внесли доработки. При этом первоначальные габариты и показатели были сохранены, но ее монтаж стал более плотным.
Печатная плата в тандеме с перемычкой JP2 не рекомендуется к использованию, так как множество сопутствующих проводников значительно увеличивают плотность монтажа.
Нагрев конденсаторов
Было замечено много случаев, когда во время использования усилителя происходит перегрев электролитических конденсаторов. Это результат излучения тепла лампами, что не сеть большой проблемой, так как температура нагрева конденсаторов не переступает отметку 45 градусов по Цельсию, а это не составляет никакой опасности. В случае размещения усилителя на печатной плате, сборка которой предполагает открытую конструкцию, возможно, возникнет надобность задействовать тепловые элементы, чтобы снизить уровень нагрева конденсаторов.
Замена ламп
Лампы 6П14П и 6П18П очень схожи по своим показателям, отличия касаются только номинального напряжения на аноде. Заменив одну лампу на другую - поправок в схеме делать не нужно. Но замена этих двух моделей ламп иными лампами предполагает подбор катодного резистора. Подобные по характеристикам к 6П14П лампы представлены в таблице.
Здесь можно задействовать лампу 6П1П, но она имеет иную цоколевку, и при этом нужно будет менять рисунок печатной платы. Использование лампы 6П43П будет не рациональным в связи с большой величиной необходимого смещения. Лампу 6Н3П без всяких модификаций можно заменить на 6Н26П. Использование 6Н1П тоже не предусматривает корректировки схемы, но у нее другая цоколевка.
]]>Выявлено, что ламповым устройствам для функционирования необходимо наличие выходного согласующего трансформатора. Он отвечает за оптимизацию нагрузочной характеристики ламп. Так, на выходе получается наивысший показатель мощности.
Следует осознавать, что использование трансформатора в любом случае приводит к ограничению полосы усиливаемых частот. В данном случае имеются низкочастотная и высокочастотная границы. Первая обуславливается установленным фильтром ВЧ, вторая же граница - НЧ. ВЧ образуется сопротивлением ламп и индуктивностью первичной обмотки. НЧ формируется за счет того же сопротивления и паразитной индуктивности. Отсюда следует, что чем ниже показатель сопротивления, тем шире будет диапазон выпускаемых частот
Наиболее выгодным способом снижения выходного сопротивления в схеме считается применение ООС. ООС расшифровывается как отрицательная обратная связь. Его, как правило, используют для уменьшения значения искажений различной природы. Причем ее могут применять как для ламп, так и для трансформаторов. Однако стоит учитывать, что в представленном устройстве ООС используется ограниченно из-за сложных качественных показателей трансформатора.
Чтобы получить широкую полосу частот, можно сделать следующее:
Последнее осуществляется с помощью параллельного подключения ламп, либо используя ламповые триодыЕсли снижать показатель выходного сопротивления представленными путями, то следует в виде источника сигнала применять транзисторный каскад, который представлен в виде источника тока. Данным устройством служит каскад на транзисторе (Tri, Tri2). В итоге получается, что без общей обратной связи была достигнута высокая линейность, и при это снижен показатель выходного сопротивления ламп.
Схема построена таким образом, что у усилителя достигнута полная симметрия плеч. За счет этого усилитель становится практически не чувствительным к пульсациям от напряжений
В представленном комбинированном устройстве схема построена так, что выходной каскад охватывается глубокой обратной связью по напряжению. В результате при возникновении перегрузки отсечка наблюдается резкой. Кроме того, при возникновении перегрузки образуется сеточный ток, который перезаряжает конденсаторы С1 и С2. Для решения этой проблемы целесообразнее убрать разделительный конденсатор. Тогда для ламп будет обеспечен режим работы по постоянному току.
К недостаткам представленной схемы устройства можно отнести использование оксидного конденсатора. Ему для работы нужно возникновение поляризующего напряжения. Тогда поляризация в устройстве возникает за счет деления сопротивления резистором R11 на две равноценные части. Устройство комбинированного УМЗЧ можно эксплуатировать с добавлением в нее частей отечественного производителя.
]]>Выявлено, что ламповым устройствам для функционирования необходимо наличие выходного согласующего трансформатора. Он отвечает за оптимизацию нагрузочной характеристики ламп. Так, на выходе получается наивысший показатель мощности.
Следует осознавать, что использование трансформатора в любом случае приводит к ограничению полосы усиливаемых частот. В данном случае имеются низкочастотная и высокочастотная границы. Первая обуславливается установленным фильтром ВЧ, вторая же граница - НЧ. ВЧ образуется сопротивлением ламп и индуктивностью первичной обмотки. НЧ формируется за счет того же сопротивления и паразитной индуктивности. Отсюда следует, что чем ниже показатель сопротивления, тем шире будет диапазон выпускаемых частот
Наиболее выгодным способом снижения выходного сопротивления в схеме считается применение ООС. ООС расшифровывается как отрицательная обратная связь. Его, как правило, используют для уменьшения значения искажений различной природы. Причем ее могут применять как для ламп, так и для трансформаторов. Однако стоит учитывать, что в представленном устройстве ООС используется ограниченно из-за сложных качественных показателей трансформатора.
Чтобы получить широкую полосу частот, можно сделать следующее:
Последнее осуществляется с помощью параллельного подключения ламп, либо используя ламповые триодыЕсли снижать показатель выходного сопротивления представленными путями, то следует в виде источника сигнала применять транзисторный каскад, который представлен в виде источника тока. Данным устройством служит каскад на транзисторе (Tri, Tri2). В итоге получается, что без общей обратной связи была достигнута высокая линейность, и при это снижен показатель выходного сопротивления ламп.
Схема построена таким образом, что у усилителя достигнута полная симметрия плеч. За счет этого усилитель становится практически не чувствительным к пульсациям от напряжений
В представленном комбинированном устройстве схема построена так, что выходной каскад охватывается глубокой обратной связью по напряжению. В результате при возникновении перегрузки отсечка наблюдается резкой. Кроме того, при возникновении перегрузки образуется сеточный ток, который перезаряжает конденсаторы С1 и С2. Для решения этой проблемы целесообразнее убрать разделительный конденсатор. Тогда для ламп будет обеспечен режим работы по постоянному току.
К недостаткам представленной схемы устройства можно отнести использование оксидного конденсатора. Ему для работы нужно возникновение поляризующего напряжения. Тогда поляризация в устройстве возникает за счет деления сопротивления резистором R11 на две равноценные части. Устройство комбинированного УМЗЧ можно эксплуатировать с добавлением в нее частей отечественного производителя.
]]>Последнее время все большей популярностью начинают пользоваться схемы ламповых усилителей мощности звуковой частоты. Представленная ниже схема лампового усилителя на лампе 6П3С может работать в в двух режимах:
Усилитель собран на лампах 6H9C, и двух лампах 6П3С (или EL34) выходного каскада. Усилитель на лампах EL34 при ультралинейном включении может выдать 16 Вт мощности, при триодном включнии мощность составит порядка 8 Вт. А если использоватб лампы 6П3С в выходном каскаде то мощность составит 12 и 6 Вт соответсвенно. Нелинейные искажения на уровне 0,5%. Чувствительность на входе равна 0,65 В.
Входной сигнал низкого уровня поступает на управляющую сетку триода VL1/1 6Н9С, с анода этой лампы сигнал далее поступает на вход второго триода VL1/2. С анодов триодов сигнал посутпает на лампы выходных каскадов.
Фазоинвертор с резистивной нагрузкой, применяемый в схеме имеет больший коэффициент усиления и более лучшее звучание. С него сигнал через конденсаторы и резисторы поступает на вход ламп выходных каскадов. Резисторы устанавливаяются для того чтобы предотвратить самовозбуждение выходного каскада. Для правильной работы выходного каскада необходимо определенное напряжение смещения, это напряжеиние подается с трансформатора питания с отдельной обмотки через делитель напяржения.
С анодов ламп 6П3С (EL34) сигнал поступает в выходной трансформатор и далее с него уже поступает в нагрузку. Выбор режима работы каскада-линейный или триодный осуществляется при помощи переключателя П1.
В ультралинейном режиме работы сетка с выходной лампы соединяется с отводом трансформатора Тр, а если выбран триодный режим то сетка соединяется с анодом выходной лампы.
Лампы который установлены вы выходном каскаде EL34/6П3С подбираются попарно. Лампы на входе 6H9C должны быть с минимальными расхождениями падений напряжений на анодах триодов.
Конденсаторы C2-C4 желательно использовать серии K78-2 на напряжение 250 В. Конденсатор C11 - шунтирующий емкостью 4 мкФ должен быть пленочным или бумажным с напряжением 400 В. Все другие шунтирующие конденсаторы серии K73-17 пленочные. Электролетические конденсаторы можно использовать таких фирм как "Samsung","Elna","Rubicon"
Резисторы включенные в анодную цепь и в цепь управления лампами (управляющих сеток) желательно использовать серии ВС, другие можно брать серии МЛТ, все подстроечные резисторы серии СП.
В данном примере применен трансформатор от радиолы "Симфония", конечно можно использовать и другой трансформатор в выходном каскаде которые могут работать с лампами 6П3С (EL34).
В блоке питания всей схемы использован трансформатор ТАН107, подойдут и другие из серий ТАН или ТС. Их нужно выбирать таким образом чтобы обеспечить требуемые параметры для ламп. Для лампы 6П3С нужен ток не меньше 0,3 А при напряжении 250-270 В, а если в схеме используется лампа EL34 то выдаваемый ток должен быть не меньше 0,4 А. Напряжеине смещения должно быть 40-50 В и силе тока 3 А для лампы 6П3С и 4 А для лампы EL34.
Для выпремления переменного напряжения выдаваемым трансформатором устанавливаются как вы уже наверное догадались, диодные мосты, собранные на диодах. Диоды шунтируются пленочными конденсаторами (они на схеме не показаны). Для анодной цепи должны быть конденсаторы 10 нФ на 400 В, а для смещения 1,5 нФ на 160 В.
В блоке питания использованы фильтры от телевизора УЛПЦТ.
Для того чтобы осуществить настройку нужно перейти в режим молчания. В нагрузку нужно подключить сопротивлние достаточной мощности близкой к номиналу.
Настройка выходного каскада осуществляется путем выставления напряжения в точке КТ1 в значение 1,8 - 2 В. Подобрать такое значение нам поможет резистор R4.
Далее нам необходимо отригулировать напряжение смещения и добится значения в 0,035-0,04 В в точках КТ1 и КТ2. Регулировка осуществляется резисторами смещения R10 и R12. Такое напряжение соответсвует току анода в 35-40 мА
Фазоинвертирующий каскад тоже нужно настроить, нужно выставить одинаковое напряжение на анодах лампы 6Н9С, настройка осуществляется при помощи резистора R7 и подаче напряжения значением в 0,5 В с частотой в 3 кГц на сетку лампы L1/1.
]]>Последнее время все большей популярностью начинают пользоваться схемы ламповых усилителей мощности звуковой частоты. Представленная ниже схема лампового усилителя на лампе 6П3С может работать в в двух режимах:
Усилитель собран на лампах 6H9C, и двух лампах 6П3С (или EL34) выходного каскада. Усилитель на лампах EL34 при ультралинейном включении может выдать 16 Вт мощности, при триодном включнии мощность составит порядка 8 Вт. А если использоватб лампы 6П3С в выходном каскаде то мощность составит 12 и 6 Вт соответсвенно. Нелинейные искажения на уровне 0,5%. Чувствительность на входе равна 0,65 В.
Входной сигнал низкого уровня поступает на управляющую сетку триода VL1/1 6Н9С, с анода этой лампы сигнал далее поступает на вход второго триода VL1/2. С анодов триодов сигнал посутпает на лампы выходных каскадов.
Фазоинвертор с резистивной нагрузкой, применяемый в схеме имеет больший коэффициент усиления и более лучшее звучание. С него сигнал через конденсаторы и резисторы поступает на вход ламп выходных каскадов. Резисторы устанавливаяются для того чтобы предотвратить самовозбуждение выходного каскада. Для правильной работы выходного каскада необходимо определенное напряжение смещения, это напряжеиние подается с трансформатора питания с отдельной обмотки через делитель напяржения.
С анодов ламп 6П3С (EL34) сигнал поступает в выходной трансформатор и далее с него уже поступает в нагрузку. Выбор режима работы каскада-линейный или триодный осуществляется при помощи переключателя П1.
В ультралинейном режиме работы сетка с выходной лампы соединяется с отводом трансформатора Тр, а если выбран триодный режим то сетка соединяется с анодом выходной лампы.
Лампы который установлены вы выходном каскаде EL34/6П3С подбираются попарно. Лампы на входе 6H9C должны быть с минимальными расхождениями падений напряжений на анодах триодов.
Конденсаторы C2-C4 желательно использовать серии K78-2 на напряжение 250 В. Конденсатор C11 - шунтирующий емкостью 4 мкФ должен быть пленочным или бумажным с напряжением 400 В. Все другие шунтирующие конденсаторы серии K73-17 пленочные. Электролетические конденсаторы можно использовать таких фирм как "Samsung","Elna","Rubicon"
Резисторы включенные в анодную цепь и в цепь управления лампами (управляющих сеток) желательно использовать серии ВС, другие можно брать серии МЛТ, все подстроечные резисторы серии СП.
В данном примере применен трансформатор от радиолы "Симфония", конечно можно использовать и другой трансформатор в выходном каскаде которые могут работать с лампами 6П3С (EL34).
В блоке питания всей схемы использован трансформатор ТАН107, подойдут и другие из серий ТАН или ТС. Их нужно выбирать таким образом чтобы обеспечить требуемые параметры для ламп. Для лампы 6П3С нужен ток не меньше 0,3 А при напряжении 250-270 В, а если в схеме используется лампа EL34 то выдаваемый ток должен быть не меньше 0,4 А. Напряжеине смещения должно быть 40-50 В и силе тока 3 А для лампы 6П3С и 4 А для лампы EL34.
Для выпремления переменного напряжения выдаваемым трансформатором устанавливаются как вы уже наверное догадались, диодные мосты, собранные на диодах. Диоды шунтируются пленочными конденсаторами (они на схеме не показаны). Для анодной цепи должны быть конденсаторы 10 нФ на 400 В, а для смещения 1,5 нФ на 160 В.
В блоке питания использованы фильтры от телевизора УЛПЦТ.
Для того чтобы осуществить настройку нужно перейти в режим молчания. В нагрузку нужно подключить сопротивлние достаточной мощности близкой к номиналу.
Настройка выходного каскада осуществляется путем выставления напряжения в точке КТ1 в значение 1,8 - 2 В. Подобрать такое значение нам поможет резистор R4.
Далее нам необходимо отригулировать напряжение смещения и добится значения в 0,035-0,04 В в точках КТ1 и КТ2. Регулировка осуществляется резисторами смещения R10 и R12. Такое напряжение соответсвует току анода в 35-40 мА
Фазоинвертирующий каскад тоже нужно настроить, нужно выставить одинаковое напряжение на анодах лампы 6Н9С, настройка осуществляется при помощи резистора R7 и подаче напряжения значением в 0,5 В с частотой в 3 кГц на сетку лампы L1/1.
]]>Искать их в обычных магазинах радиодеталей совершенно нет смысла, лучше место для поиска это радиорынки, частные объявления в интернете и магазины для промышленного оборудования.
Высоковольтные конденсаторы бывают разных типов и марок, ниже представлен список некоторых ВВ конденсаторов. Все они отечественного производства, современные аналоги стоят гораздо дороже.
К75-25 - импульсные конденсаторы с рабочими напряжениями от 10 до 50 кВ, емкостью от 2 до 25 нФ их корпус сход с K75-15, они работают с напряжением с частотой до 500 Гц, что делает возможным их использование в качестве конденсаторов ММС в искровой катушки Тесла.
K15-4 - Зеленые керамические конденсотары "гриншиты" встречаются в страх телевизорах на лампах, в умножителях напряжения. Такие конденсторы имеют не большую емкость и большое рабочее напряжение. Такие конденстаоры не любят высокочастотные цепи, имеют большое значение TKE, с увеличением температуры емкость сильно меняется. Такие конденсаторы очень не любят высокчастотные цепи. Они довольно неплохо работают в генераторе Маркса.
K15-5 - Небольшие плоские керамические конденсаторы рыжего цвета. Которые постоянно выходят из строя, емкость постоянно меняется. Их можно использовать если только в высокочастотных фильтрах. Рабочее напряжение до 6,3 кВ. Их можно спокойно приобрести в магазинах радиотоваров. Их также можно использовать в генераторе Маркса.
К73-14 - Пленочные конденсаторы применяемые в цепях постоянного тока, рассчитаны на приличное напряжение в 25 кВ. Такие конденсаторы имеют хорошую емкость и больщую эквивалентную индуктивность, поэтому их нельзя приемнять в катушка Тесла по причине того что они быстро греются и дохнут. Они отлично подойдут для всевозможных умножителей напряжения и генераторах Маркса. Номиналы таких конденсаторов 16 кВ 2200 пФ, 25 кв 2200 пФ и др.
КВИ-3 - Дисковидные керамические конденсаторы, которые сейчас встречаются довольно редко. Часто использовались в искровой катушки Тесла. Но такие конденсаторы имеют очень большой минус - это их цена. Так как обкладки выполнены их серебра то конденсатор с большой емкостью будет стоить приличные деньги. Поэто вместо них начали использовать другие К75-25. А КВИ конденсаторы устанавливают в высоковольтные устройства в качестве фильтра ВЧ. КВИ кондесаторы встречаются следующих номиналах: 3300 пф 10 кВ, 4700 пФ 12 кВ, 6800 пФ 12 кВ. Конденстатор с емкостью 6800 пФ довольно дорогой, заводской такой будет стоить до 2000 рублей за 1 штуку.
К15У1 - эти конденсаторы по внешнему виду очень похожи на высоковольтные конденсаторы КВИ-3, но опытный радиолюбитель эти различия видит сразу. К15У1 имеют более сглаженную форму диска на краях. Также у таких конденсаторов намного больше разных форм и номиналов. Могут быть размеры как миниатюрные так и здоровые блины с ладонь.
К15У-2 - в отличии от предыдущего конденсатора, имеет форму не блина а трубки у которой концы утолщены. К15У отличаются от КВИ тем что они имеют нормированную реактивную мощность. Поэтому их можно использовать в ламповых катушказ Тесла. Такие конденсаторы применялись в передатчиках со значительными мощностями и другой подобной радиоаппаратуре. На радиорынках можно найти конденсаторы со следующими номиналами:
ТГК1-У3 - По характеристикам схожы с К15У. Имеют форму "капли" и красный цвет. Конденсаторы очень редкие и большие. Наиболее распространены конденсаторы с номиналом 1000 пФ 8 кВ.
Микроволновые конденсаторы - такие конденсаторы устанавливаются в микроволновках где работают в паре с шифтером для МОТа. Эти конденсаторы масленные, они выпускаются с рабочим напряжением в 2000-2200 В и емкостью около 0,96-1,10 мкФ. Они отлично работают в качестве умножителя МОТа. Найти такие конденсаторы можно в старых сломаных микроволновках либо на радиорынке.
К41-1а - Обычные ни чем не приметные маслобумажные конденсаторы, есть экземпляры с большой емкостью и большим напряжением. Их модно применить, к примеру, в фильтре 50 Гц, либо в удвоителе напряжения. Найти им другое применение затруднительно. Емкость конденсаторов зависит от размеров.
КБГ - П - масляные конденсаторы, как можно было подумать что такие конденсаторы должны работать в фильтрах или в умножителях напряжения. Но такие конденсаторы,как показала практика, можно использовать в искровой катушке Тесла. Но нужно быть осторожным так как разрыв таких конденсаторов может привести к разбрызгиванию масла. Распространенные номиналы: 10 кВ, 0.1 мкФ; 5 кВ, 1 кмФ; 20 кВ, 0.1 мкФ.
К41И-7 - также как и предыдущий конденсатор он масленный, применяется для накачки лазеров. Имеет хороший номинал 5 кВ 100 мкФ, все такого конденсатора 12.5 кг. Рекомендуется заряжать такой конденсатор только до половины. Ток разряда таких конденсаторов 100 - 200 А.
К75-28 - схож с предыдущим конденсатором, отличается габаритами, он меньше по размерам и по весу. Можно встретить такие конденсаторы 3 кВ и емкостью 100 мкФ, ток разряда до 2000 А.
К75-40 - Импульсный конденсатор, также похож на К41И-7 но с лучшим разрядным током, уже порядка 10 кА и множество разных номиналов. Но эти высоковольтные конденсаторы встречаются редко и довольно дорогие.
К15-10 - Керамический импульсный конденсатор. Не расчитан на частотный режим. Пригоден для работы с импульсным током с частотой следования импульсов несколько десятков Герц. Отлично подойдут для сборки генератора Маркса. Рабочее напряжение до 50 кВ. При работе с напряжением более рабочей конденсатор нужно будет погрузить в бак с маслом, для того чтобы избежать пробоя по поверхности. Обкладки такого конденсатора выполнены из технического серебра.
Вакуумные конденсаторы - Могут быть как перменные так и постоянные. Их главное преимущество это отсутсвие диэлектрических потерь. Поэтому они могут работать при любых режимах и частотах при высоком напряжении. К минусам можно отнести их хрупкость так как имеем дело со стеклом и малую емкость. Самые оптимальные на мой взгляд это высоковольтные конденсаторы переменной емкости марки КП.
]]>
Искать их в обычных магазинах радиодеталей совершенно нет смысла, лучше место для поиска это радиорынки, частные объявления в интернете и магазины для промышленного оборудования.
Высоковольтные конденсаторы бывают разных типов и марок, ниже представлен список некоторых ВВ конденсаторов. Все они отечественного производства, современные аналоги стоят гораздо дороже.
К75-25 - импульсные конденсаторы с рабочими напряжениями от 10 до 50 кВ, емкостью от 2 до 25 нФ их корпус сход с K75-15, они работают с напряжением с частотой до 500 Гц, что делает возможным их использование в качестве конденсаторов ММС в искровой катушки Тесла.
K15-4 - Зеленые керамические конденсотары "гриншиты" встречаются в страх телевизорах на лампах, в умножителях напряжения. Такие конденсторы имеют не большую емкость и большое рабочее напряжение. Такие конденстаоры не любят высокочастотные цепи, имеют большое значение TKE, с увеличением температуры емкость сильно меняется. Такие конденсаторы очень не любят высокчастотные цепи. Они довольно неплохо работают в генераторе Маркса.
K15-5 - Небольшие плоские керамические конденсаторы рыжего цвета. Которые постоянно выходят из строя, емкость постоянно меняется. Их можно использовать если только в высокочастотных фильтрах. Рабочее напряжение до 6,3 кВ. Их можно спокойно приобрести в магазинах радиотоваров. Их также можно использовать в генераторе Маркса.
К73-14 - Пленочные конденсаторы применяемые в цепях постоянного тока, рассчитаны на приличное напряжение в 25 кВ. Такие конденсаторы имеют хорошую емкость и больщую эквивалентную индуктивность, поэтому их нельзя приемнять в катушка Тесла по причине того что они быстро греются и дохнут. Они отлично подойдут для всевозможных умножителей напряжения и генераторах Маркса. Номиналы таких конденсаторов 16 кВ 2200 пФ, 25 кв 2200 пФ и др.
КВИ-3 - Дисковидные керамические конденсаторы, которые сейчас встречаются довольно редко. Часто использовались в искровой катушки Тесла. Но такие конденсаторы имеют очень большой минус - это их цена. Так как обкладки выполнены их серебра то конденсатор с большой емкостью будет стоить приличные деньги. Поэто вместо них начали использовать другие К75-25. А КВИ конденсаторы устанавливают в высоковольтные устройства в качестве фильтра ВЧ. КВИ кондесаторы встречаются следующих номиналах: 3300 пф 10 кВ, 4700 пФ 12 кВ, 6800 пФ 12 кВ. Конденстатор с емкостью 6800 пФ довольно дорогой, заводской такой будет стоить до 2000 рублей за 1 штуку.
К15У1 - эти конденсаторы по внешнему виду очень похожи на высоковольтные конденсаторы КВИ-3, но опытный радиолюбитель эти различия видит сразу. К15У1 имеют более сглаженную форму диска на краях. Также у таких конденсаторов намного больше разных форм и номиналов. Могут быть размеры как миниатюрные так и здоровые блины с ладонь.
К15У-2 - в отличии от предыдущего конденсатора, имеет форму не блина а трубки у которой концы утолщены. К15У отличаются от КВИ тем что они имеют нормированную реактивную мощность. Поэтому их можно использовать в ламповых катушказ Тесла. Такие конденсаторы применялись в передатчиках со значительными мощностями и другой подобной радиоаппаратуре. На радиорынках можно найти конденсаторы со следующими номиналами:
ТГК1-У3 - По характеристикам схожы с К15У. Имеют форму "капли" и красный цвет. Конденсаторы очень редкие и большие. Наиболее распространены конденсаторы с номиналом 1000 пФ 8 кВ.
Микроволновые конденсаторы - такие конденсаторы устанавливаются в микроволновках где работают в паре с шифтером для МОТа. Эти конденсаторы масленные, они выпускаются с рабочим напряжением в 2000-2200 В и емкостью около 0,96-1,10 мкФ. Они отлично работают в качестве умножителя МОТа. Найти такие конденсаторы можно в старых сломаных микроволновках либо на радиорынке.
К41-1а - Обычные ни чем не приметные маслобумажные конденсаторы, есть экземпляры с большой емкостью и большим напряжением. Их модно применить, к примеру, в фильтре 50 Гц, либо в удвоителе напряжения. Найти им другое применение затруднительно. Емкость конденсаторов зависит от размеров.
КБГ - П - масляные конденсаторы, как можно было подумать что такие конденсаторы должны работать в фильтрах или в умножителях напряжения. Но такие конденсаторы,как показала практика, можно использовать в искровой катушке Тесла. Но нужно быть осторожным так как разрыв таких конденсаторов может привести к разбрызгиванию масла. Распространенные номиналы: 10 кВ, 0.1 мкФ; 5 кВ, 1 кмФ; 20 кВ, 0.1 мкФ.
К41И-7 - также как и предыдущий конденсатор он масленный, применяется для накачки лазеров. Имеет хороший номинал 5 кВ 100 мкФ, все такого конденсатора 12.5 кг. Рекомендуется заряжать такой конденсатор только до половины. Ток разряда таких конденсаторов 100 - 200 А.
К75-28 - схож с предыдущим конденсатором, отличается габаритами, он меньше по размерам и по весу. Можно встретить такие конденсаторы 3 кВ и емкостью 100 мкФ, ток разряда до 2000 А.
К75-40 - Импульсный конденсатор, также похож на К41И-7 но с лучшим разрядным током, уже порядка 10 кА и множество разных номиналов. Но эти высоковольтные конденсаторы встречаются редко и довольно дорогие.
К15-10 - Керамический импульсный конденсатор. Не расчитан на частотный режим. Пригоден для работы с импульсным током с частотой следования импульсов несколько десятков Герц. Отлично подойдут для сборки генератора Маркса. Рабочее напряжение до 50 кВ. При работе с напряжением более рабочей конденсатор нужно будет погрузить в бак с маслом, для того чтобы избежать пробоя по поверхности. Обкладки такого конденсатора выполнены из технического серебра.
Вакуумные конденсаторы - Могут быть как перменные так и постоянные. Их главное преимущество это отсутсвие диэлектрических потерь. Поэтому они могут работать при любых режимах и частотах при высоком напряжении. К минусам можно отнести их хрупкость так как имеем дело со стеклом и малую емкость. Самые оптимальные на мой взгляд это высоковольтные конденсаторы переменной емкости марки КП.
]]>
Токоограничивающие предохранители ПКТ были разработаны для защиты трансформаторов напряжения и силовых трансформаторов, а также кабельных и воздушных линий электропередач от токов короткого замыкания и перегрузок.
Высоковольтный предохранитель ПКТ состоит из следующих элементов: два контакта, заменяемый патрон, два опорных изолятора. Заменяемый патрон, армированный латунными вставками, изготовлен из фарфора или же стекла. Он заполнен кварцевым песком высокой очистки, в котором располагается плавкий элемент из нихромовой или из посеребренной медной проволоки. Кроме того, некоторые предохранители оснащены указателем срабатывания, который выдвигается при помощи пружины.
Расшифровка ПКТ 101, ПКТ 102, ПКТ 103, ПКТ 104
ПКТ 101-10-16-20 У1:
П - предохранитель;
К - с кварцевым наполнителем;
Т - для силовых трансформаторов;
1 - однополюсный, с указателем срабатывания;
01 - конструктивное исполнение контакта;
10 - номинальное напряжение в киловольтах;
16 - номинальный ток предохранителя в амперах;
20 - номинальный ток отключения в килоамперах;
У- климатическое исполнение;
1 - категория размещения.
Предохранитель ПКТ 101, ПКТ 102, ПКТ 103, ПКТ 104 состоит из следующих элементов и поставляется в разобранном виде:
Патрон предохранителя состоит из фарфоровой трубки, заполненной кварцевым песком, которая армирована латунными колпачками с крышками. Плавкие вставки изготовляют из посеребренной медной проволоки. При номинальном токе до 7.5 А используют несколько параллельных вставок, намотанных на ребристый керамический сердечник. При больших токах устанавливают несколько спиральных вставок. Разрыв в патроне ПТ при коротком замыкании происходит вследствие интенсивного процесса деионизации дуги, которая возникает в местах пролегания плавкой вставки, в микроскопических зазорах между песчинками кварцевого наполнителя.
Контакт предохранителей ПКТ 101 состоит из контактных губок, охватываемых стальной скобой, обеспечивающей необходимое контактное давление; контактного вывода, состоящей из стольной планки, с медной накладной планкой, и ограничителей, обеспечивающих установку патрона в правильном положении и препятствующих выскальзыванию его из контактов при единичных сотрясениях.
Предохранители ПКТ 101 категории размещения 1 отличаются от предохранителей этой же категории размещения 3 формой опорных изоляторов и наличием в патроне дополнительных деталей, герметизирующих внутреннюю полость патрона.
Серия |
Ном.напряжение, кВ |
Ном. ток, А |
Ном. ток отключения,кА |
Климатическое исполнение и категория размещения |
ПКТ 101 |
6 |
2; 3,2; 5; 8; 10; 16; 20; 31,5 |
20 |
У3 |
2; 3,2; 5; 8; 10; 16; 20 |
40 |
У3; У1 |
||
31,5 |
20 |
У1 |
||
10 |
2; 3,2; 5; 8; 10; 16; 20 |
12,5; 31,5 |
У3 |
|
2; 3,2; 5; 8; 10; 16; 20 |
20 |
У1 |
||
31,5 |
12,5 |
У3; У1 |
||
ПКТ 102 |
6 |
31,5; 40; 50 |
31,5 |
У3 |
80 |
20 |
|||
10 |
31,5; 40 |
31,5 |
||
50 |
12,5 |
|||
ПКТ 103 |
6 |
80;100 |
31,5 |
|
160 |
20 |
|||
10 |
50 |
31,5 |
||
80 |
20 |
|||
100 |
12,5
|
Высоковольтные предохранители ПКТ и токоограничивающие патроны типа ПТ предназначены для защиты силовых трансформаторов, воздушных и кабельных линий, конденсаторов, электродвигателей в высоковольтных сетях переменного тока с номинальным напряжением от 6 до 35 кВ. А так же для защиты трансформаторов напряжения от сверхтоков.
В комплект поставки ПКТ входят: патрон ПТ (один, два, четыре), два опорных изолятора, два контакта.
Предохранитель пкт имеет плавкий элемент, изготовленный из электротехнической меди.
Корпус патрона предохранителя изготовлен из высококачественного термоустойчивого фарфора, с покрытием влагонепроницаемой глазурью. Колпаки изготвлены из электротехнической меди марки М1 с олово-висмутовым покрытием. Плавкий элемент ПКТ имеет уникальную конструкцию и также выполнен из электротехнической меди М1.
Патроны ПТ, входящие в комплектацию предохранителей ПКТ, производятся как с указателем срабатывания и ударным устройством, так и без оных. Указатели срабатывания имеют силу нажатия 50Н. Параллельно плавкому элементу подсоединена металлическая нить с высоким электрическим сопротивлением, прикрепленная с одной стороны к ударному механизму. При перегорании предохранителя так же перегорает натянутая нить и срабатывает ударный механизм. Ударный боек служит индикатором, а также может привести в действие коммутационный аппарат.
Предохранители серии ПКТ:
Характеристика ПКТ | Значение |
---|---|
Номинальный ток, А | 2, 3.2, 5, 8, 10, 16, 20, 31.5, 40, 50, 80, 100, 160, 200, 315 |
Номинальное напряжение, кВ | 6, 10, 35 |
Номинальный ток отключения, кА | 3.2, 8, 12.5, 20, 31.5, 40, 50 |
Климатическое исполнение по ГОСТ 15150 | для помещений - У3, для открытого воздуха - У1 |
Срок службы, лет | не менее 20 |
Токоограничивающие предохранители ПКТ были разработаны для защиты трансформаторов напряжения и силовых трансформаторов, а также кабельных и воздушных линий электропередач от токов короткого замыкания и перегрузок.
Высоковольтный предохранитель ПКТ состоит из следующих элементов: два контакта, заменяемый патрон, два опорных изолятора. Заменяемый патрон, армированный латунными вставками, изготовлен из фарфора или же стекла. Он заполнен кварцевым песком высокой очистки, в котором располагается плавкий элемент из нихромовой или из посеребренной медной проволоки. Кроме того, некоторые предохранители оснащены указателем срабатывания, который выдвигается при помощи пружины.
Расшифровка ПКТ 101, ПКТ 102, ПКТ 103, ПКТ 104
ПКТ 101-10-16-20 У1:
П - предохранитель;
К - с кварцевым наполнителем;
Т - для силовых трансформаторов;
1 - однополюсный, с указателем срабатывания;
01 - конструктивное исполнение контакта;
10 - номинальное напряжение в киловольтах;
16 - номинальный ток предохранителя в амперах;
20 - номинальный ток отключения в килоамперах;
У- климатическое исполнение;
1 - категория размещения.
Предохранитель ПКТ 101, ПКТ 102, ПКТ 103, ПКТ 104 состоит из следующих элементов и поставляется в разобранном виде:
Патрон предохранителя состоит из фарфоровой трубки, заполненной кварцевым песком, которая армирована латунными колпачками с крышками. Плавкие вставки изготовляют из посеребренной медной проволоки. При номинальном токе до 7.5 А используют несколько параллельных вставок, намотанных на ребристый керамический сердечник. При больших токах устанавливают несколько спиральных вставок. Разрыв в патроне ПТ при коротком замыкании происходит вследствие интенсивного процесса деионизации дуги, которая возникает в местах пролегания плавкой вставки, в микроскопических зазорах между песчинками кварцевого наполнителя.
Контакт предохранителей ПКТ 101 состоит из контактных губок, охватываемых стальной скобой, обеспечивающей необходимое контактное давление; контактного вывода, состоящей из стольной планки, с медной накладной планкой, и ограничителей, обеспечивающих установку патрона в правильном положении и препятствующих выскальзыванию его из контактов при единичных сотрясениях.
Предохранители ПКТ 101 категории размещения 1 отличаются от предохранителей этой же категории размещения 3 формой опорных изоляторов и наличием в патроне дополнительных деталей, герметизирующих внутреннюю полость патрона.
Серия |
Ном.напряжение, кВ |
Ном. ток, А |
Ном. ток отключения,кА |
Климатическое исполнение и категория размещения |
ПКТ 101 |
6 |
2; 3,2; 5; 8; 10; 16; 20; 31,5 |
20 |
У3 |
2; 3,2; 5; 8; 10; 16; 20 |
40 |
У3; У1 |
||
31,5 |
20 |
У1 |
||
10 |
2; 3,2; 5; 8; 10; 16; 20 |
12,5; 31,5 |
У3 |
|
2; 3,2; 5; 8; 10; 16; 20 |
20 |
У1 |
||
31,5 |
12,5 |
У3; У1 |
||
ПКТ 102 |
6 |
31,5; 40; 50 |
31,5 |
У3 |
80 |
20 |
|||
10 |
31,5; 40 |
31,5 |
||
50 |
12,5 |
|||
ПКТ 103 |
6 |
80;100 |
31,5 |
|
160 |
20 |
|||
10 |
50 |
31,5 |
||
80 |
20 |
|||
100 |
12,5
|
Высоковольтные предохранители ПКТ и токоограничивающие патроны типа ПТ предназначены для защиты силовых трансформаторов, воздушных и кабельных линий, конденсаторов, электродвигателей в высоковольтных сетях переменного тока с номинальным напряжением от 6 до 35 кВ. А так же для защиты трансформаторов напряжения от сверхтоков.
В комплект поставки ПКТ входят: патрон ПТ (один, два, четыре), два опорных изолятора, два контакта.
Предохранитель пкт имеет плавкий элемент, изготовленный из электротехнической меди.
Корпус патрона предохранителя изготовлен из высококачественного термоустойчивого фарфора, с покрытием влагонепроницаемой глазурью. Колпаки изготвлены из электротехнической меди марки М1 с олово-висмутовым покрытием. Плавкий элемент ПКТ имеет уникальную конструкцию и также выполнен из электротехнической меди М1.
Патроны ПТ, входящие в комплектацию предохранителей ПКТ, производятся как с указателем срабатывания и ударным устройством, так и без оных. Указатели срабатывания имеют силу нажатия 50Н. Параллельно плавкому элементу подсоединена металлическая нить с высоким электрическим сопротивлением, прикрепленная с одной стороны к ударному механизму. При перегорании предохранителя так же перегорает натянутая нить и срабатывает ударный механизм. Ударный боек служит индикатором, а также может привести в действие коммутационный аппарат.
Предохранители серии ПКТ:
Характеристика ПКТ | Значение |
---|---|
Номинальный ток, А | 2, 3.2, 5, 8, 10, 16, 20, 31.5, 40, 50, 80, 100, 160, 200, 315 |
Номинальное напряжение, кВ | 6, 10, 35 |
Номинальный ток отключения, кА | 3.2, 8, 12.5, 20, 31.5, 40, 50 |
Климатическое исполнение по ГОСТ 15150 | для помещений - У3, для открытого воздуха - У1 |
Срок службы, лет | не менее 20 |
Купил несколько конденсаторов номиналом в 470 пФ и напряжением 30 кВ, можно использовать и другие с другой емкостью. В схеме очень важно чтобы все высоковольтные конденсаторы были одинаковой емкостью, в противном случае работа генератора Маркса будет нарушена.
Принцип действия генератора Маркса очень прост. На вход мы подаем напряжение 3.5 - 4 кВ. После того как все конденсаторы заряжены, после того как в первом разряднике произойдет пробой, в остальных разрядниках также начинаются разряды, в результате на выходе мы имеем разряд равному суммарному заряду всех конденсаторов. Резисторы необходимы для гашения всплесков разряда и поэтому греются. По этой причине не желательно включать генератор на продолжительное время или можно использовать сопротивления мощностью на 1 Вт. Все резисторы сопротивлением в 1 мОм.
Генератор Маркса можно подключить к преобразователю напряжения либо от трансформатора микроволновых печей, питающих анодные цепи магнетрона. Я использовал самодельные трансформатор мощностью на 100 Вт.
Для правильной работы важно правильно выставить зазор в разрядниках, расстояние я подбирал опытным путем, уменьшая зазор во всех пока генератор Маркса не начнет работать.
]]>
Купил несколько конденсаторов номиналом в 470 пФ и напряжением 30 кВ, можно использовать и другие с другой емкостью. В схеме очень важно чтобы все высоковольтные конденсаторы были одинаковой емкостью, в противном случае работа генератора Маркса будет нарушена.
Принцип действия генератора Маркса очень прост. На вход мы подаем напряжение 3.5 - 4 кВ. После того как все конденсаторы заряжены, после того как в первом разряднике произойдет пробой, в остальных разрядниках также начинаются разряды, в результате на выходе мы имеем разряд равному суммарному заряду всех конденсаторов. Резисторы необходимы для гашения всплесков разряда и поэтому греются. По этой причине не желательно включать генератор на продолжительное время или можно использовать сопротивления мощностью на 1 Вт. Все резисторы сопротивлением в 1 мОм.
Генератор Маркса можно подключить к преобразователю напряжения либо от трансформатора микроволновых печей, питающих анодные цепи магнетрона. Я использовал самодельные трансформатор мощностью на 100 Вт.
Для правильной работы важно правильно выставить зазор в разрядниках, расстояние я подбирал опытным путем, уменьшая зазор во всех пока генератор Маркса не начнет работать.
]]>
Заметим, что проблеме переделки компьютерных блоков питания в лабораторные посвящено уже довольно много публикаций. Однако признать их удовлетворительными невозможно, многие материалы содержат достаточно грубые ошибки, способные (при особо неблагоприятном стечении обстоятельств) привести даже к трагедиям.
Мы предлагаем вашему вниманию аппарат, который не имеет ни одного из этих недостатков. Он может запитать батарею током на 10 А, стабилизировать напряжение 13,9 В на ней. В качестве деталей используются почти исключительно части, взятые из компьютерного БП. Изготовить устройство не слишком сложно, и при этом в конструкции сохранены все системы безопасности. Максимальная рассеиваемая мощность не превышает 1 ватта, есть и индикатор ограничения тока. Для переделки компьютерного блока питания пригоден любой блок ATX, в котором основой выступает микросхема TL494.
Детали пронумерованы по порядку, ввиду того, что устройство блоков у каждого производителя своё. Предохранитель, терморезистор, входы от сетевого фильтра на схеме пропущены, так как их местоположение менять не надо. Там, где добавлялись какие-то детали, менялись номиналы, использованы цветные пометки.
Устройство может ограничивать ток нагрузки, если включён второй усилитель сигнала об ошибках на микросхеме. Он есть и по умолчанию, но большинство производителей никак не использует эту возможность. Применение инвертирующей схемы для форсирования отрицательных напряжений позволяет соединить общий провод и корпус, добившись более стабильной и устойчивой подачи тока вне зависимости от его параметров.
С другой стороны, такое подключение гарантирует повышенную восприимчивость, а значит — датчик тока может быть меньшего сопротивления, с минимальным нагревом. Напряжение на датчике R24 прямо пропорционально силе идущего сквозь датчик тока. Расчёт резисторов производится по формуле Iвых=(U0R26/R17)/R24, где Iвых — порог ограничения выходного тока; U0 — напряжение источника образцового напряжения микросхемы TL494 (5 В); R17, R26 — сопротивление элементов делителя сигнала ошибки; R24 — сопротивление датчика тока (0,01 Ом).
Не забудьте, что надо изучить расположение элементов внутри блока, который взят для переделки. Работа начинается с удаления узлов формирования сигнала «Power Good», выпрямителей и всех элементов выходных цепей, за исключением двенадцативольтной. С дросселя уделяют все обмотки и наматывают новый жгут. Параллельно конденсатору С20 ставят резистор R36. Оксидные конденсаторы, если только можно, меняют на новые.
Первое испытание под напряжением желательно проводить, подключая вперёд лампочку на 100 Ватт, иначе возможно механическое, электрическое и тепловое разрушение очень многих компонентов. Яркое мерцание свидетельствует о поломке выпрямительного моста (точнее, его диодов), а постоянное яркое свечение о замыкании и пробое транзисторов. В норме лампа должна сначала вспыхнуть, а затем её свет становится едва заметным. Резистор R24 делают из манганинового провода. Получить его можно, отрезав кусок шунта от поломанного мультиметра.
Ограничение тока регулируется через подбор резистора R26. Потом, поднимая сопротивление нагрузки, дожидаются, когда запустится режим стабилизации тока и опять двигайте 34-й резистор до тушения диода HL1. Варьируя сопротивление, точку перехода от режима к режиму проходят неоднократно. Меняя нагрузку, проверьте, нет ли паразитного самовозбуждения: здесь поможет осциллограф, на 8-м и 11-м выводах микросхемы DA1 импульсы не должны иметь перепадов, а смена длительности должна соответствовать мощности нагрузки. Когда самовозбуждение есть, с ним борются подбором конденсатора С12, корректирующих цепей, магнитопровода.
Удалив 8, 9, 10-й резисторы и подключив резистор № 17 согласно рисунку 2, можно получить лабораторный источник питания. Мост с диодными сборками подсоединяют к 12-вольтной обмотке трансформатора. Электродвигатель снабжается током дежурного источника, разделяет их резистор R40, оксидный конденсатор должен быть на напряжение 63 В. Устройство индикации не меняют, переменный резистор R39 и пороговый резистор R38 должны быть номинальным сопротивлением 3,3 - 47 кОм.
]]>Заметим, что проблеме переделки компьютерных блоков питания в лабораторные посвящено уже довольно много публикаций. Однако признать их удовлетворительными невозможно, многие материалы содержат достаточно грубые ошибки, способные (при особо неблагоприятном стечении обстоятельств) привести даже к трагедиям.
Мы предлагаем вашему вниманию аппарат, который не имеет ни одного из этих недостатков. Он может запитать батарею током на 10 А, стабилизировать напряжение 13,9 В на ней. В качестве деталей используются почти исключительно части, взятые из компьютерного БП. Изготовить устройство не слишком сложно, и при этом в конструкции сохранены все системы безопасности. Максимальная рассеиваемая мощность не превышает 1 ватта, есть и индикатор ограничения тока. Для переделки компьютерного блока питания пригоден любой блок ATX, в котором основой выступает микросхема TL494.
Детали пронумерованы по порядку, ввиду того, что устройство блоков у каждого производителя своё. Предохранитель, терморезистор, входы от сетевого фильтра на схеме пропущены, так как их местоположение менять не надо. Там, где добавлялись какие-то детали, менялись номиналы, использованы цветные пометки.
Устройство может ограничивать ток нагрузки, если включён второй усилитель сигнала об ошибках на микросхеме. Он есть и по умолчанию, но большинство производителей никак не использует эту возможность. Применение инвертирующей схемы для форсирования отрицательных напряжений позволяет соединить общий провод и корпус, добившись более стабильной и устойчивой подачи тока вне зависимости от его параметров.
С другой стороны, такое подключение гарантирует повышенную восприимчивость, а значит — датчик тока может быть меньшего сопротивления, с минимальным нагревом. Напряжение на датчике R24 прямо пропорционально силе идущего сквозь датчик тока. Расчёт резисторов производится по формуле Iвых=(U0R26/R17)/R24, где Iвых — порог ограничения выходного тока; U0 — напряжение источника образцового напряжения микросхемы TL494 (5 В); R17, R26 — сопротивление элементов делителя сигнала ошибки; R24 — сопротивление датчика тока (0,01 Ом).
Не забудьте, что надо изучить расположение элементов внутри блока, который взят для переделки. Работа начинается с удаления узлов формирования сигнала «Power Good», выпрямителей и всех элементов выходных цепей, за исключением двенадцативольтной. С дросселя уделяют все обмотки и наматывают новый жгут. Параллельно конденсатору С20 ставят резистор R36. Оксидные конденсаторы, если только можно, меняют на новые.
Первое испытание под напряжением желательно проводить, подключая вперёд лампочку на 100 Ватт, иначе возможно механическое, электрическое и тепловое разрушение очень многих компонентов. Яркое мерцание свидетельствует о поломке выпрямительного моста (точнее, его диодов), а постоянное яркое свечение о замыкании и пробое транзисторов. В норме лампа должна сначала вспыхнуть, а затем её свет становится едва заметным. Резистор R24 делают из манганинового провода. Получить его можно, отрезав кусок шунта от поломанного мультиметра.
Ограничение тока регулируется через подбор резистора R26. Потом, поднимая сопротивление нагрузки, дожидаются, когда запустится режим стабилизации тока и опять двигайте 34-й резистор до тушения диода HL1. Варьируя сопротивление, точку перехода от режима к режиму проходят неоднократно. Меняя нагрузку, проверьте, нет ли паразитного самовозбуждения: здесь поможет осциллограф, на 8-м и 11-м выводах микросхемы DA1 импульсы не должны иметь перепадов, а смена длительности должна соответствовать мощности нагрузки. Когда самовозбуждение есть, с ним борются подбором конденсатора С12, корректирующих цепей, магнитопровода.
Удалив 8, 9, 10-й резисторы и подключив резистор № 17 согласно рисунку 2, можно получить лабораторный источник питания. Мост с диодными сборками подсоединяют к 12-вольтной обмотке трансформатора. Электродвигатель снабжается током дежурного источника, разделяет их резистор R40, оксидный конденсатор должен быть на напряжение 63 В. Устройство индикации не меняют, переменный резистор R39 и пороговый резистор R38 должны быть номинальным сопротивлением 3,3 - 47 кОм.
]]>
В качестве детектор выступает катушка индуктивность L1 которая подключается в базу транзистора VT1. Оба транзистора VT1 и VT2 малошумящие. Схема может работать в широком диапазоне напряжения от 6 до 14 В . Чувствительность прибора можно отрегулировать при помощи переменного резистора R1. А для того чтобы настроить сам датчик нужно подобрать номинал резистора R2 , который подбирается в зависимости от напряжения питания. Это резистор нужно подобрать таким образом чтобы вся конструкция потребляла ток порядка 2 мА.
Датчик или катушка наматывается на куске феррита марки 600 - 2000 НН с длиной 25...40 мм и с диаметром в 8 мм. Намотка осуществляется в навал проводом ПЭЛ или ПЭВ с диаметром 0.1...0.15 мм. Нужно сделать 2500 витков. Важно чтобы соединительные провода катушки и усилителя были минимальной длины.
Усилитель почти не меняет форму сигнала , который поступает с катушки. Эту схему можно использовать для прослушивания телефонных разговоров. Достаточно катушку разместить вблизи телефонного провода и к схеме подключить дополнительно усилитель звуковой частоты.
]]>
В качестве детектор выступает катушка индуктивность L1 которая подключается в базу транзистора VT1. Оба транзистора VT1 и VT2 малошумящие. Схема может работать в широком диапазоне напряжения от 6 до 14 В . Чувствительность прибора можно отрегулировать при помощи переменного резистора R1. А для того чтобы настроить сам датчик нужно подобрать номинал резистора R2 , который подбирается в зависимости от напряжения питания. Это резистор нужно подобрать таким образом чтобы вся конструкция потребляла ток порядка 2 мА.
Датчик или катушка наматывается на куске феррита марки 600 - 2000 НН с длиной 25...40 мм и с диаметром в 8 мм. Намотка осуществляется в навал проводом ПЭЛ или ПЭВ с диаметром 0.1...0.15 мм. Нужно сделать 2500 витков. Важно чтобы соединительные провода катушки и усилителя были минимальной длины.
Усилитель почти не меняет форму сигнала , который поступает с катушки. Эту схему можно использовать для прослушивания телефонных разговоров. Достаточно катушку разместить вблизи телефонного провода и к схеме подключить дополнительно усилитель звуковой частоты.
]]>
Изменение громкости происходит дискретно с шагом 1.25 дБ. На микросхему можно подавать напряжение 2.7-5.5 В. В режиме покоя микросхема потребляет ток всего лишь в 10 мА при номинальном напряжении 5 В. Входное сопротивление усилителя 15 кОм. Микросхема есть в корпусе DIP-8 и SO-8. Если используете микросхему в корпусе SO-8 то выходную мощность лучше ограничить значением 0.8 Вт так как в этом исполнении микросхема имеет плохую теплоотдачу.
Цепь из конденсаторов C1 и C2 необходима для устранения дребезга контактов. Резистор R1 необходим для предотвращения короткого замыкания по питания в случае когда одновременно нажаты кнопки SB1 и SB2. Режимы работы MUTE и STANDBY выбирают электронные схемы, поэтому переключатель SA1 изображен для наглядности.
Скачать datasheet микросхемы tda8551
]]>
Изменение громкости происходит дискретно с шагом 1.25 дБ. На микросхему можно подавать напряжение 2.7-5.5 В. В режиме покоя микросхема потребляет ток всего лишь в 10 мА при номинальном напряжении 5 В. Входное сопротивление усилителя 15 кОм. Микросхема есть в корпусе DIP-8 и SO-8. Если используете микросхему в корпусе SO-8 то выходную мощность лучше ограничить значением 0.8 Вт так как в этом исполнении микросхема имеет плохую теплоотдачу.
Цепь из конденсаторов C1 и C2 необходима для устранения дребезга контактов. Резистор R1 необходим для предотвращения короткого замыкания по питания в случае когда одновременно нажаты кнопки SB1 и SB2. Режимы работы MUTE и STANDBY выбирают электронные схемы, поэтому переключатель SA1 изображен для наглядности.
Скачать datasheet микросхемы tda8551
]]>
Микроконтроллеры в зависимости от модели и серии питаются от напряжения величиной от 1.8 до 5 Вольт. Все микроконтроллеры AVR работают от напряжения в 5 Вольт. Поэтому можно считать что практически у всех микроконтроллеров напряжение питания 5 В, плюсовой вывод на микроконтроллере обозначается как Vcc. Нулевой вывод или еще его называют земля корпус, минусовой вывод обозначается как GND. Если взять блок питания от компьютера то черный провод это GND, а красный это +5 В это и есть Vcc. Если питаем от батареек то минус батарее это GND а плюс это Vcc. Главное чтобы напряжение питания с батареек было в диапазоне напряжения микроконтроллера, это интервал можно посмотреть в документации на МК.
На пример:
• Operating Voltages
• Speed Grades
Operating Voltage это как раз и есть тот диапазон напряжения в котором возможно нормальная работа МК. Существуют низковольтные серии (ATtiny2313V) у которой минимальное напряжение заметно ниже.
Speed Grades это максимально возможные частоты работы МК в зависимости от напряжения которое к нему подвели. Здесь видно, чем ниже напряжение тем меньше максимальная работа МК.
Для того чтобы нам МК начал работать то на него достаточно подать напряжение в 5 В. Как и говорилось ранее один провод кидаем на Vcc а другой на землю - к выводу GND. Некоторые микроконтроллеры имеют несколько выводов Vcc и также несколько GND. Это сделано не для того чтобы вам было делать печатные платы и удобства монтажа а для того чтобы подвести напряжение к камню равномерно, т.е. равномерно запитать весь кристалл. Это делается для того чтобы внутренний линии кристалла не перегружались. К примеру вы взяли МК с квадратным корпусов TQFP у него выводы Vcc и GNВ находятся со всех сторон. С одной стороны вы подвели питание, т.е. задействовали всего лишь 2 вывода питания а с другой стороны вы подключили на порты кучу светодиодов и взяли и зажгли их разом. Получается что внутренние линии МК перегружены, в результате камень офигеф от такой нагрузки выходит из строя. Поэтому если у контроллера есть несколько выводов питания то запитать нужно все выводы Vcc и GND.
Помимо выводов предназначенных для питания МК есть еще выводы AGND и AVCC - это выводы питания АЦП (аналого-цифрового преобразователя). АЦП это довольно точный измеритель напряжения, по этой причине его можно запитать через фильтры. Для того чтобы помехи которые довольно часто бывают в цепях питания не влияли на результаты измерения. По этой причине в некоторых схемах производят разделение земли, а на вывод AVCC подается напряжение через фильтрующий дроссель. А если вы не планируете пользоваться АЦП и вам не нужны точные измерения, то на AVCC можно подать те же +5 В что и на Vcc, а вывод AGND подключить к земле. Подключать выводы AVCC и GND нужно обязательно!
Ahtung!
В микроконтроллере Atmega8 есть одна ошибка на уровне топологии чипа - выводы VCC и AVCC связаны друг с другом на уровне кристалла и между ними сопротивление 5 Ом. К примеру, в чипах Atmega16 и Atmega168 выводы VCC и AVCC связаны между собой и их сопротивление составляет порядка десяток МОм. В документации по этому поводу ничего не сказано. Поддержка Atmel на это ответила что в чипе есть недочет и выводы VCC и AVCC соединенны между собой внутри камня. По этой причине ставить фильтрующий дроссель на AVCC для ATmega8 нет смысла, но запитывать вывод AVCC нужно в любом случае.
Эта упрощенная схема подключения микроконтроллера так сказать необходимы минимум для запуска контроллера, по хорошему лучше добавить несколько внешних элементов. Провод показанный пунктиром от источника питания к БП необязателен. Если ты питаешь МК от внешнего источника то это провод лишний. Но лучше питать всю схему от одного источника - так больше вероятность того что все прошьется успешно. Для учебных целей схема подключения питания самый раз, светодиодиком там помигать или еще чего.
Вывод AREF это вход опорного напряжения АЦП, туда подается напряжение относительно которого будет считать АЦП. Можно использовать внутренний источник опорного напряжения величиной в 2.56 В либо использовать напряжение AVCC. На вывод AREF рекомендуется подключать конденсатор, это улучшает качество опорного напряжения АЦП и как в следствии правильность измерения АЦП. На входе в AVCC установлен дроссель и конденсатор между AVcc и GND. Также между выводами GND и VCC ставят керамический конденсатор номиналов в 100 нФ как можно ближе к выводам питания микросхемы - он сглаживает краткие импульсы помехи, которые получаются в результате работы самих микросхем. Также между выводами VCC и GND устанавливают конденсатор емкость в 47 мкФ для сглаживания более сильных бросков напряжения.
Вывод сброса
В МК AVR есть внутренняя схема сброса и вывод reset внутри уже подтянут сопротивлением в 100 кОм к выводу Vcc. Но этой подтяжки не хватает, получается что микроконтроллер "выход" в сброс от незначительного потенциала на выводе. К примеру от прикосновения пальцем вывода RST, а иногда от случайного касания самой платы. Поэтому имеет смысл дополнительно подтянуть этот вывод резистором в 10 кОм. Меньшее значение резистора лучше не брать, потому что если вы используйте внутрисхемный программатор то он не сможет пересилить подтяжку и прошить микроконтроллер. Поэтому значение в 10 кОм в самый раз.
После того как схема вклчючена, изначально конденсатор C12 разряжен и напряжение на RST почти равно нулю и в результате микроконтроллер не запускается. Получается что ему после запуска схемы постоянный сброс. С течением времени происходит заряд конденсатора через резистор, после того как он заряжится на выводе RST появится логическая единица МК запустится. Ну а скнопкой всю понятно она разряжает конденсатор и происходит перезапуск микроконтроллера.
Задержку перед стартом МК легко посчитать по формуле как T=R*C при данных значения получается приблизительно одна секунда. Для чего эта задержка? - спросите вы. А для того чтобы МК не запускался раньше времени чем все устройства на плате запитаются в перейдут в установившийся режим работы. К примеру, в старых МК (AT89C51) если нет такой цепочки которая делает изначальный сброс, то МК мог вообще не запуститься.
В МК AVR такую задержку перед стартом можно сделать программно чтобы он подожда секунду и потом только запускался. Поэтому можно обойтись и без конденсатора. А кнопку можно оставить - на свое усмотрение.
Тактовый генератор это своего рода сердце микроконтроллера. По кажлому "тику" или импульсу тактового генераора происходи какая нибудь операция - передаются какие либо данные по шинам и регистрам, работают таймеры, переключаются порты ввода/вывода. Чем больше тактовая частота тем больше энергии нужно микрокнтроллеру.
Импульсы формируются тактовым генератором с определенной скоростью (частотой). Сам генерато может быть как может быть как внутренний так и внешний. Все это гибко настраивается.
Микроконтроллер можно тактировать от:
У каждого способа тактирование есть свои достоинства. Если мы используем внутренюю или внешнюю RC цепочку то у нее есть один недостаток - " плавание частоты в зависимости от температуры. И мы не можем максимально развить максимальную частоту. Если использовать кварц то он занимает 2 ножки микроконтроллера. На кварце можно развить максимальную частоту. Частота тактирования микроконтроллера зависит от того какой кварц мы подключили.
Посмотреть способы тактирования МК можно в даташите System Clock and Clock Options. Если в кратце, то выбор способа тактирования осуществлятеся путем выставления определенных Fuse битов. Но если вы пока еще не ознакомились с ними, то лучше пока туда не лезть и использовать выбранный по умолчанию способ тактирование. По умолчанию в МК выбран внутренний генератор. Если не правильно выставить Fuse биты можно "залочить" МК и он превратиться в мертвеца и вернуть его к жизни будет совсем не просто, но все же возможно.
Микроконтроллер если к нему не подкючены какие либо внешние устройства не представляет собой ничего интересного, кусок кремния который тикает там что то себе под нос! Друго дело когда мы может что то понажимать, объяснить ему что "мол вот я нажал кнопку давай делай что нибудь!" а он нам в ответ может что включить, пропищать и как то с реагировать.
Для того чтобы подключить нашу всеми любимую кнопку нам нужно сначала выбрать ножку на которую мы его будем цеплять. Один конец кнопки мы кидаем на землю а другой к ножке МК. Сам вывод к которому подключения кнопка нужно настроить на вход с включением внутренних подтягивающих резисторов (PORTx=1 DDRx=0). Получается что если кнопка не нажата то входе будет высокий уровень напряжения через подтягивающий резистор. Если мы считаем это значения через PINx то он будет возвращать 1. Если мы нажимаем кнопку то вывод подтягивается к земле и напряжение на нем становится равным нулю, PINx возвращает 0. По этому значению мы и определяем нажата ли кнопка или нет.
В дополнении к внутреннему подтягивающему резистору можно подключить еще внешний резистор (на схеме показан пунктиром). Дело в том что внутренняя подтяжка слабовата порядка 100 кОм. Поэтому наведенное на этом выводе какое либо напряжение может привести к ложному срабатыванию. Довольно часто эти внутренние сопротивление сгорают от каких либо наводок. Микроконтроллер работает как и работал только вот без этой подтяжки. Поэтому рекомендуется ставить свою внешнюю подтяжку сопротивлением в 10 кОм. Таким образом можно подстраховатся даже, даже если внутреняя сгорела то у вас все будет работать должным образом.
Для того чтобы подключить светодиод можно использовать две схемы подключения порт-земля и порт-питание. В первом случае для того чтобы зажечь светодиод нужно на вывод к которому подключили светодиод подать высокий уровень (логическую единицу). Для второго случае когда светодиод подключен к выводу Vcc нужно наоборот подать другой уровень низкий (логический ноль). Для микрокнтроллеров абсолютно неть разницы куда вы будете подключать светодиод к земле или к Vcc. Можно применять как одну так и другую схему подключения светодиода к микрокнтроллеру AVR в зависимости от разводки печатной платы. Программно разницы тоже особо нет.
Сначала нам нужно настроить порт на выход для этого в регистр DDRx запичываем 1. Далее записываем в порт PORTx нужный нам уровень высокий или низкий.
Светодиод к выводам МК нужно цеплять черех резистор. Максимальный ток вывода МК порядка 20-30 мА. А для нормального свечения светодиода нужно 3...15 мА. А когда мы подклчаем светодиод с низким прямым сопротивлением, то мы можем его в лучшем случае просто спалить, а в худшем спалить сам вывод микроконтроллера. Поэтому ток через светодиод нужно ограничивать подключаю последовательно светодиоду сопротивление.
Напряжение на ноге микроконтроллера около 5 В. Для нормального горения светодиода нужно что на нем падение напряжения было приблизительно 2.5 В. Получается что такое же напряжение должно быть и ограничивающем сопротивлении 5-2.5=2.5. Предположим что ток протекающий через диод 5 мА. Знаем ток в цепи и падение напряжения на резисторе находим по закону Ома требуемое сопротивление резистора R=U/I=2.5/5e-3=500 Ом. Ближайшее значение 510 Ом, но можно взять и другие хоть от 220 Ом до 1 кОм. Гореть светодиод будет хорошо.
Если вы захотели подключить несколько светодиодов, то вам нужно вешать сопротивление на каждый светодиод. Если установить всего один общий резистор на все светодиоды то каждый светодиод получит меньше тока, а если уменьшить сопротивление резистора для того чтобы все горели в нормальный "накал" то в случае зажигания всего лишь одного светодиода он может выйти из строя либо сгорит порт.
Иногда бывают такие случаи когда мы установили микрокнтроллер, памяти нам хватает и быстродействие на высоте, но вот с ножками беда-не хватает нам ног для установки дополнительных устройст, кнопок или потребителей. Многие видят выход только в одном-установкой другого камня с большим числом ног. Но не каждый знает что есть несколько приемов как можно программно сэкономить на железе.
Это прием заключается в том что мы динамически меняем назначение выводов с течением времени. К примеру какой либо вывод работает на шину, а вслучае когда нам шина не нужна, то этот вывод мы можем использовать для других нужд. Например мы обрабатывать события нажатия кнопки. Переключения между назначением вывода происхоид сотни или даже тысячу раз в секунду и тем самым создается впечатление что одни вывод работает сразу двум назначения.
Но при такой программной реализации вывода порта нужно следовать определенным правилам:
Те назначения котоые вы планируете применять не должны друг другу мешать. Их нужно разделить таким образом чтобы одна функция (смежная) не изменяла результат работы другой функции (проверяемой).
Например, допустим у нас есть один вывод к которому мы подключили какой либо датчик либо кнопку. С датчика может придти сигнал 0 или 1, а в активном режиме Hi-Z в случае когда на датчик не послали сигнал Enable. А при нажатии на копку придет сигнал 0,
Основную часть времени МК установлен на вход Hi-Z и мы получаем сигнал с датчика на него же подан сигнал enable. Если нам нужно узнать состояние кнопки, то мы убираем enable и его выходы становятся в режим Hi-Z и нам не мешают. Далее мы переводим вывод МК в редим Pull-Up и опрашиваем нет ли у нас на входе вывода нуля - это сигнла нажатой кнопки. После того как мы это проверили мы снова переводим МК в Hi-Z и отправляем сигнал enable на датчик. Эта последовательность действий повторяется несколько раз в секунду.
При таком способе подключения могут возникнуть противоречия
Логическое противоречие
На линии может быть 0 в двух случаях от подключенного датчика и от нажатой кнопки. Если нажать кнопку то показания датчика исказятся, поэтому нужно знать когда происходит опрос датчика и в этот момент не нажимать кнопку. А для того чтобы те данные которые идут с датчика не принять за сигнал нажатия кнопки в тот интервал времени когда мы опрашиваем датчик, мы просто не опрашиваем кнопку.
Электрическое противоречие
Если с датчика поступает высокий уровень и мы нажимаем кнопку, то на одном выводе у нас сразу встретятся 0 и 1,Vcc и GND. В результате у нас датчик "заснет вечным сном" а кнопка как жили так и будет. Программым методом это противоречие не решить, а определить можно ли нажимать кнопку или нет в определенный момент времени на глаз просто не возможно, и в каком месте сейчас выполняется программа тоже не узнать. Электрическое противоречие можно решить только схемотехническим путем. Нам нужно в цепь где у нас кнопка добавить резистор. Значение резистора определяется через максимальтный ток самого низковольтного вывода (датчика или ножки).
К примеру если у нас на выводе васит датчик у которого вывод может дать не больше чем 10 мА. То нам нужно чтобы ток через датчик не был больше этой величины в случае нажатия кнопки. При напряжении в 5 В получаем сопротивление в 510 Ом. Таким образом даже если у нас с датчика идет высокий уровень, и в этот момент времени нажимается кнопка то ничего страшного не произойдет и датчик не сгорит и искажения уровня сигнала тоже не произойдет.
Примеры использования нескольких функций на одной ножке
Разъем ISP в некоторых схемах занимает 3 вывода микроконтроллера MOSI,MISO,SCK. У меня практически все платы имеют такой разъем и в него у меня вставлен программатор. Во время отладки платы я прошиваю МК по несколько раз. И это очень удобно, мне не приходится каждый раз когда мне нужно прошить МК его вытаскивать втавлять в колодку программатора и далее обратно.
На эти три разъема можно подключить, к примеру кнопки. И мониторить их состояние в прогамме. Самое главное не нажимать эти кнопочки во время заливки прошивки в микроконтроллер. Также с целью экономии выводов на эти выводы можно прицепить светодиоды. Правда если использовать программатор Громова то он может не корректно сработать. А если использовать программатор USBasp то проблем возникнуть не должно. В процесе прошивки светодиоды на выводах MOSI,MISO,SCK будут забавно моргать:)
В общем на эти вывод можно цеплять не только кнопки и светодиоды ну и что нибудь другое. Главное чтобы это устройство в процессе прошивки не начало чудить. К примеру если на этих вывода у вас находится релюшка которая управляет большой нагрузкой, то в процессе прошивки реле просто офигеет от потока данных как и высоковольтная нагрузка. В общем нужно понимать как это работает и не цеплять на эти выводы что попало. Можно подклчить символьный LCD дисплей типа HD44780 который использует шинный интерфейс для работы (схема ниже)
Установленные резисторы по 10 кОм отделяют линию программатора от основной схемы. Резисторы ограничивают возможные другие уровни от дисплея на выводах ISP разъема, программатор их пересиливает и шьет микрокнтроллер. А на работу дисплея эти резисторы особоне не оказывают влияния.
В данной схеме два светодиода подкючены на одну ножку порта, такая схема позволяет упростить печатную плату, не придется тажить еще одну шину к каждому светодиоду. Для того чтобы зажечь верхний сетодиод нужно на вывод Pxy подать логический 0, а для того чтобы зажечь нижний то подать высокий уровень. Если мы хотим зажечь сразу оба светодиода та нам нужно перевести вывод МК в режим Hi-Z как будто его нет, в этом случае появится сквозной ток через оба светодиода и они оба загорят. Или можно бысто зажигать то один то другой, визуально они будут оба гореть. Минус схемы в том что погасить сразу два диода нельзя.
В это схеме ничего сложного нет - меняя состояние выводов то в 1 то в 0 мы меняем напрявление тока включает то идин то другой диод. Для того чтобы погасить оба светодиода то нам нужно подать сразу на оба вывода либо высокое состояние 11 либо низкое это 00. Для того чтобы зажечь сразу два светодиода нам нужно сделать динамическую индикацию, быстро меняя состония обеих ножек с высокого на низкий. Если взять 3 вывода и использовать тот же принцип смены состояния ножек то можно подключить шесть светодиодов.
В данной схеме кнопки опрашиваются поочередно. Один вывод подтягивает внутренее сопротивление а другая дает 0. Нажатие кнопки дает 0 на подтянутом выводе а это фиксирует программа, таким образом,меняя роли выводов опрашивается каждая кнопка. Если у нас используется 6 выводов, то действуем по следующей схеме: одну ножку подтягиваем, другую делаем нулем а из третьей делаем состояние Hi-Z. Но тут тоже есть один минус. Допустим мы хотим опросить кнопку "В". Для этого верхнюю линию подтягиваем, среднюю делаем нулем, а нижнюю не задействуем в процессе или выставляем ее в стостоянии Hi-Z. Далее если мы нажмем на копку "B" то верхняя линия подтянится к нулю и программа поймет что нажата именно кнопка "B". В том случае если одновременно будут нажаты кнопки "E" и кнопка "Б" то верхняя линия такжн подтяница к 0 и программа поймет что была нажата кнопка "В", хотя мы ее не нажимали.
К минусам такой схемы можно отнести не правильная обработка событый нажатия кнопок в случае одновременного нажатия нескольких кнопок.
Эта схема работает также в динамическом режиме.Для того чтобы отобразить состояние светодиода мы можем подать 0 - диод горит, либо перевести вывод в состояние Hi-Z - диод не горит. А для того чтобы опросить кнопку нам нужно временно на несколько микросекунд перевести вывод в режим входа с подтягом и опрашивать кнопку. В том случае когда горит светодид т.е. на выводе высокий уровень, то нажимать кнопку нельзя, в противном случае сгорит порт а это нам совершенно не нужно.
Оригинал статьи: www.easyelectronics.ru
]]>Микроконтроллеры в зависимости от модели и серии питаются от напряжения величиной от 1.8 до 5 Вольт. Все микроконтроллеры AVR работают от напряжения в 5 Вольт. Поэтому можно считать что практически у всех микроконтроллеров напряжение питания 5 В, плюсовой вывод на микроконтроллере обозначается как Vcc. Нулевой вывод или еще его называют земля корпус, минусовой вывод обозначается как GND. Если взять блок питания от компьютера то черный провод это GND, а красный это +5 В это и есть Vcc. Если питаем от батареек то минус батарее это GND а плюс это Vcc. Главное чтобы напряжение питания с батареек было в диапазоне напряжения микроконтроллера, это интервал можно посмотреть в документации на МК.
На пример:
• Operating Voltages
• Speed Grades
Operating Voltage это как раз и есть тот диапазон напряжения в котором возможно нормальная работа МК. Существуют низковольтные серии (ATtiny2313V) у которой минимальное напряжение заметно ниже.
Speed Grades это максимально возможные частоты работы МК в зависимости от напряжения которое к нему подвели. Здесь видно, чем ниже напряжение тем меньше максимальная работа МК.
Для того чтобы нам МК начал работать то на него достаточно подать напряжение в 5 В. Как и говорилось ранее один провод кидаем на Vcc а другой на землю - к выводу GND. Некоторые микроконтроллеры имеют несколько выводов Vcc и также несколько GND. Это сделано не для того чтобы вам было делать печатные платы и удобства монтажа а для того чтобы подвести напряжение к камню равномерно, т.е. равномерно запитать весь кристалл. Это делается для того чтобы внутренний линии кристалла не перегружались. К примеру вы взяли МК с квадратным корпусов TQFP у него выводы Vcc и GNВ находятся со всех сторон. С одной стороны вы подвели питание, т.е. задействовали всего лишь 2 вывода питания а с другой стороны вы подключили на порты кучу светодиодов и взяли и зажгли их разом. Получается что внутренние линии МК перегружены, в результате камень офигеф от такой нагрузки выходит из строя. Поэтому если у контроллера есть несколько выводов питания то запитать нужно все выводы Vcc и GND.
Помимо выводов предназначенных для питания МК есть еще выводы AGND и AVCC - это выводы питания АЦП (аналого-цифрового преобразователя). АЦП это довольно точный измеритель напряжения, по этой причине его можно запитать через фильтры. Для того чтобы помехи которые довольно часто бывают в цепях питания не влияли на результаты измерения. По этой причине в некоторых схемах производят разделение земли, а на вывод AVCC подается напряжение через фильтрующий дроссель. А если вы не планируете пользоваться АЦП и вам не нужны точные измерения, то на AVCC можно подать те же +5 В что и на Vcc, а вывод AGND подключить к земле. Подключать выводы AVCC и GND нужно обязательно!
Ahtung!
В микроконтроллере Atmega8 есть одна ошибка на уровне топологии чипа - выводы VCC и AVCC связаны друг с другом на уровне кристалла и между ними сопротивление 5 Ом. К примеру, в чипах Atmega16 и Atmega168 выводы VCC и AVCC связаны между собой и их сопротивление составляет порядка десяток МОм. В документации по этому поводу ничего не сказано. Поддержка Atmel на это ответила что в чипе есть недочет и выводы VCC и AVCC соединенны между собой внутри камня. По этой причине ставить фильтрующий дроссель на AVCC для ATmega8 нет смысла, но запитывать вывод AVCC нужно в любом случае.
Эта упрощенная схема подключения микроконтроллера так сказать необходимы минимум для запуска контроллера, по хорошему лучше добавить несколько внешних элементов. Провод показанный пунктиром от источника питания к БП необязателен. Если ты питаешь МК от внешнего источника то это провод лишний. Но лучше питать всю схему от одного источника - так больше вероятность того что все прошьется успешно. Для учебных целей схема подключения питания самый раз, светодиодиком там помигать или еще чего.
Вывод AREF это вход опорного напряжения АЦП, туда подается напряжение относительно которого будет считать АЦП. Можно использовать внутренний источник опорного напряжения величиной в 2.56 В либо использовать напряжение AVCC. На вывод AREF рекомендуется подключать конденсатор, это улучшает качество опорного напряжения АЦП и как в следствии правильность измерения АЦП. На входе в AVCC установлен дроссель и конденсатор между AVcc и GND. Также между выводами GND и VCC ставят керамический конденсатор номиналов в 100 нФ как можно ближе к выводам питания микросхемы - он сглаживает краткие импульсы помехи, которые получаются в результате работы самих микросхем. Также между выводами VCC и GND устанавливают конденсатор емкость в 47 мкФ для сглаживания более сильных бросков напряжения.
Вывод сброса
В МК AVR есть внутренняя схема сброса и вывод reset внутри уже подтянут сопротивлением в 100 кОм к выводу Vcc. Но этой подтяжки не хватает, получается что микроконтроллер "выход" в сброс от незначительного потенциала на выводе. К примеру от прикосновения пальцем вывода RST, а иногда от случайного касания самой платы. Поэтому имеет смысл дополнительно подтянуть этот вывод резистором в 10 кОм. Меньшее значение резистора лучше не брать, потому что если вы используйте внутрисхемный программатор то он не сможет пересилить подтяжку и прошить микроконтроллер. Поэтому значение в 10 кОм в самый раз.
После того как схема вклчючена, изначально конденсатор C12 разряжен и напряжение на RST почти равно нулю и в результате микроконтроллер не запускается. Получается что ему после запуска схемы постоянный сброс. С течением времени происходит заряд конденсатора через резистор, после того как он заряжится на выводе RST появится логическая единица МК запустится. Ну а скнопкой всю понятно она разряжает конденсатор и происходит перезапуск микроконтроллера.
Задержку перед стартом МК легко посчитать по формуле как T=R*C при данных значения получается приблизительно одна секунда. Для чего эта задержка? - спросите вы. А для того чтобы МК не запускался раньше времени чем все устройства на плате запитаются в перейдут в установившийся режим работы. К примеру, в старых МК (AT89C51) если нет такой цепочки которая делает изначальный сброс, то МК мог вообще не запуститься.
В МК AVR такую задержку перед стартом можно сделать программно чтобы он подожда секунду и потом только запускался. Поэтому можно обойтись и без конденсатора. А кнопку можно оставить - на свое усмотрение.
Тактовый генератор это своего рода сердце микроконтроллера. По кажлому "тику" или импульсу тактового генераора происходи какая нибудь операция - передаются какие либо данные по шинам и регистрам, работают таймеры, переключаются порты ввода/вывода. Чем больше тактовая частота тем больше энергии нужно микрокнтроллеру.
Импульсы формируются тактовым генератором с определенной скоростью (частотой). Сам генерато может быть как может быть как внутренний так и внешний. Все это гибко настраивается.
Микроконтроллер можно тактировать от:
У каждого способа тактирование есть свои достоинства. Если мы используем внутренюю или внешнюю RC цепочку то у нее есть один недостаток - " плавание частоты в зависимости от температуры. И мы не можем максимально развить максимальную частоту. Если использовать кварц то он занимает 2 ножки микроконтроллера. На кварце можно развить максимальную частоту. Частота тактирования микроконтроллера зависит от того какой кварц мы подключили.
Посмотреть способы тактирования МК можно в даташите System Clock and Clock Options. Если в кратце, то выбор способа тактирования осуществлятеся путем выставления определенных Fuse битов. Но если вы пока еще не ознакомились с ними, то лучше пока туда не лезть и использовать выбранный по умолчанию способ тактирование. По умолчанию в МК выбран внутренний генератор. Если не правильно выставить Fuse биты можно "залочить" МК и он превратиться в мертвеца и вернуть его к жизни будет совсем не просто, но все же возможно.
Микроконтроллер если к нему не подкючены какие либо внешние устройства не представляет собой ничего интересного, кусок кремния который тикает там что то себе под нос! Друго дело когда мы может что то понажимать, объяснить ему что "мол вот я нажал кнопку давай делай что нибудь!" а он нам в ответ может что включить, пропищать и как то с реагировать.
Для того чтобы подключить нашу всеми любимую кнопку нам нужно сначала выбрать ножку на которую мы его будем цеплять. Один конец кнопки мы кидаем на землю а другой к ножке МК. Сам вывод к которому подключения кнопка нужно настроить на вход с включением внутренних подтягивающих резисторов (PORTx=1 DDRx=0). Получается что если кнопка не нажата то входе будет высокий уровень напряжения через подтягивающий резистор. Если мы считаем это значения через PINx то он будет возвращать 1. Если мы нажимаем кнопку то вывод подтягивается к земле и напряжение на нем становится равным нулю, PINx возвращает 0. По этому значению мы и определяем нажата ли кнопка или нет.
В дополнении к внутреннему подтягивающему резистору можно подключить еще внешний резистор (на схеме показан пунктиром). Дело в том что внутренняя подтяжка слабовата порядка 100 кОм. Поэтому наведенное на этом выводе какое либо напряжение может привести к ложному срабатыванию. Довольно часто эти внутренние сопротивление сгорают от каких либо наводок. Микроконтроллер работает как и работал только вот без этой подтяжки. Поэтому рекомендуется ставить свою внешнюю подтяжку сопротивлением в 10 кОм. Таким образом можно подстраховатся даже, даже если внутреняя сгорела то у вас все будет работать должным образом.
Для того чтобы подключить светодиод можно использовать две схемы подключения порт-земля и порт-питание. В первом случае для того чтобы зажечь светодиод нужно на вывод к которому подключили светодиод подать высокий уровень (логическую единицу). Для второго случае когда светодиод подключен к выводу Vcc нужно наоборот подать другой уровень низкий (логический ноль). Для микрокнтроллеров абсолютно неть разницы куда вы будете подключать светодиод к земле или к Vcc. Можно применять как одну так и другую схему подключения светодиода к микрокнтроллеру AVR в зависимости от разводки печатной платы. Программно разницы тоже особо нет.
Сначала нам нужно настроить порт на выход для этого в регистр DDRx запичываем 1. Далее записываем в порт PORTx нужный нам уровень высокий или низкий.
Светодиод к выводам МК нужно цеплять черех резистор. Максимальный ток вывода МК порядка 20-30 мА. А для нормального свечения светодиода нужно 3...15 мА. А когда мы подклчаем светодиод с низким прямым сопротивлением, то мы можем его в лучшем случае просто спалить, а в худшем спалить сам вывод микроконтроллера. Поэтому ток через светодиод нужно ограничивать подключаю последовательно светодиоду сопротивление.
Напряжение на ноге микроконтроллера около 5 В. Для нормального горения светодиода нужно что на нем падение напряжения было приблизительно 2.5 В. Получается что такое же напряжение должно быть и ограничивающем сопротивлении 5-2.5=2.5. Предположим что ток протекающий через диод 5 мА. Знаем ток в цепи и падение напряжения на резисторе находим по закону Ома требуемое сопротивление резистора R=U/I=2.5/5e-3=500 Ом. Ближайшее значение 510 Ом, но можно взять и другие хоть от 220 Ом до 1 кОм. Гореть светодиод будет хорошо.
Если вы захотели подключить несколько светодиодов, то вам нужно вешать сопротивление на каждый светодиод. Если установить всего один общий резистор на все светодиоды то каждый светодиод получит меньше тока, а если уменьшить сопротивление резистора для того чтобы все горели в нормальный "накал" то в случае зажигания всего лишь одного светодиода он может выйти из строя либо сгорит порт.
Иногда бывают такие случаи когда мы установили микрокнтроллер, памяти нам хватает и быстродействие на высоте, но вот с ножками беда-не хватает нам ног для установки дополнительных устройст, кнопок или потребителей. Многие видят выход только в одном-установкой другого камня с большим числом ног. Но не каждый знает что есть несколько приемов как можно программно сэкономить на железе.
Это прием заключается в том что мы динамически меняем назначение выводов с течением времени. К примеру какой либо вывод работает на шину, а вслучае когда нам шина не нужна, то этот вывод мы можем использовать для других нужд. Например мы обрабатывать события нажатия кнопки. Переключения между назначением вывода происхоид сотни или даже тысячу раз в секунду и тем самым создается впечатление что одни вывод работает сразу двум назначения.
Но при такой программной реализации вывода порта нужно следовать определенным правилам:
Те назначения котоые вы планируете применять не должны друг другу мешать. Их нужно разделить таким образом чтобы одна функция (смежная) не изменяла результат работы другой функции (проверяемой).
Например, допустим у нас есть один вывод к которому мы подключили какой либо датчик либо кнопку. С датчика может придти сигнал 0 или 1, а в активном режиме Hi-Z в случае когда на датчик не послали сигнал Enable. А при нажатии на копку придет сигнал 0,
Основную часть времени МК установлен на вход Hi-Z и мы получаем сигнал с датчика на него же подан сигнал enable. Если нам нужно узнать состояние кнопки, то мы убираем enable и его выходы становятся в режим Hi-Z и нам не мешают. Далее мы переводим вывод МК в редим Pull-Up и опрашиваем нет ли у нас на входе вывода нуля - это сигнла нажатой кнопки. После того как мы это проверили мы снова переводим МК в Hi-Z и отправляем сигнал enable на датчик. Эта последовательность действий повторяется несколько раз в секунду.
При таком способе подключения могут возникнуть противоречия
Логическое противоречие
На линии может быть 0 в двух случаях от подключенного датчика и от нажатой кнопки. Если нажать кнопку то показания датчика исказятся, поэтому нужно знать когда происходит опрос датчика и в этот момент не нажимать кнопку. А для того чтобы те данные которые идут с датчика не принять за сигнал нажатия кнопки в тот интервал времени когда мы опрашиваем датчик, мы просто не опрашиваем кнопку.
Электрическое противоречие
Если с датчика поступает высокий уровень и мы нажимаем кнопку, то на одном выводе у нас сразу встретятся 0 и 1,Vcc и GND. В результате у нас датчик "заснет вечным сном" а кнопка как жили так и будет. Программым методом это противоречие не решить, а определить можно ли нажимать кнопку или нет в определенный момент времени на глаз просто не возможно, и в каком месте сейчас выполняется программа тоже не узнать. Электрическое противоречие можно решить только схемотехническим путем. Нам нужно в цепь где у нас кнопка добавить резистор. Значение резистора определяется через максимальтный ток самого низковольтного вывода (датчика или ножки).
К примеру если у нас на выводе васит датчик у которого вывод может дать не больше чем 10 мА. То нам нужно чтобы ток через датчик не был больше этой величины в случае нажатия кнопки. При напряжении в 5 В получаем сопротивление в 510 Ом. Таким образом даже если у нас с датчика идет высокий уровень, и в этот момент времени нажимается кнопка то ничего страшного не произойдет и датчик не сгорит и искажения уровня сигнала тоже не произойдет.
Примеры использования нескольких функций на одной ножке
Разъем ISP в некоторых схемах занимает 3 вывода микроконтроллера MOSI,MISO,SCK. У меня практически все платы имеют такой разъем и в него у меня вставлен программатор. Во время отладки платы я прошиваю МК по несколько раз. И это очень удобно, мне не приходится каждый раз когда мне нужно прошить МК его вытаскивать втавлять в колодку программатора и далее обратно.
На эти три разъема можно подключить, к примеру кнопки. И мониторить их состояние в прогамме. Самое главное не нажимать эти кнопочки во время заливки прошивки в микроконтроллер. Также с целью экономии выводов на эти выводы можно прицепить светодиоды. Правда если использовать программатор Громова то он может не корректно сработать. А если использовать программатор USBasp то проблем возникнуть не должно. В процесе прошивки светодиоды на выводах MOSI,MISO,SCK будут забавно моргать:)
В общем на эти вывод можно цеплять не только кнопки и светодиоды ну и что нибудь другое. Главное чтобы это устройство в процессе прошивки не начало чудить. К примеру если на этих вывода у вас находится релюшка которая управляет большой нагрузкой, то в процессе прошивки реле просто офигеет от потока данных как и высоковольтная нагрузка. В общем нужно понимать как это работает и не цеплять на эти выводы что попало. Можно подклчить символьный LCD дисплей типа HD44780 который использует шинный интерфейс для работы (схема ниже)
Установленные резисторы по 10 кОм отделяют линию программатора от основной схемы. Резисторы ограничивают возможные другие уровни от дисплея на выводах ISP разъема, программатор их пересиливает и шьет микрокнтроллер. А на работу дисплея эти резисторы особоне не оказывают влияния.
В данной схеме два светодиода подкючены на одну ножку порта, такая схема позволяет упростить печатную плату, не придется тажить еще одну шину к каждому светодиоду. Для того чтобы зажечь верхний сетодиод нужно на вывод Pxy подать логический 0, а для того чтобы зажечь нижний то подать высокий уровень. Если мы хотим зажечь сразу оба светодиода та нам нужно перевести вывод МК в режим Hi-Z как будто его нет, в этом случае появится сквозной ток через оба светодиода и они оба загорят. Или можно бысто зажигать то один то другой, визуально они будут оба гореть. Минус схемы в том что погасить сразу два диода нельзя.
В это схеме ничего сложного нет - меняя состояние выводов то в 1 то в 0 мы меняем напрявление тока включает то идин то другой диод. Для того чтобы погасить оба светодиода то нам нужно подать сразу на оба вывода либо высокое состояние 11 либо низкое это 00. Для того чтобы зажечь сразу два светодиода нам нужно сделать динамическую индикацию, быстро меняя состония обеих ножек с высокого на низкий. Если взять 3 вывода и использовать тот же принцип смены состояния ножек то можно подключить шесть светодиодов.
В данной схеме кнопки опрашиваются поочередно. Один вывод подтягивает внутренее сопротивление а другая дает 0. Нажатие кнопки дает 0 на подтянутом выводе а это фиксирует программа, таким образом,меняя роли выводов опрашивается каждая кнопка. Если у нас используется 6 выводов, то действуем по следующей схеме: одну ножку подтягиваем, другую делаем нулем а из третьей делаем состояние Hi-Z. Но тут тоже есть один минус. Допустим мы хотим опросить кнопку "В". Для этого верхнюю линию подтягиваем, среднюю делаем нулем, а нижнюю не задействуем в процессе или выставляем ее в стостоянии Hi-Z. Далее если мы нажмем на копку "B" то верхняя линия подтянится к нулю и программа поймет что нажата именно кнопка "B". В том случае если одновременно будут нажаты кнопки "E" и кнопка "Б" то верхняя линия такжн подтяница к 0 и программа поймет что была нажата кнопка "В", хотя мы ее не нажимали.
К минусам такой схемы можно отнести не правильная обработка событый нажатия кнопок в случае одновременного нажатия нескольких кнопок.
Эта схема работает также в динамическом режиме.Для того чтобы отобразить состояние светодиода мы можем подать 0 - диод горит, либо перевести вывод в состояние Hi-Z - диод не горит. А для того чтобы опросить кнопку нам нужно временно на несколько микросекунд перевести вывод в режим входа с подтягом и опрашивать кнопку. В том случае когда горит светодид т.е. на выводе высокий уровень, то нажимать кнопку нельзя, в противном случае сгорит порт а это нам совершенно не нужно.
Оригинал статьи: www.easyelectronics.ru
]]>Характеристики усилителя
Данная схема рекомендуется для подключения сабвуфера в автомобиле, она оптимизирована как раз для этих целей. Но ее можно использовать и для усиления полного сигнала.
Для накопления заряда устанавливаются 2 конденсатора C4 и C5, они необходимы для питания той дополнительной внутренней схемы которая необходима для работы усилителя в режиме H. Для индикации о аварийных режимах работы микросхемы таких реэимов как перегрев, короткое замыкание и о значительных искажения выходного сигнала, устанавливается светодиод HL1. Питание подается на усилитель от автомобильного аккумулятора напрямую, желательно использовать как можно более толстые провода.
Конденсаторы C1 и C2 желательно использовать плееночные, например К73-17 можно взять другие но только не керамические. Электролетические конденчаторы схемы можно использовать и с номинальным напряжением в 16 В, но надежноть в этом случае будет ниже. Вместо транзистора VT1 можно использовать КТ361 с любой другой буквой.
Источник:www.radiokot.ru
]]>Характеристики усилителя
Данная схема рекомендуется для подключения сабвуфера в автомобиле, она оптимизирована как раз для этих целей. Но ее можно использовать и для усиления полного сигнала.
Для накопления заряда устанавливаются 2 конденсатора C4 и C5, они необходимы для питания той дополнительной внутренней схемы которая необходима для работы усилителя в режиме H. Для индикации о аварийных режимах работы микросхемы таких реэимов как перегрев, короткое замыкание и о значительных искажения выходного сигнала, устанавливается светодиод HL1. Питание подается на усилитель от автомобильного аккумулятора напрямую, желательно использовать как можно более толстые провода.
Конденсаторы C1 и C2 желательно использовать плееночные, например К73-17 можно взять другие но только не керамические. Электролетические конденчаторы схемы можно использовать и с номинальным напряжением в 16 В, но надежноть в этом случае будет ниже. Вместо транзистора VT1 можно использовать КТ361 с любой другой буквой.
Источник:www.radiokot.ru
]]>Схема передатчика на транзисторах состоит из каскада предварительно усиления на транзисторе VT1 и каскада передатчика на транзисторе VT2. Для питания передатчика использовалась батарея на 9 В.Слабый сигнал с электретного микрофона МКЭ-3 поступает на первый каскад, где происходит его усиление. Усиленный сигнал через конденсатор C4 поступает на второй каскад передатчика где происходит его частотная модуляция.
Изменение частоты передающего каскада осуществляется при помощи варикапа VD1 емкость которого меняется в зависимости от напряжения. Напряжение здесь меняется в так звуковой частоты с первого каскада. Для того чтобы сделать катушку L1 нужно взять провод ПЭВ-2 диаметром 0.5 мм и сделать 6 витков на каркасе диаметром 4 мм.
Транзистор VT2 можно заменить на другой к примеру ГТ308. У этого транзистора коэффициент усиления больше чем П416. Как показала практика, вообще лучше использовать транзисторы с большим коэффициентом усиления. Также транзистор КТ3102 можно поменять на BC547, пробовал ставить КТ315, на нем тоже схема прекрасно работает но чуть похуже чем на указанном в схеме. Собирал схему на плате текстолита, к сожалению не могу найти сам проект печатной платы.
Сигнал передатчика принемается обычным радиоприемником. После подачи напряжения передатчик должен сразу заработать, конечно при условии что все правильно собрано. Настройка передающей частоты осуществляется при помощи подстроечного конденсатора С7. Настроить нужно так чтобы прием осуществлялся где нибудь между радиостанциями.
Источник: radiokot.ru
]]>Схема передатчика на транзисторах состоит из каскада предварительно усиления на транзисторе VT1 и каскада передатчика на транзисторе VT2. Для питания передатчика использовалась батарея на 9 В.Слабый сигнал с электретного микрофона МКЭ-3 поступает на первый каскад, где происходит его усиление. Усиленный сигнал через конденсатор C4 поступает на второй каскад передатчика где происходит его частотная модуляция.
Изменение частоты передающего каскада осуществляется при помощи варикапа VD1 емкость которого меняется в зависимости от напряжения. Напряжение здесь меняется в так звуковой частоты с первого каскада. Для того чтобы сделать катушку L1 нужно взять провод ПЭВ-2 диаметром 0.5 мм и сделать 6 витков на каркасе диаметром 4 мм.
Транзистор VT2 можно заменить на другой к примеру ГТ308. У этого транзистора коэффициент усиления больше чем П416. Как показала практика, вообще лучше использовать транзисторы с большим коэффициентом усиления. Также транзистор КТ3102 можно поменять на BC547, пробовал ставить КТ315, на нем тоже схема прекрасно работает но чуть похуже чем на указанном в схеме. Собирал схему на плате текстолита, к сожалению не могу найти сам проект печатной платы.
Сигнал передатчика принемается обычным радиоприемником. После подачи напряжения передатчик должен сразу заработать, конечно при условии что все правильно собрано. Настройка передающей частоты осуществляется при помощи подстроечного конденсатора С7. Настроить нужно так чтобы прием осуществлялся где нибудь между радиостанциями.
Источник: radiokot.ru
]]>Усилителя мощности имеет следующие характеристики:
Усиление сигнала по напряжению осуществляется каскадом на ОУ DA1. На транзисторах VT1-VT4 собран предоконченный каскад. На транзисторах VT5 и VT6 выполнен выходной каскад, это каскад работает в режиме "B". Для обеспечения температурной стабилизации усилителя в коллекторные цепи транзисторов VT3 и VT4 добавлены сопротивления R19,R20.
В каждом плече предоконченого каскада усилителя мощности имеется ООС с глубиной не меньше 20 дБ. Снятое с коллекторный нагрузок напряжение обратной связи подается в эмиттерные цепи транзисторов VT1 и VT2 через делители R11-R14 и R12-R15.
Конденсаторы C10 и C11 нужны для коррекции частоты и для устойчивости по цепи обратной связи. Для ограничения максимальный токов транзисторных каскадов от короткого замыкания нагрузки установлены резисторы R13,R16 и R19,R20. Какие бы не были перегрузки предельный ток через транзисторы VT5 и VT6 будет не более 3.5-4 А. И в случае КЗ они не перегреваются потому что успеют сгореть предохранители и выключить схему.
Для снижения коэффициента гармоник (не менее 70 дБ) введена ООС, напряжение ООС снимается с выхода усилителя и цепочку C3C5R3R4 попадает на инвертирующий вход ОУ DA1.
Для корректировки АЧХ усилителя по цепи ООС установлен кондесатор С5. Цепочка R1C1 которая включена на входе необходима для ограничения полосы пропускания частотой 160 кГц. Для наибольшей линеаризации АЧХ усилителя в интервале от 10 до 200 Гц необходимо правильно выбрать конденстоары C1,C2,C4.
Операционный усилитель можно взять другой, к примеру К574УД1А или К574УД1В. Транзисторы должны быть такие же как и на схеме, а индексы можно взять другие Г,Д для транзитсоров VT1,VT2 и В для транзисторов VT3,VT6. Транзитсоры выходного каскада КТ819 и К818 должны быть установлены на теплоотводящем радиаторе. Эти транзисторы можно заменить на другие КТ825 и КТ827
]]>Усилителя мощности имеет следующие характеристики:
Усиление сигнала по напряжению осуществляется каскадом на ОУ DA1. На транзисторах VT1-VT4 собран предоконченный каскад. На транзисторах VT5 и VT6 выполнен выходной каскад, это каскад работает в режиме "B". Для обеспечения температурной стабилизации усилителя в коллекторные цепи транзисторов VT3 и VT4 добавлены сопротивления R19,R20.
В каждом плече предоконченого каскада усилителя мощности имеется ООС с глубиной не меньше 20 дБ. Снятое с коллекторный нагрузок напряжение обратной связи подается в эмиттерные цепи транзисторов VT1 и VT2 через делители R11-R14 и R12-R15.
Конденсаторы C10 и C11 нужны для коррекции частоты и для устойчивости по цепи обратной связи. Для ограничения максимальный токов транзисторных каскадов от короткого замыкания нагрузки установлены резисторы R13,R16 и R19,R20. Какие бы не были перегрузки предельный ток через транзисторы VT5 и VT6 будет не более 3.5-4 А. И в случае КЗ они не перегреваются потому что успеют сгореть предохранители и выключить схему.
Для снижения коэффициента гармоник (не менее 70 дБ) введена ООС, напряжение ООС снимается с выхода усилителя и цепочку C3C5R3R4 попадает на инвертирующий вход ОУ DA1.
Для корректировки АЧХ усилителя по цепи ООС установлен кондесатор С5. Цепочка R1C1 которая включена на входе необходима для ограничения полосы пропускания частотой 160 кГц. Для наибольшей линеаризации АЧХ усилителя в интервале от 10 до 200 Гц необходимо правильно выбрать конденстоары C1,C2,C4.
Операционный усилитель можно взять другой, к примеру К574УД1А или К574УД1В. Транзисторы должны быть такие же как и на схеме, а индексы можно взять другие Г,Д для транзитсоров VT1,VT2 и В для транзисторов VT3,VT6. Транзитсоры выходного каскада КТ819 и К818 должны быть установлены на теплоотводящем радиаторе. Эти транзисторы можно заменить на другие КТ825 и КТ827
]]>