Элементы Пельтье. Работа и применение. Обратный эффект
Элементы Пельтье называются специальные термоэлектрические преобразователи, работающие по принципу Пельтье. (образования разности температур при подключении электрического тока, другими словами, термоэлектрический охладитель).
Что такое элемент Пельтье
Ни для кого не секрет, что электронные устройства при работе греются. Нагрев отрицательно влияет на процесс работы, поэтому, чтобы как-то охладить приборы, в корпус устройств встраивают специальные элементы, называющиеся по имени изобретателя из Франции – Пельтье. Это малогабаритный элемент, который может охлаждать радиодетали на платах устройств. При его установке собственными силами никаких проблем не возникнет, монтаж в схему производится обычным паяльником.
1 — Изолятор керамический
2 — Проводник n — типа
3 — Проводник p — типа
4 — Проводник медный
В ранние времена вопросы охлаждения никого не интересовали, поэтому это изобретение осталось без применения. Два века спустя, при использовании электронных устройств в быту и промышленности, стали применять миниатюрные элементы Пельтье, вспомнив об эффекте французского изобретателя.
Принцип действияЧтобы понять, как работает элемент на основе изобретения Пельтье, необходимо разобраться в физических процессах. Эффект заключается в соединении двух материалов с токопроводящими свойствами, обладающими различной энергией электронов в районе проводимости. При подключении электрического тока к зоне связи, электроны получают высокую энергию, для перехода в зону с более высокой проводимости второго полупроводника. Во время поглощения энергии проводники охлаждаются. При течении тока в обратную сторону происходит обычный эффект нагревания контакта.
Вся работа осуществляется на уровне решетки атома материала. Чтобы лучше понять работу, представим газ из частиц – фононов. Температура газа имеет зависимость от параметров:
- Свойства металла.
- Температуры среды.
Предполагаем, что металл состоит из смеси электронного и фононного газа, находящегося в термодинамическом равновесии. Во время касания двух металлов с различной температурой, холодный электронный газ перемещается в теплый металл. Создается разность потенциалов.
На стыке контакта электроны поглощают энергию фононов и отдают ее на другой металл фононам. При смене полюсов источника тока, весь процесс будет обратного действия. Разность температур будет возрастать до того момента, пока имеются в наличии свободные электроны с большим потенциалом. При их отсутствии наступит уравновешивание температур в металлах.
Если на одну сторону пластины Пельтье установить качественный теплоотвод в виде радиатора, то вторая сторона пластины создаст более низкую температуру. Она будет ниже на несколько десятков градусов, чем окружающий воздух. Чем больше значение тока, тем сильнее будет охлаждение. При обратной полярности тока холодная и теплая сторона поменяются друг с другом.
При соединении элемента Пельтье с металлом, эффект становится незначительным, поэтому практически устанавливают два элемента. Их количество может быть любым, это зависит от потребности в мощности охлаждения.
Эффективность действия эффекта Пельтье зависит от того, насколько точно выбраны свойства металлов, силы тока, протекающей по прибору, скорости отвода тепла.
Сфера использованияЧтобы применить практически элемент Пельтье, ученые произвели несколько опытов, показавших, что повышение отвода тепла достигается увеличением числа соединений 2-х материалов. Чем больше число спаев материалов, тем выше эффект. Чаще в нашей жизни такой элемент служит для охлаждения электронных устройств, уменьшения температуры в микросхемах.
Вот их некоторые области использования:
- Устройства ночного видения.
- Цифровые камеры, приборы связи, микросхемы, нуждающиеся в качественном охлаждении, для лучшего эффекта картинки.
- Телескопы с охлаждением.
- Кондиционеры.
- Точные часовые системы охлаждения кварцевых электрических генераторов.
- Холодильники.
- Кулеры для воды.
- Автомобильные холодильники.
- Видеокарты.
Элементы Пельтье часто используются в системах охлаждения, кондиционирования. Есть возможность достижения довольно низких температур, что открывает возможность применения для охлаждения оборудования с повышенным нагревом.
В настоящее время специалисты используют элементы Пельтье в акустических системах, выполняющих роль кулера. Элементы Пельтье не создают никаких звуков, поэтому бесшумность является одним из их достоинств. Такая технология стала популярной из-за мощной отдачи тепла. Элементы, изготовленные по современной технологии, имеют компактные размеры, радиаторы охлаждения поддерживают определенную температуру долгое время.
Достоинством элементов является длительный срок службы, потому что они сделаны в виде монолитного корпуса, неисправности маловероятны. Простая конструкция обычного широко применяемого вида простая, состоит из двух медных проводов с клеммами и проводами, изоляции из керамики.
Это небольшой перечень мест применения. Он расширяется за счет устройств бытового назначения, компьютеров, автомобилей. Можно отметить использование элементов Пельтье в охлаждении микропроцессоров с высокой производительностью. Ранее в них устанавливались только вентиляторы. Теперь, при монтаже модуля с элементами Пельтье значительно снизился шум в работе устройств.
Будут ли меняться схемы охлаждения в обычных холодильниках на схемы с использованием эффекта Пельтье? Сегодня вряд ли это возможно, так как элементы имеют низкий КПД. Стоимость их также не позволит применить их в холодильниках, так как она достаточно высока. Будущее покажет, насколько будет развиваться это направление. Сегодня проводятся эксперименты с твердотельными растворами, аналогичными по строению и свойствам. При их использовании цена модуля охлаждения может уменьшиться.
Обратный эффект элементов ПельтьеТехнология подобного вида имеет особенность с интересными фактами. Это заключается в эффекте образования электрического тока путем охлаждения и нагревания пластины модуля Пельтье. Другими словами, он служит генератором электрической энергии, при обратном эффекте.
Такие генераторы электричества существуют пока чисто теоретически, но можно надеяться на будущее развитие этого направления. В свое время французский изобретатель не нашел применения своему открытию.
Сегодня этот термоэлектрический эффект широко используется в электронике. Границы применения постоянно расширяются, что подтверждается докладами и опытами исследователей и ученых. В будущем бытовая и электронная техника станет обладать совершенными инновационными возможностями. Холодильники станут бесшумными, так же, как и компьютеры. А пока модули Пельтье монтируют в разные схемы для охлаждения радиодеталей.
Преимущества и недостаткиДостоинствами элементов Пельтье можно назвать следующие факты:
- Компактный корпус элементов, позволяет монтировать его на плату с радиодеталями.
- Нет движущихся и трущихся частей, что повышает его срок службы.
- Позволяет соединение множества элементов в один каскад, по схеме, позволяющей уменьшать температуру очень горячих деталей.
- При смене полярности питающего напряжения элемент станет работать в обратном порядке, то есть, стороны охлаждения и нагрева поменяются местами.
Недостатками можно назвать такие моменты:
- Недостаточный коэффициент действия, влияющий на увеличение подводимого тока, для достижения необходимого перепада температур.
- Довольно сложная система отведения тепла от поверхности охлаждения.
Изготовить такие элементы Пельтье можно самому быстро и просто. Для начала нужно определиться с материалом пластин. Нужно взять пластины элементов из прочной керамики, приготовить проводники в количестве больше 20 штук, для того, чтобы обеспечить наибольший перепад температур. При достаточном числе элементов КПД произойдет значительное увеличение производительности холодильника.
Большую роль играет мощность применяемого холодильника. Если он действует на жидком фреоне, то с производительностью проблем не возникнет. Пластины элементов монтируются возле испарителя, смонтированного вместе с двигателем. Для такого монтажа понадобится некоторый набор прокладок и инструмента. Таким образом, обеспечится быстрое охлаждение нижней части холодильника.
Необходима тщательная изоляция проводников, только после этого их подключают к компрессору. После окончания монтажа нужно проверить напряжение мультиметром. При нарушении работы элементов (например, короткое замыкание), сработает терморегулятор.
Другие применения термоэлектрических модулейЭффект модуля Пельтье применяется сегодня, благодаря законам физики. Избыточная энергия элементов всегда пригодится там, где необходима бесшумный и быстрый обмен теплом.
Основные места использования модулей:
- Охлаждение микропроцессоров.
- Двигатели внутреннего сгорания выпускают отработанные газы, которые ученые стали применять для образования вспомогательной энергии с помощью термоэлектрических модулей. Полученная таким способом энергия подается снова в мотор, в виде электричества. Это создает экономию топлива.
- В бытовых устройствах, действующих на нагревание или охлаждение.
Охлаждающий кулер может превратиться в нагреватель, а холодильник может выполнять функцию теплового шкафа, если изменить полярность постоянного тока. Это называется обратимым эффектом.
Такой принцип применяют в рекуператорах. Он состоит из бокса из двух камер. Они между собой сообщаются вентилятором. Элементы Пельтье нагревают холодный воздух, поступающий снаружи, с помощью энергии, которая извлечена из теплого воздуха в помещении. Такое устройство экономит расходы на отопление помещений.
Похожие темы:
Элемент Пельтье — Практическая электроника
Все вы знаете, что с помощью электрического тока можно нагревать какие-либо предметы. Это может быть паяльник, электрочайник, утюг, фен, различного рода обогревашки и тд. Но слышали ли вы, что с помощью электрического тока можно охлаждать? “Ну а как же, например, бытовой холодильник” – скажите вы. И будете не правы. В бытовом холодильнике электрический ток оказывает только вспомогательную функцию: гоняет фреон по кругу.
Что такое элемент Пельтье
Но существуют ли такие радиоэлементы, которые при подаче на них электрического тока вырабатывают холод? Оказывается существуют ;-). В 1834 году французский физик Жан Пельтье обнаружил поглощение тепла при прохождении электрического тока через контакт двух разнородных проводников. Или, иными словами, в этом месте наблюдалась пониженная температура. Ну и как положено в физике, чтобы не придумывать новое название этому эффекту, его называют в честь того, кто его открыл. Открыл что-то новое? Отвечай за базар)). С тех пор зовется такой эффект
Ну и как тоже ни странно, элемент, который вырабатывает холодок, называют элементом Пельтье. Элемент Пельтье — это термоэлектрический преобразователь, принцип действия которого основан на эффекте Пельтье — возникновении разности температур при протекании электрического тока. В англоязычной литературе элементы Пельтье обозначаются TEC (от англ. ThermoElectric Cooler — термоэлектрический охладитель).
Практический опыт с элементом Пельтье
Выглядеть он может по-разному, но основной его вид – это прямоугольная или квадратная площадка с двумя выводами. Сразу же отметил сторону “А” и сторону “Б” для дальнейших экспериментов
Почему я пометил стороны?
Вы думаете, если мы просто тупо подадим напряжение на этот элемент, он у нас будет полностью охлаждаться? Не хочу вас разочаровывать, но это не так… Еще раз внимательно читаем определение про элемент Пельтье. Видите там словосочетание “разности температур”? То то и оно. Значит, у нас какая-то сторона будет греться, а какая-то охлаждаться. Нет в нашем мире ничего идеального.
Для того, чтобы определить температуру каждой стороны элемента Пельтье, я буду использовать мультиметр, который шел в комплекте с термопарой
Сейчас он показывает комнатную температуру. Да, у меня тепло ;-).
Для того, чтобы определить, какая сторона элемента Пельтье греется, а какая охлаждается, для этого цепляем красный вывод на плюс, черный – на минус и подаем чуток напряжения, вольта два-три. Я узнал, что у меня сторона “А” охлаждается, а сторона “Б” греется, пощупав их рукой. Если перепутать полярность, ничего страшного не случится. Просто сторона А будет нагреваться, а сторона Б охлаждаться, то есть они поменяются ролями.
Итак, номинальное (нормальное) напряжение для работы элемента Пельтье – это 12 Вольт. Так как я подключил на красный – плюс, а на черный – минус, то у меня сторона Б греется. Давайте замеряем ее температуру. Подаем напряжение 12 Вольт и смотрим на показания мультиметра:
[quads id=1]
Поэтому главной фишкой использования элемента Пельтье в своих электронных устройствах является большой радиатор. Желательно, чтобы радиатор обдувался вентилятором. Я пока что взял радиатор от усилителя, который дали в ремонт. Намазал термопасту КПТ-8 и прикрепил элемент Пельтье к радиатору.
Подаем 12 Вольт и замеряем температуру стороны А:
7 градусов по Цельсию). Когда трогаешь, пальцы замерзают.
Но также есть и обратный эффект, при котором можно вырабатывать электроэнергию с помощью элемента Пельтье, если одну сторону охлаждать, а другую нагревать. Очень показательный пример – это фонарик, работающий от тепла руки
Потребляемая мощность элемента Пельтье
Элемент Пельтье сам по себе считается очень энергозатратным. Регулировка температуры его сторон достигается напряжением. Чем больше напряжение, тем большую силу тока он потребляет. А чем больше силы тока он потребляет, тем быстрее набирает температуру. Поэтому, можно регулировать холодок, тупо меняя значение напряжения).
Вот некоторые значения по потреблению электрического тока элементом Пельтье:
Повышаю напряжение до 3 Вольт
Кушает уже почти 1 Ампер.
Повышаю до 5 Вольт
Чуть больше полтора Ампера.
Даю 12 Вольт, то есть его рабочее напряжение:
Жрет уже почти 4 Ампера! Грабеж).
Давайте грубо посчитаем его мощность. 4х12=48 Ватт. Это даже больше, чем 40 Ваттная лампочка, которая висит у вас в кладовке). Если элемент Пельтье такой прожорливый, целесообразно ли из него делать бытовые холодильники и холодильные камеры? Конечно же нет! Такой холодильник у вас будет жрать Киловатт 10 не меньше! Но зато есть один маленький плюс – он будет абсолютно бесшумен :-). Но если нет никакой возможности, то делают холодильники даже из элементов Пельтье. Это в основном мини холодильники для автомобилей. Также элемент Пельтье некоторые используют для охлаждения процессора на ПК. Получается очень эффективно, но по энергозатратам лучше все-таки ставить старый добрый вентилятор.
Где купить элемент Пельтье
На Али можно найти даже мини-кондиционер из элемента Пельтье вот по этой ссылке.
На Али этих элементов Пельтье можете выбрать сколь душе угодно!
Вот ссылка на них
Элемент Пельтье, принцип работы
Что такое элемент Пельтье – электро-, термопреобразователь, который состоит из нескольких пар ( в отдельных случаях одной) полупроводников различных по свойству типов («n» и «р»), последние соединяются перемычками из металла – в основном это — медь. На практике данное устройство создает температурную разность на разных концах поверхности при протекании энергии электрического тока.
Одним из наиболее простейших вариантов данного устройства Пельтье в практическом использовании является модификация ТЕС1-12706, изображенная на рисунке 1.
Элемент Пельтье – преобразователь термический, электрический ТЕС1-12706
Принцип работы элемента Пельтье
В корне принципа работы положен термоэлектрический эффект Пельтье. Другими словами — при протекании и под действием электрического тока создается разница температур в местах контактов термопар — полупроводников «n» и «р» — типа.
Элементы Пельтье – доволи таки «чувствительные устройства» к перегреву и высоким температурам. К ним предъявляются высокие требования к эксплуатации, при невыполнении которых, устройство быстро выходит из строя. Очень важно отводить тепло, для этой цели необходимо устанавливать радиатор или вентилятор, в противном случае не достигается температура холодной стороны относительно горячей.
Как работает элемент Пельтье
Представим, что электрический ток проходит через термическую пару, как показано на рисунке 2.
Принцип работы элемента Пельтье
В этом случае происходит процесс поглощения энергии тепла на полупроводниковом контакте n — p и процесс выделения тепловой энергии на p — n контакте. В итоге часть термопары полупроводника, который сопрягается с n — p контактом, будет охлаждаться, а вторая часть с другой противоположной стороны — соответственно, нагреваться.
В том случае, когда поменяем полярность по току, то происходит процессы нагревания и охлаждения, соответственно, также поменяются.
Обратный процесс эффекта Пельтье приводит к тому, что при подводе теплоты к одной стороне термопреобразователя получают энергию электрического тока.
Конечно на практике, применение одной термопары не хватает для полного отвода тепловой энергии, поэтому в преобразователе применяют большое количество. Электрическая цепь собирается из термопар последовательно. В то же время в конструкции термопреобразовательных элементов: нагревающие термопары располагаются на другой стороне относительно охлаждающих.
Устройство элемента Пельтье очень простое. Термические пары конструируются между двумя платинами, выполненными из керамики. Соединение термопар производится медными проводниками (шинами). Количество термопар определяется назначением термопреобразователя, его мощности и места установки и может применяться от одной до нескольких сотен штук.
Устройство элемента Пельтье
Основными элементами термопреобразователя являются: полупроводники р — типа, n — типа, керамические пластины, медные сопряжения — проводники; контакты подвода электрического тока «плюс» и «минус». Для элемента Пельтье разница по температурам разных краев термопар достигает до 70 градусов по Цельсию. Чтобы увеличить данную разницу требуется увеличить каскад последовательного включения термопар.
Основные эксплуатационные характеристики элемента Пельтье
Данное устройство в целом идеально работает в тех случаях, когда хорошо и надежно контактируют термопары с охладительным устройством, будь то радиатор охлаждения или вентилятор охлаждения со змеевиком, то есть – хороший теплосъем.
Модули Пельтье, как их часто называют, очень чувствительны к перепадам по току и напряжению (не более 5 %). Под действием высоких температур (наиболее критическая для элементов до 150 градусов) эффективность снижается во много раз (до 40 %) и модуль очень быстро ломается.
Как правило, в схему работы полупроводниковых элементов недопустимым условием является приспособление релейных устройств: ограничивающих мощность или регулирующих. Это приводит к деградации кристаллических составляющих и к неисправности в скором времени элемента.
Частое включение и выключение устройств также негативно влияет на работу и срок эксплуатации, и его долговечность функционирования. Согласно законов физики — любой нагрев материала приводит к его тепловому расширению, а охлаждение — к сжатию. Соответственно, особенно слабыми местами в полупроводниковых элементах являются «паечные», где из-за механического движения возможно появление дефектов в виде микротрещин и в конце концов к разрыву цепи.
Коэффициент теплопроводности термических пар элемента Пельтье достаточно высок, что с одной стороны является достоинством, а с другой стороны ограничивает срок эксплуатации и расчетное число циклов «стоп-старт-стоп».
Достоинства и недостатки модуля Пельтье
Сравнивать устройство Пельтье с другими охладительными установками с различным приводом в принципе невозможно и нецелесообразно, так как в первом случае имеют полупроводниковые материалы в виде кристаллов, а во втором случае рабочее тело — газ или жидкость ( к примеру: компрессорный холодильник). В различных областях применяются и те и другие устройства.
К преимуществам элементов Пельтье можно отнести:
- полное отсутствие механики движения и вращающихся частей, а также жидкостей, газов;
- абсолютно нет шума работы устройств;
- сравнительно малые размеры;
- двухфункциональность: нагревание и охлаждение при изменении полярности;
К недостаткам можно отнести:
- относительно низкий коэффициент полезного действия;
- требование постоянного источника энергии, питания;
- число пусков и остановов ограничено;
- плавность отключения и включения термоэлектрических устройств;
- контроль нагрева с одной стороны или охлаждения с другой с помощью вентилятора.
Опрос: Понятно ли что такое и как устроен Элемент Пельтье (Кол-во голосов: 17)
Да, понял с первого раза
Пришлось перечитать несколько раз, чтобы понять
Нет, не понял вообще
Чтобы проголосовать, кликните на нужный вариант ответа. РезультатыОбласть применения элементов Пельтье
Основной и наиболее широким применением термоэлектрические преобразователи нашли в следующих приборах, аппаратах и устройствах:
- автохолодильники и бытовые аппараты;
- водо- и воздухоохладители;
- в электронных приборах и устройствах также в качестве охлаждения;
- в генераторах электротермических.
Проголосовавших: 6 чел.
Средний рейтинг: 4.5 из 5.
Зарядка аккумуляторной батареи от элементов Пельтье
Выходное напряжение термоэлектрического генератора на элементах Пельтье зависит от температурных условий и нагрузки. В предлагаемой конструкции режим работы преобразователя этого напряжения в необходимое для зарядки свинцово-кислотной аккумуляторной батареи автоматически поддерживается таким, что генератор всегда отдаёт максимально возможную мощность. Это позволяет получить от генератора и запасти в батарее максимально возможное количество энергии.
Известно, что для получения максимального количества энергии во внешней цепи необходимо, чтобы сопротивление нагрузки генератора равнялось его внутреннему сопротивлению, а последнее у элемента Пельтье зависит от условий работы. Поскольку обеспечить одинаковые условия нагрева большого числа элементов и отвода от них тепла проблематично, выход заключается в разбиении всего их множества на отдельные группы с примерно одинаковыми характеристиками и тепловыми условиями. Оптимальная нагрузка при этом обеспечивается раздельно для каждой группы. По этому принципу и построено рассматриваемое устройство, состоящее из двух идентичных каналов, работающих на общую нагрузку — заряжаемую аккумуляторную батарею.
Основные технические параметры
Число каналов преобразования ……………………….2
Минимальное напряжение на входе канала, В …………..3
Максимальное напряжение на входе канала, В ………….12
Максимальный ток генератора, А ……………………..5
Максимальное выходное напряжение, В……………..14
Частота преобразования, кГц ……80
КПД (при входном напряжении 9 В, токе 1 А), %, не менее ……………………80
Ток потребления от батареи в спящем режиме, мА……….0,4
Схема устройства показана на рис. 1. Термоэлектрические генераторы G1 и G2 подключены к входам двух идентичных каналов преобразования. Каждый канал представляет собой повышающий импульсный преобразователь напряжения на накопительном дросселе L1 (L2) и мощном полевом транзисторе VT3 (VT4), управляемый путём широтно-импульсной модуляции. Контролирует работу преобразователей микропроцессор DD1 (ATmega88-20AU). Коды из приложенного к статье файла TERMPR.hex необходимо загрузить в его FLASH-память. Конфигурацию микроконтроллера программируют в соответствии с таблицей, где цветом выделены значения разрядов, отличающиеся от установленных изготовителем микросхемы.
Рис. 1.
Разряд | Сост. | Разряд | Сост. |
RSTDISBL | 1 | CKDIV8 | 1 |
DWEN | 1 | CKOUT | 1 |
SPIEN | 0 | SUT1 | 1 |
WDTON | 0 | SUT0 | 0 |
EESAVE | 1 | CKSEL3 | 0 |
BODLEVEL2 | 0 | CKSEL2 | 0 |
BODLEVEL1 | 1 | CKSEL1 | 1 |
BODLEVEL0 | 0 | CKSEL0 | 0 |
На рис. 2 приведена диаграмма изменения напряжения на выходе термоэлектрического генератора одного канала в течение рабочего цикла устройства. Масштаб по оси времени не соблюдён. Цикл начинается с приостановки работы преобразователя в момент t0, после чего напряжение генератора нарастает до напряжения холостого хода Uxx, которое по окончании переходного процесса микроконтроллер измеряет за время tизм. В момент времени t1 микроконтроллер включает преобразователь и в несколько приёмов изменяет длительность управляющих им импульсов, каждый раз измеряя напряжение генератора. После очередного изменения длительности импульсов напряжение генератора попадает в зону с центром вблизи U = 0,5Uxx (в данном случае это момент t4). Это соответствует оптимальной нагрузке на генератор, поэтому преобразователь продолжает работать при установленной длительности импульсов, пока вследствие изменения условий напряжение генератора не выйдет за пределы зоны ΔU. Затем процесс повторяется.
Рис. 2.
Так происходит зарядка аккумуляторной батареи GB1. По достижении напряжением батареи приблизительно 14 В зарядный ток уменьшается, чтобы не допустить её перезарядки. Устройство переходит в режим стабилизации напряжения батареи.
Питание микроконтроллера DD1 может происходить как от батареи GB1 через интегральный стабилизатор DA1, так и от термогенераторов G1 и G2 через стабилизаторы тока на транзисторах VT5 и VT6. Благодаря такой организации питания напряжение на зажимах для подключения аккумуляторной батареи имеется даже в её отсутствие. Достаточно, чтобы работал хотя бы один термогенератор.
Если напряжение обоих термогенераторов опустилось ниже минимального значения, микроконтроллер DD1 переходит в «спящий» режим, предварительно закрыв транзисторы VT7 и VT8 и отключив этим стабилизатор DA1. При этом ток потребления от аккумуляторной батареи (если она подключена) уменьшается до 0,4 мА.
Как только напряжение хотя бы одного генератора становится выше минимального (примерно 3 В), микроконтроллер «пробуждается», включает стабилизатор DA1 и управляет преобразователями, как описано выше. Если напряжение холостого хода генератора превышает напряжение аккумуляторной батареи, то происходит непосредственная зарядка аккумулятора через диод VD7 или VD8 и установить оптимальный режим нагрузки становится невозможно. Отсюда ограничение на максимальное напряжение термогенератора.
Светодиоды HL1-HL3 используются для сигнализации соответственно о включении устройства и работе преобразователей напряжения генераторов G1 и G2. Предусмотрена сигнализация о перегреве термогенераторов — звуковой сигнал подаёт излучатель звука HA1 и мигает светодиод.
Температура каждого из генераторов контролируется с помощью термовыключателей SK1 и SK2 с температурой срабатывания +120 оС. Наиболее распространённые и дешёвые элементы Пельтье могут эксплуатироваться при температуре до +138 оС. Если применить высокотемпературные элементы, то нужно использовать и другие термовыключатели или отказаться от них совсем.
Чертёж печатной платы устройства показан на рис. 3, а размещение элементов на ней — на рис. 4. Многие из необходимых для изготовления устройства деталей можно найти на ненужной материнской плате от компьютера. Например, полевые транзисторы ARM2014N используются в преобразователях напряжения для питания процессора и памяти на платах фирмы ASUS. Хорошо подходят также полевые транзисторы STB70NF3LL. Главное требование, предъявляемое к этим транзисторам, — пороговое напряжение не выше 1,5 В (лучше 1 В). Использование приборов с более высоким пороговым напряжением приводит либо к их чрезмерному нагреву, либо преобразователь вообще не работает, так как транзисторы не открываются имеющимся напряжением.
Рис. 3.
Рис. 4.
Дроссели L1 и L2 также изготовлены из найденных на материнской плате. Использованы их магнитопроводы — ферритовые кольца размерами 15x8x6 мм. На них намотаны по 15 витков провода диаметром 1 мм.
Вместо диодов VS80SQ040 и BAS86 могут быть применены другие диоды Шотки соответственно на 40 В, 10 А и 40 В, 0,1 А.
Программа микроконтроллера имеется здесь
Авторы: С. Ткачук, г. Боярка, Украина
Элемент Пельтье
Элемент Пельтье — это термоэлектрический преобразователь, принцип действия которого базируется на эффекте Пельтье — возникновении разности температур при протекании электрического тока. В англоязычной литературе элементы Пельтье обозначаются TEC (от англ. Thermoelectric Cooler — термоэлектрический охладитель).
Эффект, обратный эффекту Пельтье, называется эффектом Зеебека.
Принцип действия
Внешний вид элемента Пельтье. При пропускании тока тепло переносится с одной стороны на другую.В основе работы элементов Пельтье лежит контакт двух полупроводниковых материалов с разными уровнями энергии электронов в зоне проводимости. При протекании тока через контакт таких материалов электрон должен приобрести энергию, чтобы перейти в более высокоэнергетическую зону проводимости другого полупроводника. При поглощении этой энергии происходит охлаждение места контакта полупроводников. При протекании тока в обратном направлении происходит нагревание места контакта полупроводников, дополнительно к обычному тепловому эффекту.
При контакте металлов эффект Пельтье настолько мал, что незаметен на фоне омического нагрева и явлений теплопроводности. Поэтому при практическом применении используется контакт двух полупроводников.
Элемент Пельтье состоит из одной или более пар небольших полупроводниковых параллелепипедов — одного n-типа и одного p-типа в паре (обычно теллурида висмута Bi2Te3 и твёрдого раствора SiGe), которые попарно соединены при помощи металлических перемычек. Металлические перемычки одновременно служат термическими контактами и изолированы непроводящей плёнкой или керамической пластинкой. Пары параллелепипедов соединяются таким образом, что образуется последовательное соединение многих пар полупроводников с разным типом проводимости, так чтобы вверху были одни последовательности соединений (n->p), а снизу — противоположные (p->n). Электрический ток протекает последовательно через все параллелепипеды. В зависимости от направления тока верхние контакты охлаждаются, а нижние нагреваются — или наоборот. Таким образом электрический ток переносит тепло с одной стороны элемента Пельтье на противоположную и создаёт разность температур.
Если охлаждать нагревающуюся сторону элемента Пельтье, например при помощи радиатора и вентилятора, то температура холодной стороны становится ещё ниже. В одноступенчатых элементах, в зависимости от типа элемента и величины тока, разность температур может достигать приблизительно 70 °C.
Достоинства и недостатки
Достоинством элемента Пельтье являются небольшие размеры, отсутствие каких-либо движущихся частей, а также газов и жидкостей. При обращении направления тока возможно как охлаждение, так и нагревание — это даёт возможность термостатирования при температуре окружающей среды как выше, так и ниже температуры термостатирования. Также достоинством является отсутствие шума.
Недостатком элемента Пельтье является более низкий коэффициент полезного действия, чем у компрессорных холодильных установок на фреоне, что ведёт к большой потребляемой мощности для достижения заметной разности температур. Несмотря на это, ведутся разработки по повышению теплового КПД, а элементы Пельтье нашли широкое применение в технике, так как без каких-либо дополнительных устройств можно реализовать температуры ниже 0 °C.
Основной проблемой в построении элементов Пельтье с высоким КПД является то, что свободные электроны в веществе являются одновременно переносчиками и электрического тока, и тепла. Материал для элемента Пельтье же должен одновременно обладать двумя взаимоисключающими свойствами — хорошо проводить электрический ток, но плохо проводить тепло.
В батареях элементов Пельтье возможно достижение большей разницы температур, но мощность охлаждения будет ниже. Для стабилизации температуры лучше использовать импульсный источник питания, так как это позволит повысить эффективность системы. При этом желательно сглаживать пульсации тока – это увеличит эффективность работы Пельтье и, возможно, продлит срок его службы. Также, работа элемента Пельтье будет неэффективной, если пытаться стабилизировать температуру с использованием широтно-импульсной модуляции тока.
Применение
Элементы Пельтье применяются в ситуациях, когда необходимо охлаждение с небольшой разницей температур или энергетическая эффективность охладителя не важна. Например, элементы Пельтье применяются в ПЦР-амплификаторах, малогабаритных автомобильных холодильниках, охлаждаемых банкетных тележках, применяемых в общественном питании, так как применение компрессорной холодильной установки в этом случае невозможно или нецелесообразно из-за габаритных ограничений, и, кроме того, требуемая мощность охлаждения невелика.
Кроме того, элементы Пельтье применяются для охлаждения устройств с зарядовой связью в цифровых фотокамерах. За счёт этого достигается заметное уменьшение теплового шума при длительных экспозициях (например в астрофотографии). Многоступенчатые элементы Пельтье применяются для охлаждения приёмников излучения в инфракрасных сенсорах.
Также элементы Пельтье часто применяются для охлаждения и термостатирования диодных лазеров с тем, чтобы стабилизировать длину волны излучения.
В приборах, при низкой мощности охлаждения, элементы Пельтье часто используются как вторая или третья ступень охлаждения. Это позволяет достичь температур на 30—40 градусов ниже, чем с помощью обычных компрессионных охладителей (до −80 °C для одностадийных холодильников и до −120 °C для двухстадийных).
Некоторые энтузиасты используют модуль Пельтье для охлаждения процессоров при необходимости экстремального охлаждения без азота. До азотного охлаждения использовали именно такой способ.
«Электрогенератор Пельтье» (более корректно было бы «генератор Зеебека», но неточное название устоялось) — модуль для генерации электричества, термоэлектрический генераторный модуль, аббревиатура GM, ТGM. Данный термогенератор состоит из двух основных частей:
Так же охладители Пельтье получили применение в устройствах охлаждения электротехнических DC шкафов и другого оборудования постоянного тока, а также, для охлаждения оборудования, для которого компактные габаритные размеры, невосприимчивость к ориентации в пространстве и отсутствие необходимости в техническом обслуживании имеют решающую роль.
Харьков, Одесса, Днепропетровск, Донецк, Запорожье, Львов, Николаев
Термоэлектрические модули (элементы Пельтье)
Элементы Пельтье могут использоваться как для нагрева, так и для охлаждения разного рода оборудования, хотя охлаждение все же остается приоритетным. Так же часто употребляются такие термины, как модули Пельтье, термоэлектрические модули или термонасосы. Если первые два названия обязаны своему возникновению используемым термоэлектрическим эффектам, но последнее больше относится к принципу работы устройства.
Дело в том, что во время работы аппарата происходит не просто охлаждение элемента, а передача, своего рода «перекачка» тепла от одной стороны пластины к другой. Наиболее наглядным этот процесс становится при охлаждении процессора, когда лишнее тепло устройства передается кулеру.
Термоэлектрические модули работают за счет эффекта Пельтье, обратного эффекту Зеебека.
Их применение на практике очень широкое и разнообразное. Все благодаря ряду преимуществ.
Во-первых, модули Пельтье хороши тем, что их термоэлектрические эффекты легко обратимы, и нагревать и охлаждать можно одним и тем же устройством. Для этого достаточно просто изменить полярность прибора (задать обратное направление проходящего тока). Подобная универсальность в сочетании с малыми размерами и бесшумностью работы привела к тому, что элементы Пельтье используются как для работы авто-холодильников, так и для подзарядки аккумуляторов. Благодаря им довольно легко был реализован холодильник с подогревом, да и вообще в холодильниках элементы Пельтье нашли наиболее широкое применение, потому что именно тут так важны малое потребление мощности и размеры.
Не смотря на это, они обеспечивают охлаждение и в радиоэлектронных системах, и более близких обывателю компьютерах. Все благодаря тому, что модули Пельтье могут работать с широким диапазоном температур.
Есть так же возможность применения нескольких термоэлектрических пластин сразу, обеспечивая несколько уровней охлаждения.
Наличие движущихся частей всегда приводит к механической изнашиваемости элементов. Поэтому большим плюсом является цельность конструкции. Если не ставить себе за цель их сломать, то термоэлектрические модули можно назвать своеобразным Perpetuum Mobile при условии, что человеческую жизнь мы приравниваем к бесконечности.
Конструктивная реализация прибора очень простая. Создаются так называемые пары полупроводников n и p типа. Между собой эти пары соединяются последовательно, при прохождении постоянного тока одна сторона пластины охлаждается, а другая напротив — нагревается. Ну и последнее: полная безопасность в плане экологии, что не маловажно в разрезе самых актуальных проблем мира.
Подбивая итоги, можно сделать вывод, что это универсальное и простое в применении устройство надолго завоевало свой рынок, имеет огромный потенциал и сможет еще не раз продемонстрировать себя во многих сферах нашей ежедневной деятельности. Это так же открывает простор для развития молодых специалистов по таким направлениям как автоматизация и электроника. Проверенные технологии вместе с новыми идеями — это зарекомендовавший себя рецепт успеха. Элементы Пельтье есть в свободной продаже, но купить их в Украине пока еще трудно. Купить в Киеве искомый продукт с доставкой в любой город Украины можно на нашем сайте, не тревожась за качество и побаловав себя приятной ценой.
Отправляем заказы во все города Украианы: Винница, Днепропетровск, Донецк, Житомир, Запорожье, Ивано-Франковск, Киев, Кировоград, Луганск, Луцк, Львов, Николаев, Одесса, Полтава, Ровно, Севастополь, Симферополь, Сумы, Тернополь, Ужгород, Харьков, Херсон, Хмельницкий, Черкассы, Чернигов, Черновцы службой доставки «новая почта».
Что такое элемент пельтье и как его сделать своими руками?
Главная > Дополнительно > Что такое элемент пельтье, его устройство, принцип работы и практическое применениеЭлемент пельтье своими руками
Изготовить устройство в домашних условиях практически невозможно, тем более это не имеет особого смысла, учитывая его невысокую рыночную стоимость.
Но большинство умельцев все же предпочитает мастерить элемент пельтье своими руками, ссылаясь на ряд его достоинств:
- Компактность, удобство установки на самодельное электронное плато.
- Отсутствие движущихся деталей, что увеличивает сроки его эксплуатации.
- Возможность соединения нескольких элементов в каскадной схеме для снижения очень больших температур.
Тем не менее, пельтье своими руками имеет определенные недостатки: низкий коэффициент полезного действия (КПД), необходимость подачи высокого тока для получения заметного перепада температуры, сложность отведения тепловой энергии от охлаждаемой поверхности.
Рассмотрим на примере схем, как сделать пельтье своими руками:
- Задействовать его в качестве детали термоэлектрического генератора, согласно рисунку подключения.
- Собрать простой преобразователь на микросхеме ИМС L6920 (рисунок 1).
Рисунок 1. Элемент пельтье своими руками: универсальная схема
Далее стоит следовать простой инструкции, как сделать пельтье своими руками:
- Подать на вход получившегося преобразователя напряжение диапазоном 0.8-5.5В, чтобы иметь на выходе стабильные 5В.
- При использовании устройства обычного типа — поставить лимит температуры нагреваемой стороны в 150 градусов.
- Для калибровки — в качестве источника тепла использовать емкость с кипящей водой, которая точно не нагреется свыше 100 градусов.
Описание технологии и принцип действия
Способ работы термоэлектрического охладителя достаточно прост. Эффект пельтье своими руками основывается на контакте двух проводников тока, обладающих разным уровнем энергии электронов в зоне своей проводимости.
Рисунок 2. Принцип действия элемента
При подаче электротока через такую связь, электрон приобретает высокую энергию, позволяющую ему перейти в более высокоэнергетическую зону проводимости второго полупроводника. Когда эта энергия поглощается, происходит остуживание места охлаждения проводников (рисунок 2).
При протекании процесса в обратном направлении — реакция приводит к нагреванию контактного места и обычному тепловому эффекту.
Посмотрев пельтье своими руками видео, можно сделать определенные выводы о принципе его действия:
- Величина подаваемого тока будет пропорциональной степени охлаждения — если с одной стороны модуля сделать хороший теплоотвод, при использовании радиаторных схем, его холодная сторона обеспечит максимально низкую температуру.
- При смене полярности тока — нагревающая и охлаждающая плоскости меняются метами.
- При контакте объекта с металлической поверхностью, он становится настолько мал, что его нельзя увидеть на фоне омического нагрева, других эффектов теплопроводности, поэтому на практике применяют два полупроводника.
- Благодаря разнообразному количеству термопар — от 1 до 100, можно добиться практически любого показателя холодильных мощностей.
Технические характеристики элемента пельтье
Компонент получил широкое применение в различных холодильных схемах.
Что неудивительно, так как пельтье своими руками имеет следующие технические характеристики:
- Способен достигнуть низких температур, что служит отличным решением для охлаждения электрических приборов и тех оборудования, подвергающегося нагреву.
- Прекрасно выполняет работу обычного куллера, что делает возможным его установку в современные звуковые и акустические системы.
- Абсолютно бесшумен — в процессе работы не издает никаких посторонних и интенсивных звуков.
- Обладает мощной теплоотдачей при сохранении нужной температуры на радиаторе достаточно продолжительное время.
Эффект Томсона
На основании данных о коэффициентах Зеебека и Пельтье лорд Кельвин (Томсон) предсказал в 1856 году новый эффект: нагретый в центре проводник при пропускании электрического тока охлаждается с одной стороны и становится горячее с другой. Теоретические данные подтверждены опытным путём, открыв дорогу для создания климатической техники и прочего.
Коэффициент пропорциональности в формуле носит имя Томсона и связан с коэффициентами термоэлектричества и Пельтье. Выше авторы привели объяснения согласно кинетической (микроскопической) теории, оперирующей уровнями энергетических состояний носителей заряда
Лорд Кельвин придерживался термодинамической (макроскопической) концепции, где во внимание принимаются глобальные потоки и силы. Это различие применимо ко множеству отраслей физики
К примеру, закон Ома для участка цепи возможно рассматривать как вариант термодинамического взгляда на вещи.
Называют и общие черты. В термодинамической концепции массово применяются константы: речь о коэффициенте теплопроводности (закон Фурье) и изотермической проводимости (закон Ома).
TEC контроллеры / драйверы
Иногда вам нужен специальный контроллер / драйвер TEC. Конечно, для продвинутых приложений доступно множество устройств. На eBay вы можете найти несколько устройств, которые будут выполнять эту работу. На рис. 4 показано такое многофункциональное устройство, которое неожиданно имеет один канал обратной связи для приема входных сигналов от термистора NTC для стабилизации температуры.
Рис. 4: контроллер Пельтье sPLC-10
Контроллер TEC регулирует ток, подаваемый на микросхему Пельтье, в соответствии с требуемой температурой объекта и фактической измеренной температурой объекта. Чтобы иметь возможность контролировать температуру объекта, вы должны разместить датчик на объекте. Обратите внимание, что важно размещать датчик как можно ближе к критической точке на объекте, где необходимо поддерживать желаемую температуру. Поскольку охлаждение вентилятора радиатора снижает тепловое сопротивление от радиатора к окружающему воздуху, большинство высококачественных контроллеров TEC имеют выделенные выходы управления вентиляторами, поддерживаемые методом широтно-импульсной модуляции (ШИМ). Поэтому вентилятор увеличивает тепловые характеристики и уменьшает разницу температур (dT), позволяя использовать радиаторы меньшего размера
Поскольку охлаждение вентилятора радиатора снижает тепловое сопротивление от радиатора к окружающему воздуху, большинство высококачественных контроллеров TEC имеют выделенные выходы управления вентиляторами, поддерживаемые методом широтно-импульсной модуляции (ШИМ). Поэтому вентилятор увеличивает тепловые характеристики и уменьшает разницу температур (dT), позволяя использовать радиаторы меньшего размера.
Самый популярный модуль Пельтье TEC1-12706
Самым популярным среди практиков, увлеченных идеями свободной природной энергии и производителей технических устройств является элемент размером 40 на 40 миллиметров с маркировкой TEC1-12706. Это означает, что он состоит из 127 пар малюсеньких термоэлементов – полупроводников разного типа, которые попарно соединены при помощи медных перемычек в последовательную цепь и рассчитаны на постоянный ток до 5 А при напряжении 12 вольт.
Схема Элемента Пельтье
Некоторые думают что модули Peltier, это что-то типа солнечных панелей – ведь они такие же плоские, торчат проводки, и те и другие могут генерировать электрический ток. Увы, это не совсем так на самом деле. Чтобы понять, как функционируют загадочные пластинки, посмотрите видео И. Белецкого, описание в текстовом формате ниже.
Как изготовить генератор на основе элемента Пельтье?
Генераторы на основе элемента Пельтье особенно интересуют людей, которые ввиду достаточно продолжительной отрезанности от цивилизации нуждаются в простом и доступном источнике энергии. Также они широко применяются при критическом перегреве деталей персонального компьютера.
Рис.2: Генератор на основе элемента Пельтье.
Элементы Пельтье имеют достаточно интересный принцип действия, но помимо этого обладают одной любопытной особенностью: если к ним прилагается разность температур, то они продуцируют электричество. Один из вариантов генератора на базе этого устройства предполагает следующую конструкцию:
По двум трубкам (одна для входа, другая для выхода) движется пар, который направляется в полость теплообменника, сконструированный из пластины (материал: алюминий), имеющей толщину 1 см.
К каждому отверстию теплообменника подведено соединение с одним каналом. Габариты теплообменника точно дублируют габариты элементов Пельтье. Два элемента фиксируются на двух сторонах теплообменника с помощью четырёх винтов (по 2 на каждую сторону). В результате, благодаря отверстиям и канальцам теплообменника формируется полноценная система сообщающихся отделов, через которые проходит пар. Двигаясь вперёд, пар входит в камеру по одной трубке и выходит через другую, двигаясь к следующей камере. Транслируемое паром тепло достаётся элементам Пельтье, когда пар непосредственно соприкасается с их поверхностью , а также с материалом теплообменника.
Чтобы вплотную прижать элементы к корпусу теплообменника , а также для организации отвода тепловой энергии на «холодную» сторону применяются пластины из алюминия на 0,5 см в толщину. На последнем этапе вся конструкция герметизируется силиконовыми герметиками.
После этого через трубки пускают пар, а конструкция погружается в холодную воду. Вся система целиком начинает работать. Электрический ток будет образовываться до тех пор, пока разница между температурой «горячей» и «холодной» сторон не сократится до минимума.
Есть и более элементарный метод.
Элемент Пельтье выводами подсоединённый к зарядному телефонному кабелю закрепляется на алюминиевом радиаторе (который будет контактировать с «холодной» стороной) с помощь герметика. Сверху на устройство ставится любой горячий предмет, например, кружка с горячим чаем. Через пару секунд телефон можно ставить на зарядку. Зарядка будет продолжаться, пока чай не остынет.
Пишите комментарии, дополнения к статье, может я что-то пропустил. Загляните накарту сайта, буду рад если вы найдете на моем сайте еще что-нибудь полезное.
Устройство и принцип работы элемента Пельтье
Для того, чтобы получить максимальный эффект понижения температуры, применяется соединение термоэлементов в виде каскадов. Благодаря подобному устройству, на выходе стало возможным получить максимально низкую температуру и значительно увеличить саму эффективность охлаждения.
Для того, чтобы повысить холодопроводность не прибегая к значительному увеличению I, все элементы Пельтье соединяются последовательно в устройство, получившее название батареи.
Таким образом, нынешний модуль состоит из двух пластин, выполненных из керамики и играющих роль изоляторов, между которыми расположены термопары, соединенные последовательным образом.
При этом, расположение элементов в подобной батарее осуществляется следующим образом:
- Нижняя, горячая сторона.
- Верхняя, холодная сторона.
- Полупроводники, функционирующие на основе n-перехода.
- Полупроводники, функционирующие на основе p-перехода.
- Проводники из меди.
- Клеммы (контакты), служащие для присоединения к ИП (источнику питания).
Здесь p-n переходом (positive-negative) принято считать электронно-дырочный переход в месте соединения полупроводников n (носители зарядов – электроны) и p типа (дырки с положительным зарядом, возникающие в процессе отрыва электрона от атома).
При p-n возникает переход от одного вида проводимости к другому.
В зависимости от расположения, каждая из сторон (горячая или холодная) имеет контакт только с переходом p-n либо n-p. При этом осуществляются следующие функции:
- p-n – нагрев.
- n-p – охлаждение.
Благодаря переносу Q с одной стороны батареи на другую, между ними возникает дельта температур (DT). Как уже было сказано выше, если изменить полярность, то горячая и холодная поверхности просто поменяются местами.
На данном рисунке холодная сторона батареи обозначена как B (синим цветом), горячая – как А (красным цветом соответственно).
Технические характеристики элементов Пельтье
Всем термоэлектрическим модулям с элементом Пельтье присущи следующие характеристики:
- Qmax (холодопроизводительность) – представляет собой максимально допустимый I и разницу T двух сторон батареи. Единица измерения – Ватты. Принято считать, что количество тепловой Q, поступающей на холодную стороны, передается на горячую мгновенно, с нулевыми потерями.
- DTmax – максимум перепада температур между пластинами, измеряется в градусах. При этом, данный параметр учитывается при идеальных условиях работы: горячая сторона — 27C, холодная – отдача тепла равна нулю.
- Imax – максимальный I, необходимый для обеспечения DTmax, измеряется в Амперах.
- Umax – величина напряжения, которая будет иметь место при Imax и DTmax (измеряется в Вольтах).
- Resistance – внутреннее R модуля по постоянному току DC, измеряется в Омах.
- COP (Сoefficient Of Рerformance) – коэффициент, представляющий собой отношение Q охлаждения к Q, которое потребляет весь элемент и представляет собой не что иное, как КПД, при этом его величина колеблется от 0,3 до 0,5.
Каким образом маркируются элементы Пельтье
При маркировке подобных термоэлементов всегда используют стандартные обозначения, а именно:
- Две первые буквы означают непосредственно тип элемента, а именно – ТЕ – термоэлемент.
- Третья буква относится к размеру модуля и может быть выполнена в двух вариантах:
- С – classic, стандартный размер термоэлемента.
- S – small, маленький размер.
- Далее следует числовое значение, отражающее количество каскадов в ТЕ. Как правило, большинство из них относятся к однокаскадным.
- После тире следует число, означающее количество термопар внутри ТЕ.
- Последняя цифра – номинальное значение I (Амперы).
Иногда в маркировку после всех цифр добавляется значение, относящееся к размерам модуля.
Пример маркировки: ТЕС1-12706-40 (40х40 мм).
Охлаждение процессора
Основные компоненты компьютеров постоянно совершенствуются, что приводит к росту тепловыделения. Вместе с ними развиваются системы охлаждения с применением новаторских технологий, с современными средствами контроля. Модуль Пельтье применение в данной сфере нашел прежде всего в охлаждении микросхем и других радиодеталей. С форсированными режимами разгона микропроцессоров традиционные кулеры уже не справляются. А увеличение частоты работы процессоров дает возможность повысить их быстродействие.
Увеличение скорости вращения вентилятора приводит к значительному шуму. Его устраняют за счет использования модуля Пельтье в комбинированной системе охлаждения. Таким путем передовые фирмы быстро освоили производство эффективных охлаждающих систем, которые стали пользоваться большим спросом.
С процессоров тепло обычно отводится кулерами. Воздушный поток может засасываться снаружи или поступать изнутри системного блока. Главная проблема состоит в том, что температура воздуха порой оказывается недостаточной для теплоотвода. Поэтому ТЭМ стали использовать для охлаждения потока воздуха, поступающего в системный блок, тем самым повышая эффективность теплообмена. Таким образом, встроенный воздушный кондиционер является помощником традиционной системы охлаждения компьютера.
С обеих сторон модуля крепятся алюминиевые радиаторы. Со стороны холодной пластины нагнетается воздух на охлаждение к процессору. После того как он заберет тепло, его выдувает другой вентилятор через радиатор горячей пластины модуля.
Современный ТЭМ управляется электронным устройством с датчиком температуры, где степень охлаждения пропорциональна разогреву процессора.
Активизация охлаждения процессоров создает также некоторые проблемы.
- Простые охлаждающие модули Пельтье предназначены для непрерывной работы. При пониженном энергопотреблении также уменьшается тепловыделение, что может вызвать переохлаждение кристалла и последующее зависание процессора.
- Если работа кулера и холодильника не будет должным образом согласована, последний может перейти в режим нагрева вместо охлаждения. Источник дополнительного тепла вызовет перегрев процессора.
Таким образом, для современных процессоров нужны передовые технологии охлаждения с контролем работы самих модулей. Подобные изменения режимов работы не происходят с видеокартами, которые также требуют интенсивного охлаждения. Поэтому для них ТЭМ подходит идеально.
Что такое принцип Пельтье
Данный принцип был открыт почти 200 лет назад французом Жаном Пельтье, который обнаружил, что при протекании I по разнородным проводам происходит процесс выделения тепла, а при смене полярности – охлаждения, при этом наибольшее проявление подобного эффекта наблюдалось у полупроводниковых материалов. Причем тогда же была замечена обратимость процесса, при которой при возможности поддержании разных температур на проводах в месте контакта, в них фиксировалось появление электрического тока. Данный эффект также был очень важен и получил название эффекта Зеебека.
Чтобы попытаться объяснить данный эффект с точки зрения физики процесса, необходимо обратиться к классической теории электротехники и движению электротока в зависимости от разности потенциалов. При прикосновении двух разнородных проводов неизбежно возникает разность потенциалов U, создающая определенное поле. Таким образом, если по проводу пропустить I, то созданное разностью U поле будет или способствовать протеканию тока, или являться препятствием к этому.
Если полярность поля и тока противоположны, то необходимо найти дополнительную энергию, способствующую протеканию I, за счет чего контакт будет греться. Если поле и I однонаправлены, то ток поддерживается самим полем. Для этого требуется энергия, забираемая у вещества, что и вызывает охлаждение контакта. Таким образом, то количество тепла, которое выделяется или забирается при прохождении I, будет прямо пропорционально величине заряда, проходящего через место соединения проводников и рассчитывается как произведение I на время его прохождения.
Данное произведение называется коэффициентом Пельтье, величина которого зависит от материала и температур проводников, соприкасающихся между собой.
Если ранее эффект Пельтье не нашел себе широкого применения за неимением необходимых материалов, то на сегодняшний день, с учетом развития новых технологий, найдены типы проводников, которые способны обеспечить максимальный термоэлектрический эффект.
Эффект с позиций термодинамики
Эффект Пельтье описывается формулой, показывающей, какая энергия переносится при определённой величине электрического тока. Выражая её во временных единицах, находят мощность устройства, исходя из которой определяют потребности холодильника. Сегодня популярны бесшумные элементы Пельтье для кулеров процессоров. Небольшая пластина охлаждает кристалл и охлаждается радиатором кулера. Элемент Пельтье служит тепловым насосом, гарантированно отводящим тепло от центрального процессора, не давая перегреваться.
В формуле на рисунке через альфа обозначены коэффициенты термо-ЭДС половинок (составных частей) элемента. Т – рабочая температура в градусах Кельвина. В каждом элементе, как правило, присутствует побочный эффект Томсона: если по проводнику течёт ток, и вдоль линии имеется градиент (направленная разница) температур, станет, помимо джоулевой, выделяться и иная теплота. Последняя носит имя Томсона. В отдельных участках цепи энергия станет поглощаться. Значит, эффект Томсона оказывает сильное влияние на работу нагревателей и холодильников. Но является, как уже сказано, побочным, неучтённым фактором.
Теплота, переносимая эффектом Томсона, прямо пропорциональна разнице температур на концах проводника и зависит от величины протекающего тока. Явление проявляется лишь в веществах с ярко выраженной зависимостью коэффициента термо-ЭДС от температуры. В некоторых расчётах эффект Томсона считается нулевым, это близко к истине. В термодинамической теории процесс отдачи и отбора тепла рассматривается с точки зрения двух тепловых потоков:
Поток тепла, забираемый охлаждающимся спаем, сопровождается двумя параллельно идущими процессами:
- Паразитное выделение тепла по закону Джоуля-Ленца. В термодинамике берётся как половина произведения квадрата тока на сопротивление. Вторая половина падает на горячем спае.
- Поток нагрева теплом, идущим от тёплой части. Равен разнице температур, перемноженной с полной теплопроводностью ветвей термоэлемента.
На горячем спае идут обратные процессы по второму пункту (тепло уносится к охлаждаемой части) и аналогичные по первому – выделяется джоулева теплота.
Из формулировок следует, что действенным решением добиться максимального КПД станет теплоизоляция между спаями. В паре используются полупроводники, способные генерировать термо-ЭДС, электрическому току приходится преодолевать её сопротивление. Затрачиваемая энергия пропорциональна разнице температур и разнице коэффициентов термо-ЭДС веществ и зависит от протекающего тока. Графики зависимости представляют кривые, и дифференцируя их с целью найти экстремумы, возможно получить условия достижения максимальной разницы температур (между комнатой и холодильником).
На рисунках показаны результаты операции взятия производной, где вычислены оптимальные токи для сопротивления R термопары и предельного увеличения холодильного эффекта. Из указанных формул следует, что идеальная машина получится, если:
- Электропроводность материалов термопары одинакова.
- Теплопроводность материалов термопары одинакова.
- Коэффициенты термо-ЭДС одинаковы, но противоположны по знаку.
- Сечения и длины ветвей термопары одинаковы.
Реализовать эти условия на практике сложно. В этом случае предельный холодильный коэффициент равен отношению температуры холодного спая, к разнице температур. Напомним, это характеристика идеальной машины, в реальности пока недостижимая.
Изготовление автомобильного холодильника.
Охлаждать воздух в холодильнике мы будем с помощью элемента Пельтье.
По сути это термоэлектрический преобразователь в форме небольшой пластины, при подключении его к электрическому току в пластине возникает разность температур, одна сторона пластины нагревается, вторая наоборот остывает. Эту особенность мы и будем использовать для работы холодильника.
Материалы для изготовления:
- Пенополистирол (автор использовал лист размером 1200х600х50 мм).
- Элемент Пельтье (можно приобрести в радиомагазинах).
- Два радиатора с кулерами от старых компьютеров.
- Термопаста.
- Регулятор температуры с датчиком (продаются в радиомагазинах).
- Кусок провода и штекер для подключения в прикуриватель авто.
- Пена монтажная.
Инструменты:
- Нож канцелярский.
- Линейка, карандаш.
- Паяльник с паяльными принадлежностями.
Приступаем к изготовлению, первым делом из листов пенополистирола сделаем корпус будущего мини холодильника.
Пенополистирол очень хороший теплоизолятор, даже после отключения холодильника от электричества, он будет удерживать холод внутри контейнера продолжительное время.
На рисунке показаны размеры корпуса, но вы можете сделать короб по своим размерам в зависимости от требуемого объёма холодильника.
Лист пенополистирола легко разрезается канцелярским ножом, все части коробки склеиваются монтажной пеной, после нанесения пены, детали нужно прижать на 5 минут пока пена схватится.
Теперь в холодильник установим охлаждающий элемент.
Для охлаждения будем использовать элемент Пельтье, при подключении его в сеть 12 V, одна сторона его становится очень холодной, она и будет охлаждать воздух внутри холодильника. Вторая сторона элемента будет сильно нагреваться, чтобы устройство не перегорело, нужно отводить тепло, сделать это можно с помощью радиатора и кулера от компьютера.
Схема охлаждающего устройства для автомобильного холодильника.
Но если с внутренней стороны на элемент Пельтье просто поставить радиатор, то он начнёт обмерзать, оптимально установить кулер для равномерного отвода холода от радиатора.
Для хорошей теплоотдачи, между радиаторами и элементом Пельтье наносим слой термопасты. Радиаторы соединяем между собой стандартными скобами, которые используются для крепления к системной плате компьютера.
Тестируем работоспособность устройства, подключаем его к аккумулятору на 12 V.
По сути устройство представляет собой пластину, по бокам которой с обеих сторон закреплены радиаторы с кулерами, работающими на выдув.
Устанавливаем прибор в отверстие коробки, охлаждающей стороной во внутрь, щели между отверстием корпуса и прибора замазываются герметиком.
Наружный блок, радиатор с кулером для отвода горячего воздуха.
Для регулировки температуры установим регулятор температуры с датчиком, сам провод с датчиком нужно протянуть через отверстие в контейнер. Холодильник готов, включаем его в гнездо прикуривателя авто или напрямую к аккумулятору на 12 V и пользуемся.
Один элемент Пельтье охлаждает холодильник до температуры – 3 °С, при температуре окружающего воздуха +25 °С.
При +30°С на улице, в холодильнике стабильно поддерживается температура +6 °С как и в обычном холодильнике.
Автор самоделки Виктор Борисов.
Материалы для создания термопар
Очевидно, обычные металлы для создания мощных систем не годятся. Требуются пары с мощностью от 100 мкВ на 1 градус. В последнем случае достигается высокий КПД. Материалами становятся сплавы висмута, сурьмы, теллурия, кремния, селена. К недостаткам компонентов относятся хрупкость и сравнительно малая температура работы. Низкий КПД добавляет ограничений, но с внедрением нанотехнологий появляется надежда, что привычные рамки окажутся преодолены. Учёные среди перспективных направлений называют разработку принципиально новой полупроводниковой базы с поистине уникальными свойствами, включая точное значение энергетических уровней материалов.
Генератор пельтье своими руками
Самостоятельно собрать подобный прибор не так и сложно. Генератор пельтье своими руками имеет свои особенности: производительность собранного устройства поднимается на 10% за счет большего охлаждения мотора, но нагревать основные комплектующие до показателя свыше 200 градусов не рекомендуется. Прибор выдерживает максимальную нагрузку в 30А, а его сопротивление способно составлять 4Ом благодаря большему количеству проводников (рисунок 5).
Стоит помнить, что генератор на элементах пельтье своими руками:
- Имеет температурное отклонение в системе, примерно равное 13 градусам.
- В большинстве случаев сборки и разборки конструкции, статор им не мешает.
- Модуль крепится непосредственно к ротору, для чего нужно отсоединять центральный вал.
- Во избежание нагрева роторной обмотки от индуктора, следует использовать керамические пластины.
Рисунок 5. Элемент пельтье поможет создать походный генератор
Теплогенератор на пельтье своими руками собирается из двух пластин 10*10см, толщиной в 1мм, закрепленных термопастой, которые закрывают собой четыре искомых модуля. Поверх них ставится консервная банка или любая другая емкость для розжига огня, которая обеспечит 170-180 градусов. К нижней части одной из пластин прикрепляется при помощи винтов медный или алюминиевый радиатор. К нему присоединяется еще одна пластинка 20*12см, к которой крепится еще одна такая деталь. На нее устанавливается заводской кожух от аккумулятора, к которому припаивается разъем для зарядки смартфона.
Оцените статью:Рефакторинг для преобразования цикла for в оператор foreach — Visual Studio (Windows)
- 2 минуты на чтение
В этой статье
В этой статье описываются рефакторинги Quick Actions, которые преобразуют между двумя циклическими структурами. Он включает несколько причин, по которым вы можете захотеть переключаться между циклом for и оператором foreach в своем коде.
Преобразование цикла for в оператор foreach
Если в вашем коде есть цикл for, вы можете использовать этот рефакторинг, чтобы преобразовать его в оператор foreach.
Данный рефакторинг применяется к:
Примечание
Преобразование в foreach Рефакторинг Quick Action доступен только для циклов, содержащих все три части: инициализатор, условие и итератор.
Зачем конвертировать
Причины, по которым вы можете захотеть преобразовать цикл for в оператор foreach, включают:
Вы не используете переменную локального цикла внутри цикла, кроме как в качестве индекса для доступа к элементам.
Вы хотите упростить свой код и снизить вероятность логических ошибок в разделах инициализатора, условия и итератора.
Как пользоваться
Поместите курсор в ключевое слово
для
.Нажмите Ctrl + . или щелкните значок отвертки на полях файла кода.
Выберите Преобразовать в foreach . Или выберите Предварительный просмотр изменений , чтобы открыть диалоговое окно «Предварительный просмотр изменений», а затем выберите Применить .
Преобразование оператора foreach в цикл for
Если в вашем коде есть инструкция foreach (C #) или For Each … Next (Visual Basic), вы можете использовать этот рефакторинг для преобразования его в цикл for.
Данный рефакторинг применяется к:
Зачем конвертировать
Причины, по которым вы можете захотеть преобразовать оператор foreach в цикл for, включают:
Как пользоваться
Поместите курсор в ключевое слово
foreach
илиFor Each
.Нажмите Ctrl + . или щелкните значок отвертки на полях файла кода.
Выберите Преобразовать в «для» . Или выберите Предварительный просмотр изменений , чтобы открыть диалоговое окно «Предварительный просмотр изменений», а затем выберите Применить .
Поскольку рефакторинг вводит новую переменную счетчика итераций, в правом верхнем углу редактора появляется поле Переименовать .Если вы хотите выбрать другое имя для переменной, введите его и нажмите Введите или выберите Применить в поле Переименовать . Если вы не хотите выбирать новое имя, нажмите Esc или выберите Применить , чтобы закрыть поле Переименовать .
Примечание
Для C # код, сгенерированный этими рефакторингами, использует либо явный тип, либо var в качестве типа элементов в коллекции. Тип в сгенерированном коде, явный или неявный, зависит от параметров стиля кода, которые находятся в области видимости.Эти конкретные параметры стиля кода настраиваются на уровне компьютера в разделе Инструменты > Параметры > Текстовый редактор > C # > Стиль кода > Общие > Параметры ‘var’ или в решении уровень в файле EditorConfig. Если вы измените настройку стиля кода в Options , повторно откройте файл кода, чтобы изменения вступили в силу.
См. Также
java — Как преобразовать этот цикл for в каждый
java — Как преобразовать этот цикл for в каждый — qaruСпросил
Просмотрено 4к раз
Я учусь программировать.Это упражнение из книги. Я смог написать цикл for в кратчайшие сроки. Почему мне трудно преобразовать этот цикл for в цикл for each. Что я упускаю или делаю не так. Спасибо.
/ **
* Упражнение 4.75.
* Добавьте в LogAnalyzer метод busiestHour, который возвращает самый загруженный час
* Вы можете сделать это, заглянув в массив счетчиков часов, чтобы найти элемент
* с самым большим счетом.
* Подсказка: нужно ли вам проверять каждый элемент, чтобы убедиться, что вы нашли самый загруженный
* час? Если это так, используйте цикл for или цикл for-each.Какой в данном случае лучше.
* /
public int busiestHour () {
int max = hourCounts [0];
int counter = 0;
for (int index = 0; index
Jwodder47.1,999 золотых знаков9191 серебряный знак111111 бронзовых знаков
Создан 02 мар.
Райан ГРян Дж.1311 серебряный знак55 бронзовых знаков
1 for-each выполняет итерацию по элементам, и вы работаете с элементом, а не с индексом.Итак, в для (int index: hourCounts) {
ваш индекс
фактически уже является текущим элементом в hourCounts
. Другими словами, у вас есть счетчик текущего часа. Если вы, например, перебираете массив String, тогда объявление переменной в этом цикле for-each будет иметь тип String, а не int. Это также означает, что у вас вообще нет доступа к индексу, если вы не сделаете это сами.
Я не буду показывать решение (это тоже было бы некрасиво) для этой проблемы, но я думаю, что цель этого упражнения - показать вам пределы for-each и то, где классический цикл for все еще оправдан.
Создан 02 марта '15 в 18: 322015-03-02 18:32
черный дракон6,16712 золотых знаков2424 серебряных знака3838 бронзовых знаков
0 Как уже было сказано, для каждого оператора
перебирают список или массив элементов, обеспечивая следующий элемент в последовательности.Операторы для
предоставляют итератор , для списка или массива и позволяют программисту решать, как использовать этот итератор.
В вашем случае правильный для каждого оператора
должен быть:
общедоступный int busiestHour2 ()
{
int max = hourCounts [0];
int counter = 0;
int index = 0;
for (int hourCount: hourCounts) {
if (max
Создан 02 марта '15 в 19: 262015-03-02 19:26
Раманагом30922 серебряных знака88 бронзовых знаков
0Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками java for-loop или задайте свой вопрос.
язык-Java
Stack Overflow лучше всего работает с включенным JavaScriptВаша конфиденциальность
Нажимая «Принять все файлы cookie», вы соглашаетесь с тем, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Принимать все файлы cookie Настроить параметры
Преобразовать For в while, While в Do-While, Do-while в цикл for
Циклы в C
Язык программирования C поддерживает три типа операторов цикла: цикл for, цикл while и цикл do-while.Каждая структура петли была разработана для разных целей. Давайте посмотрим на синтаксисы и их графические схемы.
Для петли
для (
<первоначальная выписка>;
<выражение условия>;
<Повторить шаг (и)>
)
{
<Операторы цикла>;
}
Для контурной схемы
Синтаксис цикла while
, а (<выражение условия>)
{
<Операторы цикла>;
}
Блок-схема цикла while
Синтаксис цикла Do-While
до
{
<Операторы цикла>;
} , а (<выражение условия>);
Синтаксис цикла Do-While
Конверсии петель
Цикл For был разработан для выполнения для определенного количества итераций, и в нем есть секция операторов инициализации для инициализации счетчика итераций.В цикле while или do while нет раздела инициализации. Пользователь должен написать оператор инициализации перед запуском цикла. Циклы Do и while отличаются тем, как они проверяют условие. Цикл while сначала проверяет условие перед входом в цикл. Однако do-while не проверяет условие и входит в цикл для первой итерации.
Преобразование цикла For в цикл while
Чтобы преобразовать цикл for в цикл while, нам нужно просто добавить оператор инициализации перед циклом while.
/ * Для цикла * /
внутр i;
для (i = 0; i <10; i ++)
{
}
/ * Цикл For преобразован в цикл while * /
int i = 0; / *
, а (i <10)
{
i ++;
}
Преобразования "пока" в "цикл"
Чтобы преобразовать цикл while в цикл for, нам нужно опустить оператор инициализации.
/ * цикл while * /
, а (* str ++! = NULL)
{
length ++;
}
/ * Цикл while преобразован в цикл for * /
для (; * str! = NULL; str ++)
{
length ++;
}
Выполнить «пока» для преобразования цикла «пока» / «пока»
Цикл Do while очень хорош, когда вам нужно один раз войти в итерацию, а затем проверить условие выхода.Цикл For и while сначала проверяет условие, а затем входит. Поэтому нам нужно добавить оператор, чтобы условие стало истинным перед запуском цикла. Таким образом, цикл for и while войдет в первую итерацию, как цикл do while.
/ * Выполнить цикл while * /
до
{
статус = check_connection ();
} , а (статус == TIMEOUT);
/ * Цикл Do While преобразован в цикл for * /
status = TIMEOUT; / * Условие верно * /
для (; status == TIMEOUT; str ++)
{
статус = check_connection ();
}
/ * Цикл Do While преобразован в цикл for * /
status = TIMEOUT; / * Условие верно * /
, а (статус == TIMEOUT)
{
статус = check_connection ();
}
Цикл For / While, выполняемый в процессе преобразования
Цикл Do while входит в итерацию один раз, а затем проверяется условие выхода.В то время как цикл for и while всегда проверяет условие перед. Это причина того, почему циклы While / For и циклы do-while не очень совместимы. Не пытайтесь преобразовать цикл for / while в цикл do-while. Это добавит ненужный дополнительный код.
/ * Для цикла * /
внутр i;
для (i = 0; i <10; i ++)
{
}
/ * цикл while * /
int i = 0;
, а (i <10)
{
i ++;
}
/ * For / While преобразовано в цикл Do while (не рекомендуется) * /
int i = 0;
до
{
, если (i> = 10) перерыв;
i ++;
} , а (ИСТИНА);
Похожие темы
Как писать повторяющиеся операторы на C? [пока, пока, пример, блок-схема]
Написать синтаксис для цикла for, while и do while?
Когда цикл do-while предпочтительнее цикла while, Приведите пример?
Написать операторы бесконечного цикла для while, do-while и for?
О наших авторах : Team EQA
Вы просмотрели 1 страницу из 248.Ваше обучение C завершено на 0,00%. Войдите, чтобы проверить свой прогресс в обучении.
‹ # ›
Java For Loop, For-Each Loop, While, Do-While Loop (ULTIMATE GUIDE)
В этом руководстве мы рассмотрим четыре типа циклов в Java: цикл for, усовершенствованный цикл for (для каждого), цикл while и цикл do-while. Мы также рассмотрим концепции потока управления циклом с вложенными циклами, помеченными циклами, оператором прерывания, оператором продолжения, оператором возврата и областью локальных переменных.Мы также рассмотрим распространенные исключения и ошибки цикла, такие как бесконечные циклы, java.lang.ArrayIndexOutOfBoundsException и java.lang.OutOfMemoryError.
Каждый тип цикла будет показан с несколькими примерами, чтобы вы могли увидеть, как он используется в самых разных обстоятельствах. Мы расскажем, как перебирать символы в строке, массиве строк, массиве целых чисел, а также перебирать коллекции, такие как java.util.List, java.util.Set и java.util.Map.
Введение
Петли используются в большинстве программ по разным причинам.Основная причина использования циклов - необходимость повторять повторяющееся действие снова и снова. Обычно это будет для набора данных. Лучше и эффективнее использовать циклы, чем явно писать код для обработки каждого действия. А иногда программист не знает заранее, сколько фрагментов данных встретит программа, поэтому может возникнуть необходимость в цикле.
Например, циклы можно использовать для перебора списка возвращенных записей базы данных, для сортировки списка чисел или для чтения файла построчно.
Понятия петель
Все циклы в Java используют одни и те же строительные блоки, которые мы собираемся здесь определить.
- Инициализация цикла
- - установка начального значения переменной (ей), которая будет использоваться в цикле
- логическое условие - это логическое выражение, которое определяет, продолжать ли цикл для еще одной итерации
- значение шага (значение обновления) - обновление переменных цикла
- тело цикла - выполнить основную часть цикла, которая выполняет обработку
На протяжении всего этого руководства мы будем ссылаться на эти концепции по мере знакомства с каждым циклом.
Для петли
Циклы For лучше всего использовать, когда вы знаете, сколько раз вам нужно что-то перебирать. Например, при просмотре массива чисел вам нужно будет выполнить цикл столько раз, сколько элементов в массиве.
Для структуры петли
Циклы for в Java структурированы так, чтобы следовать этому порядку выполнения:
1) инициализация цикла
2) логическое условие - если истинно, перейти к следующему шагу; если false, выйти из цикла
3) тело цикла
4) значение шага
5) повторить с шага 2 (логическое условие)
Пример - увеличение значения шага
Вот простой цикл для увеличения значений от 0 до 99.
Обратите внимание на настройки для петли:
- индекс цикла инициализируется значением 0
- логическое условие проверяет, что индекс цикла меньше 100
- значение шага увеличивает индекс цикла на 1 после каждого цикла
- цикл завершается, когда я доходит до 100 и логическое условие оценивается как ложное
1 | для (int i = 0; i <100; i ++) { |
Выход:
1 | 0 |
Пример - уменьшение значения шага
Вот аналогичное значение цикла for с уменьшением значений от 100 до 1.
1 | для (int i = 100; i> 0; i--) { |
Обратите внимание, что мы изменили следующее:
- цикл инициализируется на 100
- логическое условие проверяет, что индекс цикла больше 0
- значение шага уменьшает индекс цикла на 1 после каждого цикла
- цикл завершается, когда я доходит до 0 и логическое условие оценивается как ложное
Выход:
1 | 100 |
Пример - несколько переменных цикла
Вы также можете использовать более одной переменной в инициализации цикла, тестовом выражении и для значения шага. Единственное ограничение заключается в том, что логическое тестовое выражение должно оцениваться как одно значение (истина или ложь). Вот пример использования 3 разных переменных для инициализации цикла, условия проверки и значения шага. Обратите внимание, что условие теста имеет только одно значение, хотя мы используем три переменные.
1 | для (int i = 0, j = 5, k = 30; (i + j + k) <500; i + = 5, j * = 2, k - = 2) { |
Выход:
Пример - без инициализации
Каждая часть цикла не обязательна. Таким образом, вам не нужно иметь инициализацию цикла и значение шага, или даже условие тестирования.
В следующем примере нам не хватает инициализации цикла, потому что мы используем локальную переменную, которую мы инициализировали перед циклом.
1 | int i = 0; |
Выход:
Пример - значение без шага
Вам также не нужно значение шага (обновления). В следующем примере мы удалили его и увеличиваем индекс цикла внутри тела цикла.
1 | int i = 0; |
Выход:
Пример - бесконечный цикл
Наконец, мы можем удалить логическое условие проверки, но это вызовет бесконечный цикл, и программа никогда не завершится сама по себе.
1 | int i = 0; |
Выход:
1 | 0 |
Пример - целочисленный массив
Чтобы перебрать целочисленный массив с помощью цикла for, мы инициализируем переменную цикла значением 0, которое является первым индексом массива. Логическое выражение проверяет, что i меньше размера массива, поскольку последний индекс массива будет на 1 меньше, чем размер массива.
1 | int [] intArray = {1, 3, 5, 7, 9}; |
Выход:
Пример - строковые символы
Чтобы перебрать строку символов с помощью цикла for, мы инициализируем переменную цикла значением 0, а затем используем метод String.charAt () для получения символа по указанному индексу. Как и в примере с целочисленным массивом, мы начинаем индекс цикла с 0 и увеличиваем его на 1 меньше размера строки.Это связано с тем, что строковые индексы работают аналогично массивам в Java: индекс первого символа равен 0, а индекс последнего символа будет на 1 меньше, чем размер строки.
1 | Строка myString = "привет"; |
Выход:
Пример - массив строк
Чтобы перебрать массив строк с помощью цикла for, мы будем использовать ту же технику, что и для перебора массива целых чисел.Индекс цикла инициализируется равным 0, и мы продолжаем цикл до тех пор, пока на 1 не будет меньше размера массива строк.
1 | String [] myStrings = { |
Выход:
Пример - Список
Чтобы перебрать java.util.List с циклом for, мы инициализируем переменную цикла значением 0 и продолжаем цикл до тех пор, пока 1 не станет меньше размера списка. Мы используем метод List.get () для получения определенного элемента списка с текущим индексом цикла. В примере используется список строк, но структура будет работать таким же образом для списка других элементов.
1 | Список |
Выход:
Пример - набор 1
Мы не можем перебирать java.util.Set напрямую с помощью цикла for, обращаясь к его элементам с помощью индекса, как мы это делали для списка. Вместо этого нам нужно сначала преобразовать набор в массив, а затем выполнить итерацию по массиву.Это один из способов преобразования java.util.Set в массив. Обратите внимание, что преобразованный массив является универсальным массивом объектов, даже если исходный набор состоял из строк. После преобразования в массив мы перебираем его так же, как и для массива целых чисел. Также обратите внимание, что набор хранит только уникальные строки, которые мы добавили, а не в том порядке, в котором мы их добавляли.
1 | Set |
Обратите внимание на то, что порядок вывода отличается от порядка, в котором мы вставляли элементы в набор:
Пример - Набор 2
Мы также можем использовать цикл for для перебора java.util.Set, сначала преобразовав его в массив определенного типа. В этом примере мы перебираем элементы набора в цикле for после того, как они были преобразованы в массив строк.
1 | Set |
Обратите внимание на то, что порядок вывода отличается от порядка, в котором мы вставляли элементы в набор:
Пример - Карта
Чтобы перебрать java.util.Map с циклом for, мы сначала получаем набор ключей карты, а затем конвертируем этот java.util.Set в массив String.
1 | Map myMap.put («а», «альфа»); myMap.put («б», «бета»); myMap.put («с», «гамма»); myMap.put («д», «дельта»); Установите для (int i = 0; i |
Выход:
1 | Ключ: a Значение: альфа |
Дополнительная литература
Заявление for (Учебники по Java ™)
Учебное пособие по программированию на Java - 22 - для циклов (YouTube)
Как выполнить итерацию по Set / HashSet без итератора?
Расширенный для цикла
Усовершенствованные циклы for (также известные как циклы for-each или foreach) - это упрощенная версия цикла for.Преимущество состоит в том, что нужно писать меньше кода и меньше переменных для управления. Обратной стороной является то, что у вас нет контроля над значением шага и нет доступа к индексу цикла внутри тела цикла.
Их лучше всего использовать, когда значение шага представляет собой простое приращение 1 и когда вам нужен только доступ к текущему элементу цикла. Например, если вам нужно перебрать каждый элемент в массиве или коллекции, не заглядывая вперед или за текущий элемент.
Улучшенная структура петли
Enhanced for циклы следуют следующему порядку выполнения:
1) тело цикла
2) повторять с шага 1 до тех пор, пока не будет пройден весь массив или коллекция
Нет ни инициализации цикла, ни логического условия, а значение шага неявно и представляет собой простое приращение.Вот почему они считаются намного проще, чем обычные циклы for.
Пример - целочисленный массив
Вы можете использовать расширенный цикл for для обхода элементов массива int один за другим:
1 | int [] intArray = {1, 3, 5, 7, 9}; |
Переменная currentValue содержит текущее значение, по которому выполняется цикл в массиве intArray.Обратите внимание, что здесь нет явного значения шага - это всегда приращение на 1.
Двоеточие может означать «в». Таким образом, улучшенное объявление цикла for гласит: перебираем intArray и сохраняем текущее значение массива int в переменной currentValue.
Вывод:
Пример - строковые символы
Мы не можем использовать расширенный цикл for для итерации непосредственно по одной строке. Если вы попытаетесь сделать это, как в следующем коде, вы получите ошибку времени компиляции.
1 | Строка myString = "привет"; |
Выход:
1 | Исключение в потоке "main" java.lang.Error: Неразрешенная проблема компиляции: |
Чтобы решить эту проблему, мы можем преобразовать строку в массив символов, а затем выполнить итерацию по массиву:
1 | Строка myString = "привет"; для (char c: myString.toCharArray ()) { |
Выход:
Пример - массив строк
Мы можем использовать цикл for-each для перебора массива строк.В объявлении цикла говорится: выполнить цикл по массиву String myStrings и сохранить текущее значение String в переменной currentString.
1 | Строка [] myStrings = { «Альфа», «бета», «гамма», "дельта" }; для (String currentString: myStrings) { |
Выход:
Пример - Список
Улучшенный цикл for также можно использовать для итерации по java.util.List следующим образом:
1 | Список |
В объявлении цикла говорится: выполнить цикл по списку строк myList и сохранить текущее значение списка в переменной currentItem.
Выход:
Пример - Установить
Расширенный цикл for также можно использовать для перебора java.util.Set следующим образом:
1 | Set |
В объявлении цикла говорится: выполнить цикл по набору строк mySet и сохранить текущее значение набора в переменной currentItem. Обратите внимание, что, поскольку это Set, повторяющиеся строковые значения не сохраняются. Кроме того, нет необходимости преобразовывать элементы Set в массив, как мы делали для обычного цикла for.
Выход:
Пример - Карта
Чтобы перебрать java.util.Map с помощью цикла for-each, мы можем перебрать набор ключей карты:
1 | Map myMap.put («а», «альфа»); myMap.put («б», «бета»); myMap.положить ("с", "гамма"); myMap.put («д», «дельта»); Установить |
Выход:
1 | Ключ: a Значение: альфа |
Дополнительная литература
For-Each Loop - Документация по Java 5
Каков синтаксис расширенного цикла for в Java?
Учебник по программированию на Java - 31 - Улучшено для цикла (YouTube)
Синтаксис цикла для Java: «for (T obj: objects)»
Цикл пока
Циклы пока лучше всего использовать, когда вы не знаете, сколько раз вам нужно что-то перебирать.Например, при чтении строк текста из файла программа будет продолжать чтение, пока не дойдет до конца файла, не зная заранее, сколько строк она прочитает.
Структура цикла while
Циклы while в Java имеют более простую структуру, чем циклы for, потому что у них нет значения инициализации или шага. Их структура соответствует следующему порядку исполнения:
1) логическое условие - если истинно, перейти к следующему шагу; если false, выйти из цикла
2) тело цикла
3) повторить с шага 1 (логическое условие)
Пример - целочисленный массив
Чтобы перебрать целочисленный массив с помощью цикла while, мы инициализируем локальную переменную значением 0, которое является первым индексом массива.Логическое выражение проверяет, что i меньше размера массива, поскольку последний индекс массива будет на 1 меньше, чем размер массива. Мы также увеличиваем локальную переменную внутри тела цикла.
1 | int [] intArray = {1, 3, 5, 7, 9}; |
Выход:
Пример - строковые символы
Чтобы перебрать строку символов с помощью цикла while, мы инициализируем локальную переменную до 0, а затем используем String.charAt (), чтобы получить символ по указанному индексу. Как и в предыдущем примере, мы увеличиваем локальную переменную внутри тела цикла.
1 | Строка myString = "привет"; |
Выход:
Пример - массив строк
Чтобы перебрать массив строк с помощью цикла while, мы будем использовать ту же технику, что и для перебора массива целых чисел.Локальная переменная инициализируется значением 0, и мы продолжаем цикл до тех пор, пока на 1 не будет меньше размера массива строк, при этом увеличивая локальную переменную внутри тела цикла.
1 | Строка [] myStrings = { «Альфа», «бета», «гамма», "дельта" }; int я = 0; |
Выход:
Пример - Список
Чтобы перебрать java.util.List с помощью цикла while, мы инициализируем локальную переменную равной 0, чтобы использовать ее в качестве индекса списка, и продолжаем цикл до тех пор, пока 1 не станет меньше размера списка. Мы используем метод List.get () для получения определенного элемента списка с локальной переменной и увеличения его в теле цикла.
1 | Список мой список.добавить ("альфа"); myList.add («бета»); myList.add («гамма»); myList.add ("дельта"); int я = 0; |
Выход:
Пример - набор 1
Мы не можем перебирать java.util.Set напрямую с помощью цикла while, обращаясь к его элементам с помощью индекса, как мы это делали для списка. Вместо этого нам нужно сначала преобразовать набор в массив, а затем выполнить итерацию по массиву.Преобразованный массив представляет собой общий массив объектов, даже если исходный набор состоял из строк. После преобразования в массив мы перебираем его так же, как и для массива целых чисел.
1 | Set mySet.add («альфа»); mySet.добавить ("альфа"); mySet.add («бета»); mySet.add («гамма»); mySet.add («гамма»); mySet.add ("дельта"); Объект [] mySetStrings = mySet.toArray (); int я = 0; |
Выход:
Пример - Набор 2
Мы также можем использовать цикл while для перебора java.util.Set, сначала преобразовав его в массив определенного типа.В этом примере мы перебираем элементы набора в цикле while после того, как они были преобразованы в массив строк.
1 | Set mySet.add («альфа»); mySet.add («альфа»); mySet.add («бета»); mySet.add («гамма»); mySet.добавить ("гамма"); mySet.add ("дельта"); String [] mySetStrings = mySet.toArray (новая строка [mySet.size ()]); int я = 0; |
Выход:
Пример - Карта
Чтобы перебрать java.util.Map с помощью цикла while, мы сначала получаем набор ключей карты, а затем конвертируем этот java.util.Устанавливается в массив String. Обратите внимание, как мы должны вручную увеличивать i внутри тела цикла, потому что мы не используем цикл for.
1 | Map myMap.put («а», «альфа»); myMap.put («б», «бета»); myMap.put («с», «гамма»); myMap.положить ("д", "дельта"); Установить Строка [] keys = keySet.toArray (новая строка [keySet.size ()]); int я = 0; |
Выход:
1 | Ключ: a Значение: альфа |
Пример - бесконечный цикл
Бесконечный цикл while будет происходить, если логическое условие всегда истинно.Этот цикл все равно можно было бы прервать, если бы внутри тела цикла использовался оператор break или return.
1 | int i = 0; |
Выход:
Другой пример бесконечного цикла while может произойти, если вы случайно поставили точку с запятой после объявления цикла while.Вы можете подумать, что цикл будет выполняться нормально и выйдет, но он будет в бесконечном цикле, и на выходе ничего не будет отображаться:
1 | Строка [] myStrings = { «Альфа», «бета», «гамма», "дельта" }; int я = 0; |
Дополнительная литература
Операторы while и do-while - Учебные пособия по Java ™
Цикл while в java (учебные пособия)
Учебник по программированию на Java - 13 - Цикл while (YouTube)
Цикл Do-While
Циклы Do-while (также известные как циклы do) лучше всего использовать, когда вы не знаете, сколько раз вам нужно перебирать что-то, И вы хотите выполнить цикл хотя бы один раз. Например, если программа постоянно принимает ввод от пользователя и выводит его, пока пользователь не введет букву «q», тогда вы должны использовать цикл do-while, так как вам нужно будет принять ввод пользователя хотя бы один раз.
Структура цикла Do-While
Как и циклы while, циклы do-while в Java имеют более простую структуру, чем циклы for, потому что у них нет значения инициализации или шага. Они похожи на циклы while, но порядок операций другой. Их структура соответствует следующему порядку исполнения:
1) тело цикла
2) логическое условие - если истинно, перейти к следующему шагу; если false, выйти из цикла
3) повторить с шага 1 (тело цикла)
Разница между циклом do-while и циклом while заключается в том, что цикл do-while сначала выполняет тело перед вычислением логического условия, тогда как цикл while сначала оценивает логическое условие перед выполнением тела цикла.
Пример - целочисленный массив
Чтобы перебрать целочисленный массив с помощью цикла do-while, мы инициализируем локальную переменную до 0, который является первым индексом массива. Логическое выражение проверяет, что i меньше размера массива, поскольку последний индекс массива будет на 1 меньше, чем размер массива. Мы также увеличиваем локальную переменную внутри тела цикла. Поскольку цикл do сначала выполняет тело цикла перед проверкой логического выражения, код генерирует исключение ArrayIndexOutOfBoundsException, если массив был пуст.
1 | int [] intArray = {1, 3, 5, 7, 9}; |
Выход:
Пример - строковые символы
Чтобы перебрать строку символов с помощью цикла do-while, мы инициализируем локальную переменную до 0, а затем используем String.charAt (), чтобы получить символ по указанному индексу. Как и в предыдущем примере, мы увеличиваем локальную переменную внутри тела цикла. Если бы строка была пустой, код вызвал бы исключение StringIndexOutOfBoundsException.
1 | Строка myString = "привет"; |
Выход:
Пример - массив строк
Чтобы перебрать строку символов с помощью цикла do-while, мы инициализируем локальную переменную до 0, а затем используем метод String.charAt () для получения символа по указанному индексу. Как и в предыдущем примере, мы увеличиваем локальную переменную внутри тела цикла. Код вызовет исключение ArrayIndexOutOfBoundsException, если массив был пуст.
1 | Строка [] myStrings = { «Альфа», «бета», «гамма», "дельта" }; int я = 0; |
Выход:
Пример - Список
Чтобы перебрать java.util.List с помощью цикла do-while, мы инициализируем локальную переменную равной 0, чтобы использовать ее в качестве индекса списка, и продолжаем цикл до тех пор, пока на 1 не будет меньше размера списка. Мы используем метод List.get () для получения определенного элемента списка с локальной переменной и увеличения его в теле цикла. Код вызовет исключение ArrayIndexOutOfBoundsException, если список будет пуст.
1 | Список myList.add ("альфа"); myList.add («бета»); myList.add («гамма»); myList.add ("дельта"); int я = 0; |
Выход:
Пример - набор 1
Мы не можем перебирать java.util.Set напрямую с помощью цикла do-while, обращаясь к его элементам с помощью индекса, как мы это делали для списка. Вместо этого нам нужно сначала преобразовать набор в массив, а затем выполнить итерацию по массиву. Преобразованный массив представляет собой общий массив объектов, даже если исходный набор состоял из строк. После преобразования в массив мы перебираем его так же, как и для массива целых чисел. Код вызовет исключение ArrayIndexOutOfBoundsException, если набор будет пустым.
1 | Set mySet.добавить ("альфа"); mySet.add («альфа»); mySet.add («бета»); mySet.add («гамма»); mySet.add («гамма»); mySet.add ("дельта"); Объект [] mySetStrings = mySet.toArray (); int я = 0; |
Выход:
Пример - Набор 2
Мы также можем использовать цикл do-while для итерации по java.util.Set, сначала преобразовав его в массив определенного типа. В этом примере мы перебираем элементы набора в цикле do-while после того, как они были преобразованы в массив строк. Код вызовет исключение ArrayIndexOutOfBoundsException, если набор будет пустым.
1 | Set mySet.добавить ("альфа"); mySet.add («альфа»); mySet.add («бета»); mySet.add («гамма»); mySet.add («гамма»); mySet.add ("дельта"); String [] mySetStrings = mySet.toArray (новая строка [mySet.size ()]); int я = 0; делать { |
Выход:
Пример - Карта
Чтобы перебрать java.util.Map с помощью цикла do-while, мы сначала получаем набор ключей карты, а затем конвертируем этот java.util.Set в массив String. Код вызовет исключение ArrayIndexOutOfBoundsException, если карта будет пустой.
1 | Map myMap.put («а», «альфа»); myMap.положить ("б", "бета"); myMap.put («с», «гамма»); myMap.put («д», «дельта»); Установить Строка [] keys = keySet.toArray (новая строка [keySet.size ()]); int я = 0; |
Выход:
1 | Ключ: a Значение: альфа |
Пример - бесконечный цикл
Бесконечный цикл while будет происходить, если логическое условие всегда истинно.Этот цикл все равно можно было бы прервать, если бы внутри тела цикла использовался оператор break или return.
1 | int i = 0; |
Выход:
Дополнительная литература
Операторы while и do-while - Учебники по Java ™
Учебник по программированию на Java - 24 - Циклы do while (YouTube)
Синтаксис Do while для java - упражнение по отладке
Контур управления потоком
Заявление о перерывеИногда необходимо выйти из цикла до того, как цикл полностью перебирает все значения шага.Например, перебирая список чисел, пока не найдете число, удовлетворяющее определенному условию. Или перебирать поток символов из файла до тех пор, пока не будет прочитан определенный символ.
В следующем примере мы используем простой цикл for для вывода значений от 0 до 9:
1 | for (int i = 0; i <10; i ++) { |
Выход:
Теперь, если мы добавим оператор break, когда i == 4, наш код выйдет из цикла, когда i станет равным 4.Вы можете использовать оператор break для выхода из циклов for, while и do-while. Оператор break только выйдет из текущего цикла. Чтобы выйти из внешнего цикла из вложенного внутреннего цикла, вам нужно будет использовать метки с оператором break.
1 | для (int i = 0; i <10; i ++) { |
Выход:
Продолжить Заявление
Оператор continue в Java пропускает текущую итерацию цикла и переходит непосредственно к следующей итерации.После вызова оператора continue в цикле for выполнение цикла выполнит значение шага и оценит логическое условие перед переходом к следующей итерации. В следующем примере мы выводим все значения от 0 до 9 в цикле, но пропускаем печать 4.
1 | for (int i = 0; i <10; i ++) { |
Выход:
1 | 0 |
Вы также можете использовать оператор continue в цикле while, но вам нужно будет перебирать значение шага внутри цикла.Обратите внимание, как итерация i ++ выполняется в двух местах: прямо перед вызовом coninue и в конце тела цикла. Если бы я не был увеличен до продолжения, цикл застрял бы в бесконечном цикле, потому что я застрял бы на 4 и продолжал бы вызывать continue, чтобы перейти к началу цикла.
1 | int i = 0; |
Выход:
1 | 0 |
Оператор continue в цикле do-while используется так же, как и для цикла while - переменная цикла должна увеличиваться вручную в двух местах тела цикла, чтобы предотвратить состояние бесконечного цикла, точно так же, как какое-то время петля.
1 | int i = 0; |
Выход:
1 | 0 |
Вложенные циклы
Иногда необходимо иметь петли внутри петель.Например, при чтении из таблицы данных со строками и столбцами первый (внешний) цикл может перебирать все строки, а второй (внутренний) цикл может перебирать все столбцы в каждой строке.
Когда циклы находятся внутри других циклов, мы называем внутренние циклы вложенными. Может быть даже несколько слоев вложенных циклов. Вот пример трехслойного вложенного цикла:
1 | for (int i = 0; i <5; i ++) {// цикл 1 |
Выход:
1 | [0] [0] [0] |
Этикетка петли
Многие ранние языки программирования, такие как C / C ++, использовали ключевое слово goto , чтобы программа перескакивала или «переходила» в другую часть программы, с которой она в настоящее время выполняется.У оператора goto определенно плохая репутация из-за того, что он может усложнить понимание программы и привести к «спагетти-коду», за которым очень трудно следить за ходом выполнения.
Java не использует ключевое слово goto, даже если оно указано как неиспользуемое ключевое слово языка. В Java есть метки, которые представляют собой ограниченную версию оператора goto внутри циклов, чтобы программа могла перейти к другой части программы.
Вы можете использовать метки внутри вложенных циклов, указав, где вы хотите продолжить выполнение после выхода из внутреннего цикла.Обычно оператор break выходит только из самого внутреннего цикла, поэтому, когда вы хотите выйти из внешнего цикла, вы можете использовать метки для выполнения этого, по сути делая что-то похожее на оператор goto.
В следующем примере используются 3 цикла, вложенных друг в друга. Поскольку нет способа полностью выйти из самого внешнего цикла изнутри самого внутреннего цикла, мы можем использовать метку «outer1» для этого и указать метку рядом с оператором break.
1 | external1: |
Выход:
1 | [0] [0] [0] |
Обратите внимание, что последняя отображаемая строка - это «[0] [3] [0]», где j == 3, и именно здесь мы вызвали «break outer1;» чтобы вырваться из самого внешнего цикла.Мы также можем разместить метку на втором цикле, чтобы его можно было разорвать, не выходя из всего цикла:
1 | для (int i = 0; i <5; i ++) { |
Выход:
1 | [0] [0] [0] |
Обратите внимание на все случаи, когда код выходит из второго цикла с меткой «outer2».Каждый раз, когда он прерывается, самый внешний цикл увеличивается на 1, и код продолжает выполняться.
Вы также можете использовать метки с ключевым словом continue, чтобы продолжить цикл с определенной точки. Взяв первый пример помеченного цикла и просто изменив одну строку, чтобы указать «continue outer1;» вместо «break external1;» вызовет продолжение цикла с метки «external1» вместо выхода из цикла. Обратите внимание, как каждый раз, когда вызывается «continue external1», код продолжается с внешнего цикла после увеличения индекса цикла i на 1.
1 | external1: |
Выход:
1 | [0] [0] [0] |
Заявление о возврате в циклах
Оператор возврата Java используется для выхода из выполнения программы из метода.Его также можно использовать для выхода из цикла (или вложенного цикла) в методе. Его поведение аналогично оператору break, но в то время как оператор break выходит из текущего цикла, оператор return завершает весь метод.
1 | for (int i = 0; i <10; i ++) { |
Выход:
Область локальной переменной
Локальные переменные, определенные в циклах, видны только внутри цикла.Если вы попытаетесь использовать одну из этих переменных вне цикла, вы получите ошибку компиляции. Например, циклы for обычно инициализируют переменную цикла, и они доступны только из цикла for. В следующем примере используется цикл do-while с двумя локальными переменными: i и j. i был определен до цикла, поэтому он все еще доступен после цикла. Но j определяется внутри цикла, поэтому компилятор выдаст ошибку при попытке доступа к j вне цикла.
1 | int i = 0; |
Выход:
1 | Исключение в потоке «main» java.lang.Ошибка: Неразрешенная проблема компиляции: |
Дополнительная литература
Выход из вложенных циклов в Java
«цикл:» в коде Java.Что это такое, зачем компилируется?
Ошибки цикла и исключения
Циклыимеют свои уникальные ошибки и исключения, которые мы рассмотрим ниже.
Бесконечные петли
Мы уже рассмотрели бесконечные циклы, поскольку они относятся к циклам for, циклам while и циклам do-while. Основная идея состоит в том, что цикл никогда не завершается, потому что логическое условие всегда истинно.
Вот еще один пример бесконечного цикла for, в котором возникает небольшая ошибка. В коде используются 2 переменных цикла: i и j.Обратите внимание, как в логическом выражении используется i, а в значении шага используется j. Это вызовет бесконечный цикл, потому что i никогда не увеличивается, а логическое выражение всегда будет иметь значение true.
1 | int [] intArray = {1, 3, 5, 7, 9}; |
Выход:
Исключение индекса массива вне границ
Это исключение может возникнуть, когда цикл пытается получить доступ к элементу массива, превышающему размер массива.Ошибки могут быть довольно незначительными, как показано в следующем примере:
1 | int [] intArray = {1, 3, 5, 7, 9}; для (int i = 0; i <= intArray.length; i ++) { |
Выход:
1 | 1 |
Исключение возникает из-за того, что логическое выражение цикла проверяет, меньше ли i или равно размеру массива. Но поскольку в массиве 5 элементов, последний действительный индекс массива будет 4. Поэтому, когда цикл пытается получить доступ к массиву с индексом 5, JVM выдает исключение ArrayIndexOutOfBoundsException. Вот почему в выходных данных отображается «5», когда возникает исключение.
В следующем примере используется цикл do для отображения элементов в массиве.Поскольку цикл do сначала выполняет тело цикла перед проверкой логического выражения, этот код генерирует исключение ArrayIndexOutOfBoundsException, поскольку пустой массив не будет содержать ни одного элемента.
1 | int [] intArray = {}; |
Выход:
1 | Исключение в потоке "main" java.lang.ArrayIndexOutOfBoundsException: 0 |
Исключение строкового индекса за пределами границ
Это исключение может возникнуть при доступе к несуществующему элементу в строке. Он похож на ArrayIndexOutOfBoundsException, но более специфичен для строк. В следующем цикле do-while код пытается получить доступ к первому символу в пустой строке.
1 | String myString = ""; |
Выход:
1 | Исключение в потоке «main» java.lang.StringIndexOutOfBoundsException: индекс строки вне допустимого диапазона: 0 |
Ошибка нехватки памяти
Часто циклы обнаруживают ошибку java.lang.OutOfMemoryError, когда каждая итерация цикла выделяет все больше и больше памяти.Вот простой пример, показывающий, как каждая итерация цикла выделяет память для все большего массива целых чисел, пока JVM не выдаст OutOfMemoryError. Каждая итерация цикла увеличивает размер массива в 5 раз.
1 | int arraySize = 100; |
Выход:
1 | Созданный целочисленный массив размером: 100 |
Дополнительная литература
Очень простая ошибка цикла for Java
Цикл For в Java | Важные моменты
java.lang.ArrayIndexOutOfBoundsException: 3 в цикле while
Итерационных циклов: преобразование циклов
Найдите минутку, чтобы вспомнить свое детство. Подумайте обо всех этих медведях Беренстейн, Джуни Б. Джонс, «Мурашки по коже» и (конечно же) о книгах доктора Сьюза, которые вы читаете снова и снова, пока на каждой странице не останется какое-то пятно от варенья, а обложки не начнут отрываться. привязка.
Вот и все, просто позвольте ностальгии окутать вас, как вашу любимую мягкую игрушку, Sir Snuggs-a-Lot.
Нашим личным фаворитом был The Lorax . Нам просто действительно нужно было колени, хорошо? Кто не любит вещи, которые можно превратить в 25 с лишним вещей? Кабриолеты, грузовые штаны с застежкой на молнии, столы для аэрохоккея / настольного футбола и кошачьи рюкзаки - все в этом роде, но большинство реальных объектов можно преобразовать только в две, а то и в три штуки, максимум.
Необходимость не существует в реальном мире (к счастью или к сожалению), но циклы есть, и их можно всегда преобразовать между циклами while, for и рекурсивными циклами.Поговорим о полезности. Мы не собираемся здесь говорить о рекурсии, потому что для этого есть совсем другое руководство. А пока мы сосредоточимся на циклах for и while.
From For to While Loops
Давайте ненадолго вернемся к спискам. Во многих языках слова примерно такие же, как списки символов, поэтому, если мы хотим изменить строку, мы можем рассматривать ее как список. Чтобы превратить все буквы в слове в прописные, нам нужно написать цикл, который проходит через слово, изменяя каждый символ по отдельности.Напишем для этого программу со словом «Битлджус».
… Пока мы не напечатаем его трижды, у нас все будет хорошо, верно? Верно?!?
word = "Beetlejuice" ДЛЯ КАЖДОЙ буквы В слове: буква = прописная (буква) КОНЕЦ ДЛЯ
Превратить этот цикл for-each в цикл while на самом деле довольно просто: нам просто нужно настроить конечное условие. Чтобы сделать это условие завершаемым, нам также нужно явно указать циклу while смотреть на следующий символ в слове на каждой итерации.Для этого были созданы циклы For, но циклы while? Не так много.
word = "Beetlejuice" wordLength = длина (слово) индекс = 0 ПРИ индексе МЕНЬШЕ wordLength: слово [индекс] = верхний регистр (слово [индекс]) индекс = индекс + 1 END WHILE
Обе эти петли действуют одинаково. Единственное отличие состоит в том, что все, что язык обрабатывает внутри цикла for-each, должно быть явно написано в цикле while. В этом случае дополнительный код составляет около трех дополнительных строк. Наше мнение? Поскольку цикл for-each внутренне отслеживает то, что вам нужно покрыть извне в цикле while, это, вероятно, лучший вариант.Но, как и при разговоре на разных человеческих языках, вы обычно можете выразить все, что захотите, на любом языке, независимо от того, имеют ли они этот особый вид цикла for или нет.
От цикла while к циклам For
Давайте теперь пойдем в противоположном направлении, преобразовав цикл while в цикл for. Допустим, мы уехали в отпуск на неделю и хотели, чтобы цикл времени полил некоторые растения в нашем саду, пока нас нет.
ЕСЛИ садовая почва РАВНА сухой: ПОКА садовая почва РАВНА СУХАЕТ: водные растения) КОНЕЦ ПОКА END IF
По очевидным причинам мы обычно не хотим, чтобы наши циклы потенциально работали в течение бесконечного количества времени.Это закончится невероятным количеством потраченной впустую воды и несколькими мертвыми растениями.
Имейте в виду, что мы находимся в отпуске, и вместо того, чтобы нанять специалиста по отслеживанию вещей, мы подумали, что пойдем по пути Кремниевой долины, позволив компьютеру управлять всем. Компьютер не может точно знать, сколько воды понадобится каждому растению, прежде чем почва перестанет сохнуть.
Тем не менее, есть способы смоделировать цикл while в цикле for, просто чтобы убедиться, что все действительно заканчивается.Если мы добавим условие в цикл, мы сможем преждевременно прервать цикл, установив конечный номер цикла for на что-то очень большое. Думайте об этом цикле как о двойной уверенности в том, что цикл закончится.
ДЛЯ СЧЕТЧИКА ОТ 0 ДО 25: ЕСЛИ садовая почва РАВНА высыхает: водные растения) ЕЩЕ: BREAK из цикла по КОНЕЦ ЕСЛИ КОНЕЦ ДЛЯ
25 - произвольное число, которое не позволяет циклу работать бесконечно. Однако, если в этот раз почва перестанет быть сухой до , код выйдет из цикла.А до тех пор он будет продолжать работать - всего с парой дополнительных строк кода.
Это может быть не так впечатляюще, как Трансформеры, но эй. Вряд ли что-либо может быть столь же впечатляющим, как аниме о машинах, которые являются тайными инопланетными роботами.
ForEach to For / For to ForEach | CodeRush
Назначение
Этот рефакторинг используется для переключения между для цикла и для каждого цикла . Цикл foreach более удобочитаемый и компактный.С другой стороны, если ваш алгоритм использует номер итерации для вычислений, цикл для более применим.
Примечание
В редких случаях рефакторинг с ForEach на For может изменить внешнее поведение вашего кода, если реализация IEnumerator вызывает значительные побочные эффекты или если какой-либо из членов IEnumerator ведет себя нестандартно.
Наличие
Доступно, если курсор находится на для или для каждого ключевого слова .
Использование
Поместите курсор в ключевое слово foreach .
Примечание
Мигающий курсор показывает положение курсора, в котором доступен рефакторинг .
строка result = String.Empty; foreach│ (строка str в строках) если (длина строки> 2) результат + = $ "{str}";
Тусклый результат As String = String.Empty Для каждого│ строка как строка в строках Если str.Length> 2 Тогда результат & = $ "{str}" Конец, если Следующая ул.
- Нажмите Ctrl +. или Ctrl + ~ ярлык для вызова меню Code Actions .
- Выберите ForEach в For из меню ( For в ForEach , если вы конвертируете цикл для в цикл для каждого цикла ).
После выполнения Refactoring преобразует цикл foreach в цикл for или наоборот.
строка result = String.Empty;
для (int i = 0; i 2)
результат + = $ "{строки [i]}";
Тусклый результат As String = String.Empty
Для i As Integer = 0 To Strings.Count - 1
Если Strings (i) .Length> 2, то
результат & = $ "{Строки (i)}"
Конец, если
Далее я
См. Также
Как преобразовать массив в объект с помощью JavaScript
Введение
Как преобразовать массив в новый объект с помощью Javascript?
Вы можете преобразовать массив в объект, используя один из этих трех методов:
- Объект
.assign ()
функция - Выполните цикл по массиву и создайте новый объект
- Функция
reduce ()
В этой статье мы рассмотрим каждый из этих методов и предоставим несколько примеров кода для использования на своем веб-сайте или в приложении.
Приступим!
Содержание
- Object.assign ()
- Перебрать массив и создать новый объект
- Уменьшить ()
1.Object.assign ()
Object.assign () - это первый метод, который мы рассмотрим для преобразования массива в объект. Этот метод используется для копирования значений из одного или нескольких исходных объектов в новый объект.
Функция принимает два параметра:
- Целевой объект, который вы хотите изменить (он будет возвращен функцией)
- Исходный объект, откуда извлекать свойства из
Если вы дадите функции массив в качестве исходных данных, она будет перебирать каждый элемент в массиве и создавать новый объект, где ключом является индекс массива значения.
Вот как это выглядит на практике:
JavaScript
Копия
const array = ["Джонни", "Билли", "Сэнди"]
const newObject = Object.assign ({}, массив)
// newObject = {"0": "Джонни", "1": "Билли", "2": "Сэнди"}
Обратите внимание, как каждый элемент в новом объекте использует индекс массива значения в качестве ключа (т. Е. «0»
, «1»
и т. Д.).
И теперь вы можете получить доступ к каждому элементу в новом объекте, используя обычный метод записи через точку ( foo.бар
).
В следующем разделе мы покажем вам, как вручную перебирать массив для создания нового объекта.
Рекламное объявление
Создайте клон новостей для хакеров
Узнайте, как создать и развернуть полнофункциональное, готовое к работе приложение с React.js, Node.js и MongoDB.
2. Выполните цикл по массиву и создайте новый объект
Для второго метода мы собираемся перебрать каждый элемент в массиве и добавить каждое из его значений в качестве нового свойства в новый объект.Чтобы соответствовать объекту, возвращенному в последнем разделе, значение ключа будет индексом массива для каждого элемента.
В примере кода мы будем использовать цикл для
для перечисления каждого элемента в массиве. Но вы можете использовать любой другой метод цикла по массиву, который вы хотите (, тогда как
, , пока / do
и т. Д.).
Вот полный пример кода:
JavaScript
Копия
const array = ["Джонни", "Билли", "Сэнди"]
let newObject = {}
for (пусть i = 0; i
Сначала мы объявляем пустой объект с именем newObject
, который будет служить новым объектом, который будет содержать элементы нашего массива.
Затем мы используем цикл для
для перебора каждого элемента в массиве. Если значение не имеет значения undefined
, мы добавляем элемент в качестве нового свойства в newObject
, используя индекс массива в качестве значения ключа.
Если вы console.log ()
новый объект, вы увидите, что возвращается тот же объект, что и первый метод.
3. Уменьшить ()
Последний пример, который мы вам покажем, - это метод reduce (). Метод reduce ()
выполняет заданную функцию для каждого элемента массива и сохраняет значения в объекте-накопителе, который будет объектом в случае, если мы его используем.
Мы вызовем функцию reduce ()
непосредственно в массиве и передадим ей функцию-параметр, которая создает новый объект, используя каждый элемент в массиве.Значение индекса массива будет использоваться как ключ объекта.
Код выглядит следующим образом:
filename.js
Копия
const array = ["Джонни", "Билли", "Сэнди"]
const newObject = array.reduce (функция (результат, элемент, индекс) {
результат [индекс] = элемент
вернуть результат
}, {})
// newObject = {"0": "Джонни", "1": "Билли", "2": "Сэнди"}
Если вы console.log ()
новый объект, вы увидите, что возвращается тот же объект, что и первый, и второй метод.
Это последний метод, который мы рассмотрим в этой статье.
Рекламное объявление
Создайте блог о программировании с нуля
Полное пошаговое руководство по созданию и развертыванию блога по кодированию с настраиваемой CMS с использованием React.js, Node.js, MongoDB и других.
Заключение
В этой статье мы рассмотрели три различных способа преобразования массива в новый объект с помощью JavaScript.