🔧 5 Корисних Порад для Початківців Arduino: Як Уникнути Підводних Каменів та Вдосконалити Свої Проєкти
Порада №1: 📺 Налаштування дисплея LCD1602 або LCD2004 з модулем I2C
Якщо Ви тільки почали своє знайомство з модулями Arduino, то ваше знайомство без дисплея навряд чи вийде. І перші підводні камені вже чекають Вас, я допоможу з ними впоратися. Наприклад, у Вас є дисплей LCD1602 або LCD2004 з модулем I2C. Так як без цього модуля на сьогодні вже ніхто не використовує дисплеї. І ось щоб вивести класику на дисплей «Hello World» — просто перевірити дисплей — треба бібліотека: LiquidCrystal_I2C.h. Ось поставили її і в прикладах до цієї бібліотеки є Hello World, завантажуємо і на дисплеї нічого немає?! Що треба зробити?
- 🔧 На модулі є змінний резистор, покрутивши який, можна налаштувати контрастність символів. Якщо викрутили в крайнє положення і знову не має на дисплеї «Hello World»...
- 🔍 Скоріше за все, невірний порт дисплея. Зазвичай це 0x27, але іноді вони можуть бути інші, наприклад, 0x3C, 0x3E.
🔄 Щоб не гадати, який порт, можна його дізнатися. Для цього треба завантажити код:
#include "Wire.h" void setup(){ Wire.begin(); Serial.begin(9600); } void loop(){ byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for(address = 8; address < 127; address++ ){ Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0){ Serial.print("I2C device found at address 0x"); if (address < 16) Serial.print("0"); Serial.print(address, HEX); Serial.println(" !"); nDevices++; } else if (error == 4) { Serial.print("Unknown error at address 0x"); if (address < 16) Serial.print("0"); Serial.println(address, HEX); } } if (nDevices == 0) Serial.println("No I2C devices found\n"); else Serial.println("done\n"); delay(3000); }Зайшовши в монітор порту, можна побачити вірний порт:
💾 Запам’ятали порт. Тепер повертаємося до прикладу Hello World, вписуємо потрібний порт і завантажуємо код, тепер 100% має з’явитися «Hello World». 😊
Порада №2: 💡 Регулювання підсвітки дисплея за допомогою фоторезистора
Знову дисплей LCD1602 або LCD2004 з модулем I2C. На модулі I2C є перемичка, знявши яку, вимикається підсвітка дисплея. І з’явилася ідея: щоб вночі підсвітка була трохи тьмянішою, а вдень при сонці яскравішою, як на смартфоні, — додайте фоторезистор. 🌗 Ця невеличка переробка дуже допомагає вночі дивитися на час, щоб очі не боліли.
💡 Цю ідею я вмонтував у цей проєкт: Розумний годинник. Може, комусь теж знадобиться. 😉
Порада №3: 🛠️ Як виправити коротке замикання на Arduino
Іноді буває таке, що при роботі з Arduino будь-якої моделі випадково GND та +5V замикають один з одним, що призводить до короткого замикання. ⚡ Щоб «вилікувати» Arduino, зазвичай потрібно замінити всього одну деталь — стабілізатор живлення 5V. І деталь ця називається AMS1117 5V. 🧩 Виглядає ось так:
Треба дуже маленьким паяльником або паяльним феном випаяти цю детальку, дуже обережно, бо поруч розташовано багато дрібних інших компонентів. Замінити її можна, взявши з іншого стабілізатора напруги 5V або купити в таку ж. Впаявши назад, ви зможете заощадити кошти та врятувати свій Arduino-проєкт. 💪
Порада №4: 🔋 Сервоприводи та живлення
Сервоприводи. Якщо плануєте використовувати сервоприводи у своєму проєкті, то вам потрібно дуже надійне джерело живлення з запасом по струму, адже сервоприводи під час обертання під навантаженням споживають великий струм короткочасно. 💨
🔋 Наприклад, для звичайного сервопривода
5V 1A буде достатньо для будь-яких дій. Але для більш потужного сервопривода краще взяти 5V 2A, а за великим навантаженням — і 2.5A для запасу.
‼️ Живлення сервопривода +5V брати від Arduino не можна, адже вихід +5V Arduino не витримає струм понад 200мА, чого дуже мало для будь-якого сервопривода. Використовуйте окреме джерело живлення, яке б живило і сервопривід, і Arduino. Схема підключення:
Порада №5: 🔄 Види сервоприводів
Види сервоприводів. Сервоприводи діляться на два основні типи: з потенціометром усередині та без нього. Звичайні сервоприводи з потенціометром мають обмежений кут повороту — зазвичай від 0 до 180 градусів. І в який кут повернутися йому ми говоримо, в такий він і стає. Все просто. Ось звичайний скетч, який буде повертати сервопривід то в одну сторону, то в іншу: 🎛️
#include
Servo myServo;
void setup() {
myServo.attach(9);
}
void loop() {
myServo.write(45); // Повернуть сервопривод на 45 градусов
delay(1000); // Ждем 1 секунду
myServo.write(90); // Повернуть сервопривод на 90 градусов
delay(1000); // Ждем 1 секунду
}
У ньому чітко вказано, під яким кутом стати сервоприводу: то в 45 градусів, то в 90, і так далі.
🔄 Тепер розглянемо сервопривід без потенціометра (аналоговий), який може обертатися на 360 градусів. Зовні сервоприводи виглядають майже однаково, але перед тим як замовляти, уважно читайте опис до нього. 👀
І ось щоб ним управляти, попередній скетч не підійде. Він управляється за часом:
#include
Servo servo;
void setup() {
servo.attach(9);
}
void loop() {
turnForward(); // вперёд
delay(2000); // Задержка 2 секунды
stopMotor(); // Остановить
delay(2000);
}
void turnForward() {
servo.writeMicroseconds(1800); // Движение
}
void stopMotor() {
servo.writeMicroseconds(1500); // Остановка сервопривода
}
🕹️ У команді turnForward встановлено число 1800, а в stopMotor — 1500 мкс. Що це означає:
📊 Керувати можна в діапазоні від 700 до 2300 мкс. Що означають ці цифри? Це мілісекунди, які подаються на мікрочип сервопривода: 1500 — зупинка мотора, 1600 — мінімальні оберти вперед, 2300 — максимальні оберти вперед, 1400 — мінімальні оберти назад, а 700 — максимальні оберти назад. У коді також можна вказати тривалість для кожної дії.
Наприклад, вперед він буде крутитися 2 секунди на швидкості 1800, потім зупинка на 2 секунди, і так далі. 🔁
Сподіваюсь ці корисні поради комусь допоможуть, і ви зробите свій власний проект разом з myproject.com.ua.
© 2024 Мій Проект. Автор: Ardu_miha. Використання матеріалів дозволено лише з посиланням на джерело.
Написати коментар