Резистор на 10 ком ардуино

Практическое использование термистора с Arduino

Здравствуй, Хабрасообщество. После прочтения нескольких статей на хабе Arduino я загорелся заполучить эту игрушку. И вот недавно получил посылку с платой. Затем побаловался со светодиодами и захотел чего-нибудь посерьёзнее. Решил сделать простейший термометр, используя всего термистор, резистор на 10 кОм и LCD дисплей. Кому интересно что получилось — прошу под кат.

Начало

Термистор — это переменный резистор, меняющий своё сопротивление в зависимости от температуры окружающей среды.

Нам потребуются следующие детали:
Arduino Uno — 1 шт
Термистор — 1 шт
Резистор c сопротивлением 10 кОм — 1 шт
LCD дисплей HJ1602A — 1 шт
Соединительные перемычки — несколько штук

Всё это у меня было, поэтому я сразу начал проектирование на breadboard.

Ножки к экрану я еще припаял в день покупки.

Затем присоединяем экран к выходам Arduino. У моего экрана распиновка такая.

1 (GND) GND — Земля
2 (VDD) 5v — Питание(+)
3 (VO/Contrast) — Управление контрастностью (сюда я подключил переменный резистор)
4 (RS) — 12 — Канал данных
5 (RW) — 11 — Канал данных
6 (E) — 10 — Канал данных
11 (DB4) — 5 — Канал данных
12 (DB5) — 4 — Канал данных
13 (DB6) — 3 — Канал данных
14 (DB7) — 2 — Канал данных
15 (BL1/Backlight1) — 13 — Питание подсветки(+)
16 (BL2/Backlight2) — GND — Земля(-)

Получилась вот такая картина.

Далее подключим одну ногу термистора к аналоговому входу A4 и резистор на 10 кОм в землю, а вторую ногу термистора к 5V.

В общем то и всё. Аппаратная часть готова. Вот схема.

Программирование

С программированием тут всё понятно. Исходный код скетча:

Результат работы программы.

Источник

Ардуино для начинающих. Урок 7. Основы схемотехники

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

В этом уроке используется:

Большая макетная плата на 1600 точек с 4 шинами питания: Купить
Набор резисторов из 100 штук на все случаи: Купить
Набор светодиодов из 100 штук: Купить
5 штук кнопок в удобной форме: Купить
Соединительные провода 120 штук: Купить
Потенциометры с колпачками 5 штук: Купить

Закон Ома

Закон Ома гласит следующее: V = IR. V — это напряжение (измеряется в вольтах). I — это сила тока (измеряется в амперах). R — это сопротивление (измеряется в омах). Определение вы можете почитать на википедии.

В прошлых уроках мы подключали светодиод через резистор. Давайте разберемся зачем нужен этот резистор и как рассчитать необходимый номинал. Дело в том что пин Arduino Uno выдает 5 В, а светодиоду нужно всего 3 В. Если резистор не ставить то светодиод будет потреблять гораздо больше тока чем ему необходимо. Это приведет к более быстрой разрядке аккумулятора (если ваша ардуино питается от него), к неправильному цвету свечения (если светодиод цветной) и к быстрому перегоранию светодиода. Для того что бы рассчитать номинал резистора надо знать напряжение и силу тока необходимую для конкретного светодиода. Светодиоды бывают разные, но с ардуино используются светодиоды потребляющие 20 мА и работающие от 2 В. Эти параметры можно посмотреть на сайте производителя или узнать у продавца.

Теперь нам надо просто подставить эти данные в формулу и вычислить сопротивление: R = V / I = 3 В / 20 мА = 150 Ом. Вот и все. Теперь мы знаем какой резистор необходим для подключения светодиода к плате Ардуино.

Подтягивающее и стягивающее сопротивление

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

подключение кнопки к ардуино

Мы использовали резистор номиналом 10 кОм, который стягивал вход ардуино с землей. Так мы избавились от электрического шума, который мог давать помехи и мешать точно отслеживать нажатие кнопки. Для стягивания необходимо использовать резистор большого номинала. Можно взять и 1 кОм, но рекомендуется использовать больше.

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

Источник

Подключение переменного резистора к Arduino

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

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

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

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

Схема подключения изображена на рисунке. Подвижный контакт переменного резистора подключен к выводу A0 платы Arduino. На выводе A0 контроллер может измерить напряжение. Светодиод подключен через токоограничивающий резистор к выводу 9 контроллера. Вывод 9 может использоваться для плавной регулировки выходного напряжения при помощи ШИМ (широтно импульсной модуляции).

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

Функция analogRead() считывает значение напряжения на выводе, преобразованное при помощи АЦП (аналогово цифрового преобразователя) контроллера в цифровой вид. Напряжение на входе A0 может изменяться от 0 до 5 В, а его цифровое представление от 0 до 1023 в зависимости от положения ручки переменного резистора. Для того что бы получить точное значение напряжения, считанное цифровое значение необходимо поделить на 204,8.

Функция analogWrite() активизирует ШИМ на указанном выводе. Глубина модуляции может принимать значение от 0 до 255, что будет соответствовать напряжению на выводе от 0 до 5 В.

Таким образом, что бы преобразовать входное цифровое значение АЦП (от 0 до 1023) в выходное значение глубины модуляции (от 0 до 255), необходимо поделить его на 4 (1024/256 = 4).

void setup() <
pinMode (9, OUTPUT); // инициализация вывода 9 как «Выход»
>

void loop() <
int sensorValue = analogRead (A0); // считывание значения напряжения на входе A0
analogWrite (9, sensorValue/4); // вывод значения на светодиод
>

Источник

Резистивные кнопки

Сегодня мы продолжим рассматривать ситуацию нехватки выводов на плате Ардуино.
Предыдущее видео было про использование сдвигового регистра 74HC165.
Если подключать обычным способом 10 кнопок, то нам понадобятся 10 входов на Ардуино, а ведь ещё надо управлять чем нибудь.
Так что этот вариант нам не подходит.
Бывает 2 вида подключения. Последовательное и параллельное.

Последовательное подключение.

Параллельное подключение.

Видите, задействован всего 1 вход Ардуино.

Можно подключить матричную клавиатуру, но это тоже займёт много контактов.

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

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


Исключением является только кнопка без резистора. Если вы нажмёте несколько кнопок, но одна из них будет без резистора, то значением всегда будет ЭТА КНОПКА.

Мы сегодня будем использовать последовательное подключение.

Номиналы резисторов могут быть любыми.
Я в этом примере буду использовать 1 резистор на 10 кОм и 9 резисторов по 1 кОм.
Подключать кнопки будем к аналоговому порт А0, но можно к любому аналоговому порту Ардуино.
Arduino на своём аналоговом входе проводит измерение напряжения.
АЦП Arduino имеет разрешение 10 бит, т.е. позволяет выводить значения в десятичном виде от 0 до 1023.
В относительных единицах деление шкалы 5/1024 = 4.9 мВ
Вот с такой точностью можно проводить измерения.

В примере я использовал внешнюю подтяжку к 5 вольтам.
Кто не понимает о чём я, посмотрите видео про кнопки на моём канале, там очень подробно всё объяснено.
Если ни одна кнопка не нажата, то на входе А0 высокий уровень, то есть 5 вольт или максимальное значение — 1023.
Если мы нажимаем 1 кнопку, это та, что без резистора на вход А0 поступает низкий уровень, а значение с 1023 меняется на 0.
Данные могут немного отличаться от идеала. Это зависит от точности резистора, обычно это 5– 10 %, и от напряжения питания.
Вторая кнопка подключена через резистор 1 кОм. При нажатии на неё, у нас срабатывает резистивный делитель, делитель напряжения.
С одной стороны 10 кОм – это верхнее плечо делителя, оно будет постоянное,
с другой 1 кОм – это нижнее плечо делителя, оно будет меняться в зависимости от нажатой кнопки.
Рассчитать получаемое значение можно по формуле,

а можно просто посмотреть в мониторе порта. Правда там будет не напряжение, а значение от 0 до 1023.
Получившееся значение можно умножить на 0,49 и получить напряжение.
Например.
Если у вас значение 512, то 512 * 0.49/100 = то получится 2,5 вольта.
x=(511*0,49)/100

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

Возьмём пример из самой программы Ардуино.

Только немного увеличим delay, что бы значения не так часто менялись.
При включении, когда ещё не нажата ни одна кнопка, мы видим максимальное значение 1023.
Это, потому что кнопки у нас притянуты к плюсу питания, а именно к + 5 вольт.
Нажимаем кнопку 1 и не отпускаем. Смотрим массив значений и выбираем максимальное из них.
Так же проделываем для всех кнопок.
В основном максимальное значение появляется при первом срабатывании кнопки.
Как видите значения не всегда одинаковые.
Они постоянно меняются. Один из вариантов почему это происходит это питание.
Если подключить большую нагрузку, то просадка напряжения будет заметнее.
Это один из вариантов почему я бы не советовал использовать резистивный метод подключения кнопок.
Затем выписываем эти значения в блокнот

У меня вот такие значения, у вас будут другие.
Теперь у нас всё готово для написания скетча работы с 10 кнопками.
Давайте посмотрим пример.

Для работы я спаял вот такую плату на 10 кнопок.

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

А вот теперь моё личное мнение.
Когда я только начал собирать схему я был доволен.
Ведь на 1 контакт можно подключить кучу кнопок и сделать целую клавиатуру.
НО.
Я бы не стал применять этот метод не только в серьёзных разработках, но и в самых простых, любительских.
Во-первых, подбор резисторов.
У них очень большой разброс значений.
Возьмём мой пример с резисторами 1 кОм.
Один резистор был 980 Ом, а другой 1,1 кОм. Вы просто замучаетесь подбирать значения.
На делителе напряжения будут разные границы между соседними кнопками. Где-то значения в 100 единиц, а где-то 20, и вам будет сложно написать условия срабатывания.
Второе это питание.

Так как постоянно идёт сравнение с исходным напряжением, а оно может скакать, то и значения у вас будут постоянно разными – это тоже создаст большие трудности.
При количестве кнопок до 5 штук ещё можно написать нормально работающий код, а вот больше – это очень сложно.
Но повторяю – это лишь моё мнение.
Я бы лучше применил сдвиговый регистр 74HC165 видео работы есть на канале. Он избавлен от всех этих недостатков.

Источник

Adblock
detector