LXF151:Arduino: Начнем знакомство
Ssr (обсуждение | вклад) |
Ssr (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии 1 участника) | |||
Строка 1: | Строка 1: | ||
− | + | <!-- Arduino Освежив в памяти закон Ома, создадим нашу первую умную схему -->{{Врезка|Ширина=30%|Заголовок=Наш эксперт|Содержание=Когда LXF только появился, его держали на плаву исключительно скрипты ''Bash'' от Ника Вейча. Потом их заменили «люди», и это, по мнению Ника, стало шагом назад...}} | |
− | + | ||
− | + | ||
− | + | ||
− | {{Врезка|Ширина=30%|Заголовок=Наш эксперт|Содержание=Когда LXF только появился, его держали на плаву исключительно скрипты ''Bash'' от Ника Вейча. Потом их заменили «люди», и это, по мнению Ника, стало шагом назад...}} | + | |
{{Врезка|Ширина=30%|Заголовок=Что нам нужно|Содержание=Для этого урока вам понадобится плата Arduino (сойдет любая), а для первой схемы – фоторезистор (или другой резистивный датчик) и резистор сопротивлением 10 кОм. Для второй схемы пригодятся обычные NPN-транзисторы и хороший набор резисторов. Также нужна последняя версия IDE Arduino.}} | {{Врезка|Ширина=30%|Заголовок=Что нам нужно|Содержание=Для этого урока вам понадобится плата Arduino (сойдет любая), а для первой схемы – фоторезистор (или другой резистивный датчик) и резистор сопротивлением 10 кОм. Для второй схемы пригодятся обычные NPN-транзисторы и хороший набор резисторов. Также нужна последняя версия IDE Arduino.}} | ||
− | ''Создать полезное устройство с Arduino проще, чем вы думали. '''Ник Вейч''' начинает серию статей об Arduino с добавления датчиков к устройствам.'' | + | :''Создать полезное устройство с Arduino проще, чем вы думали. '''Ник Вейч''' начинает серию статей об Arduino с добавления датчиков к устройствам.'' |
− | + | Признайтесь честно: вы купили макетную плату Arduino, загрузили примеры прошивок и полюбовались мигающими светодиодами, но с тех пор плата вместе с набором компонентов, которые вы приобрели в решимости создать нечто грандиозное, собирает пыль в шкафу. | |
Здесь нечего стыдиться, но если вы хотите узнать, как с небольшими усилиями сделать удивительные вещи, надеемся, эта серия руководств поможет вам. Да, нас ждет немного арифметики, и кое-что потребуется изучить. Сайтов с планами проектов для Arduino немало, но если вы не понимаете основ работы платы, то никогда не претворите свои великие планы в жизнь. | Здесь нечего стыдиться, но если вы хотите узнать, как с небольшими усилиями сделать удивительные вещи, надеемся, эта серия руководств поможет вам. Да, нас ждет немного арифметики, и кое-что потребуется изучить. Сайтов с планами проектов для Arduino немало, но если вы не понимаете основ работы платы, то никогда не претворите свои великие планы в жизнь. | ||
Строка 21: | Строка 17: | ||
Сопротивление для всех типов датчиков обычно измеряется косвенно в резисторной сборке (называемой делителем напряжения). В цепочке резисторов отношение падения напряжения на каждом отдельном резисторе к общему напряжению, приложенному к цепочке, равно отношению сопротивления этого резистора к общему сопротивлению цепочки. И если собрать цепочку резисторов, в которую входит датчик, его сопротивление можно определить, измерив напряжение на датчике и сравнив его с общим приложенным напряжением. Во многих случаях точная величина сопротивления даже не нужна: достаточно получать определенный входной сигнал, который изменяется в диапазоне, позволяющем заметить, что изменилось исследуемое свойство. | Сопротивление для всех типов датчиков обычно измеряется косвенно в резисторной сборке (называемой делителем напряжения). В цепочке резисторов отношение падения напряжения на каждом отдельном резисторе к общему напряжению, приложенному к цепочке, равно отношению сопротивления этого резистора к общему сопротивлению цепочки. И если собрать цепочку резисторов, в которую входит датчик, его сопротивление можно определить, измерив напряжение на датчике и сравнив его с общим приложенным напряжением. Во многих случаях точная величина сопротивления даже не нужна: достаточно получать определенный входной сигнал, который изменяется в диапазоне, позволяющем заметить, что изменилось исследуемое свойство. | ||
+ | [[Файл:LXF140.rev arduino.ardu fmt.png|thumb|Стоит усвоить основы — и возможно все!]] | ||
+ | === Эй, здесь темно === | ||
− | |||
− | |||
Создание схемы, которая включает и выключает свет в зависимости от освещенности – пожалуй, эквивалент «Hello World» в Arduino. Это довольно простая схема, и для нее нужны всего два дополнительных компонента, которые легко доступны – а если у вас их нет, ну, достаньте их. | Создание схемы, которая включает и выключает свет в зависимости от освещенности – пожалуй, эквивалент «Hello World» в Arduino. Это довольно простая схема, и для нее нужны всего два дополнительных компонента, которые легко доступны – а если у вас их нет, ну, достаньте их. | ||
Строка 89: | Строка 85: | ||
АЦП в микросхеме Atmega нужно некоторое время, чтобы вернуться в рабочее состояние, поэтому добавьте небольшую задержку между операциями считывания аналоговых значений, если важна точность. | АЦП в микросхеме Atmega нужно некоторое время, чтобы вернуться в рабочее состояние, поэтому добавьте небольшую задержку между операциями считывания аналоговых значений, если важна точность. | ||
− | |||
− | |||
=== Идем дальше === | === Идем дальше === | ||
+ | [[File:LXF146.sup_php.arduino_opt.jpeg|thumb|Включите монитор последовательного порта в IDE Arduino и следите за показаниями.]] | ||
Если вы просто хотите знать, светло или темно, использование аналогового входа – напрасная трата ресурсов. Поэтому датчики часто применяются только для установки событий – жарко/темно/влажно и т. п., и все, что нам нужно – установить их выход в логическую «единицу» или «ноль». | Если вы просто хотите знать, светло или темно, использование аналогового входа – напрасная трата ресурсов. Поэтому датчики часто применяются только для установки событий – жарко/темно/влажно и т. п., и все, что нам нужно – установить их выход в логическую «единицу» или «ноль». | ||
Можно просто подключить делитель напряжения к цифровому входу, но результаты окажутся не лучшими. Причина – в напряжении переключения: когда напряжение на выводе станет достаточно высоким для отправки логической единицы, вы войдете в состояние почти случайных включений и отключений. Такой способ ненадежен и для управления логическими схемами. | Можно просто подключить делитель напряжения к цифровому входу, но результаты окажутся не лучшими. Причина – в напряжении переключения: когда напряжение на выводе станет достаточно высоким для отправки логической единицы, вы войдете в состояние почти случайных включений и отключений. Такой способ ненадежен и для управления логическими схемами. | ||
− | = Работаем с Fritzing = | + | {{Врезка|Ширина=40%|Заголовок=Работаем с Fritzing|Содержание=[[File:LXF146.sup_php.fritzin_opt.jpeg|thumb|''Fritzing'' умеет рисовать красивые картинки и проверять схему на макете.]]ПО ''Fritzing'' было разработано специально для работы с Arduino и схемами на макете. Одна из основных возможностей программы – редактор макета, в котором можно разместить компоненты на макете и соединить их. Он преобразует их в схему и даже сможет создать печатные платы, хотя разводит он их неважно. Тем не менее, он прекрасно подходит для составления схем, и с его помощью можно убедиться, что компоненты макета соединены правильно.}} |
− | ПО ''Fritzing'' было разработано специально для работы с Arduino и схемами на макете. Одна из основных возможностей программы – редактор макета, в котором можно разместить компоненты на макете и соединить их. Он преобразует их в схему и даже сможет создать печатные платы, хотя разводит он их неважно. Тем не менее, он прекрасно подходит для составления схем, и с его помощью можно убедиться, что компоненты макета соединены правильно. | + | |
− | + | [[Файл:LXF146.sup php.dscf230 opt.jpeg|thumb|Простая схема, объединяющая аналоговый сигнал освещенности и цифровой сигнал под управлением триггера Шмитта, на макете.]] | |
− | + | ||
− | + | ||
Один из способов получения устойчивого положительного или отрицательного сигнала – воспользоваться транзистором в качестве цифрового переключателя, однако проблемы с непостоянными значениями вблизи напряжения переключения могут сохраниться. | Один из способов получения устойчивого положительного или отрицательного сигнала – воспользоваться транзистором в качестве цифрового переключателя, однако проблемы с непостоянными значениями вблизи напряжения переключения могут сохраниться. | ||
Строка 114: | Строка 106: | ||
Чтобы получить точки переключения, которые вам нужны, можно изменять значения резисторов или добавить переменный резистор между базой второго транзистора и «заземлением» и с его помощью смещать точку переключения вверх и вниз. | Чтобы получить точки переключения, которые вам нужны, можно изменять значения резисторов или добавить переменный резистор между базой второго транзистора и «заземлением» и с его помощью смещать точку переключения вверх и вниз. | ||
− | = Используем KTechLab = | + | {{Врезка|Ширина=40%|Заголовок=Используем KTechLab|Содержание=[[File:LXF146.sup_php.ktechla_opt.jpeg|thumb|''KTechlab'' не безупречен, но симулятор прекрасно справляется с простыми схемами.]]Существует немало приложений для работы с электронными схемами в Linux, но многие из них предназначены для профессионалов и главным образом сосредоточены на разработке микросхем, а не печатных плат или проектов Arduino. |
− | Существует немало приложений для работы с электронными схемами в Linux, но многие из них предназначены для профессионалов и главным образом сосредоточены на разработке микросхем, а не печатных плат или проектов Arduino. | + | |
А вот ''KTechLab'' подойдет и тем, для кого печатные платы – лишь хобби. Здесь есть функции построения схемы и разводки печатных плат и удобный симулятор электрических цепей, и вы сможете проверить, будут ли работать ваши триггеры Шмитта. | А вот ''KTechLab'' подойдет и тем, для кого печатные платы – лишь хобби. Здесь есть функции построения схемы и разводки печатных плат и удобный симулятор электрических цепей, и вы сможете проверить, будут ли работать ваши триггеры Шмитта. | ||
− | Обширной библиотеки компонентов нет, и – как, похоже, и во всех подобных программах – схему трудно перенести в любое другое приложение; но симулятор – это здорово! | + | Обширной библиотеки компонентов нет, и – как, похоже, и во всех подобных программах – схему трудно перенести в любое другое приложение; но симулятор – это здорово!}} |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
=== Триггер счастлив === | === Триггер счастлив === | ||
+ | [[File:LXF146.sup_php.circui_opt1.jpeg|thumb|Простая схема вроде этой не потребует особых навыков работы с макетом, но всегда полезно сперва нарисовать ее и проверить соединения.]] | ||
На сайте pcbheaven есть прекрасная статья о том, как реализовать триггер Шмитта (<nowiki>http://pcbheaven.com/wikipages/The_Schmitt_Trigger/</nowiki>), а также удобную утилиту для определения сопротивления используемых резисторов (<nowiki>http://pcbheaven.com/drcalculus/index.php?calc=st_tr</nowiki>). | На сайте pcbheaven есть прекрасная статья о том, как реализовать триггер Шмитта (<nowiki>http://pcbheaven.com/wikipages/The_Schmitt_Trigger/</nowiki>), а также удобную утилиту для определения сопротивления используемых резисторов (<nowiki>http://pcbheaven.com/drcalculus/index.php?calc=st_tr</nowiki>). | ||
− | + | ||
Код для управления такой цепью тоже довольно прост. Сначала можно использовать сочетание аналогового и цифрового методов, чтобы убедиться в правильной установке точек переключения. Соответствующая прошивка приведена ниже: | Код для управления такой цепью тоже довольно прост. Сначала можно использовать сочетание аналогового и цифрового методов, чтобы убедиться в правильной установке точек переключения. Соответствующая прошивка приведена ниже: | ||
Строка 183: | Строка 171: | ||
Хотя здесь мы пользовались обычным фоторезистором, те же принципы справедливы и для любого другого датчика на основе сопротивления, поэтому те же самые схемы подходят и во многих других случаях. Небольшие отличия есть для датчиков температуры – их выходная функция нелинейна, и для получения корректного аналогового значения обычно нужно заглянуть в таблицу или произвести некоторые вычисления – обо всем этом мы обязательно поговорим на следующих уроках. | Хотя здесь мы пользовались обычным фоторезистором, те же принципы справедливы и для любого другого датчика на основе сопротивления, поэтому те же самые схемы подходят и во многих других случаях. Небольшие отличия есть для датчиков температуры – их выходная функция нелинейна, и для получения корректного аналогового значения обычно нужно заглянуть в таблицу или произвести некоторые вычисления – обо всем этом мы обязательно поговорим на следующих уроках. | ||
− | + | <!-- | |
− | + | ||
− | + | ||
«Код установки инициализирует контакты должными функциями.» | «Код установки инициализирует контакты должными функциями.» | ||
− | |||
Включите монитор последовательного порта в IDE Arduino и следите за показаниями. | Включите монитор последовательного порта в IDE Arduino и следите за показаниями. | ||
+ | «Триггер Шмитта – краеугольный камень множества схем.» --> | ||
− | + | {{Врезка|Ширина=100%|Заголовок=Законы надо соблюдать|Содержание=Чтобы создавать работающие цепи, не нужно знать множество формул и теоретических сведений, но следует ознакомиться с несколькими фундаментальными законами, если вы хотите скорее зажечь светодиод, чем спалить его. Вот несколько самых главных. | |
− | + | ;1 Закон Ома | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<code>U = I * R</code> | <code>U = I * R</code> | ||
Перепишите его в любой форме, но в любой цепи и в любой части цепи напряжение на ней равно произведению тока на сопротивление. | Перепишите его в любой форме, но в любой цепи и в любой части цепи напряжение на ней равно произведению тока на сопротивление. | ||
− | + | ;2 Последовательное соединение резисторов | |
<code>R = R1 + R2 + R3 …</code> | <code>R = R1 + R2 + R3 …</code> | ||
Общее сопротивление цепочки резисторов равно сумме сопротивлений резисторов. | Общее сопротивление цепочки резисторов равно сумме сопротивлений резисторов. | ||
− | + | ;3 Напряжение на отдельном резисторе в цепочке | |
<code>U1 = U * R1/(R1 + R2 + R3...)</code> | <code>U1 = U * R1/(R1 + R2 + R3...)</code> | ||
− | Из двух предыдущих правил ясно, что напряжение на любом заданном резисторе в цепочке пропорционально отношению его сопротивления к сумме сопротивлений всех резисторов. | + | Из двух предыдущих правил ясно, что напряжение на любом заданном резисторе в цепочке пропорционально отношению его сопротивления к сумме сопротивлений всех резисторов.}} |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | {| | |
+ | |[[file:LXF146.sup_php.circuit_opt.jpeg|thumb|Рис. 1. В этой простой схеме мы объединили фоторезистор и резистор сопротивлением 10 кОм.]] | ||
+ | |[[file:LXF146.sup_php.circui_opt2.jpeg|thumb|Рис. 2. Сопротивления резисторов во второй схеме определяют точки переключения логического выхода.]] | ||
+ | |} | ||
[[Категория:LXF151]] | [[Категория:LXF151]] |
Текущая версия на 10:26, 7 февраля 2018
|
|
|
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
- Создать полезное устройство с Arduino проще, чем вы думали. Ник Вейч начинает серию статей об Arduino с добавления датчиков к устройствам.
Признайтесь честно: вы купили макетную плату Arduino, загрузили примеры прошивок и полюбовались мигающими светодиодами, но с тех пор плата вместе с набором компонентов, которые вы приобрели в решимости создать нечто грандиозное, собирает пыль в шкафу.
Здесь нечего стыдиться, но если вы хотите узнать, как с небольшими усилиями сделать удивительные вещи, надеемся, эта серия руководств поможет вам. Да, нас ждет немного арифметики, и кое-что потребуется изучить. Сайтов с планами проектов для Arduino немало, но если вы не понимаете основ работы платы, то никогда не претворите свои великие планы в жизнь.
Мы не только покажем, что можно сделать на базе Arduino, но и ознакомим вас с теоретическими сведениями, лежащими в основе работы платы, и стоящими за ними расчетами – во всяком случае, в той мере, в какой это будет полезно.
На этом уроке мы подключим к Arduino несколько сенсоров и с их помощью будем управлять другими устройствами или просто записывать данные через последовательный порт. Это несложно и займет всего несколько минут, поэтому начнем.
Содержание |
[править] Простые датчики
Имеется множество компонентов с переменным сопротивлением, зависящим от условий окружающей среды – давления, температуры, света, звука, магнитного поля и др. Причина в том, что существует масса веществ, чье сопротивление естественным образом зависит от этих условий, а что для нас важнее – сопротивление довольно легко измерить и отреагировать на него в электрической цепи.
Сопротивление для всех типов датчиков обычно измеряется косвенно в резисторной сборке (называемой делителем напряжения). В цепочке резисторов отношение падения напряжения на каждом отдельном резисторе к общему напряжению, приложенному к цепочке, равно отношению сопротивления этого резистора к общему сопротивлению цепочки. И если собрать цепочку резисторов, в которую входит датчик, его сопротивление можно определить, измерив напряжение на датчике и сравнив его с общим приложенным напряжением. Во многих случаях точная величина сопротивления даже не нужна: достаточно получать определенный входной сигнал, который изменяется в диапазоне, позволяющем заметить, что изменилось исследуемое свойство.
[править] Эй, здесь темно
Создание схемы, которая включает и выключает свет в зависимости от освещенности – пожалуй, эквивалент «Hello World» в Arduino. Это довольно простая схема, и для нее нужны всего два дополнительных компонента, которые легко доступны – а если у вас их нет, ну, достаньте их.
Фоторезистор (LDR, Light Dependent Resistor) как раз и представляет собой резистор, сопротивление которого меняется в зависимости от падающего на него света. Существуют фоторезисторы различных типов, но самые распространенные имеют ромбовидную форму, около 4 мм в длину, а их сопротивление изменяется от нескольких сот ом (на ярком свету) до примерно 250 кОм (в глухой тьме).
Иногда к ним прикрепляют купола или линзы, чтобы собрать больше света, но обычно они помещаются в плоские эпоксидные корпуса. К счастью, их выходная характеристика весьма близка к линейной, что немного упрощает расчеты, если мы захотим выполнить настоящие измерения.
И, наконец, помните о рассеянии мощности. У всех подобных резисторов есть предельно допустимый ток, по превышении которого они сгорают. На практике в низковольтных схемах постоянного тока, обычно применяемых в Arduino, сжечь фоторезистор сложно, но помните об этом для других компонентов.
В нашей простой цепи мы объединим фоторезистор в цепочку с резистором сопротивлением 10 кОм. Тогда мы не потратим на нашу цепь чересчур много энергии, более чем достаточно защитим фоторезистор и получим приемлемое сравнительное значение в диапазоне сопротивлений фоторезистора.
Чтобы измерить напряжение, нужно лишь подключиться к середине цепочки и соединить ее с одним из аналоговых входов Arduino. Никогда не вредно провести расчеты для проверки, чего нужно ожидать.
При ярком свете измеренное сопротивление нашего фоторезистора составило 220 Ом. В темноте оно поднялось до 250 кОм. Следовательно [ULDR – напряжение на фоторезисторе; Uin – входное напряжение; RLDR – сопротивление фоторезистора, – прим. пер.]:
ULDR = Uin * (RLDR/ RLDR +10000)
ULDR = 5 * (220/10220) = 0,1 В при ярком свете
ULDR = 5 * (250000/260000) = 4,8 В в темноте
В аналоговых входах Arduino используются внутренние аналого-цифровые преобразователи (АЦП) Atmega. Они обладают 10-битной разрядностью сигнала и сравнивают поступающее напряжение с напряжением питания Arduino. Так, значение 1023 соответствует 5 В. На практике это напряжение меньше, особенно при питании через USB.
Но, поскольку сравнение все равно относительное, большой разницы не будет; хотя об этом стоит помнить, если вы пытаетесь провести точные измерения.
Схема, как она есть, приведена на рис. 1 в конце статьи; есть и фотография, чтобы вы смогли посмотреть, как это выглядит на макете. Осталось написать код, включающий свет.
/* Простой датчик освещенности
*/
int LDR = 1; // выбор входного контакта для LDR
int LED = 13; // выбор контакта для LED
int val = 0; // переменная, хранящая показание датчика
void setup() {
pinMode(LDR, INPUT); // объявим LDR как вход - INPUT
Serial.begin(9600);
}
void loop() {
val = analogRead(LDR); // считываем показание датчика
delay(1000); // небольшая пауза
Serial.print(“Освещенность: “);
Serial.println(val);
}
«Прошивка» (так называется исходный код для Arduino) состоит из трех частей: глобальные определения, код установки и основной цикл. В первой секции определяются переменные, которыми мы собираемся воспользоваться, включая назначение меток контактам, которые мы будем употреблять для ввода и вывода.
Код установки инициализирует контакты должными функциями (это очень важно, так как у контактов есть несколько режимов работы и функций) и инициализирует последовательный ввод/вывод, чтобы впоследствии мы смогли записывать данные.
Основной цикл считывает показание с аналогового контакта и сохраняет результат в переменной, которую мы завели. Затем он просто проверяет, больше или меньше это показание определенного значения, и если «темно», зажигает светодиод.
Измеренное показание также отправляется на последовательный порт (чтобы мы могли следить за его изменениями), и затем нужна небольшая пауза на передышку. Пауза указывается в миллисекундах, так что у нас здесь показание считывается примерно раз в секунду. Если вы планируете разместить различные датчики на различных контактах, позаботьтесь о том, чтобы считывать их значения одновременно.
АЦП в микросхеме Atmega нужно некоторое время, чтобы вернуться в рабочее состояние, поэтому добавьте небольшую задержку между операциями считывания аналоговых значений, если важна точность.
[править] Идем дальше
Если вы просто хотите знать, светло или темно, использование аналогового входа – напрасная трата ресурсов. Поэтому датчики часто применяются только для установки событий – жарко/темно/влажно и т. п., и все, что нам нужно – установить их выход в логическую «единицу» или «ноль».
Можно просто подключить делитель напряжения к цифровому входу, но результаты окажутся не лучшими. Причина – в напряжении переключения: когда напряжение на выводе станет достаточно высоким для отправки логической единицы, вы войдете в состояние почти случайных включений и отключений. Такой способ ненадежен и для управления логическими схемами.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Один из способов получения устойчивого положительного или отрицательного сигнала – воспользоваться транзистором в качестве цифрового переключателя, однако проблемы с непостоянными значениями вблизи напряжения переключения могут сохраниться.
Добавление дополнительного транзистора, впрочем, означает, что можно настроить петлю обратной связи, которая придаст устойчивость выходному сигналу. Напряжение, при котором система переходит в состояние «включено», можно сделать заметно выше, чем напряжение, необходимое для переключения обратно в состояние «выключено», создав таким образом буфер и исключив колебания состояний «включено»/«выключено».
Такая схема называется триггером Шмитта, и это краеугольный камень множества управляющих электронных схем. Для решения нашей задачи можно купить интегральные схемы с большим количеством триггеров Шмитта или добавить схему операционного усилителя, но с парой простых NPN-транзисторов стоимостью около 30 пенсов и несколькими резисторами сделать то же самое гораздо проще.
Расположение компонентов приведено на рис. 2. Мы воспользовались NPN-транзисторами BC547, но на самом деле подойдут любые NPN-транзисторы. Сопротивления резисторов в цепи определяют точки, в которых будет изменяться значение логического выхода. С нашими резисторами оно должно установиться в «единицу» при напряжении около 2,5 В и в «ноль» при напряжении около 1,3 В (при напряжении питания 5 В).
Чтобы получить точки переключения, которые вам нужны, можно изменять значения резисторов или добавить переменный резистор между базой второго транзистора и «заземлением» и с его помощью смещать точку переключения вверх и вниз.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
[править] Триггер счастлив
На сайте pcbheaven есть прекрасная статья о том, как реализовать триггер Шмитта (http://pcbheaven.com/wikipages/The_Schmitt_Trigger/), а также удобную утилиту для определения сопротивления используемых резисторов (http://pcbheaven.com/drcalculus/index.php?calc=st_tr).
Код для управления такой цепью тоже довольно прост. Сначала можно использовать сочетание аналогового и цифрового методов, чтобы убедиться в правильной установке точек переключения. Соответствующая прошивка приведена ниже:
/* Датчик освещенности - аналоговый и цифровой
*/
int LDR = 1 // аналоговый контакт для LDR
int ledPin = 13; // выбор контакта для LED
int sensePin =12; // цифровой контакт
int val = 0;
int sense =0;
void setup() {
pinMode(LDR, INPUT); // объявим LDR как вход INPUT
pinMode(ledPin, OUTPUT); // объявим ledPin как выход OUTPUT
pinMode(sensePin, INPUT);
Serial.begin(9600);
}
void loop() {
val = analogRead(LDR); // считываем показания датчика
sense = digitalRead(sensePin);
if (sense == 1)
digitalWrite(ledPin, LOW); // включаем ledPin
else
digitalWrite(ledPin, HIGH); // выключаем ledPin
delay(1000);
Serial.print(“reading: “);
Serial.println(val);
Serial.print(“sense: “);
Serial.println(sense);
}
Хотя здесь мы пользовались обычным фоторезистором, те же принципы справедливы и для любого другого датчика на основе сопротивления, поэтому те же самые схемы подходят и во многих других случаях. Небольшие отличия есть для датчиков температуры – их выходная функция нелинейна, и для получения корректного аналогового значения обычно нужно заглянуть в таблицу или произвести некоторые вычисления – обо всем этом мы обязательно поговорим на следующих уроках.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить