Каталог товарів
Клієнту
+38 (066) 305-77-25
Наша адреса
Харків, тимчасово - доставка тільки Новою Поштою, УкрПоштою, МістЕкспрес, ROZETKA Delivery
Телефони
Графік роботи
  • Пн-Пт: з 9 до 18
  • Сб: з 10 до 17
  • Нд: з 11 до 16
E-mail
Ми в соцмережах
Перейти до контактів
0 0
Каталог
Головна
Закладки
0
Порівняти
0
Контакти

5 Корисних Порад для Початківців Arduino

5 Корисних Порад для Початківців Arduino
5 Корисних Порад для Початківців Arduino: Як Уникнути Підводних Каменів та Вдосконалити Свої Проєкти

🔧 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. 🧩 Виглядає ось так:

Стабілізатор Ардуїно 5В

Треба дуже маленьким паяльником або паяльним феном випаяти цю детальку, дуже обережно, бо поруч розташовано багато дрібних інших компонентів. Замінити її можна, взявши з іншого стабілізатора напруги 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 градусів. Зовні сервоприводи виглядають майже однаково, але перед тим як замовляти, уважно читайте опис до нього. 👀

Сервопривід 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. Використання матеріалів дозволено лише з посиланням на джерело.

Рекомендовані товари