Курс Arduino — Микросхемы

Что за штука, микросхема?

Микросхема – это сборка из миниатюрных компонентов одном корпусе. Существуют тысячи видов микросхем, и каждый вид выполняет свою функцию. В этом уроке мы заложим основные знания работы с микросхемами на примере Сдвигового регистра.

Сдвиговый регистр – это микросхема, которая увеличивает количество цифровых пинов. Мы будем использовать 74HC595. Он управляется тремя пинами, а на выходе дает восемь.

А ещё их можно последовательно соединить, что увеличит количество пинов, например, до 16, при 2-х 74HC595, не изменяя количества управляющих пинов. Так, можно использовать большое количество микросхем и собрать светодиодную сборку, управляемую все теми же, тремя пинами.

Нам понадобятся:

  • Сдвиговый регистр
  • Светодиоды
  • Резисторы на 220Ом
  • Соединительные провода «ПАПА – ПАПА»

Начало

Начало работы с любой микросхемой заключается в том, чтобы:

  • Определиться, что мы хотим от микросхемы.
  • Найти нужную микросхему, предназначенную для решения нашей задачи.
  • Найти документацию на нее
  • Внимательно изучить документацию и научиться подключать плату к Arduino.
  • Давайте по порядку. Мы хотим увеличить количество пинов. Для этого и подойдет  74HC595. Теперь найдем на нее документацию. Для этого забьем в поисковике такой запрос:

     

    После того, как мы изучили документацию и научились подключать микросхему к Arduino, можем смело приступать к сборке схемы.

    Схема

    Ничего выдумывать не будем. Сделаем простую схему с подключением светодиодов через 74HC595 к Arduino. Главная задача – разобраться, как оно работает.

    Внимание на схему сборки:

     Код к схеме

    #define DATA 13 // Пин данных
    #define LATCH 12 // Пин «защелкивания» или строба
    #define CLOCK 11 // Пин такта

    // Создадим несколько переменных типа byte.
    // Я не стал создавать массив т.к. я сделал всего 3 режима
    // Для большего количества данных, передаваемых на микросхему,
    // лучше создавать массив.
    byte number1 = 0b01000000; //1 светодиод горит
    byte number2 = 0b01110000; // 3 светодиода горит
    byte number3 = 0b011111100; // 6 светодиодов горит

    void setup()
    {
    Serial.begin(9600);
    Serial.println(«Write number»);
    // Обозначенные нами, три управляющих пина обозначим как выход
    pinMode(DATA, OUTPUT);
    pinMode(LATCH, OUTPUT);
    pinMode(CLOCK, OUTPUT);

    }

    void loop() {
    // Код из наших прошлых уроков для приема команд с Сериала
    if(Serial.available() > 0)
    {
    char cmd = Serial.read();
    if(cmd == ‘1’)
    {
    //Зажигаем 1 светодиод
    digitalWrite(LATCH, LOW);
    shiftOut(DATA, CLOCK, LSBFIRST, number1);
    digitalWrite(LATCH, HIGH);
    }
    if(cmd == ‘3’)
    {
    //Зажигаем 3 светодиода
    digitalWrite(LATCH, LOW);
    shiftOut(DATA, CLOCK, LSBFIRST, number2);
    digitalWrite(LATCH, HIGH);
    }
    if(cmd == ‘6’)
    {
    //Зажигаем 6 светодиодов
    digitalWrite(LATCH, LOW);
    shiftOut(DATA, CLOCK, LSBFIRST, number3);
    digitalWrite(LATCH, HIGH);
    }
    }
    }

    //Ты можешь дополнить код, чтобы были режимы горения 2, 4, 5 светодиодов.

    Пояснения

    Byte — в нашем случае, для передачи данных, мы использовали переменную типа byte. Выглядела она так: 0b000000000. 0b0 – говорит, что мы работаем с двоичной системой счисления. Остальные восемь цифр передают HIGH или LOW в сдвиговый регистр.

    Управление микросхемой:   Чтобы управлять нашей микросхемой, мы должны объявить три пина: Пин данных (DATA), пин строба (LATCH) и пин такта (CLOCK).

    Для начала, нужно начать запись данных в 74HC595, для этого, нужно на пин строба подать LOW.

    После, задвигаем байт-маску (записываем байт данных для вывода) с помощью shiftOut(DATA, CLOCK, LSBFIRST, val);

    LSBFIRST или MSBFIRST – Этот параметр определяет, в какой последовательности вводить данные в микросхему. Начиная справа(MSB) или слева (LSB).

    Val – это байт, который мы будем передавать.

    В конце, когда передача данных в микросхему закончена, выводим полученные данные, с помощью подачи HIGH на пин строба.

    Итог

    Теперь ты знаешь принцип подключения микросхем. Главное читать инструкцию, т.е. datasheet. И лишь после прочтения, идти включать ее в схему. Двигаемся дальше.

    Список радиоэлементовОбозначение
    Тип
    Номинал
    Количество
    ПримечаниеМагазинМой блокнот

    Плата ArduinoArduino Uno1

    СветодиодАЛ102Б6

    Сдвиговый регистрSN74HC5951

    Резистор220 Ом1

    Соединительные провода"Папа-Папа"1

    Макетная платаBreadboard-half1
    Добавить все

    Скачать список элементов (PDF)

    Прикрепленные файлы:

    Добавить комментарий

    Ваш адрес email не будет опубликован.