Это руководство по началу работы с платой NuMaker UNO из серии микроконтроллеров Nuvoton NuMicro NUC131. Оценочная плата NuMicro® NuMaker UNO — это совместимое с Arduino оборудование, использующее микроконтроллер NuMicro® (MCU) в качестве микроконтроллера (MCU). Его функциональность может быть расширена с помощью дополнений Arduino. С помощью Arduino IDE пользователи могут разрабатывать свои приложения и использовать большое количество примеров с открытым исходным кодом.
Используя эту плату, пользователи могут легко разрабатывать и проверять прикладные программы с АЦП, ШИМ, I²C, SPI, UART и другими периферийными функциями. Пользователь может устанавливать различные функции в наборе разработчика NuMaker UNO или расширять периферийные функции в соответствии с потребностями пользователя в наборе разработчика.
NuMaker UNO совместим по выводам с платой Arduino UNO.
Цифровые выводы обеспечивают UART, I2C, LED, INT и 10-канальный ШИМ. Кроме того, расширенные выводы MCU NUC131SD2AE обеспечивают 24-канальный ШИМ и 6-канальный UART. Тактовый выход (CLKO) также доступен на дополнительном выводе.
В этом руководстве мы рассмотрим обзор платы Nuvoton NuMaker UNO, технические характеристики, подробности о контактах, программирование и метод использования платы с Arduino IDE. Мы рассмотрим некоторые проекты, такие как мигание светодиода, управление RGB-светом, использование аналогового контакта, использование датчика DHT11 и управление серводвигателем с помощью входа ШИМ.
Плата микроконтроллера Nuvoton NuMaker UNO NUC131
NuMaker Uno — это специальный инструмент разработки для серии NuMicro® Cortex®-M0, с помощью которого пользователи могут легко разрабатывать и проверять прикладную программу. Целью является предоставление набора для разработки и обучения обоих пакетов с периферийными функциями АЦП, ШИМ, I²C, SPI и т. д.
Пользователи могут заменить комплекты разработки NuMaker Uno другими функциями, которые также могут быть основаны на потребностях пользователя, его собственные периферийные функции комплекта разработки просты в использовании и при этом развивают необходимую гибкость. NuMaker Uno включает в себя две части: оценочную плату и отладчик/программатор Nu-Link. Nu-Link также включен, поэтому пользователям не нужен дополнительный ICE или отладка оборудования.
Характеристики платы:
- Обучение / Приложения / Отладка: полный спектр инструментов разработки.
- Легко переносить комплект для отладки разработки.
- Богатые периферийные функции микроконтроллера, такие как АЦП, ШИМ, I²C, SPI, UART…
- Высокая масштабируемость: соединительная плата может меняться в зависимости от различных прикладных модулей.
- Поддержка подключения Arduino UNO Revision 3.
- Поддержка виртуального COM-порта на USB.
- Поддержка среды разработки Arduino IDE, IAR EWARM и Keil RVMDK.
- Расширение ресурсов:
- Разъемы расширения Nuvoton Microelectronics Morpho для полного доступа ко всем входам/выходам NUC131.
- Встроенный отладчик/программатор Nu-Link с разъемом SWD.
- Гибкий блок питания платы:
- USB VBUS (можно использовать переход для изменения 5 В или 3,3 В).
- Внешнее напряжение питания VIN (7В<VIN<12В) от трансформатора.
- Внешнее напряжение питания 2,5 ~ 5,5 В от другого источника питания, входное напряжение на вывод VDD.
- Состояние светодиодов
- Состояние питания, пользователя, Tx, Rx и ICE.
- Одна кнопка для СБРОСА.
Советы по развитию NuMaker UNO
Плата разработки NuMaker UNO имеет левую и правую части. Левая часть называется целевой платой NuMaker UNO, а правая часть — отладочным адаптером, называемым Nu-Link-Me. NuMaker UNO совместима по выводам с Arduino UNO версии 3.
Правая часть — это отладочный адаптер, называемый Nu-Link-Me, который подключает USB-порт ПК к целевой системе пользователя (через последовательный проводной отладочный порт) и позволяет пользователям программировать и отлаживать встроенные программы на целевом оборудовании. Помимо загрузки внешних приложений, он также предоставляет функции виртуального последовательного порта (VCOM). Отладочные сообщения через удобный для пользователя NuLink–Me отображаются на экране компьютера. NuMaker UNO поддерживает Arduino IDE, Keil и IAR.
Плата разработки NuMaker UNO обеспечивает определение выводов Arduino и расширенные разъемы для каждого вывода микроконтроллера NUC131SD2AE. Ее можно использовать для подключения платы прикладной схемы. Целевая плата также поддерживает широкий спектр источников питания, таких как ICE, VDD и GND (JP1 и JP2) или от трансформаторов 7 В ~ до 12 В. Светодиодный индикатор состояния предназначен для питания, ввода-вывода, TX, RX и ICE.
Настройки питания
Существует три способа подачи питания на плату NuMaker UNO:
- Метод 1: Через USB-интерфейс Nu-Link-Me. Это питание будет проходить через регулятор напряжения LDO до 3,3 В, JPR1 может использоваться для регулировки питания VDD до 5 В или 3,3 В.
- Метод 2: Через JP1 на плате разработки к VDD с помощью источника питания постоянного тока 2,5 В ~ 5,5 В.
- Метод 3: Через трансформатор (7В ~ 12В), а затем напряжение преобразуется в 5В через понижающую схему.
Настройка функции виртуального COM-порта USB
Функция Virtual COM может использоваться для Arduino IDE, Keil и IAR. Чтобы включить функцию VCOM на Nu-Link Me, включите все контакты SW2. Чтобы включить функцию UART0, выключите контакты 2 ~ 4 на SW2. Пожалуйста, обратитесь к таблице ниже.
Расширенная компоновка разъемов NuMaker UNO NUC131SD2AE
Это расширенная схема разъемов NuMaker UNO NUC131SD2AE, аналогичная плате Arduino UNO R3.
NuMaker UNO имеет на борту целевой чип NUC131SD2AE и расширенные разъемы Arduino UNO (NU1, NU2, NU3, NU4 и NU5) для LQFP64-pin. В таблице показано назначение контактов для NuMaker UNO.
Настройка Arduino IDE для работы с Nuvoton NuMaker UNO NUC131
Посетите https://www.arduino.cc/en/Main/Software и загрузите последнюю версию Arduino IDE.
После загрузки Arduino IDE установите ее на свой компьютер.
Посетите официальный сайт Nuvoton NuMaker UNO (www.nuvoton.com/NuMaker_UNO), чтобы загрузить «Драйвер Nu-Link USB».
После установки драйвера USB откройте Arduino IDE. Затем перейдите в Файл → Настройки, введите следующий URL в текстовое поле «Дополнительные URL-адреса менеджера плат» (‘Additional Board Manager URLs‘):
Перейдите в меню «Инструменты» → «Плата» → «Менеджер плат» (Tools → Board → Boards Manager) в среде Arduino IDE и найдите «Numaker». Менеджер плат покажет плату NuMaker. Вы можете установить плату для системы.
Теперь перейдите в меню «Инструменты» и выберите плату NuMaker UNO NUC131 из списка плат.
Теперь подключите плату NuMaker UNO к компьютеру с помощью USB-кабеля.
Перед подключением платы разработки NuMaker UNO к компьютеру включите SW2 функции VCOM. Все контакты SW2 должны быть включены.
Откройте диспетчер устройств и проверьте, определяется ли USB. Если он не определяется, переустановите драйвер NuLink USB.
Теперь устройство готово, и вы можете приступить к программированию NuMaker UNO NUC131 через Arduino IDE.
Пример 1: Мигание светодиода
Теперь первая программа, которую мы протестируем на этой плате, это мигание светодиода. Встроенный светодиод на плате подключен к контакту 13 этой платы с помощью подтягивающего резистора.
Скопируйте следующий код и загрузите его на плату.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } |
Во время загрузки кода в окне оболочки появится следующее сообщение.
Если вы получили это сообщение, это означает, что код был загружен на вашу плату NuMaker UNO через Arduino IDE. Встроенный светодиод на плате будет мигать с интервалом в одну секунду.
Пример 2: Управление RGB-светодиодом
Теперь давайте управлять RGB LED с помощью платы NuMaker UNO. Для этого примера вы можете использовать любой RGB LED Module.
Подключите контакты R, G, B и GND светодиода RGB к контактам 2, 3, 4 и GND на NuMaker UNO, как показано на рисунке ниже.
Теперь скопируйте следующий код и загрузите его на плату NuMaker UNO.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
const int lowestPin = 0; const int highestPin = 2; int rgbLed[]={ 2, 3, 4 }; /* R, G, B LED */ void setup() { // set pins 2 through 4 as outputs: for (int thisPin =lowestPin; thisPin <= highestPin; thisPin++) { pinMode(rgbLed[thisPin], OUTPUT); } } void loop() { // iterate over the pins: for (int thisPin =lowestPin; thisPin <= highestPin; thisPin++) { // fade the LED on thisPin from off to brightest: for (int brightness = 0; brightness < 255; brightness++) { analogWrite(rgbLed[thisPin], brightness); delay(2); } // fade the LED on thisPin from brithstest to off: for (int brightness = 255; brightness >= 0; brightness--) { analogWrite(rgbLed[thisPin], brightness); delay(2); } // pause between LEDs: delay(100); } } |
После загрузки кода будут поочередно загораться светодиоды разных цветов как показано на изображениях ниже.
Пример 3: Управление интенсивностью горения светодиода с помощью контакта АЦП (потенциометра)
Теперь давайте управлять интенсивностью мигания светодиода с помощью аналогового вывода платы NuMaker UNO. Для этого мы будем использовать потенциометр 10K и подключим его вывод к аналоговому выводу A0 платы NuMaker UNO.
Подключите положительный вывод светодиода к контакту 8 платы NuMaker UNO через резистор сопротивлением 560 Ом.
Скопируйте следующий код и загрузите его на плату NuMaker UNO.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
const int analog_ip = A0; const int LED = 8; int inputVal = 0; void setup() { pinMode (LED, OUTPUT); } void loop() { inputVal = analogRead(analog_ip); analogWrite (LED, inputVal/4); delay(100); } |
После загрузки кода поверните потенциометр так, чтобы можно было контролировать частоту мигания светодиода.
Пример 4: Чтение данных датчика влажности и температуры DHT11
Давайте подключим датчик влажности и температуры DHT11 к плате NuMaker UNO. Используя датчик DHT11, мы можем определить температуру и влажность окружающей среды. Схема подключения довольно проста.
Подключите VCC, GND и выходной контакт DHT11 к 5 В, GND и контакту 10 платы UNO.
Для подключения датчика DHT11 к плате можно использовать перемычки.
Скопируйте следующий код и загрузите его на плату NuMaker UNO.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
#include <dht11.h> dht11 DHT; #define DHT11_PIN 10 void setup() { Serial.begin(115200); Serial.println("DHT TEST PROGRAM "); Serial.print("LIBRARY VERSION: "); Serial.println(DHT11LIB_VERSION); Serial.println(); Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)"); } void loop() { int chk; Serial.print("DHT11, \t"); chk = DHT.read(DHT11_PIN); // READ DATA switch (chk) { case DHTLIB_OK: Serial.print("OK,\t"); break; case DHTLIB_ERROR_CHECKSUM: Serial.print("Checksum error,\t"); break; case DHTLIB_ERROR_TIMEOUT: Serial.print("Time out error,\t"); break; default: Serial.print("Unknown error,\t"); break; } // DISPLAT DATA Serial.print(DHT.humidity,1); Serial.print(",\t"); Serial.println(DHT.temperature,1); delay(1500); } |
После загрузки кода откройте последовательный монитор и вы сможете увидеть в нем вывод данных о влажности и температуре.
Пример 5: Управление серводвигателем с использованием ШИМ-сигнала
Теперь давайте управлять серводвигателем с помощью контакта PWM платы NuMaker UNO. Схема подключения снова довольно проста.
Подключите VCC, GND и выходной контакт серводвигателя к 5 В, GND и контакту 9 платы NuMaker UNO. Для подключения можно использовать перемычку.
Скопируйте следующий код и загрузите его на плату NuMaker UNO.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <nvtServo.h> Servo myservo; // create servo object to control a servo // twelve servo objects can be created on most boards int pos = 0; // variable to store the servo position void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object } void loop() { for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees // in steps of 1 degree******************************************************************************************************** myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } } |
После загрузки кода вал серводвигателя будет вращаться против часовой стрелки и по часовой стрелке.