Перейти к основному содержимому

Примеры на Arduino

Перед вами примеры программ для работы с различными датчиками, моторами и интерфейсами передачи данных.

Все примеры доступны в репозитории: https://github.com/VBCores/VBCoreG4_examples/tree/main


к сведению

Чтобы корректно повторить примеры и настроить пины, рекомендуется заранее прочитать pinout и документацию для каждого используемого драйвера и модуля.

BASIC

Простейшие примеры программ взаимодействия VBCore с периферией.

ПримерОписание
BlinkМигание светодиодом
DAC_exampleРабота с ЦАП (цифро-аналоговое преобразование)
ADC_voltage_measureПример работы с АЦП. В данном примере показано чтение аналогового сигнала с пина PC0.
BTN_with_SerialРабота с пользовательской кнопкой и Serial
Timer_exampleИспользование таймера
Timer_with_Serial_and_BTNМигание светодиодом с частотой из Serial
I2C_scannerПоиск устройств на шине I2C
BNO_exampleЧтение IMU BNO по I2C
AS5047P_SPI_exampleЧтение энкодера AS5047P по SPI
AS5600_I2C_exampleЧтение энкодера AS5600 по I2C
DIP_Switch_ReadingРабота с DIP‑переключателем
EEPROM_BasicБазовая работа с EEPROM
VB_EEPROM_exampleEEPROM через библиотеку VB_EEPROM

CAN / CAN-FD / Cyphal

Примеры программ для работы с CAN, CAN-FD и Cyphal CAN.

к сведению

Чтобы работать с Cyphal CAN, скачайте библиотеку libcxxcanard и скопируйте в свою папку Arduino/Libraries. Перед написанием примера с Cyphal настоятельно рекомендуем прочитать документацию к регламентированным типам данных. Это существенно облегчит вам понимание особенностей типов и их адресации

ПримерОписание
Classic_CANПередача и приём сообщений CAN
CAN_FDПередача и приём CAN-FD
Cyphal_send_angleОтправка угла по Cyphal
Cyphal_send_arrayОтправка массива по Cyphal
Cyphal_send_heartbeatОтправка и получение heartbeat
Cyphal_send_stringОтправка строки
Cyphal_send_angular_vel_and_angleОтправка угла и угловой скорости
Cyphal_recv_angular_velПриём угловой скорости

DC Driver

Примеры работы с DC‑драйвером и DC‑моторами.

к сведению

Перед тем, как приступить к работе с DC двигателем, необходимо сначала ознакомиться со схемой к DC драйверу. Обратите внимание для чего предназначены IN1, IN2, Vref, SLEEPn. ПИН PB3(SLEEPn) необходимо выставить в HIGH (что это за пин см в документации к драйверу) в функции setup(). Чтобы задать частоту ШИМа используйте функцию analogWriteFrequency(), по умолчанию она равна килогерцу (1000 Гц).

Обратите внимание на Vref - пин PA4(см в документации к драйверу). Это защита от перегрузки по току, пин Analog OCP(Over-Current Protection) reference input, то есть аналоговый вход, куда подается опорное (пороговое) напряжение. Этот вход задаёт «уровень срабатывания» защиты: чем выше напряжение — тем выше допустимый ток; чем ниже — тем раньше сработает защита.

Чтобы посчитать Vref, используйте формулу (она есть в документации к драйверу Allegro): Ipeak = Vref / (10 * Rsense) В нашей документации к драйверу указано, что Rsense = 0.01

У нас также сказано, что на PA4 стоит делитель 1:2, поэтому: Vref = 2 * 10 * Ipeak * Rsense

Если вы столкнетесь с тем, что мотор не вращается (или во время вращения на какое-то время останавливается, особенно при большой разнице между подаваемыми напряжениями), то скорее всего неверно установлен Vref

Для каждого мотора пиковый ток указан в документации, исходя из него рассчитывайте Vref

ПримерОписание
Check_encoderПроверка энкодера мотора
PWMУправление DC мотором по ШИМ
EncoderAB_ReadЧтение AB‑энкодера
EncoderABZ_ReadЧтение ABZ‑энкодера
Get_velocityПолучение скорости мотора
Get_ang_vel_from_encoderУгол и скорость по энкодеру
Get_ang_from_encoderABZУгол по ABZ‑энкодеру

BLDC Driver

Примеры работы с BLDC‑драйвером и BLDC‑моторами (SimpleFOC).

ПримерОписание
Find_number_of_pole_pairsОпределение числа пар полюсов
Velocity_controlУправление скоростью
Torque_voltage_controlУправление моментом (по напряжению)

Stepper Driver

Примеры работы с драйвером шагового двигателя.

ПримерОписание
Control_by_SPIУправление шаговым двигателем по SPI
Control_by_tmcLibУправление через библиотеку TMCStepper

Other Examples

Примеры совместного использования драйверов моторов и CAN / Cyphal.

ПримерОписание
CanFD_with_dc_motor_ctrlУправление DC мотором по CAN-FD
Cyphal_with_dc_motor_ctrlУправление DC мотором по Cyphal
Cyphal_with_bldc_velocity_controlУправление BLDC мотором по Cyphal