Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

8-битная библиотека портов ввода-вывода для Arduino

Компоненты и расходные материалы

Arduino UNO
× 1
5 мм светодиод:красный
× 1
Однооборотный потенциометр - 10 кОм
× 1

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте

Библиотека Arduinolibrary для 8-битного порта ввода-вывода

Мы все знаем, что Arduino выдает цифровой вывод с помощью « digitalWrite () . »И получает цифровой ввод через« digitalRead () ”Функция. Но, используя эти две функции, он может выдавать или получать входные данные с любого одного контакта, то есть одновременно он может выдавать или принимать входные данные только с одного контакта. Если кто-то хочет связать любое 8-битное устройство ввода-вывода, такое как 7-сегментный дисплей, DIP-переключатели или ЦАП (цифро-аналоговый преобразователь), с Arduino, он не может выдавать прямой 8-битный цифровой выход на устройство, но вместо этого он должен выдавать выход на 8 разных контактов. .Байт данных (8-битный) шаблон отправляется на разные контакты в виде единиц и нулей. Например, если байт данных равен 37h (0011 0111), нужно отправить эти 0 n 1 шаблон на 8 разных контактов с помощью функции digitalWrite (). .

Чтобы справиться с этой ситуацией, я представляю 8-битную библиотеку портов ввода-вывода (порт ввода-вывода) для Arduino. Используя эту библиотеку, можно напрямую отправлять 8-битные данные на любые выводы платы Arduino, сконфигурированные как комбинированный 8-битный порт, или получать 8-битные входные данные с этих сконфигурированных выводов. Эта библиотека объединяет любые 8 контактов Arduino вместе для работы в качестве 8-битного порта ввода-вывода. Просто нужно выбрать любые 8 контактов Arduino для объединения в 8-битный порт, и он должен настроить направление своих данных как вход или выход. Направление данных задается символом «O» для вывода или «I» для ввода.

Библиотека имеет всего 5 функций. Есть два конструктора, которые будут создавать портобъекты, одна функция для отправки 8-битного цифрового вывода на контакты порта, одна функция для получения 8-битного цифрового ввода от контактов порта и одна дополнительная функция для изменения / установки направления ввода-вывода порта. Здесь кратко описаны все 5 функций, а затем приведены некоторые примеры с пояснениями.

1. IO_Port_8bit (int pin1, intpin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8, char dir)

Это конструктор. Он создаст объект (ы) этого класса и, таким образом, он создаст один или несколько 8-битных портов, комбинируя разные выводы Arduino. Необходимо указать 8 различных контактов Arduino, которые будут объединены в качестве порта, а также направление данных в качестве ввода или вывода - это означает, что порт работает либо как ввод, либо как вывод. Последний аргумент dir в этом конструкторе определяет, что порт работает как ввод или вывод. Если dir ='O' означает, что порт работает как выход, а ifdir ='I', порт работает как вход. Один и тот же порт не может работать как ввод, так и вывод одновременно или поочередно. Также это указывает на ошибку, если направление данных не выбрано

2. IO_Port_8bit (int pin1, intpin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8)

Это еще один конструктор. Он также создаст объект (ы) этого класса и, таким образом, создаст один или несколько 8-битных портов, комбинируя различные выводы Arduino. Необходимо указать 8 различных контактов Arduino, которые будут объединены в качестве порта. Но он не определяет направление данных как ввод или вывод. После создания объекта порта с помощью этого конструктора необходимо задать направление порта с помощью set_IO_direction функция. Таким образом, этот конструктор позволяет программисту изменять время выполнения направления данных порта с помощью этого конструктора, тот же порт может работать как ввод или вывод альтернативно (но не одновременно)

3. set_IO_direction (char dir)

Эта функция определяет направление ввода / вывода порта. Он имеет один символьный аргумент, который может быть «I» для порта в качестве входа или «O» для порта в качестве выхода. Если направление данных не выбрано, на последовательном мониторе Arduino отображается ошибка.

4. send_8bit_data (целое число)

Эта функция отправляет 8-битные данные на указанные контакты. Просто укажите данные типа int (должно быть <255) в качестве аргумента, который напрямую передается 8 различным контактам. Если данные> 255, на последовательном мониторе Arduino отображается ошибка.

5. get_8bit_data (недействительно)

Эта функция получает 8-битные данные с указанных контактов. Он возвращает 8-битные данные типа int, считывая состояние 8 различных контактов

Пример 1:поочередно мигают 8 светодиодов с частотой 1 Гц

#include

IO_Port_8bitmyport (2, 3, 4, 5, 6, 7, 8, 9, ’O’); // создаем выходной порт

void setup () // в настройке ничего не требуется

{

}

void loop ()

{

myport.send_8bit_data (85); // отправляем данные, чтобы мигать все нечетные светодиоды

задержка (500);

myport.send_8bit_data (170); отправить данные, чтобы мигать все четные светодиоды

задержка (500);

}

Пример 2:отображение двоичной схемы счета на светодиодах от 0 до F

#include

IO_Port_8bitmy8bitport (2, 3, 4, 5, 6, 7, 8, 9); // создаем объект порта

void setup ()

{

my8bitport.set_IO_direction ('O'); // устанавливаем направление порта

}

void loop ()

{

int i;

for (i =0; i <16; i ++) // отправляем данные от 0 до 15 для отображения

{// двоичный образец

myport.send_8bit_data (i);

задержка (200);

}

}

Пример 3:укажите уровень аналогового входного напряжения на 8-битной светодиодной гистограмме

#include

IO_Port_8bitmyport (2, 3, 4, 5, 6, 7, 8, 9, ’O’); // создаем объект порта вывода

void setup ()

{

myport.send_8bit_data (255); // мигаем все светодиоды гистограммы один раз

задержка (500);

myport.send_8bit_data (0);

}

void loop ()

{

int level;

level =analogRead (A0); // считываем аналоговое входное напряжение

level =map (level, 0, 1023, 0, 80); // ограничиваем напряжение от 0 до 80

// увеличить или уменьшить уровень гистограммы asper input

если ((уровень <80) &&(уровень> 70)) myport.send_8bit_data (255);

elseif ((уровень <=70) &&(уровень> 60)) myport.send_8bit_data (127);

elseif ((уровень <=60) &&(уровень> 50)) myport.send_8bit_data (63);

elseif ((уровень <=50) &&(уровень> 40)) myport.send_8bit_data (31);

elseif ((уровень <=40) &&(уровень> 30)) myport.send_8bit_data (15);

elseif ((уровень <=30) &&(уровень> 20)) myport.send_8bit_data (7);

elseif ((уровень <=20) &&(уровень> 10)) myport.send_8bit_data (3);

elseif ((уровень <=10) &&(уровень> 0)) myport.send_8bit_data (1);

elseif (level ==0) myport.send_8bit_data (0);

}

Пример 4:получение 8-битного цифрового ввода от DIP-переключателей и отображение значения на последовательном мониторе

#include

IO_Port_8bitmyport (2, 3, 4, 5, 6, 7, 8, 9); // создаем объект порта

void setup ()

{

Serial.begin (9600); // инициализируем последовательную связь.

myport.set_IO_direction («Я»); // устанавливаем направление порта

Serial.println ("8-битный тест порта ввода");

}

void loop ()

{

int input_byt;

input_byt =myport.get_8bit_data (); // считываем состояние DIP-переключателя

Serial.print ("полученный ввод ="); // и

Serial.println (input_byt); // отображаем его значение

задержка (1000);

}

Код

  • Библиотека Arduino для 8-битного порта ввода-вывода
Библиотека Arduino для 8-битного порта ввода-вывода C / C ++
библиотека создает 8-битный порт ввода-вывода из контактов Arduino и отправляет / получает 8-битный цифровой вывод / ввод
 Без предварительного просмотра (только загрузка). 

Схема

Порт ввода-вывода отправляет или получает прямые 8-битные данные с разных контактов

Производственный процесс

  1. ЖК-панель с Arduino для симулятора полета
  2. Переключатель / светодиодная панель с Arduino для FS2020
  3. Мониторинг температуры SMART для школ
  4. 64-клавишная матрица клавиатуры для прототипирования для Arduino
  5. Создание безопасной зоны для устройств Android / iOS / Win10 с помощью Arduino
  6. TFT Shield для Arduino Nano - запуск
  7. Управляйте тараканом с помощью Arduino менее чем за 30 долларов
  8. Изолированный аналоговый вход для Arduino
  9. Контроллер дыхания Arduino для дешевых (USB-MIDI)
  10. Робот для супер-крутой навигации внутри помещений