Каталог товаров
Клиенту
+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, вводим нужный порт и загружаем код — теперь «Hello World» точно должен появиться. 😊


Совет №2: 💡 Регулировка подсветки дисплея с помощью фоторезистора

Снова дисплей LCD1602 или LCD2004 с модулем I2C. На модуле I2C есть перемычка, сняв которую, можно отключить подсветку дисплея. И появилась идея: чтобы ночью подсветка была чуть тусклее, а днём на солнце ярче, как на смартфоне, — добавьте фоторезистор. 🌗 Эта небольшая доработка очень помогает смотреть на часы ночью, чтобы не напрягать глаза.

Добавление фоторезистора

💡 Эту идею я внедрил в проект умные часы. Возможно, кому-то это тоже пригодится. 😉


Совет №3: 🛠️ Как исправить короткое замыкание на Arduino

Иногда бывает так, что при работе с Arduino любой модели случайно замыкаются GND и +5V, что приводит к короткому замыканию. ⚡ Чтобы «вылечить» Arduino, обычно нужно заменить всего одну деталь — стабилизатор питания 5V. И эта деталь называется AMS1117 5V. 🧩 Выглядит она так:

Стабилизатор Arduino 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. Использование материалов разрешено только с указанием источника.

Рекомендуемые товары