Опубликовано

Питание для ардуино

Где купить Arduino Uno

Минимальные цены на платы UNO можно найти в китайских электронных магазинах. Если у вас есть несколько недель на ожидание, вы можете существенно сэкономить, купив дешево (в районе 200-300 рублей) с бесплатной доставкой. Причем можно найти как самые простые варианты, так и официальные или “почти оригинальные” платы на базе оригинального микроконтроллера. Еще одна группа товаров – необычные платы со встроенными WiFi (на базе ESP8266 или ESP32), дополнительными разъемами для более удобного подключения периферии. Вот некоторые варианты, которые можно купить у проверенных поставщиков на Алиэкспрессе:

Arduino UNO R3 (CH340G) MEGA328P. Типичный представитель плат Ардуино на Aliexpress с ценой ниже 250 рублей Качественная плата Arduino UNO R3 на CH340G. Комплект без кабеля с минимальной ценой около 220 рублей Arduino оптом – 10 плат контроллера UNO R3 с MEGA328P ATMEGA16U2 на борту
Официальный Arduino UNO R3 MEGA328P на базе ATMEGA16U2 – максимальное качество Плата MegaPower Uno на базе оригинальных ATmega328 R3, FTDI FT232RL Оригинальный Arduino UNO R3 (плата на базе оригинальных микросхем MEGA и ATMEGA16U2) с USB кабелем в картонной коробке
Два в одном! Arduino UNO со встроенным Sensor Shield (Atmega328P Atmega16U2 плюс Sensor I/O Shield) Arduino Uno и WiFi под одной крышей: R3 ATmega328P+ESP8266 (32Mb memory) Отличный вариант от KeyeStudio – UNO R3 MEGA328P ATMEGA16U2 с совмещенным Sensor Shield

Если вы интересуетесь наборами Ардуино, то более подробный обзор доступных вариантов вы можете найти на нашем сайте.

Описание пинов Ардуино

Пины Ардуино используются для подключения внешних устройств и могут работать как в режиме входа (INPUT), так и в режиме выхода (OUTPUT). К каждому входу может быть подключен встроенный резистор 20-50 кОм с помощью выполнения команды pinMode () в режиме INPUT_PULLUP. Допустимый ток на каждом из выходов – 20 мА, не более 40 мА в пике.
Для удобства работы некоторые пины совмещают в себе несколько функций:

  • Пины 0 и 1 – контакты UART (RХ и TX соответственно) .
  • Пины c 10 по 13 – контакты SPI (SS, MOSI, MISO и SCK соответственно)
  • Пины A4 и A5 – контакты I2C (SDA и SCL соответственно).

Цифровые пины платы Uno

Пины с номерами от 0 до 13 являются цифровыми. Это означает, что вы можете считывать и подавать на них только два вида сигналов: HIGH и LOW. С помощью ШИМ также можно использовать цифровые порты для управления мощностью подключенных устройств.

Пин ардуино Адресация в скетче Специальное назначение ШИМ
Цифровой пин 0 0 RX
Цифровой пин 1 1 TX
Цифровой пин 2 2 Вход для прерываний
Цифровой пин 3 3 Вход для прерываний ШИМ
Цифровой пин 4 4
Цифровой пин 5 5 ШИМ
Цифровой пин 6 6 ШИМ
Цифровой пин 7 7
Цифровой пин 8 8
Цифровой пин 9 9 ШИМ
Цифровой пин 10 10 SPI (SS) ШИМ
Цифровой пин 11 11 SPI (MOSI) ШИМ
Цифровой пин 12 12 SPI (MISO)
Цифровой пин 13 13 SPI (SCK)

К выходу также подсоединен встроенный светодиод (есть в большинстве плат Arduino)

Аналоговые пины Arduino Uno

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

Пин Адресация в скетче Специальное назначение
Аналоговый пин A0 A0 или 14
Аналоговый пин A1 A1 или 15
Аналоговый пин A2 A2 или 16
Аналоговый пин A3 A3 или 17
Аналоговый пин A4 A4 или 18 I2C (SCA)
Аналоговый пин A5 A5 или 19 I2C (SCL)

Дополнительные пины на плате

  • AREF – выдает опорное напряжения для встроенного АЦП. Может управляться функцией analogReference().
  • RESET – подача низкого сигнала на этом входе приведет к перезагрузке устройства.

Варианты питания Ардуино Уно

Рабочее напряжение платы Ардуино Уно – 5 В. На плате установлен стабилизатор напряжения, поэтому на вход можно подавать питание с разных источников. Кроме этого, плату можно запитывать с USB – устройств. Источник питания выбирается автоматически.

  • Питание от внешнего адаптера, рекомендуемое напряжение от 7 до 12 В. Максимальное напряжение 20 В, но значение выше 12 В с высокой долей вероятности быстро выведет плату из строя. Напряжение менее 7 В может привести к нестабильной работе, т.к. на входном каскаде может запросто теряться 1-2 В. Для подключения питания может использоваться встроенный разъем DC 2.1 мм или напрямую вход VIN для подключения источника с помощью проводов.
  • Питание от USB-порта компьютера.
  • Подача 5 В напрямую на пин 5V. В этом случае обходится стороной входной стабилизатор и даже малейшее превышение напряжения может привести к поломке устройства.

Пины питания

  • 5V – на этот пин ардуино подает 5 В, его можно использовать для питания внешних устройств.
  • 3.3V – на этот пин от внутреннего стабилизатора подается напряжение 3.3 В
  • GND – вывод земли.
  • VIN – пин для подачи внешнего напряжения.
  • IREF – пин для информирования внешних устройств о рабочем напряжении платы.

Память Arduino Uno R3

Плата Uno по умолчанию поддерживает три типа памяти:

  • Flash – память объемом 32 кБ. Это основное хранилище для команд. Когда вы прошиваете контроллер своим скетчем, он записывается именно сюда. 2кБ из данного пула памяти отводится на bootloader- программу, которая занимается инициализацией системы, загрузки через USB и запуска скетча.
  • Оперативная SRAM память объемом 2 кБ. Здесь по-умолчанию хранятся переменные и объекты, создаваемые в ходе работы программы. Память эта энерго-зависимая, при выключении питания все данные, разумеется, сотрутся.
  • Энергонезависимая память (EEPROM) объемом 1кБ. Здесь можно хранить данные, которые не сотрутся при выключении контроллера. Но процедура записи и считывания EEPROM требует использования дополнительной библиотеки, которая доступна в Arduino IDE по-умолчанию. Также нежно помнить об ограничении циклов перезаписи, присущих технологии EEPROM.

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

Программирование для платы Uno

Для написания программ (скетчей) для контроллер Ардуино вам нужно установить среду программирования. Самым простым вариантом будет установка бесплатной Arduino IDE, скачать ее можно с официального сайта.

После установки IDE вам нужно убедиться, что выбрана нужная плата. Для этого у Arduino IDE в меню “Инструменты” и подпункте “Плата” следует выбрать нашу плату (Arduino/Genuino Uno). После выбора платы автоматически изменятся параметры сборки проекта и итоговый скетч будет скомпилирован в формат, который поддерживает плата. Подключив контроллер к компьютеру через USB, вы сможете в одно касание заливать на него вашу программу,используя команду “Загрузить”.

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

Написанная и скомпилированная программа загружается через USB-соединение (UART- Serial). Со стороны контролера за этот процесс отвечает bootloader.

Более подробную информацию о том, как устроены программы для платы Ардуино можно найти в нашем разделе, посвященном программированию.

Отличие от других плат

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

Отличия Arduino Uno от Arduino Nano

Современные платы Arduino Uno и Arduino Nano версии R3 имеют, как правило, на борту общий микроконтроллер: ATmega328. Ключевым отличием является размер платы и тип контактных площадок. Габариты Arduino Uno: 6,8 см x 5,3 см. Габариты Arduino Nano: 4,2 см x 1,85 см. В Arduino UNO используются коннекторы типа «мама», в Nano – «гребень» из ножек, причем у некоторых моделей контактные площадки вообще не припаяны. Естественно, больший размер UNO по сравнению с Nano в некоторых случаях является преимуществом, а в некоторых – недостатком. С платой большого размера гораздо удобнее производить монтаж, но она неудобна в реальных проектах, т.к. сильно увеличивает габариты конечного устройства.

На платах Arduino Uno традиционно используется разъем TYPE-B (широко применяется также для подключения принтеров и МФУ). В некоторых случаях можно встретить вариант с разъемом Micro USB. В платах Arduino Nano стандартом является Mini или Micro USB.

Естественно, различия есть и в разъеме питания. В плате Uno есть встроенный разъем DC, в Nano ему просто не нашлось места.

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

Отличия от Arduino Mega

Плата Mega в полном соответствии со своим названием является на сегодняшний день самым большим по размеру и количеству пинов контроллеров Arduino. По сравнению с ней в Uno гораздо меньше пинов и памяти. Вот список основных отличий:

  • Плата Mega использует иной микроконтроллер: ATMega 2560. Но тактовая частота его равна 16МГц, так же как и в Уно.
  • В плате Mega большее количество цифровых пинов – 54 вместо 14 у платы Uno. И аналоговых – 16 / 6.
  • У платы Mega больше контактов, поддерживающих аппаратные прерывания: 6 против 2. Больше Serial портов – 4 против 1.
  • По объему памяти Uno тоже существенно уступает Megа. Flash -память 32/256, SRAM – 2/8, EEPROM – 4/1.

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

Краткие выводы

Arduino Uno – отличный вариант платы для создания своих первых проектов и умных устройств. 14 цифровых и 6 аналоговых пинов позволяют подключать разнообразные датчики, светодиоды, двигатели и другие внешние устройства. USB-разъем поможет подключиться к компьютеру для перепрошивки скетча без дополнительных внешних устройств. Встроенный стабилизатор позволяет использовать различные элементы питания с широким диапазоном напряжения, от 6-7 до 12-14 В. В Arduino Uno достаточно удобно реализована работа с популярными протоколами: UART, SPI, I2C. Есть даже встроенный светодиод, которым можно помигать в своем первом скетче. Чего еще желать начинающему ардуинщику?

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

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

На рисунке ниже приведены платы Arduino UNO и Arduino MEGA:

Arduino MEGA совместима с версией UNO в области основных выводов. Дополнительные выводы MEGA расположены отдельно, что позволяет сохранить совместимость с Arduino UNO.

Распиновка Arduino Uno

Рядом с USB разъемом есть кнопка «RESET». Он позволяет вернуться к исходному состоянию программы, которое бывает при включении питания. После нажатия кнопки «RESET» данные в ОЗУ микроконтроллера сбрасываются и Arduino начинает выполнять программу с самого начала.

Интерфейс USB позволяет программировать Arduino и взаимодействовать и поддерживать связь с Serial монитором. Кроме того, непосредственно через USB вы можете запитать плату.

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

Для этого в Arduino имеет разъем для подключения внешнего источника питания. Напряжение питания может составлять от 5 до 20 В. Фактически, оптимальное напряжение должно находиться в диапазоне 7-12 В.

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

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

Arduino оснащена одним или двумя шестиконтактными разъемами, которые используются для программирования микроконтроллера. Разъемы обозначаются как ICSP1 и ICSP2. Разъем ближе к основному микроконтроллеру позволяет загружать BOOTLOADER, а разъем ближе к USB-порту позволяет загружать программу USB-UART преобразователя. Второй разъем используется только в платах Arduino, где в качестве USB-UART преобразователя используется микроконтроллер Atmega. Если установлен FT232, то второй разъем на плате отсутствует.

Плата Arduino оснащена группой, по крайней мере, из 4 светодиодов. Два из них помечены как «RX» и «TX» расположены рядом с микросхемой FT232 или Atmega. Они сигнализируют о последовательной передаче данных между компьютером и контроллером. Эти светодиоды полезны при программировании и тестировании программы, которая взаимодействует с компьютером. По их свечению вы можете визуально определить, происходит ли передача данных (программирование) или нет.

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

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

Левая часть (POWER) обеспечивает доступ к питанию и управлению:

  • IOREF — указывает каким напряжением питается процессор Arduino (это важно для некоторых шилдов)
  • RESET — сброс Arduino
  • 3V3 – система питание модулей, требующих 3,3 В
  • 5V — система питания TTL
  • GND – масса
  • GND — масса
  • VIN — напряжение питания от внешнего источника

Правая часть (ANALOG IN) обеспечивает считывание аналоговые сигналов. Аналого-цифровой преобразователь (АЦП) позволяет считывать значения напряжения от 0 до AREF или 0…5 В.

Считанное значение может быть 8-битным или 10-битным. Аналоговые входы подписаны как A0, A1, A2, A3, A4, A5. Несмотря на их основное предназначение, выводы A0 — A5 так же могут быть использованы как цифровые входы или выходы.

Верхний ряд контактов также разделен на две части. Правая часть пронумерована от 0 до 7, левая от 8 до 13. Этот ряд содержит контакты цифрового входа/выхода.

Контакты 0 и 1 являются специальными выводами, на которые дополнительно выведены линии последовательного порта (RX и TX). Их можно использовать для последовательной связи с другой платой.

Контакты 3, 5, 6, 9, 10, 11 обозначаются как «~» или PWM. Они могут работать в режиме ШИМ, иногда называемым аналоговым выходом. Конечно же, это не реальные аналоговые выходы. Они только позволяют контролировать ширину импульса, которая часто используется в цифровой электронике для изменения «аналогового» сигнала.

И последние два вывода — это GND и AREF, которые используется для подключения внешнего опорного напряжения для аналого-цифрового преобразователя.

В итоге Arduino UNO имеет 14 цифровых линий входа/выхода и 6 аналоговых входов (которые могут служить в качестве цифровых входов/выходов).

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

Допустимое входное напряжение не должно превышать 5В или 3,3В (у плат с питанием от 3,3В). В случае если необходимо обработать сигнал напряжением больше 5В (3,3В для Arduino Pro Mini), то следует воспользоваться делителем напряжения.

Нагрузочная способность выходов при питании от 5 В составляет 40мА, при питании от 3,3 В — 50 мА. Это означает, что к одному выходному контакту можно подключить, например, до двух светодиодов, предполагая, что рабочий ток каждого из них составляет 20 мА.

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

Паяльная станция своими руками на базе Arduino

Всем привет! Как-то я затронул тему паяльной станции на Arduino и сразу меня завалили вопросами (как/где/когда). Учитывая массовость запросов, я решил написать обзор простой паяльной станции (только паяльник) на базе Arduino.
Почему Arduino? Ведь существует уйма контроллеров быстрее и дешевле. В таких случаях я обычно отвечаю: — Дёшево, практично, быстро.
Действительно, ведь Arduino Pro Mini сейчас стоит 1,63$ за 1 шт (недавно прислали), а atmega8 стоит 1$ (оптовая цена). Получается, что плата Pro Mini с обвесом (кварц, конденсаторы, стабилизаторы) стоит не так-то и дорого, плюс ко всему экономит время. Также время очень сильно экономит IDE-оболочка для Arduino, легко и быстро в ней справляется даже школьник. Учитывая популярность и дешевизну я решил собрать именно на Arduino.
Для создания паяльной станции нам первым делом нужна ручка паяльной станции, зачастую это китайские станции типа 907 A1322 939.

Начнём
Характеристики ручки:
Напряжение: 24V DC
Мощность: 50W (60W)
Температура: 200℃~ 480℃
Для управления ручкой паяльника нам первым делом нужно снимать данные с датчика температуры, в этом нам поможет LM358N. Эта схема уже работает у меня почти 2 года.

Далее нам нужно управлять(включать и выключать) нагревательный элемент паяльника, в этом на поможет импульсный транзистор IRFZ44. Его подключение очень простое:

Хочу обратить Ваше внимание на будущий режим работы нагревательного элемента. Его мы будем включать в три этапа путём ШИМ-модуляции. При старте программы будет включаться почти максимальная мощность (скважность 90%), при приближении к заданной температуре мощность понижается (скважность 35-45%), и при минимальной разнице между текущей и заданной температуры мощность держится на минимуме (скважность 30-35%). Таким образом мы устраняем инерцию перегрева. Повторюсь, паяльная станция стабильно работает почти 2 года, и термоэлемент не находится в постоянной предельной нагрузке (что продлевает его жизнь). Все настройки в программе можно отредактировать.
Подключать ручку нужно по схеме:

Обратите внимание, разъём на панели станции, а не на ручке.
Очень настаиваю: проверяйте ручки перед пуском, раскрутите и проверьте целостность нагревательного элемента, а также правильность распайки проводов на разъёме.
Далее нам нужен контроллер. Для демонстрации я выбрал Arduino Uno – как самый популярный и удобный. Заметьте, что паяльную станцию я делаю блочной и это даёт возможность самому выбрать контроллер. Также нам нужны две кнопки подтянутые к +5В сопротивлениям 10кОм и 7-ми сегментный индикатор на три разряда. Выводы сегментов я подключил через сопротивления 100 Ом.
ANODES:
D0 — a
D1 — b
D2 — c
D3 — d
D4 — e
D5 — f
D6 — g
D7 — dp (точка)
CATHODES:
D8 — cathode 3
D9 — cathode 2
D10 — cathode 1
Хочу также заметить, что кнопки мы сажаем на аналоговые пины 3 и 2. И в программе я их опрашиваю как аналог. Сделал я это для того, чтобы не вводить в заблуждение молодое поколение. Не каждый знает где найти пин 14, 15 и 16. А учитывая, что скорости достаточно и памяти в контроллере много, то так будет проще.
Давайте посмотри что получилось:



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


Далее необходимо выбрать источник питания. Я взял блок питания от какого-то ноутбука на 22V 3А, его хватает с запасом. Потребление при старте паяльника 1,5 А а при поддержке температуры 0,5А. Поэтому выбирайте себе подходящий блок питания, желательно 24V DC 2A.
На фото выше видно жмут проводов и многих это пугает. Поймите, это демо, вариант под любой контроллер, станцию можно собрать и компактно, к примеру:


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

Вот тест программы, писал под версией IDE 1.5.2. Учтите всё вышесказанное и сильно не критикуйте (программу пытался написать просто и доступно).
/* // Пины подключения индикаторов ANODES: D0 — a D1 — b D2 — c D3 — d D4 — e D5 — f D6 — g D7 — dp (digital point) a ******** * * f * * b * g * ******** * * e * * c * d * ******** # dp CATHODES: D8 — cathode 3 D9 — cathode 2 D10 — cathode 1 */ // ————————————————— не изменять, это для Сегментов ———————————————— byte const digits = { B00111111,B00000110,B01011011,B01001111,B01100110,B01101101,B01111101,B00000111,B01111111,B01101111}; int digit_common_pins={8,9,10}; // пины для разрядов сегментов(при изменении убедитесь что Ваш порт не используется) int refresh_delay = 5; int count_delay = 300; // COUNTING SECONDS IF count_delay = 1000 long actual_count_delay = 0; long actual_refresh_delay = 0; int increment = 0; //Стартовое значение на сегментах int max_digits =3; // Кол-во знаков int current_digit=max_digits-1; int increment_max = pow(10,max_digits); // ————————————————— не изменять, это для Сегментов ———————————————— //——————— переменные паяльника —————————— int knup = 3; //Пин кнопки вверх in(красный светодиод) int kndn = 2; //Пин кнопки вниз in(синий светодиод) int nagr = 11; // пин вывода нагревательного элемента(через транзистор) int tin = 0; // Пин Датчика температуры IN Analog через LM358N int tdat = 0; //Переменная Датчика температура int ustt = 210; // Выставленная температура по умолчанию (+ увеличение и уменьшение при нажатии кнопок) int mintemp = 140; // Минимальная температура int maxtemp = 310; // Максимальная температура int nshim = 0; // Начальное значение шим для нагрузки void setup(){ pinMode(nagr,OUTPUT); // Порт нагрузки (паяльника) настраиваем на выход analogWrite(nagr, nshim); //Вывод шим в нагрузку паяльника (выводим 0 — старт с выключенным паяльником — пока не определим состояние температуры) // ————————————————— не изменять, это для Сегментов ———————————————— DDRD = B11111111; for (int y=0;y<max_digits;y++) { pinMode(digit_common_pins,OUTPUT); digitalWrite(digit_common_pins, HIGH); } // ————————————————— не изменять, это для Сегментов ———————————————— } void loop() { show(increment); // Вывести значение переменной на экран (LED) if (tdat < ustt ){ // Если температура паяльника ниже установленной температуры то: if ((ustt — tdat) < 16 & (ustt — tdat) > 6 ) // Проверяем разницу между установленной температурой и текущей паяльника, // Если разница меньше 10 градусов, то { nshim = 99; // Понижаем мощность нагрева (шим 0-255, мы делаем 99) — таким образом мы убираем инерцию перегрева } else if ((ustt — tdat) < 7 & (ustt — tdat) > 3) { nshim = 80; // Понижаем мощность нагрева (шим 0-255, мы делаем 99) — таким образом мы убираем инерцию перегрева } else if ((ustt — tdat) < 4 ) { nshim = 45; // Понижаем мощность нагрева (шим 0-255, мы делаем 99) — таким образом мы убираем инерцию перегрева } else { nshim = 230; // Иначе поднимаем мощность нагрева (шим 0-255, мы делаем 230) на максимум для быстрого нагрева до нужной температуры } analogWrite(nagr, nshim); //Вывод в шим порт (на транзистор) значение мощности } else { //Иначе (если температура паяльника равняется или выше установленной) nshim = 0; // Выключаем мощность нагрева (шим 0-255 мы делаем 0) — таким образом мы отключаем паяльник analogWrite(nagr, nshim); //Вывод в шим порт (на транзистор) значение мощности } if(millis() — actual_count_delay > count_delay) // это для сегментов { actual_count_delay = millis(); // Здесь мы пишем нашу прогу по считыванию состояния кнопок (это место в счетчик не будет тормозить вывод на сегменты) tdat = analogRead(tin); // Считать состояние датчика температуры и присвоить tdat tdat =map(tdat,0,430,25,310); // калибровка п умолчанию 0,430,25,310 increment = tdat; // присвоить текущее значение температуры переменной сегмента if (analogRead(kndn) < 1) // Если нажата синяя кнопка, то понизить температуру на 5 { if( ustt <= mintemp || (ustt-5) <= mintemp ) { ustt= mintemp; increment = ustt; } else { ustt=ustt-5; increment = ustt; } } else if (analogRead(knup) < 1) // Если нажата красная кнопка, то повысить температуру на 5 { ustt=ustt+5; if( ustt >=maxtemp) { ustt= maxtemp; } increment = ustt; } } } void show(int value) { //——————————- подпрограмма для вывода на сегменты — лучше не изменять ——————————————— int digits_array={}; int y=0; boolean empty_most_significant = true; if(millis() — actual_refresh_delay >= refresh_delay) { for (int z=max_digits-1;z>=0;z—) { digits_array = value / pow(10,z); //rounding down by converting from float to int if(digits_array != 0 ) empty_most_significant = false; // DON’T SHOW LEADING ZEROS value = value — digits_array * pow(10,z); if(z==current_digit) { if(!empty_most_significant || z==0){ // DON’T SHOW LEADING ZEROS EXCEPT FOR THE LEAST SIGNIFICANT PORTD = digits]; } else { PORTD = B00000000; } digitalWrite(digit_common_pins, LOW); }else{ digitalWrite(digit_common_pins, HIGH); } } current_digit—; if(current_digit < 0) { current_digit= max_digits; // NEED AN EXTRA REFRESH CYCLE TO CLEAR ALL DIGITS } actual_refresh_delay = millis(); } }
Очень надеюсь, что Вам это как-то поможет в создании своего проекта.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *