Отправка синусоиды из MATLAB и чтение на Arduino Uno
Я работаю над проблемами синхронизации, связанными с выборкой данных с высокой частотой и сохранением их на SD-карте (задержки АЦП, дрейф часов и время ввода-вывода файлов). Для этого эксперимента я подумал о том, чтобы послать синусоидальную волну на аналоговый вывод Arduino Uno и заставить плату считывать образцы. Могу ли я устранить необходимость в генераторе функций и вместо этого использовать пакет поддержки Matlab для Arduino для отправки синусоиды в Arduino? (Я предполагаю, что это будет означать две программы одновременно, программу Matlab для генерации синусоиды и скетч Arduino для чтения и записи.) Я новичок в Matlab, поэтому буду признателен за любую помощь.
@Harini, 👍1
Обсуждение1 ответ
Лучший ответ:
Нет, нельзя. Arduino Uno изначально не имеет аналоговых выходов и, как вы уже догадались, он не может запускать две программы одновременно.
Возможно, вместо этого вам следует поискать решение первоначальной проблемы.
Вы должны знать, что вы не можете получить согласованные тайминги с
аналоговое чтение()
. Вам нужно будет прочитать техническое описание ATmega328p,
особенно раздел, посвященный АЦП. Затем вы настроите
АЦП самостоятельно, на уровне регистров. У него есть функция, называемая
«авто-триггер», который предназначен для обеспечения идеально последовательного
тайминги. Это то, что вы ищете.
- Что мне не хватает? Отправка данных из Matlab в Arduino на Micro SD
- Arduino и MatLab с OWI Robotic Arm Edge - Проблема с I2C
- про получение float на матлабе от ATmega32 Avr
- Получение данных от сети 120В 50/60Гц
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
Итак, у вас есть проблема с реализацией эскиза Arduino или кода Matlab? Как вы собираетесь выводить аналоговый сигнал? Пожалуйста, покажите нам, что вы уже пробовали., @Sim Son
Я хотел бы знать, возможен ли запуск двух таких программ одновременно. Кроме того, я собираюсь записать вывод на SD-карту, поэтому скетч Arduino будет иметь только функции AnalogRead() и file.print(). Я не уверен, как работать с кодом Matlab (опять же, только если возможен запуск двух программ)., @Harini
Нет, это невозможно. Только 1 программа за раз. Используйте второй Ардуино. Обратите внимание, что в Arduino Uno нет настоящего ЦАП. Если вы используете
analogWrite()
, он будет выводить волну ШИМ, а не фактическое аналоговое напряжение., @chrisl