Я новичок в использовании Arduino, и у меня есть Arduino Uno. Для проектов, которые я сделал, я использовал только цифровые контакты.
Я строю небольшой автомобиль, который использует шаговые двигатели. У меня закончились контакты для управления моторами для этого автомобиля. Для чего нужны аналоговые контакты? Могу ли я использовать аналоговые контакты для управления остальными шаговыми двигателями, которые я подключаю к Arduino, или мне нужно купить Arduino большего размера, чем Arduino Uno, чтобы управлять этой штуковиной?
Вы всегда можете использовать аналоговые контакты для цифровой записи.
digitalRead()
работает на всех выводах. Он просто округлит полученное аналоговое значение и представит его вам. ЕслиanalogRead(A0)
больше или равно 512,digitalRead(A0)
будет 1, иначе 0.digitalWrite()
работает на все штырьки, с параметром разрешена 0 или 1.digitalWrite(A0,0)
таким же , какanalogWrite(A0,0)
иdigitalWrite(A0,1)
тем же,analogWrite(A0,255)
analogRead()
работает только на аналоговых выводах. Может принимать любое значение от 0 до 1023.analogWrite()
работает на всех аналоговых выводах и на всех цифровых выводах ШИМ . Вы можете указать любое значение от 0 до 255.Аналоговые выводы позволяют вам читать / записывать аналоговые значения - в основном, вместо выдачи напряжения 0 или 5 (как с цифровым), они могут давать диапазон напряжений от 0 до 5 (как на входе, так и на выходе). Обратите внимание, что напряжение на аналоговом выходе является только наблюдаемым напряжением с помощью мультиметра. В действительности аналоговые выводы посылают импульсы сигналов 0 В и 5 В, чтобы получить выход, который «выглядит» аналогом (это ШИМ).
Относительно количества выводов: имейте в виду, что выводы PWM могут использоваться для аналогового выхода. Если у вас закончились булавки, вы можете использовать мультиплексирование, чтобы заработать больше. Не нужно приобретать еще один Arduino.
источник
the Arduino (ATmega) will report HIGH if: a voltage greater than 3.0V is present at the pin (5V boards)
что противоречит утверждению в этом постеIf analogRead(A0) is greater than or equal to 512, digitalRead(A0) will be 1, else 0
.Аналоговые Ghosh указывают, что аналоговые контакты на Arduino могут быть использованы в качестве цифровых выводов.
Однако, даже если у вас закончились булавки для управления шаговыми двигателями, вам не нужно покупать другую доску. Вы можете просто использовать промежуточный компонент, такой как регистр или мультиплексор, для управления соответствующим шаговым двигателем.
источник
Если вы можете себе это позволить, и вы действительно хотите сделать работу со степпером очень простой, попробуйте Easy Stepper . Я был очень доволен.
Из примера кодовой страницы
http://www.sc-fa.com/blog/wp-content/uploads/2013/04/20130414-080645.jpg
Также на той же странице приведен пример кода для запуска двух двигателей с двумя панелями easystepper с ускорением / замедлением: http://www.sc-fa.com/blog/wp-content/uploads/2013/04/20130414- 081018.jpg
источник