Главная страница
Навигация по странице:

  • Схема Код

  • Фоторезистор

  • Пример простого скетча для DS18B20

  • Сервопривод

  • уроки. Уроки по ардуино. Необходимые компоненты


    Скачать 0.6 Mb.
    НазваниеНеобходимые компоненты
    Анкоруроки
    Дата10.12.2021
    Размер0.6 Mb.
    Формат файлаdocx
    Имя файлаУроки по ардуино.docx
    ТипУрок
    #299247

    Урок.1

    Мигаем светодиодом

    В этом примере показано как с помощью контроллера Arduino заставить мигать светодиод.

    Необходимые компоненты

    • контроллер Arduino

    • светодиод

    • резистор 220 Ом

    Подключение

    Мы подключаем резистор сопротивлением 220 Ом к выходу номер 13 (pin 13), к резистору в свою очередь подключаем анод (обычно длинная ножка) светодиода. Катод подсоединяем к земле (Grd). Затем подключаем контроллер через USB кабель к компьютеру и загружаем приведенный ниже код на котроллер Arduino.

    Большинство плат Arduino имеют встроенный SMT (Surface-mount techology)светодиод, подключенный к выходу 13. Если вы запустите код на таких платах без подключения внешниего светодиода, то вы должны увидеть мигание встроенного светодиода на плате.



    Схема



    Код

    В коде мы первой строк задаем режим выхода для вход/выхода (pin) 13:

    pinMode(13, OUTPUT);

    В основном цикле (loop) программы зажигаем светодиод:

    digitalWrite(13, HIGH);

    На выходе 13 появляется напряжение 5 В. Светодиод зажигается. Затем мы выключаем светодиод:

    digitalWrite(13, LOW);

    Изменив напряжение на выходе на 0 вольт, мы выключили светодиод. Для того чтобы человеческий глаз успевал замечать переключение светодиода введем задержку с помощью функции delay(). 

    /*




      Зажигаем светодиод на одну секунду, затем выключаем его на  




      одну  секунду в цикле.

     */







     




    void setup() {               




      // Инициализируем цифровой вход/выход в режиме выхода.




      // Выход 13 на большинстве плат Arduino подключен к светодиоду на плате.




      pinMode(13, OUTPUT);   

    }







     




    void loop() {




      digitalWrite(13, HIGH);   // зажигаем светодиод

      delay(1000);              // ждем секунду







      digitalWrite(13, LOW);    // выключаем светодиод

      delay(1000);              // ждем секунду







    }


    Урок 2. Подключение потенциометра



    Для сборки модели нам потребуется:

    • плата Arduino (или аналоги);

    • Breadboard;

    • 6 проводов и/или перемычек “папа-папа”;

    • светодиод;

    • потенциометр (переменный резистор);

    • резистор на 220 Ом;

    • среда Arduino IDE

    Схема подключения модели Arduino с потенциометром и светодиодом:



    Для работы этой модели подойдет следующая программа (программу вы можете просто скопировать в Arduino IDE):

    // даём имена пинов со светодиодом

    // и потенциометром

    #define led 9

    #define pot A0

    void setup()

    {

    // пин со светодиодом — выход

    pinMode(led, OUTPUT);

    // пин с потенциометром - вход

    pinMode(pot, INPUT);

    }

    void loop()

    {

    // объявляем переменную x

    int x;

    // считываем напряжение с потенциометра:

    // будет получено число от 0 до 1023

    // делим его на 4, получится число в диапозоне

    // 0-255 (дробная часть будет отброшена)

    x = analogRead(pot) / 4;

    // выдаём результат на светодиод

    analogWrite(led, x);

    }

    Урок 3. RGB – светодиод

    Необходимые узлы:

    1 RGB светодиод 10 мм, 3 резистора на 270 Ω (красная, фиолетовая, коричневая полоски). Вы можете использовать резистор с сопротивлением до 1 кОм, но не забывайте, что с повышением сопротивления, светодиод начинает светить не так ярко. 1 Breadboard, 1 плата Arduino Uno R3 или ее аналог, коннекторы.

    Схема подключения


    У RGB светодиода четыре ноги. По одному позитивному контакты на каждый светодиод и один общий контакт, к которому подключаются все отрицательные полюса светодиодов (аноды).




    Общий анод на RGB светодиоде – это второй по счету, самый длинный контакт. Этот контакт мы подключим к земле (gnd).

    Для каждого светодиода нужен собственный резистор на 270 Ом, чтобы предотвратить возможность протекания чересчур больших токов. Эти резисторы устанавливаются в цепь между катодами (красный, зеленый и синий) и управляющими пинами на нашем Arduino.

    Если вы используете RGB светодиодиод с общим анодом, вместо общего катода, самый длинный контакт на светодиоде подключается к пину +5 V вместо пина gnd.


    Скетч Arduino


    Скетч, который приведен ниже, будет перебирать цвета в цикле: красный, зеленый, синий и аквамарин. В общем, стандартный набор цветов.

    int redPin = 11;

    int greenPin = 10;

    int bluePin = 9;

    //уберите тег комментария со строки ниже, если вы используете светодиод с общим анодом

    //#define COMMON_ANODE

    void setup()

    {

    pinMode(redPin, OUTPUT);

    pinMode(greenPin, OUTPUT);

    pinMode(bluePin, OUTPUT);

    }

    void loop()

    {

    setColor(255, 0, 0); // красный

    delay(1000);

    setColor(0, 255, 0); // зеленый

    delay(1000);

    setColor(0, 0, 255); // синий

    delay(1000);

    setColor(255, 255, 0); // желтый

    delay(1000);

    setColor(80, 0, 80); // фиолетовый

    delay(1000);

    setColor(0, 255, 255); // аквамарин

    delay(1000);

    }

    void setColor(int red, int green, int blue)

    {

    #ifdef COMMON_ANODE

    red = 255 - red;

    green = 255 - green;

    blue = 255 - blue;

    #endif

    analogWrite(redPin, red);

    analogWrite(greenPin, green);

    analogWrite(bluePin, blue);

    }

    Урок 4. Подключение фоторезистора к ардуино и работа с датчиком освещенности



    Подключение фоторезистора к ардуино


    В проектах arduino фоторезистор используется как датчик освещения. Получая от него информацию, плата может включать или выключать реле, запускать двигатели, отсылать сообщения. Естественно, при этом мы должны правильно подключить датчик.

    Схема подключения датчика освещенности к ардуино довольна проста. Если мы используем фоторезистор, то в схеме подключения датчик реализован как делитель напряжения. Одно плечо меняется от уровня освещённости, второе –  подаёт напряжение на аналоговый вход. В микросхеме контроллера это напряжение преобразуется в цифровые данные через АЦП. Т.к. сопротивление датчика при попадании на него света уменьшается, то и значение падающего на нем напряжения будет уменьшаться.



    В зависимости от того, в каком плече делителя мы поставили фоторезистор, на аналоговый вход будет подаваться или повышенное или уменьшенное напряжение. В том случае, если одна нога фоторезистора подключена к земле, то максимальное значение напряжения будет соответствовать темноте (сопротивление фоторезистора максимальное, почти все напряжение падает на нем), а минимальное – хорошему освещению (сопротивление близко к нулю, напряжение минимальное). Если мы подключим плечо фоторезистора к питанию, то поведение будет противоположным.

    Сам монтаж платы не должен вызывать трудностей. Так как фоторезистор не имеет полярности, подключить можно любой стороной, к плате его можно припаять, подсоединить проводами с помощью монтажной платы или использовать обычные клипсы (крокодилы) для соединения. Источником питания в схеме является сам ардуино. Фоторезистор подсоединяется одной ногой к земле, другая подключается к АЦП платы (в нашем примере – АО). К этой же ноге подключаем резистор 10 кОм. Естественно, подключать фоторезистор можно не только на аналоговый пин A0, но и на любой другой.

    Пример скетча датчика освещенности на фоторезисторе


    #define PIN_LED 13

    #define PIN_PHOTO_SENSOR A0

    void setup() {

    Serial.begin(9600);

    pinMode(PIN_LED, OUTPUT);

    }

    void loop() {

    int val = analogRead(PIN_PHOTO_SENSOR);

    Serial.println(val);

    if (val < 300) {

    digitalWrite(PIN_LED, LOW);

    } else {

    digitalWrite(PIN_LED, HIGH); } }

    Урок 5. Датчик Температуры


    Для работы с датчиком нам понадобится программное обеспечение:

    • Arduino IDE;

    • Библиотека OneWire, если используется несколько датчиков на шине, можно использовать библиотеку DallasTemperature. Она будет работать поверх OneWire.

    Из оборудования понадобятся:

    • Один или несколько датчиков DS18B20;

    • Микроконтроллер Ардуино;

    • Коннекторы;

    • Резистор на 4,7 кОм (в случае подключения одного датчика пойдет резистор номиналом от 4 до 10K);

    • Монтажная плата;

    • USB-кабель для подключения к компьютеру.

    К плате Ардуино UNO датчик подключается просто: GND с термодатчика присоединяется к GND Ардуино, Vdd подключается к 5V, Data – к любому цифровому пину.

    Простейшая схема подключения цифрового датчика DS18B20 представлена на рисунке.


    Пример простого скетча для DS18B20


    Самый простой скетч для работы с цифровым датчиком выглядит следующим образом.

    #include

    OneWire ds(8); // Создаем объект OneWire для шины 1-Wire, с помощью которого будет осуществляться работа с датчиком

    void setup(){

    Serial.begin(9600);

    }

    void loop(){

    // Определяем температуру от датчика DS18b20

    byte data[2]; // Место для значения температуры

    ds.reset(); // Начинаем взаимодействие со сброса всех предыдущих команд и параметров

    ds.write(0xCC); // Даем датчику DS18b20 команду пропустить поиск по адресу. В нашем случае только одно устрйоство

    ds.write(0x44); // Даем датчику DS18b20 команду измерить температуру. Само значение температуры мы еще не получаем - датчик его положит во внутреннюю память

    delay(1000); // Микросхема измеряет температуру, а мы ждем.

    ds.reset(); // Теперь готовимся получить значение измеренной температуры

    ds.write(0xCC);

    ds.write(0xBE); // Просим передать нам значение регистров со значением температуры

    // Получаем и считываем ответ

    data[0] = ds.read(); // Читаем младший байт значения температуры

    data[1] = ds.read(); // А теперь старший

    // Формируем итоговое значение:

    // - сперва "склеиваем" значение,

    // - затем умножаем его на коэффициент, соответсвующий разрешающей способности (для 12 бит по умолчанию - это 0,0625)

    float temperature = ((data[1] << 8) | data[0]) * 0.0625;

    // Выводим полученное значение температуры в монитор порта

    Serial.println(temperature);

    }

    Урок 6. Серводвигатель


    Сервопривод — это мотор, положением вала которого мы можем управлять. От обычного мотора он отличается тем, что ему можно точно в градусах задать положение, в которое встанет вал. Сервоприводы используются для моделирования различных механических движений роботов.

    Для сборки модели с сервоприводом нам потребуется:

    • плата Arduino

    • 3 провода “папа-папа”

    • сервопривод

    • программа Arduino IDE



    Схема подключения модели Arduino с сервоприводом:



    Для работы этой модели подойдет следующая программа (программу вы можете просто скопировать в Arduino IDE):

    #include //используем библиотеку для работы с сервоприводом

    Servo servo; //объявляем переменную servo типа Servo

    void setup() //процедура setup

    {

    servo.attach(10); //привязываем привод к порту 10

    }

    void loop() //процедура loop

    {

    servo.write(0); //ставим вал под 0

    delay(2000); //ждем 2 секунды

    servo.write(180); //ставим вал под 180

    delay(2000); //ждем 2 секунды

    }

    Последние четыре команды программы задают угол поворота вала сервопривода и время ожидания (в миллисекундах) до следующего поворота. Эти цифры можно поменять — в видео во втором варианте мы поставили 0-1000-90-1000, что означает поворот на 90 градусов с ожиданием в 1 секунду (1000 миллисекунд), возврат обратно и т.д. (процедура loop повторяется циклично).


    написать администратору сайта