Понимание входных и выходных сигналов Arduino
Я занимаюсь исследованиями кинетики диффузии ионов металлов в материалы подложек. Для этого мне пришлось обработать 486 комбинаций образцов, а это было очень трудно и практически невозможно вручную. Поэтому я пытаюсь автоматизировать свои исследования PG с помощью Arduino UNO.
По моим оценкам, для автоматизации моего реактора потребуется 7 концевых выключателей рычажного типа, 1 датчик температуры (термопара типа К) и 1 кнопочный переключатель для запуска и остановки. На выходе было бы 2 соленоида и 2 реле для шаговых двигателей, а также одно реле для сигнального динамика. Я также хотел бы записать температуру в журнал времени. Пожалуйста, предложите целесообразность автоматизации с использованием Arduino UNO. Пожалуйста, предложите другие способы сделать то же самое.
- Спасибо.
@Atul DCT, 👍0
Обсуждение3 ответа
Ваше требование к контакту находится в пределах 1 от максимального значения Uno, если вы не мультиплексируете ни один из них. Хотя нет никаких причин не использовать их все, у вас не будет никакой расширительной комнаты, если она вам когда-нибудь понадобится. Вы можете мультиплексировать несколько концевых выключателей на аналоговый порт, как описано в этой статье, и уменьшить это требование на 5 контактов, если вам нужно больше.
В зависимости от сложности вашего алгоритма управления / сбора данных вы можете или не можете поместить его в Uno, но 32K (минус немного) флэш-памяти Uno будет содержать удивительное количество кода. Но если вам нужно будет хранить очень много данных во время эксперимента (в отличие от построения/печати их по мере создания), то именно здесь вы, скорее всего, столкнетесь с самым жестким ограничением Uno: его 2K оперативной памяти.
Не зная более подробно о вашем процессе и алгоритме, мы не можем сказать, может ли Uno сократить его. Но если вы можете записывать все свои результаты в терминал по мере их появления (и вам не нужно их хранить), то есть хороший шанс, что это возможно. @Chrisl делает хорошее замечание, что вы можете сэкономить время на редизайн, за счет использования более дорогой платы, если вы выберете Мега для начала. Но перенос программы Uno на Mega будет очень простым делом, если вам придется это сделать. (Убедившись, что все ваши назначения контактов являются символическими, а не буквальными числами, например, вы сэкономите много времени на редактировании позже, только для одного примера предварительного планирования.)
Да, вы можете полностью заставить это работать с Arduino Uno. У вас будет 14 цифровых контактов, а также 6 аналоговых контактов, которые также можно использовать в качестве цифровых контактов.
Вы можете подумать о том, чтобы сделать свое основное кодирование на вашем КОМПЬЮТЕРЕ и использовать Arduino в качестве периферийного устройства для сбора данных и управления. Вы можете использовать для этого мой скетч DaqPort с открытым исходным кодом по адресу https://www.daqarta.com/dw_rraa.htm. Я написал его для использования с макроскриптами в моем программном пакете Daqarta, но любой язык должен работать нормально. Идея состоит в том, что КОМПЬЮТЕР выполняет всю тяжелую работу, включая хронометраж, анализ и отображение. Он использует простые и эффективные двоичные команды для отправки или запроса данных с Arduino, не требуя разбора текста TTY. Daqarta включает в себя несколько демонстрационных скриптов, которые вы можете модифицировать или использовать в качестве моделей для своего собственного кода, таких как регистратор графиков, счетчик, осцилляторы и осциллограф.
Такой подход позволяет вашему основному коду быть настолько большим, использовать столько памяти, сколько вам нравится, и гораздо быстрее модифицировать его, почти интерактивно, по сравнению с перекомпиляцией скетчей на Arduino. Обратите внимание, что вам не нужна лицензия Daqarta, чтобы использовать ее с Arduino.
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Для перечисленных компонентов требуется 13 цифровых контактов + все, что ваш датчик температуры имеет в качестве интерфейса (может быть простым аналоговым сигналом, или проводом OneWire, или I2C). Вы можете сделать это с помощью Uno, но я бы посоветовал напрямую обратиться к Mega, чтобы вы не столкнулись с ограничениями на аппаратное обеспечение, когда вам нужно изменить проект или что-то в него добавить., @chrisl
Для этого сайта ваш вопрос должен быть более сфокусированным. Вопрос, на который можно ответить простым " да " или "нет", недостаточно сфокусирован и не поможет другим в будущем. Поэтому мне жаль, но я проголосовал за то, чтобы закрыть этот вопрос. Вы можете отредактировать свой вопрос, если у вас есть более сфокусированный вопрос об этом., @chrisl