Нужна помощь по АЦП в Ардуино

Тема в разделе "Arduino & Shields", создана пользователем Alexandr766, 30 ноя 2016.

Метки:
  1. Alexandr766

    Alexandr766 Нуб

    Приветствую форумчане. Нужно создать устройство, которое будет считывать аналоговые данные и оцифровывать их. Первым пунктом стоит считывание данных. Оно должно производится с максимально возможным быстродействием. На сколько я понял в ардуино 1-канальный АЦП. Если у меня 2 аналоговых сигнала, то в скетче мне их нужно читать поочередно? и как дальше хранить, передавать? Нужна помощь в скетче и консультации
     
  2. VITAL_P

    VITAL_P Нерд

    Какова дискретность сбора? Каналы считываются поочередно. Каково предназначение устройства?
    Не захват ли звука, вы собираетесь замутить?:)
    Видел я когда то в интернете там именно на ардуино в SD звук писали.
     
  3. Alexandr766

    Alexandr766 Нуб

    эмм, дискретность - это ...? мерси за нуб вопрос. Предназначение - один из блоков в цифровую часть аналогового (пока что) радиометра, далее обработка и вывод на комп. Сигнала там 2. Один чистый шум, второй с колебаниями.
     
  4. VITAL_P

    VITAL_P Нерд

    Ну цифра не магнитофон.... линейно не пишет а разбивает на маленькие кусочки, так вот это сколько запросов на запись изменения уровня например в секунду, умноженное на максимально необходимое время записи, получим необходимое количество памяти устройства. А у ардуино её не много.
     
  5. Alexandr766

    Alexandr766 Нуб

    а если использовать SD как оперативку?
     
  6. VITAL_P

    VITAL_P Нерд

    про SD я и говорил... а что не позволяет использовать линейный аудио вход компьютера для записи. Если так важно качество.
     
  7. Alexandr766

    Alexandr766 Нуб

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

    rkit Гуру

    Назовите требуемые характеристики
     
  9. Alexandr766

    Alexandr766 Нуб

    выжать из arduino максимум. т.е. если она умеет 10000 р/сек тотакой максимум (но в идеале 1Мгц), если это будет 2х канальный, то я так понимаю в скетче это последовательное считывание, соответственно быстродействие упадет в 2 раза
    Оба сигнала на частоте 1 кГц, один из которых «чистый», а второй зашумленный. Сам шум амплитудой несколько сот мВ
     
  10. rkit

    rkit Гуру

    Я так понимая, при этом не умея программировать.
     
  11. VITAL_P

    VITAL_P Нерд

    http://naf-st.ru/articles/digit/adc/
    Прочтите хотя бы начало. И сможете сформулировать вашу задачу.
    А то как я понял вы видите какую то разницу между АЦП и преобразованием аудио.
     
  12. Alexandr766

    Alexandr766 Нуб

    к сожалению - да
     
  13. Alexandr766

    Alexandr766 Нуб

    Двухступенчатый АЦП вполне похож на итоговый вариант. В конечном счете хотелось бы получить устройство, которое принимает на вход 2 аналога, оцифровывает, перемножает, суммирует и передает на комп. Как это можно реализовать максимально просто и бюджетно?
     
  14. rkit

    rkit Гуру

    Максимально просто, максимально бюджетно выжать максимум из ардуино. Такого не бывает. Выберите один из максимумов.
     
  15. Alexandr766

    Alexandr766 Нуб

    Бюджет 1-2 Ардуино. Из этого выйдет 2 канала хотяб по 10 кГц?
     
  16. Radius

    Radius Гик

    В ATmega328 АЦП работает с максимальной скоростью 15 kSPS, поэтому для 2-х каналов получится максимальная скорость 7,5 kSPS. Можно решать эту задачу на STM32. У них АЦП может работать до 5 MSPS. Но это уже не Ардуино, хотя платы достаточно дешевые.
     
  17. Unixon

    Unixon Оракул

    Нет, на 10бит железо не позволит. С уменьшением разрешения до 6..8бит еще можно. Но это опять же будет 10к сэмплов, ими вы оцифруете синус не выше 1-2кГц.
     
  18. rkit

    rkit Гуру

    Если добавите бюджета на хорошего программиста, то выйдет. Хоть до мегагерца. А без программиста я уж не знаю, чего вы там нарисуете.

    Ну чего вы рассказываете?
    http://www.atmel.com/Images/Atmel-2...-the-ADC-on-an-AVR_ApplicationNote_AVR120.pdf
    Глава 1.9. 77кГц на 1 мГц системных часов с 10 бит точности. А в ардуино 16 мГц, вот и считайте.
     
  19. Unixon

    Unixon Оракул

    Даташит на атмегу328 в разделе 29.8 ADC Characteristics говорит о падении точности на 4.5бита при максимальной скорости, итого из 10бит эффективными остаются только 6, остальные превращаются в мусор. К тому же, 1МГц - это и есть максимальная частота для АЦП при тактировании МК от 16МГц.

    В общем, вся надежда на фактическое сохранение точности на максимальной частоте...
     
    Последнее редактирование: 2 дек 2016
  20. rkit

    rkit Гуру

    У вас какой-то старый даташит. Вот последний.
    http://www.atmel.com/Images/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_datasheet.pdf
    200/13 = 15кГц. Норм.

    А на мегагерце частоты ошибка в 4 бита. Это всего 1.6%