DS18B20 — первый серьезный датчик, который можно применять не только в образовательных целях, но и в реальных системах умного дома. Диапазон измеряемых температур составляет -55...+125°C, при этом точность в 0,5°C (полградуса) обеспечивается в диапазоне -10...+85°C. Такие характеристики и герметичность позволяют использовать данный датчик для измерения температуры в различных агрессивных для обычных микросхем средах, таких как жидкости и почва, служить уличным датчиком температуры и т. д.
В то же время этот датчик не так прост как кажется — он снабжен энергонезависимой памятью EEPROM в которой хранятся значения триггеров срабатывания тревоги, а также данные регистра конфигурации.
В предыдущей статье было представлено описание работы с датчиком температуры DS18B20. И если выводить информацию на какой-либо многострочный дисплей, то эта часть статьи будет неинтересна. Необходимость в ней возникает, когда данные нужно отображать на светодиодных матрицах, либо семисегментных дисплеях различной разрядности. Все дело в том, что принцип их работы построен на постоянном переборе напряжений на анодах/катодах, таким образом выстраивая незаметную для человеческого инерционного зрения общую картину из мозаики комбинаций.
Те, кто работает с Arduino в 99% случаях имеют дело с логическими (цифровыми) сигналами — 0 (LOW) и 1 (HIGH). Даже вывод аналогового сигнала Arduino осуществляется посредством генерации ШИМ — что тоже, по сути, является комбинацией логических уровней — 0 и 1. Масса популярных протоколов и интерфесов — I2C, SPI, MODBUS и др., для обмена данными используют именно нули и единицы. Именно для визуализации, анализа, расшифровки и сравнения таких сигналов и предназначены логические анализаторы. Можно сказать, что логический анализатор — это осциллограф, который понимает только 2 уровня сигнала — 0 и 1. Он следит за изменением сигналов во времени и незаменим в отладочных работах при работе с цифровой техникой.
Несмотря на кажущуюся схожесть с другой парой функций digitalRead() и digitalWrite(), которые работают по одному механизму, только в разных направлениях, функции analogRead() и analogWrite() имеют в корне разную природу, в первую очередь на аппаратном уровне. Поэтому и рассматривать их нужно в отрыве друг от друга — функционал analogRead() целиком и полностью реализован на «железном уровне» в аналого-цифровом преобразователе (АЦП), analogWrite() — в регистрах выходного сравнения OCR (ШИМ-генераторам), работающим на одном из встроенных таймеров.
Делитель напряжения применяется в случаях, когда необходимо уменьшить входное напряжение. Простейший делитель напряжения представляет из себя 2 последовательно соединенных резистора:
Имея ввиду, что ток в каждой точке представленной цепи одинаков, пренебрегая малым током нагрузки и используя закон Ома, получаем...
Речь в статье пойдет о двух разных схемах подключения большого количества кнопок к одному аналоговому входу Arduino. Принцип работы схем основан на чтении и интерпретации аналого-цифровым преобразователем микроконтроллера индивидуального напряжения, формируемого разными комбинациями отдельных участков схемы.
Обе схемы, вне зависимости от количества кнопок (в разумных пределах), в каждый активный (нажатие кнопок/кнопки) момент времени представляют из себя классический резистивный делитель напряжения. Но принципиальные отличия и особенности работы каждой из них имеют различные алгоритмы расчета элементов и конечное поведение.
Если вы попали на эту страницу, значит уже во всю используете замечательный кешбэк-сервис EPN-Cashback. В этой статье будет рассказано как при помощи нехитрых манипуляций увеличить актуальный кешбэк ровно в 2 раза и не дать его своровать.
У данной статьи есть видеоверсия! Подписывайтесь на канал, чтобы быть в курсе обновлений! |
- Регистрация в EPN Cashback 7% — http://cashback.epn.bz/
- Ссылка для скачивания браузерного расширения — http://ali.pub/i4ds3
- Мобильное приложение EPN Cashback — http://ali.pub/kcxov
- Зарабатываем с EPN 8,5% тут — https://ali.epn.bz/
Несмотря на кажущуюся схожесть с другой парой функций digitalRead() и digitalWrite(), которые работают по одному механизму, только в разных направлениях, функции analogRead() и analogWrite() имеют в корне разную природу, в первую очередь на аппаратном уровне. Поэтому и рассматривать их нужно в отрыве друг от друга — функционал analogRead() целиком и полностью реализован на «железном уровне» в аналого-цифровом преобразователе (АЦП), analogWrite() — в регистрах выходного сравнения OCR (ШИМ-генераторам), работающим на одном из встроенных таймеров.
В статье раскрывается смысл понятия стягивающего/подтягивающего резистора, рассказывается для чего он нужен и в каких случаях используется.
Для понимания сути раскрываемой темы проведем небольшой эксперимент — соберем небольшую схему с кнопкой и напишем скетч, который в Serial будет выдавать значение состояния кнопки...
Если вы попали на эту страницу, значит вас перестало устраивать быстродействие вашей платы Arduino, вы понимаете, что что-то не так, но не можете понять что. Именно для вас эта статья.
Может я сделаю открытие, но стандартные для Arduino-версии языка C++ самые распространенные функции pinMode, digitalWrite, digitalRead, analogWrite, analogRead, Serial.print, Serial.println (и другие) — это всего лишь удобные обертки для тех, кто не желает лезть в дебри программирования. Эти функции-обертки содержат определенные механизмы проверок корректности исполнения, которые увеличивают время получения результата в разы!