<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title><![CDATA[Arduino]]></title>
<link>https://smdx.ru</link>
<description><![CDATA[]]></description>
<language>ru</language>
<lastBuildDate>Mon, 15 Jun 2026 06:25:09 +0300</lastBuildDate>
<ttl>60</ttl>
<item turbo='true'>
<title><![CDATA[Библиотека DHT.h]]></title>
<pubDate>Sun, 12 Jan 2020 23:33:00 +0300</pubDate>
<link>https://smdx.ru/blog/arduino/dht-h</link>
<guid isPermaLink="false">https://smdx.ru/blog/arduino/dht-h</guid>
<enclosure url="https://smdx.ru/uploads/blog/article/11/dht11-arduino.png" type="image/png"/>
<description>
<![CDATA[
	Библиотека DHT.h предназначена для работы с датчиками температуры и влажности:



	
	DHT 11, DHT 2...]]>
</description>
<content:encoded>
<![CDATA[<h2>
	Библиотека DHT.h предназначена для работы с датчиками температуры и влажности:
</h2>

<p>
	<br />
	DHT 11, DHT 21 (AM2301), DHT 22 (AM2302, AM2321)
</p>

<p>
	<br />
	<strong><a href="https://github.com/adafruit/DHT-sensor-library/archive/master.zip" target="_blank"><span style="color:#008080;">Скачать</span></a><span style="color:#008080;">&nbsp;|&nbsp;</span><a href="https://github.com/adafruit/DHT-sensor-library.git" target="_blank"><span style="color:#008080;">Страница на GitHub</span></a></strong>
</p>

<p>
	Также вам потребуется библиотека<strong>&nbsp;<a href="https://github.com/adafruit/Adafruit_Sensor/archive/master.zip" target="_blank"><span style="color:#008080;">Adafruit Sensor</span></a></strong>
</p>

<p>
	<br />
	<strong>DHT 11</strong>&nbsp;— цифровой датчик для измерения температуры и относительной влажности окружающего воздуха. Температура и влажность отдаются датчиком по одному сигнальному проводу (S). DHT общается с принимающей стороной, по собственному протоколу.
</p>

<p>
	<strong>DHT 22</strong>&nbsp;— более продвинутый датчик, неплохой выбор для различных проектов метеостанций, благодаря большому интервалу замеряемых значений (от -40 до 125 градусов для температуры и от 0 до 100% влажности) и относительно невысоким значениям погрешности.
</p>

<p>
	Сам датчик состоит из термистора и емкостного датчика влажности, а так же АЦП для преобразования сигнала в цифровой.
</p>

<p>
	&nbsp;
</p>

<h3>
	<span style="font-size:18px"><strong>Подключение датчика DHT&nbsp;к Arduino</strong></span>
</h3>
&nbsp;

<ul>
	<li>
		VCC -&gt; питание 5 вольт, допускается 3.3V
	</li>
	<li>
		GND -&gt; GND земля
	</li>
	<li>
		S -&gt; любой&nbsp;цифровой контакт на&nbsp;Arduino
	</li>
</ul>

<p>
	<br />
	<img alt="" src="https://smdx.ru/uploads/blog/article/11/dht11-arduino.png" style="width: 500px;" />
</p>

<p>
	&nbsp;
</p>

<p>
	<span style="font-size:18px"><strong>Пример использования библиотеки DHT.h</strong></span>
</p>

<pre class="cpp" style="font-family:monospace;">
<span style="color: #339900;">#include "DHT.h" 
// подключаем библиотеку</span>
&nbsp;
<span style="color: #339900;">#define DHTPIN 2  
// задаем контакт подключенный 
</span><span style="color: #666666;">// к сигнальному контакту датчика (S)</span>
&nbsp;
&nbsp;
<span style="color: #666666;">// задаем тип подключаемого датчика</span>
&nbsp;
<span style="color: #339900;">#define DHTTYPE DHT11   
// DHT 11</span>
<span style="color: #666666;">// DHT 22  (AM2302), AM2321</span>
<span style="color: #666666;">// DHT 21 (AM2301)</span>
&nbsp;
<span style="color: #666666;">// обьявляем обьект dht с параметрами</span>
DHT dht<span style="color: #008000;">(</span>DHTPIN, DHTTYPE<span style="color: #008000;">)</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">void</span> setup<span style="color: #008000;">(</span><span style="color: #008000;">)</span> <span style="color: #008000;">{</span>
  Serial.<span style="color: #007788;">begin</span><span style="color: #008000;">(</span><span style="color: #0000dd;">9600</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span>
  dht.<span style="color: #007788;">begin</span><span style="color: #008000;">(</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span> <span style="color: #666666;">// запускаем датчик</span>
<span style="color: #008000;">}</span>
&nbsp;
<span style="color: #0000ff;">void</span> loop<span style="color: #008000;">(</span><span style="color: #008000;">)</span> <span style="color: #008000;">{</span>
&nbsp;
  delay<span style="color: #008000;">(</span><span style="color: #0000dd;">2000</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span> 
<span style="color: #666666;">// задержка 2 сек между считываниями</span>
&nbsp;
  <span style="color: #0000ff;">float</span> h <span style="color: #000080;">=</span> dht.<span style="color: #007788;">readHumidity</span><span style="color: #008000;">(</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span> 
<span style="color: #666666;">// считываем влажность</span>
  <span style="color: #0000ff;">float</span> t <span style="color: #000080;">=</span> dht.<span style="color: #007788;">readTemperature</span><span style="color: #008000;">(</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span> 
<span style="color: #666666;">// считываем температуру</span>
<span style="color: #666666;">// в градусах Цельсия
</span>
  <span style="color: #0000ff;">float</span> f <span style="color: #000080;">=</span> dht.<span style="color: #007788;">readTemperature</span><span style="color: #008000;">(</span><span style="color: #0000ff;">true</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span> 
<span style="color: #666666;">// в Фаренгейтах</span>
&nbsp;
  <span style="color: #666666;">// проверяем полученные значения</span>
  <span style="color: #0000ff;">if</span> <span style="color: #008000;">(</span>isnan<span style="color: #008000;">(</span>h<span style="color: #008000;">)</span> <span style="color: #000040;">||</span> isnan<span style="color: #008000;">(</span>t<span style="color: #008000;">)</span> <span style="color: #000040;">||</span> isnan<span style="color: #008000;">(</span>f<span style="color: #008000;">)</span><span style="color: #008000;">)</span> <span style="color: #008000;">{</span>
    Serial.<span style="color: #007788;">println</span><span style="color: #008000;">(</span><span style="color: #FF0000;">"Ошибка чтения датчика"</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">return</span><span style="color: #008080;">;</span>
  <span style="color: #008000;">}</span>
&nbsp;
&nbsp;
  <span style="color: #666666;">// выводим полученные данные в консоль	</span>
  Serial.<span style="color: #007788;">print</span><span style="color: #008000;">(</span><span style="color: #FF0000;">"Влажность : "</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span>
  Serial.<span style="color: #007788;">println</span><span style="color: #008000;">(</span>h<span style="color: #008000;">)</span><span style="color: #008080;">;</span>
&nbsp;
  Serial.<span style="color: #007788;">print</span><span style="color: #008000;">(</span><span style="color: #FF0000;">"Температура : "</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span>
  Serial.<span style="color: #007788;">print</span><span style="color: #008000;">(</span>t<span style="color: #008000;">)</span><span style="color: #008080;">;</span>
  Serial.<span style="color: #007788;">print</span><span style="color: #008000;">(</span><span style="color: #FF0000;">" *C, "</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span>
&nbsp;
  Serial.<span style="color: #007788;">print</span><span style="color: #008000;">(</span>f<span style="color: #008000;">)</span><span style="color: #008080;">;</span>
  Serial.<span style="color: #007788;">println</span><span style="color: #008000;">(</span><span style="color: #FF0000;">" *F"</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span>
<span style="color: #008000;">}</span></pre>

<p>
	&nbsp;
</p>]]>
</content:encoded>
</item>
<item turbo='true'>
<title><![CDATA[Библиотека DFPlayer_Mini_Mp3.h]]></title>
<pubDate>Sun, 12 Jan 2020 23:26:00 +0300</pubDate>
<link>https://smdx.ru/blog/arduino/dfplayerminimp3-h</link>
<guid isPermaLink="false">https://smdx.ru/blog/arduino/dfplayerminimp3-h</guid>
<enclosure url="https://smdx.ru/uploads/blog/article/10/dfplayer-mini-mp3-pinout.jpg" type="image/jpeg"/>
<enclosure url="https://smdx.ru/uploads/blog/article/10/dfplayer-arduino-connect.png" type="image/png"/>
<description>
<![CDATA[
	Библиотека DFPlayer_Mini_Mp3.h предназначена для работы с MP3 плеером DFPlayer mini



	
	Скачать&...]]>
</description>
<content:encoded>
<![CDATA[<h3>
	<strong>Библиотека DFPlayer_Mini_Mp3.h предназначена для работы с MP3 плеером DFPlayer mini</strong>
</h3>

<p>
	<br />
	<strong><a href="https://github.com/DFRobot/DFPlayer-Mini-mp3/archive/master.zip" target="_blank"><span style="color:#008080;">Скачать</span></a><span style="color:#008080;">&nbsp;|&nbsp;</span><a href="https://github.com/DFRobot/DFPlayer-Mini-mp3.git" target="_blank"><span style="color:#008080;">Страница на GitHub</span></a></strong><br />
	&nbsp;
</p>

<p>
	Модуль поддерживает до 25,5тыс аудио файлов. Файлы можно распределить между каталогами, максимум по 255 записей. Поддерживается 0-30 уровней громкости и 6 режимов эквалайзера (Normal/ Pop/ Rock/ Jazz/ Classic/ Base). Модуль имеет два входа, к которым можно подключить до 20-ти кнопок, для управления модулем. Напряжение питания 3,3–5 В.
</p>

<p>
	&nbsp;
</p>

<h3>
	<strong><span style="font-size:18px">Основные функции библиотеки&nbsp;DFPlayer_Mini_Mp3.h</span></strong>
</h3>
&nbsp;

<ul>
	<li>
		mp3_set_serial (&amp;theSerial); — задаем порт для работы с плеером
	</li>
	<li>
		mp3_play (); — включаем воспроизведение файлов
	</li>
	<li>
		mp3_play (5); — воспроизводим файл «mp3/0005.mp3»
	</li>
	<li>
		mp3_next (); — воспроизводим следующий файл
	</li>
	<li>
		mp3_prev (); — воспроизводим предыдущий&nbsp;файл
	</li>
	<li>
		mp3_set_volume (15); — устанавливаем громкость от 0 до 30
	</li>
	<li>
		mp3_set_EQ (4); — устанавливаем эквалайзер от 0 до 5
	</li>
	<li>
		mp3_pause (); — ставим воспроизведение на паузу
	</li>
	<li>
		mp3_stop (); — останавливаем воспроизведение
	</li>
	<li>
		mp3_reset (); — сброс плеера
	</li>
	<li>
		mp3_single_loop (boolean state); — устанавливаем непрерывное воспроизведение
	</li>
	<li>
		mp3_random_play (); — воспроизводим случайный файл
	</li>
</ul>

<p>
	&nbsp;
</p>

<h3>
	<span style="font-size:18px"><strong>Схема расположения контактов&nbsp;DFPlayer mini</strong></span>
</h3>
&nbsp;

<p>
	<img alt="" src="https://smdx.ru/uploads/blog/article/10/dfplayer-mini-mp3-pinout.jpg" style="width: 300px;" />
</p>

<p>
	&nbsp;
</p>

<h3>
	<span style="font-size:18px"><strong>Схема подключения DFPlayer mini к Arduino&nbsp;UNO R3</strong></span>
</h3>

<p>
	<br />
	<img alt="" src="https://smdx.ru/uploads/blog/article/10/dfplayer-arduino-connect.png" />
</p>

<p>
	&nbsp;
</p>

<p>
	&nbsp;
</p>

<h3>
	<span style="font-size:18px"><strong>Пример использования библиотеки DFPlayer_Mini_Mp3.h</strong></span>
</h3>
&nbsp;

<pre class="cpp" style="font-family:monospace;">
<span style="color: #339900;">#include &lt;SoftwareSerial.h&gt;</span>
<span style="color: #339900;">#include &lt;DFPlayer_Mini_Mp3.h&gt;</span>
&nbsp;
SoftwareSerial mySerial<span style="color: #008000;">(</span><span style="color: #0000dd;">10</span>, <span style="color: #0000dd;">11</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span>
<span style="color: #666666;">// используем 10 и 11 пины 
// для программного порта</span>
<span style="color: #666666;">// 10 - RX, 11 - TX</span>
&nbsp;
&nbsp;
<span style="color: #0000ff;">void</span> setup <span style="color: #008000;">(</span><span style="color: #008000;">)</span> <span style="color: #008000;">{</span>
	Serial.<span style="color: #007788;">begin</span> <span style="color: #008000;">(</span><span style="color: #0000dd;">9600</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span> 
&nbsp;   <span style="color: #666666;">// открываем порт для консоли</span>
	mySerial.<span style="color: #007788;">begin</span> <span style="color: #008000;">(</span><span style="color: #0000dd;">9600</span><span style="color: #008000;">)</span><span style="color: #008080;">;
&nbsp;  </span> <span style="color: #666666;">// открываем софт-порт</span>
	mp3_set_serial <span style="color: #008000;">(</span>mySerial<span style="color: #008000;">)</span><span style="color: #008080;">;
&nbsp;  </span> <span style="color: #666666;">// задаем порт для плеера</span>
	mp3_set_volume <span style="color: #008000;">(</span><span style="color: #0000dd;">15</span><span style="color: #008000;">)</span><span style="color: #008080;">;
&nbsp;  </span> <span style="color: #666666;">//устанавливаем уровень громкости</span>
<span style="color: #008000;">}</span>
&nbsp;
<span style="color: #0000ff;">void</span> loop <span style="color: #008000;">(</span><span style="color: #008000;">)</span> <span style="color: #008000;">{</span>        
	mp3_play <span style="color: #008000;">(</span><span style="color: #0000dd;">1</span><span style="color: #008000;">)</span><span style="color: #008080;">;
&nbsp;  </span> <span style="color: #666666;">// проигрываем файл mp3/0001.mp3</span>
	delay <span style="color: #008000;">(</span><span style="color: #0000dd;">6000</span><span style="color: #008000;">)</span><span style="color: #008080;">;
</span>
	mp3_next <span style="color: #008000;">(</span><span style="color: #008000;">)</span><span style="color: #008080;">;
&nbsp;  </span> <span style="color: #666666;">// включаем следующий файл</span>
	delay <span style="color: #008000;">(</span><span style="color: #0000dd;">6000</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span>
<span style="color: #008000;">}</span></pre>

<p>
	&nbsp;
</p>]]>
</content:encoded>
</item>
<item turbo='true'>
<title><![CDATA[Библиотека BH1750.h]]></title>
<pubDate>Sun, 12 Jan 2020 23:08:00 +0300</pubDate>
<link>https://smdx.ru/blog/arduino/bh1750-h</link>
<guid isPermaLink="false">https://smdx.ru/blog/arduino/bh1750-h</guid>
<enclosure url="https://smdx.ru/uploads/blog/article/9/arduino-bh1750.png" type="image/png"/>
<description>
<![CDATA[
	Библиотека BH1750.h предназначена для работы с датчиком освещенности BH1750 (GY-302)



	
	Скачать...]]>
</description>
<content:encoded>
<![CDATA[<h3>
	<strong>Библиотека BH1750.h предназначена для работы с датчиком освещенности BH1750 (GY-302)</strong>
</h3>

<p>
	<br />
	<strong><a href="https://github.com/claws/BH1750/archive/master.zip" target="_blank"><span style="color:#008080;">Скачать</span></a><span style="color:#008080;">&nbsp;|&nbsp;</span><a href="https://github.com/claws/BH1750.git" target="_blank"><span style="color:#008080;">Страница на GitHub</span></a></strong>
</p>

<p>
	<br />
	Сенсор BH1750 представляет собой цифровой 16-битный цифровой датчик освещённости. Диапазон измерений: от 1 до 65535 люкс. Датчик BH1750 чувствителен к видимому свету и практически не подвержен влиянию инфракрасного излучения, реагирует примерно на тот же спектральный диапазон, что и человеческий глаз.
</p>

<p>
	Подключение модуля производится по двухпроводному интерфейсу I2C. Интерфейс I2C в платах Arduino реализован на&nbsp;<strong>аналоговых</strong>&nbsp;пинах A4 (SDA — шина данных) и A5 (SCL — шина тактирования).
</p>

<p>
	&nbsp;
</p>

<h3>
	<span style="font-size:18px"><strong>Подключение датчика BH1750 к Arduino</strong></span>
</h3>

<p>
	&nbsp;
</p>

<ul>
	<li>
		VCC -&gt; питание 5 вольт, допускается 3.3V
	</li>
	<li>
		GND -&gt; GND земля
	</li>
	<li>
		SCL -&gt; SCL аналоговый контакт A5 на&nbsp;Arduino Uno
	</li>
	<li>
		SDA -&gt; SDA аналоговый контакт A4 на Arduino Uno<br />
		&nbsp;
	</li>
</ul>

<p>
	<img alt="" src="https://smdx.ru/uploads/blog/article/9/arduino-bh1750.png" style="width: 600px;" />
</p>

<p>
	&nbsp;
</p>

<h3>
	<span style="font-size:18px"><strong>Пример использования библиотеки BH1750</strong></span>
</h3>

<pre class="cpp" style="font-family:monospace;">

#include &lt;BH1750.h&gt; 
// подключаем библиотеку

BH1750 lightMeter<span style="color: #008080;">;
</span><span style="color: #666666;">// объявляем объект

lightMeter</span>&nbsp;<span style="color: #0000ff;">uint16_t</span> lux<span style="color: #008080;">;
</span><span style="color: #666666;">// задаем переменную Unsigned Int
</span><span style="color: #666666;">// с диапазоном значения 0..65535

</span><span style="color: #0000ff;">void</span> setup<span style="color: #008000;">(</span><span style="color: #008000;">) </span><span style="color: #008000;">{</span>&nbsp;
  Serial.<span style="color: #007788;">begin</span><span style="color: #008000;">(</span><span style="color: #0000dd;">9600</span><span style="color: #008000;">)</span><span style="color: #008080;">;
</span>  lightMeter.<span style="color: #007788;">begin</span><span style="color: #008000;">(</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span> 
&nbsp; <span style="color: #666666;">// запускаем датчик</span>&nbsp;
<span style="color: #008000;">}
</span><span style="color: #0000ff;">void</span> loop<span style="color: #008000;">(</span><span style="color: #008000;">)</span> <span style="color: #008000;">{</span>&nbsp;
&nbsp; lux <span style="color: #000080;">=</span> lightMeter.<span style="color: #007788;">readLightLevel</span><span style="color: #008000;">(</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span> 
&nbsp; <span style="color: #666666;">// считываем показания датчика

&nbsp;</span>&nbsp;Serial.<span style="color: #007788;">print</span><span style="color: #008000;">(</span><span style="color: #FF0000;">"Освещение : "</span><span style="color: #008000;">)</span><span style="color: #008080;">;
&nbsp; </span>Serial.<span style="color: #007788;">print</span><span style="color: #008000;">(</span>lux<span style="color: #008000;">)</span><span style="color: #008080;">;
</span>  <span style="color: #666666;">// выводим показания в консоль

&nbsp; </span>Serial.<span style="color: #007788;">println</span><span style="color: #008000;">(</span><span style="color: #FF0000;">" люкс"</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span>&nbsp;
&nbsp; delay<span style="color: #008000;">(</span><span style="color: #0000dd;">1000</span><span style="color: #008000;">)</span><span style="color: #008080;">;</span> <span style="color: #666666;">// задержка 1 сек
</span><span style="color: #008000;">}</span></pre>

<p>
	&nbsp;
</p>]]>
</content:encoded>
</item>
<item turbo='true'>
<title><![CDATA[RS-485: соединяем Arduino на расстоянии в километр]]></title>
<pubDate>Sun, 12 Jan 2020 22:09:00 +0300</pubDate>
<link>https://smdx.ru/blog/arduino/rs485-network</link>
<guid isPermaLink="false">https://smdx.ru/blog/arduino/rs485-network</guid>
<enclosure url="https://smdx.ru/uploads/blog/article/7/rs485.jpg" type="image/jpeg"/>
<enclosure url="https://smdx.ru/uploads/blog/article/7/g305-rs485-usb-adapter.jpg" type="image/jpeg"/>
<enclosure url="https://smdx.ru/uploads/blog/article/7/rs485-net.jpg" type="image/jpeg"/>
<description>
<![CDATA[
	
	RS-485 — стандарт физического уровня для асинхронного интерфейса. Приобрел большую популярность ...]]>
</description>
<content:encoded>
<![CDATA[<p>
	<br />
	RS-485 — стандарт физического уровня для асинхронного интерфейса. Приобрел большую популярность и стал основой для создания целого семейства промышленных сетей, широко используемых в промышленной автоматизации. Для передачи и приёма данных используется одна витая пара проводов, иногда сопровождаемая экранирующей оплеткой или общим проводом. Передача данных осуществляется с помощью дифференциальных сигналов. Разница напряжений между проводниками одной полярности означает логическую единицу, разница другой полярности — ноль.
</p>

<h3>
	Для преобразования логики arduino (TTL) в RS-485 используется модуль TTL to RS485:
</h3>
&nbsp;

<p>
	<a href="https://smdx.ru/rs-485-ttl" target="_blank"><img alt="" src="https://smdx.ru/uploads/blog/article/7/rs485.jpg" style="width: 300px; height: 300px;" /></a>
</p>

<p>
	Есть возможность в качестве узла сети использовать компьютер.
</p>

<h3>
	Для этого потребуется адаптер USB to RS485; компьютер видит его как COM-порт:
</h3>
&nbsp;

<p>
	<a href="https://smdx.ru/rs485-usb" target="_blank"><img alt="" src="https://smdx.ru/uploads/blog/article/7/g305-rs485-usb-adapter.jpg" style="width: 300px; height: 300px;" /></a>
</p>

<p>
	При помощи этих модулей, можно организовать сеть на RS485:
</p>

<p>
	<a href="https://smdx.ru/uploads/blog/article/7/rs485-net.jpg" target="_blank"><img alt="" src="https://smdx.ru/uploads/blog/article/7/rs485-net.jpg" /></a>
</p>

<p>
	<strong>Преимущества сети RS485 на Arduino:</strong>
</p>

<ul>
	<li>
		Простота реализации.
	</li>
	<li>
		Возможность подключения более двух arduino.
	</li>
	<li>
		Любая arduino на линии связи может работать ведущим/ведомым.
	</li>
	<li>
		Передача данных на большие расстояния (до 1,2 км)
	</li>
</ul>

<p>
	<br />
	<strong>Недостатки:</strong>
</p>

<ul>
	<li>
		Связь осуществляется в полудуплексном режиме (одновременно может отправлять данные только одна arduino)
	</li>
</ul>

<p>
	&nbsp;
</p>]]>
</content:encoded>
</item>
</channel>
</rss>