Ежедневный радиожурнал со звуком. Иногда с юмором. Всегда с картинками

26.05.2022

"Arduino" - це дуже просто 4

Тепер нам потрібно зрозуміти як ми об'єднуватимемо наші модулі з Ардуїно так, щоб усе працювало. Ми вже купили датчик температури BS18D20, групу двох п'ятивольтових реле та LCD1602 дисплей з модулем I2C протоколу ззаду. Керуючі контакти реле повинні витримувати струм 5 ампер при напрузі 220 вольт. Тому що вони включатимуть акваріумний нагрівач, що працює від звичайної розетки. Я інших не зустрічав, але читав, що такі є. Ну так, про всяк випадок попереджаю.

P.S. Припускаю, що для невеликих акваріумів допитливий розум наших Кулібіних спробує застосувати як нагрівальний елемент дротяний резистор 5 Ом на 5 Ватт. І тоді його так само можна буде живити напругою 5 вольт, або потужніше, але при цьому багаторазово зростуть проблеми з герметизацією.

Передбачається, що нагрівач в акваріумі вже є і ви змогли розмістити над водою вентилятор. Для зручності я пропоную вам купити вентилятор, що працює від 5 вольт. Тоді ви зможете запитати його від того ж джерела живлення, що й саму плату Ардуїно.

P.S. Важливо! У такому варіанті НЕ приєднуйте вентилятор до шини 5 вольт на самій платі Ардуїно. Це може призвести до виходу з експлуатації вбудованого стабілізатора напруги на платі. Краще використовувати зовнішнє джерело стабілізованого живлення +5 вольт із струмом до 2 ампер та його напругу подавати і на вентилятор та на шину 5 V плати Ардуїно.

Але для того, щоб зрозуміти, як нам потрібно буде приєднувати всі датчики та виконавчі пристрої, давайте їх так називати з цього моменту, нам доведеться зайнятися логічним обслуговуванням Ардуїно або майже програмуванням. Для полегшення мук програмістів-початківців сам проект Ардуїно обмежили основною логічною схемою "ВИКОНАННЯ В ЦИКЛІ (постійно) Void Loop" перед якою включений "БЛОК ОПИСАННЯ ЗМІННИХ і з'єднань Void Setap". У цьому блоці ми вкажемо, на які контакти Ардуїно ми приєднаємо датчик температури (логічний вхід), дисплей і два реле (логічний вихiд). А в блоці Void Loop вже описуватимемо що робити контролеру.
Тут слід зробити логічне відступ і висвітлити питання чому все-таки Ардуїно програмування набагато легше для початківців? А секрет у тому, що для майже уніфікованих контролерів аматорами написано безліч підпрограм, які обслуговують конкретні пристрої середи Ардуїно. Вони називаються бібліотеки і підключаються (викликаються на ім'я) на початку тексту скетчу. Слово скетч вживається саме тому що це не програма у чистому вигляді, а зібрані в один текст описи, призначення, підпрограми та цілі блоки. Б'юся об заклад, що програмне середовище оточення для Ардуїно IDE ви вже поставили. І напевно вже спробували прості приклади, які в ній можна завантажити і перевірити. Наприклад, blink :-). І, напевно, читали дещо в інших інтернет джерелах. Але я пишу для абсолютних новайсерів, тому йдемо вздовж паркану :-)  Приблизно так виглядає скетч Ардуїн. Блоки виділені кольором.


Нижче текст працюючого скетчу з якого випливає, що термодатчик DS1820B ми будемо підключати до 10-го піну нашої Ардуїно. Завантажуємо скетч, запускаємо його у роботу. Поки у нас не підключений дисплей, результат дивитимемося на виході COM PORT. Для цього на панелі IDE Arduino натискаємо кнопку "Монітор порту" (праворуч вгорі). 

#include <OneWire.h>// Ініціалізація бібліотеки шини OneWire.
#include <DallasTemperature.h>// Ініціалізація бібліотеки термодатчиків.
#define ONE_WIRE_BUS 10
// Підключення цифрового виведення датчика до 10 піну Ардуїно.
oneWire(ONE_WIRE_BUS);
// Запуск інтерфейсу OneWire для підключення пристроїв OneWire.
 DallasTemperature sensors(&oneWire);
//Вказівка, що пристрій oneWire є термодатчик від Dallas 
void setup(void)
  {
Serial.begin(9600);
// Запуск СОМ порту.
Serial.println("Start temperature measurement");
//Друк в порт
sensors.begin();
 // Запуск сенсора.
  }
void loop(void)

Serial.print("Please wait...");
//Друк в порт 
sensors.requestTemperatures(); //Команда опитування температури.
Serial.print("T=");  //Друк в порт
Serial.println(sensors.getTempCByIndex(0)); 
// Друк в порт температури, "0" у цьому випадку вказує на перший пристрій у шині.
}
Для відмінників: на цьому етапі спробуйте самостійно підключити другий датчик температури та виводити на COMPORT монітор температуру двох датчиків. Передбачається що температуру води та повітря :-)  Для тих, у кого не вийшло посилання на підказку - https://radioprog.ru/post/763
© Copyright 2011-2021 UY2RA,    All rights reserved.    Все права защищены.    Пожалуйста уважайте их. Использование материалов c этого сайта разрешается только с указанием АКТИВНОЙ ссылки на этот сайт.

FREE & OPEN UKRAINIAN HAM  RADIO  BANNERS NET