ЦАП и Arduino Uno
- Войдите на сайт для отправки комментариев
Чт, 30/05/2013 - 17:55
Подключаю к ардуино микрофон и оцифровую с него сигнал через встроеный ацп ардуино. Затем мне надо эту цифру передать на ЦАП через SPI. Подскажите като знает какой надо код. Сколько не пробовал на выходе ЦАПа нет сигнала.
А сколько пробовали? Попробуйте еще пару раз, оно начинает работать после N-го количества пробований.
Подскажите като знает какой надо код.
А вы мне не подскажите - у меня перегорела лампочка в машине, какую мне купить лампочку? с каким цоколем и какой мощности?
а что значит "a>>8" и "a&0xFF"
похоже, кому-то рановато для цап и ацп.
И вообще из теории про SPI, после SPI.begin(); на выходах SCK и MOSI низкий уровень, а на SS высокий, а у меня на MOSI высокий, может проблема в дуине?
Да не важно что это значит и не важно в чем проблема.
Давайте сначала разберемся с самой первой и главной проблемой - У меня на телефоне неправильная дата. Что бы ее исправить надо зайти в настройки телефона и исправить дату. Подскажите на какие мне нажать кнопки на моем телефоне, что бы изменить дату?
Arduino Uno. ЦАП DAC7611p
Ну наконец-то! Опишите или покажите как подключаете.
Микрофон подключен к аналоговому входу 0. ЦАП: 3 ножка к 13 входу дуино, 4 ножка к 11 входу дуино, 5 ножка к 10 входу, 1 и 7 питание, 8 ножка выход.
У этого ЦАПа не SPI, а 3-WIRE INTERFACE, а адаптировать аппаратным SPI не получится (99%), так как по даташиту отправлять нужно 12 бит. А значит нужно писать ручками функцию вывода данных в ЦАП.
а это большой код? вы не могли бы мне помочь?
а если взять плату arduino due, на ней уже есть ЦАПы, и подавать сразу на те выходы цифру с микрофона, и подключить к наушникам, звук будет слышно?
а если взять плату arduino due, на ней уже есть ЦАПы, и подавать сразу на те выходы цифру с микрофона, и подключить к наушникам, звук будет слышно?
С этим проблем не будет.
Я сам похожее делал.
а можно, пожалуйста, полностью код, а то я не знаю что должно быть ещё "//...."
В даташите можно посмотреть расположение ног ЦАПа.
а можно, пожалуйста, полностью код, а то я не знаю что должно быть ещё "//...."
Это уже весь код. Единственное, насчет analogRead - сомневаюсь, может работать медленно. По идее, его можно заменить чем-то не из Ардуиновской библиотеки, как я это сделал с ЦАП-ом. Этот пример в любом случае будет работать... Я заменил analogWrite(DAC0, var) на dacc_write_conversion_data(DACC_INTERFACE, var);
UPD:Что-то со временем не совпало
.
/
не работает(
Что не работает? Рисуите схему как подключили или выкладывайте фото.
хотя вроде работает, дую на микрофон, напряжение на выходе цапа меняется, а в этом коде учтино что АЦП 10-битное, а цап 12-битный? там полученое значение надо на 4 домножить, где это надо дописать?
нет кончно, WriteDAC(sensorValue*4);
всё работает!! спасибо большое. Прокоментируй каждую строчку кода если тебе не тяжело, очень надо для дальнейшей работы)
нет кончно, WriteDAC(sensorValue*4);
Может перегибаю палку, но WriteDAC(sensorValue<<2) будет немного быстрее(поправьте если не прав)... И вопрос: зачем в коде стоит delay(1)? - ЦАП - не успевает обрабатывать данные?
Комментировать там нечего. Компилятор сам заменит *4 на <<2 да и о какой скорости может идти речь, если кругом одни digitalWrite'ы, а задержка просто так, что бы была.
digitalWrite(CS, 0);
32
for
(
char
i = 11; i >= 0; i--)
33
{
34
digitalWrite(SDI, ((1<<i)&val)?1:0);
Вот это пожалуйсто прокоментируйте
Это код
делает это
1<<i)&val)?1:0
эти символы что делают)
а если взять плату arduino due, на ней уже есть ЦАПы, и подавать сразу на те выходы цифру с микрофона, и подключить к наушникам, звук будет слышно?
это тоже самое, что стрелять из пушки по воробьям
зачем вам ARM, если у вас с простой мегой проблемы
1<<i)&val)?1:0
эти символы что делают)
описанеи языка С почитайте...
на ножку выдается 1 если установлен соответствующий бит в переменной val
digitalWrite(SDI, ((1<<i)&val)?1:0); эту тоже самое что и
if ((1<<i)&val) digitalWrite(SDI,1) else digitalWrite(SDI,0);
а если взять плату arduino due, на ней уже есть ЦАПы, и подавать сразу на те выходы цифру с микрофона, и подключить к наушникам, звук будет слышно?
это тоже самое, что стрелять из пушки по воробьям
зачем вам ARM, если у вас с простой мегой проблемы
так а на Arduino due разве не получится?
на том звере еще как получится, та даже 2 ЦАПа :)
Вот и славненько
Спасибо всем за помощь!