Цифровые выходные контакты Arduino Micro с плавающим / высоким Z

итак, недавно я получил arduino micro для проекта, требующего управления двумя шаговыми двигателями с драйвером A4988. ранее я создавал прототипы на arduino uno, и все работало нормально, но при переключении на микро двигатели начали вести себя хаотично, например, произвольное направление шага и случайное количество выполняемых шагов. я довольно уверенно сузил его до плавающих выходных выводов, я записал направляющий вывод на микро-плавающем, при этом ~ 2 В было "выключено", а ~ 3 В было "включено" с помощью мультиметра. дело в том, что я не могу найти ничего, чтобы исправить это, кроме как сделать.

pinMode(DIR, OUTPUT);
digitalWrite(DIR, HIGH);

или внешние тянущие резисторы, и я пробовал как тянущие, так и понижающие резисторы на 100 Ком и 330 Ом, но безуспешно.

прямо сейчас у меня есть один двигатель, подключенный к uno, и один к micro, двигатель на uno по-прежнему работает нормально без внешних тянущих резисторов. на приведенной ниже схеме показана упрощенная версия подключения как uno, так и micro.

schematic

, и вот код, который работают оба arduino.

#include "A4988.h"

#define MOTOR_STEPS 200
#define DIR 10
#define STEP 9

A4988 stepper(MOTOR_STEPS, DIR, STEP);

void setup() {
    pinMode(DIR, OUTPUT);
    digitalWrite(DIR, HIGH);

    pinMode(STEP, OUTPUT);    
    digitalWrite(STEP, HIGH);

    stepper.setRPM(100);    
}

void loop() {
    stepper.rotate(360);
    delay(1000);

    stepper.rotate(-360);
    delay(1000);    
}

вот несколько ссылок на другие связанные сообщения https://stackoverflow.com/questions/14174162/arduino-micro-triggering-with-no-contact https://forum.arduino.cc/t/high-impedance-output-pin/655236

, 👍2

Обсуждение

Arduino подключен к USB, и я использую выход 5 В на микро (и я могу подтвердить его 5 В), и я также полагаю, что цифровые контакты работают на 5 В., @StanberyTrask

Ах, извините, перепутал его с Pro Micro., @chrisl

Когда вы измеряете такие напряжения на цифровом выходе Arduino, что-то электрически не так. Сохраняются ли эти напряжения, когда вы не подключаете драйвер шагового двигателя (только Arduino без каких-либо подключений)? Остается ли контакт 5 В на уровне 5 В, когда у вас подключен драйвер шагового двигателя?, @chrisl

хорошо, после пробуждения и повторного взгляда на него, похоже, это ошибка проводки с моей стороны, вместо того, чтобы быть подключенным к контактам 10 и 9 и шагнуть туда, где на 9 и 8, и я чувствую себя немного глупо, но прежде чем перейти к 10 и 9 драйвер был подключен к контактам 3 и 2 и все еще имел такое же неустойчивое поведение. и двигатель просто не будет вращаться, если его подключить к соседним контактам ((2 и заземление) / (4 и 3)) и настроить программу. так что я думаю проблема решена для меня по крайней мере, @StanberyTrask

Вы можете написать ответ на свой вопрос, @chrisl