Как изменить номер порта ардуино

В этой инструкции, для примера, рассмотрим начало работы в операционной системе Windows. Для операционных систем Microsoft (Windows 2000/Vista) различия незначительны, они в основном относятся к названиям вкладок в...

В этой инструкции, для примера, рассмотрим начало работы в операционной системе Windows. Для операционных систем Microsoft (Windows 2000/Vista) различия незначительны, они в основном относятся к названиям вкладок в Диспетчере устройств. В прочих операционных средах, таких как Linux, FreeBSD, Mac OS X и т.д, порядок настройки значительно отличается. При необходимости организовать работу с этим программным обеспечением, рекомендуем искать ответы на вопросы на основном сайте разработчика http://www.arduino.cc .

В качестве подключаемой платформы возьмём Arduino Uno. Разница с другими платами у неё минимальна.

Кабель для связи с ПК

Для передачи данных с персонального компьютера на Arduino, необходимо подыскать соответствующий кабель. С отдельными платами кабель не поставляется, только есть в стартовом наборе Arduino для практикующего конструктора-программиста.

Arduino Uno, Arduino Mega 2560 соединяются кабелем со штекерами USB тип А. Такой кабель часто применяется для подключения принтера или сканера.

Arduino Leonardo, Arduino Due для подключения имеют гнездо micro USB тип В.

Arduino Nano, Freeduino Nano подключаются через гнездо mini USB тип B.

гнездо mini USB тип B

Для подключения Freeduino MaxSerial потребуется кабель последовательного порта 9M-9F.

9M-9F.Установка Arduino IDE

Arduino IDE — интегрированная среда разработки софта для Arduino устройств, устанавливаемая на компьютер.

В зависимости от модели платы важно правильно выбрать подходящую версию Arduino IDE:

  • Arduino IDE 1.6.4 — для многих плат, кроме Arduino Leonardo ETH и Arduino M0 (программное обеспечение от Arduino LLC).
  • Arduino IDE 1.7.7 — для всех типов плат (программное обеспечение от Arduino SRL).

Частичная несовместимость ПО стала следствием разногласий между отцами-основателями Arduino итальянцами Массимо Банзи и Джанлука Мартино, которые не смогли договориться о дальнейшем курсе развития компании. Завод, на котором разрабатывают и производят оригинальные платформы Arduino, под управлением Джанлука Мартино откололся от головной компании Arduino LLC и стал самостоятельной компанией Arduino SRL (ранее Smart Projects Srl).

Запуск Arduino IDE

После запуска успешно установленной Arduino IDE, должна открыться графическая консоль, как на картинке внизу.

После запуска

Возникла неполадка: Arduino IDE не запускается.

Способ устранения.

Скорее всего, на компьютере установлена неподходящая виртуальная среда JRE (Java Runtime Environment), необходимая для запуска графических приложений.

Возвратитесь к переустанавке Arduino IDE: на этот раз инсталлятор развернет работу по настройке JRE.

Подключение плат Arduino к компьютеру

После успешного запуска среды разработки Arduino IDE пришло время связать какую-то платформу Arduino с компьютером. Как вы уже знаете, подключение плат Arduino к ПК выполняется через USB-кабель.

Соединив консоль Arduino с ПК, на ней загорится один светодиод «ON», и начнёт мигать другой «L». Это означает, что через кабель подано питание и микроконтроллер начал выполнять предустановленную на заводе программу Blink (мигание).

Остается только узнать, какой номер COM-порта присвоил компьютер нашей плате Arduino, что важно для корректной работы программного обеспечения Arduino IDE с новым устройством.

Номер COM-порта можно узнать в «Диспетчере устройств», вкладка «Порты (COM и LPT)».

На системах Windows скорее всего нашей Arduino Uno с последовательным интерфейсом присвоится один из портов COM1 или COM2. Для Ардуино с USB-контроллером портом ввода будет COM4, COM5, COM6 или выше.

На системах Linux последовательным портом будет USB0 либо USB1.

port

Высветилось новое устройство Arduino в «Диспетчере устройств» — значит, операционная система распознала нашу плату, нашла для неё подходящий USB-драйвер и присвоила номер её интерфейсу. При совместном подключении ещё одной платы Arduino, ей присвоиться уже другой номер порта.

Возникла неполадка: при подключении платы Arduino к компьютеру, в Диспетчере устройств она не появляется.

Способы устранения:

  1. Не всунут до конца или поврежден USB-кабель или порт.
  2. Нет драйвера для этой платы Arduino. Если у вас китайская Arduino или от другого неизвестного производителя, попробуйте переустановить USB-драйвер вручную.
  3. Блокировка со стороны антивирусника.
  4. Неисправна плата Arduino.

Настройка Arduino IDE

В открытой Arduino IDE, заходим: Инструменты > Порт > выбираем номер порта COM — сообщаем программе номер порта, к которому подключена микропроцессорная платформа Arduino.

Настройка Arduino IDE

Чтобы у прошивающей программы Arduino IDE не осталось никаких сомнений, с чем ей предстоит работать, указываем тип нашей подключенной платы. Для этого переходим по меню: Инструменты > Плата > выбираем тип своей платы Arduino.

Настройка Arduino IDE

Возникла неполадка: во вкладке Порт нет ни одного COM-порта.

Способ устранения.

Очевидно, нарушено соединение устройства Arduino с компьютером. Верните устойчивое соединение с ПК.

Или нет драйвера. Скачать можно в конце статьи.

Как проверить подключение устройства Arduino

Все числовые данные, поступающее через COM-порт, выводятся в Монитор порта во всё той же удобной графической среде Arduino IDE. Следовательно, нажав соответствующую иконку «Монитор порта» в верхнем правом углу консоли или найдя соответствующий пункт в меню Сервис, по изменяющимся числам в открывшимся окошке можно убедиться, что через USB-кабель передаются данные, а значит, и плата Arduino надежно подключена.

Как проверить подключение

Обратите внимание, что в нижней части окошка Монитора порта выводится информация о скорости работы с COM-портом «19200 baud» (19200 бит/сек). Такая скорость задана по умолчанию в предустановленном скетче на плате Arduino. В этом скетче есть строка Serial.begin(19200), в которой можно задать любую требуемую скорость передачи, но это возможно только при работе через USB-кабель. Ежели передача данных идет через радиоканал Bluetooth, то скорость обмена с COM-портом должна быть задана заранее, точно такой же, какую мы выбираем при отладке Bluetooth-модуля.

Возникла неполадка: невероятно тормозит Arduino IDE при навигации по меню.

Способ устранения.

В Диспетчере устройств, во вкладке Bluetooth Serial отключите Bluetooth-соединение с мобильным телефоном. Все внешние подключения через Bluetooth значительно пожирают объем виртуальной памяти.

Загрузка первого скетча

Соединение установлено, среда разработки настроена — теперь в ваших руках отлаженный инструмент для прошивки любых микроконтроллеров AVR серии: ATtiny, ATmega, AT90S, AT90CAN, AT90PWM.

В среде разработки Arduino IDE есть много готовых образцов для различных задач, но для проверки отзывчивости платы на перепрошивку достаточно внести небольшие изменения в предустановленную программу Blink (мигание светодиода «L» на плате).

Загрузка первого скетча

Достаточно в открытом эскизе Blink внести свои изменения в строчке delay(1000), нажать «Вгрузить» и засечь изменения в работе платы Arduino.

Загрузка первого скетча

Установив delay(500) — светодиод «L» будет мигать в два раза чаще, с задержкой в пол секунды.

Задав delay(100) — светодиод «L» будет загораться и гаснуть в 10 раз быстрее, чем по заводской настройке, то есть каждые 100 миллисекунд.

Возникла неполадка: при загрузке скетча всплыла ошибка вида «not in sync».

Способ устранения.

Значит, подключенная платформа Arduino не была распознана операционной системой. Вернитесь к пунктам установки правильного номера COM-порта и модели платы в меню Инструменты Arduino IDE.

Да и напоследок, если вы купили плату Arduino на каком-нибудь онлайн китайском рынке, то очень часто возникают проблемы при подключении платы – просто она не определяется. Чтобы решить эту проблему умельцами был создан драйвер . СКАЧАТЬ

Автор: Виталий Петрович.


Сб, 23/04/2022 — 22:36

#1

Green

Offline

Зарегистрирован: 01.10.2015

Поляна, ну вы же должны понимать, что бы его добавить, ведь нужно его иметь… Или нет?

  • Войдите на сайт для отправки комментариев

Сб, 23/04/2022 — 22:39

#2

Komandir

Komandir аватар

Offline

Зарегистрирован: 18.08.2018

Можно в Windows поменять номер порта для устройства и тогда IDE его увидит с новым номером.

  • Войдите на сайт для отправки комментариев

Сб, 23/04/2022 — 22:43

#3

polyana

Offline

Зарегистрирован: 23.04.2022

Green пишет:

Поляна, ну вы же должны понимать, что бы его добавить, ведь нужно его иметь… Или нет?

у меня точно такая же arduino nano, как у чела, который мне скинул этот скрин, но у него есть COM6 порт, а у меня их вообще не было, поэтому мне нужен точно такой же порт

  • Войдите на сайт для отправки комментариев

Сб, 23/04/2022 — 22:53

#4

Green

Offline

Зарегистрирован: 01.10.2015

У тебя точно такая же Нано, но не точно такой же комп как у чела. Чувствуешь, к чему нужно стремиться?))

  • Войдите на сайт для отправки комментариев

Вс, 24/04/2022 — 11:52

#5

b707

Offline

Зарегистрирован: 26.05.2017

Поляна, чтобы все работало правильно, в ардуино надо выбирать порт не » как у того чела», а порт, к которому на вашем компе подключена ардуина, в аашем случае com3

  • Войдите на сайт для отправки комментариев

Вс, 24/04/2022 — 12:01

#6

SAB

Offline

Зарегистрирован: 27.12.2016

В виндовсе переименуйте существующий порт в СОМ6 и всё. Я не знаю зачем надо это в Arduino IDE, а вот в Processing это может быть актуально, потому как номер порта там зачастую  задают явно.

  • Войдите на сайт для отправки комментариев

Вс, 24/04/2022 — 12:03

#7

ua6em

ua6em аватар

Offline

Зарегистрирован: 17.08.2016

идёшь в диспетчер устройств и меняешь назначенный системой порт на нужный тебе:

ЗЫ будет актуально ТОЛЬКО для этого гнезда USB

  • Войдите на сайт для отправки комментариев

Вс, 24/04/2022 — 13:06

#8

b707

Offline

Зарегистрирован: 26.05.2017

ua6em пишет:

идёшь в диспетчер устройств и меняешь назначенный системой порт на нужный

да у него мозгов не хватит…

Задача менять com3 на com6 могла придти в голову только тому, чей уровень в ардуино как у замшелого пня

  • Войдите на сайт для отправки комментариев

Вс, 24/04/2022 — 13:19

#9

ua6em

ua6em аватар

Offline

Зарегистрирован: 17.08.2016

или COM3 распределён под другие цели

  • Войдите на сайт для отправки комментариев

Вс, 24/04/2022 — 13:21

#10

b707

Offline

Зарегистрирован: 26.05.2017

ua6em пишет:

или COM3 распределён под другие цели

это как-то меняет что ТС — пень? :)

  • Войдите на сайт для отправки комментариев

Как изменить номер виртуального COM порта

Как изменить номер виртуального COM порта

За последнее время я подключал к своему компьютеру много различных Arduino, конвертеров USB-TTL, так что подключая завалявшийся где-то USB-TTL конвертер на 3.3 вольта для подключения ESP8266, я обнаружил, что система его видит как COM22. XTCOM_UTIL поддерживает номера портов до COM6, а ESP Flash Download Tool максимум COM16, поэтому резонно возник вопрос

Ответ достаточно прост. Для начала, попробуйте сразу сделать пункт 7 этой инструкции. Возможно, что вам повезет, и остальное просто не потребуется. Если нет, то начинайте с самого начала.

1. Физически отключаем от USB все устройства, к которым подключены виртуальные COM порты (в моем случае это USB-TTL конвертер)

2. Запускаем cmd.exe (я предпочитаю использовать Far Manager — он поддерживает историю команд)

3. В командной строке пишем: set DEVMGR_SHOW_NONPRESENT_DEVICES=1 (регистр букв роли не играет — просто имена переменных окружения принято писать большими буквами). Данная команда включает отображение отсутствующего оборудования в диспетчере устройств в текущем сеансе

4. Далее вводим команду devmgmt.msc — это команда запуска диспетчера устройств. Важно запустить диспетчер устройств именно из командной строки.

5. В диспетчере устройств в меню Вид выбираем Показать скрытые устройства, идем в раздел Порты COM и LPT и удаляем все COM3-COM99

6. Обратно подключаем наше устройство (у меня это USB-SERIAL CH340) — происходит автоматическая установка драйвера и, вуаля — теперь вместо COM22 у меня COM3

7. Если вам не понравился номер порта, который автоматически выбрала система, то вы можете его сменить. Для этого в диспетчере устройств заходим в свойства нашего виртуального COM-порта, переходим на вкладку Параметры порта, далее жмем Дополнительно и выбираем любой свободный номер порта.

Если вы хотите все время контролировать номера виртуальных COM портов от различных устройств, то имеет смысл установить DEVMGR_SHOW_NONPRESENT_DEVICES=1 постоянно. Для этого нужно зайти в свойства компьютера на рабочем столе (или зайти в Панель управления — Система) и выбрать слева Дополнительные параметры системы, далее вкладка Дополнительно, затем Переменные среды. В разделе Системные переменные нажать Создать и ввести имя переменной DEVMGR_SHOW_NONPRESENT_DEVICES и ввести ее значение 1. Теперь у вас всегда будут отображаться все отключенные устройства.

Вышеперечисленные действия справедливы не только для Windows 7, но и для других версий.

Рассмотрим начало работы с Arduino IDE в операционной системе Windows на примере Uno. Для других плат разница минимальна — эти особенности перечислены на страницах описания конкретных плат.

1. Установка Arduino IDE под Windows

Установите на компьютер интегрированную среду разработки Arduino IDE.

Шаг 1

Выберите версию среды в зависимости от операционной системы.

Шаг 2

Нажмите на кнопку «JUST DOWNLOAD» для бесплатной загрузки программы.

2. Запуск Arduino IDE

Запустите среду программирования.

Arduino IDE не запускается?

Вероятнее всего, на компьютере некорректно установлена JRE — Java Runtime Environment. Для решения проблемы переустановите программу.

3. Подключение платы Arduino к компьютеру

  1. Соедините Arduino с компьютером по USB-кабелю. На плате загорится светодиод «ON» и начнёт мигать светодиод «L». Это значит, что на плату подано питание и микроконтроллер начал выполнять прошитую на заводе программу «Blink».

  2. Для настройки Arduino IDE под конкретную модель узнайте, какой номер COM-порта присвоил компьютер вашей плате. Зайдите в «Диспетчер устройств» Windows и раскройте вкладку «Порты (COM и LPT)».

Операционная система распознала плату Arduino как COM-порт и назначила номер 2. Если вы подключите к компьютеру другую плату, операционная система назначит ей другой номер. Если у вас несколько платформ, очень важно не запутаться в номерах COM-портов.

Что-то пошло не так?

После подключения Arduino к компьютеру, в диспетчере устройств не появляются новые устройства? Это может быть следствием следующих причин:

  • Неисправный USB-кабель или порт

  • Блокировка со стороны операционной системы

  • Неисправная плата

4. Настройка Arduino IDE

Для работы среды Arduino IDE с конкретной платформой необходимо выбрать название модели и номер присвоенного плате COM-порта.

  1. Для выбора модели Arduino зайдите в меню: и укажите соответствующую плату.

  2. Для выбора номера COM-порта перейдите в меню: и укажите нужный порт.

Поздравляем, среда Arduino IDE настроена для прошивки вашей платы.

Что-то пошло не так?

  • Список последовательных портов пуст? Значит, платформа некорректно подключена к компьютеру или не установлен драйвер. Вернитесь к настройке соединения между платой и ПК.

  • Arduino IDE тормозит при навигации по меню? Отключите в диспетчере устройств все внешние устройства типа «Bluetooth Serial». Например, виртуальное устройство для соединения с мобильным телефоном по Bluetooth может вызвать такое поведение.

5. Загрузка первого скетча

Среда настроена, плата подключена. Пора прошивать платформу.

Arduino IDE содержит большой список готовых примеров, в которых можно быстро подсмотреть решение какой-либо задачи.

  1. Откройте распространенный пример — «Blink»:.

  2. Откроется окно с демонстрационным примером.

  3. Немного модифицируйте код, чтобы увидеть разницу с заводским миганием светодиода. Замените строчки:

      delay(1000);

    на:

      delay(100);

    Полная версия кода:

    blink.ino
    void setup() {
      // initialize digital pin LED_BUILTIN as an output
      pinMode(LED_BUILTIN, OUTPUT);
    }
     
    void loop() {
      // turn the LED on (HIGH is the voltage level)
      digitalWrite(LED_BUILTIN, HIGH);
      // wait for a second  
      delay(100);
      // turn the LED off by making the voltage LOW                    
      digitalWrite(LED_BUILTIN, LOW);
      // wait for a second
      delay(100);
    }
  4. Нажмите на иконку «Компиляция» для проверки кода на ошибки.

  5. Нажмите на иконку «Загрузка» для заливки на плату.

  6. После прошивки платформы светодиод «L» начнёт загораться и гаснуть каждые 100 миллисекунд — в 10 раз быстрее исходной версии. Это значит, что ваш тестовый код успешно загрузился и заработал. Теперь смело переходите к экспериментам на Arduino.

Ресурсы

Introduction: Arduino and Port Manipulation

In this article we are going to examine Arduino I/O pins in more detail by using “Port Manipulation” to control them in a much faster manner than using digitalWrite()/digitalRead().

Why? Speed! Using this method allows for much faster I/O control, and we can control or read groups of I/O pins simultaneously, not one at a time; Memory! Using this method reduces the amount of memory your sketch will use. Once again I will try and keep things as simple as possible. This article is written for Arduino boards that use the ATmega168 or ATmega328 microcontrollers (used in Arduino Duemilanove/Uno, Nano, Pro Mini, etc).

Step 1:

First, we’ll use the I/O as outputs. There are three port registers that we can alter to set the status of the digital and analogue I/O pins. A port register can be thought of as a special byte variable that we can change which is read by the microcontroller, therefore controlling the state of various I/O ports. We have three port registers to work with:

D – for digital pins seven to zero (bank D)B – for digital pins thirteen to eight (bank B)C – for analogue pins five to zero (bank … C!)Register C can control analogue pins seven to zero if using an Arduino with the TQFP style of ATmega328, such as the Nano or Pro Mini). For example see the image in this step.

Step 2:

It is very simple to do so. In void setup(), we use:

DDRy = Bxxxxxxxx

where y is the register type (B/C/D) and xxxxxxxx are eight bits that determine if a pin is to be an input or output. Use 0 for input, and 1 for output. The LSB (least-significant bit [the one on the right!]) is the lowest pin number for that register. Next, to control a bank of pins, use

PORTy = Bxxxxxxxx

where y is the register type (B/C/D) and xxxxxxxx are eight status bits – 1 for HIGH, 0 for LOW. This is demonstrated in the following example:

// Digital 0~7 set to outputs, then on/off using port manipulation

void setup() { DDRD = B11111111; // set PORTD (digital 7~0) to outputs }

void loop() { PORTD = B11110000; // digital 4~7 HIGH, digital 3~0 LOW delay(1000); PORTD = B00001111; // digital 4~7 LOW, digital 3~0 HIGH delay(1000); }

It sets digital pins 7~0 to output in void setup(). Then it alternates turning on and off alternating halves of digital pins 0~7. At the start I mentioned that using port manipulation was a lot faster than using regular Arduino I/O functions. How fast? To test the speed of port manipulation vs. using digitalWrite(), we will use the circuit in the image.

Step 3:

Now to analyse the output at digital pins zero and seven using a digital storage oscilloscope. Our first test sketch turns on and off digital pins 0~7 without any delay between PORTD commands – in other words, as fast as possible. The sketch:

// Digital 0~7 set to outputs, then on/off using port manipulation

void setup() { DDRD = B11111111; // set PORTD (digital 7~0) to outputs }

void loop() { PORTD = B11111111; PORTD = B00000000; }

In the image, digital zero is channel one, and digital seven is channel three. Wow – check the frequency measurements – 1.1432 MHz! Interesting to note the longer duration of time when the pins are low vs. high.

Step 4:

[Update] Well it turns out that the extra time in LOW includes the time for the Arduino to go back to the top of void loop(). This can be demonstrated in the following sketch. We turn the pins on and off five times instead of once:

void setup() { DDRD = B11111111; // set PORTD (digital 7~0) to outputs }

void loop() { PORTD = B11111111; PORTD = B00000000; PORTD = B11111111; PORTD = B00000000; PORTD = B11111111; PORTD = B00000000; PORTD = B11111111; PORTD = B00000000; PORTD = B11111111; PORTD = B00000000; }

And the results from the MSO. You can see the duty cycle is much closer to 50% until the end of the sketch, at which point around 660 nanoseconds is the time used between the end of the last LOW period and the start of the next HIGH

Step 5:

Next we do it the normal way, using this sketch:

// Digital 0~7 set to outputs, then on/off using digitalWrite()

void setup() { for (int a=0; a<8; a++) { pinMode(a, OUTPUT); } }

void loop() { for (int a=0; a<8; a++) { digitalWrite(a, HIGH); } for (int a=0; a<8; a++) { digitalWrite(a, LOW); } }

And the results in the image.

Step 6:

That was a lot slower – we’re down to 14.085 kHz, with a much neater square-wave output. Could some CPU time be saved by not using the for loop? We tested once more with the following sketch:

// Digital 0~7 set to outputs, then on/off using individual digitalWrite()
void setup() { for (int a=0; a<8; a++) { pinMode(a, OUTPUT); } }

void loop() { digitalWrite(0, HIGH); digitalWrite(1, HIGH); digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(0, LOW); digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); }

and the results in the image.

A small speed boost, the frequency has increased to 14.983 kHz. Hopefully you can now understand the benefits of using port manipulation. However there are a few things to take note of:

  • You can’t control digital pins 0 and 1 (in bank D) and use the serial monitor/port. For example if you set pin zero to output, it can’t receive data!
  • Always document your sketch – take pity on others who may need to review it later on and become puzzled about wchich bits are controlling or reading what!

Step 7:

Now to waste some electron flows by blinking LEDs. Using the circuit described earlier, the following sketch will create various effects for someone’s enjoyment:

// Fun with 8 LEDs on digital 7~0
void setup() { DDRD = B11111111; // set PORTD (digital 7~0) // to output }

byte a = B11111111; byte b = B00000001; byte c = B10000000; byte e = B10101010;

void krider() { for (int k=0; k<5; k++) { for (int z=0; z<8; z++) { PORTD = b << z; delay(100); }

for (int z=0; z<8; z++) { PORTD = c >> z; delay(100); } } }

void onOff() { for (int k=0; k<10; k++) { PORTD = a; delay(100); PORTD = 0; delay(100); } }

void invBlink() { for (int z=0; z<10; z++) { PORTD = e; delay(100); PORTD = ~e; delay(100); } }

void binaryCount() { for (int z=0; z<256; z++) { PORTD = z; delay(100); } PORTD=0; }

void loop() { invBlink(); delay(500); binaryCount(); delay(500); krider(); delay(500); onOff(); }

with the results in the video.

Step 8: I/O Pins As Inputs

Now to use the I/O pins as inputs. Again, it is very simple to do so. In void setup(), we use:

DDRy = Bxxxxxxxx

where y is the register type (B/C/D) and xxxxxxxx are eight bits that determine if a pin is to be an input or output. Use 0 for input. The LSB (least-significant bit [the one on the right!]) is the lowest pin number for that register. Next, to read the status of the pins we simply read the byte:

PINy

where y is the register type (B/C/D). So if you were using port B as inputs, and digital pins 8~10 were high, and 11~13 were low, PINB would be equal to B00000111. Really, that’s it!

Step 9:

Now for another demonstration using both inputs and outputs. We will use a push-wheel switch on our inputs (digital pins 8~11), and a seven segment LED display for output (on digtal pins 7~0 – segments dp then a~f). The following sketch reads the input from the switch, which returns 0~9 in binary-coded decimal.

This value is then used in the function void disp() to retrieve the matching byte from the array “segments”, which contains the appropriate outputs to drive the seven segment LED display unit. Here is the sketch:

// inputs and outputs
byte segments[] = { B01111110, B00110000, B01101101, B01111001, B00110011, B01011011, B01011111, B01110000, B01111111, B01111011}; // digital pins 7~0 connected to display pins dp,a~g void setup() { DDRB = B00000000; // set PORTB (digital 13~8) to inputs DDRD = B11111111; // set PORTD (digital 7~0) to outputs }

void disp(int z) { PORTD = segments[z]; }

void loop() { disp(PINB); delay(100); }

with the video showing the results.

By now we hope you have an understanding of using port manipulation for your benefit. With a little effort your sketches can be more efficient in terms of speed and memory space, and also allow nifty simultaneous reading of input pins.

This post brought to you by pmdway.com – offering everything for makers and electronics enthusiasts, with free delivery worldwide.

Be the First to Share

Recommendations

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Как изменить номер пополнения киви кошелька
  • Как изменить номер подключенный к карте сбербанка
  • Как изменить номер песни
  • Как изменить номер переадресации билайн
  • Как изменить номер не меняя симку мтс

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии