ЦАП R-2R (DAC R-2R) на Arduino

Создаем свой блок. Вопросы, помощь знатоков.
Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03 фев 2017, 12:23

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение AVGN »

Для регулировки напряжения от 0 до 5 вольт
на просторах буржуинского интернета набрел на темы создания ЦАП 8, 10 bit
и даже по два ЦАП на одной Ардуино
2_R-2R.jpg
dac_8bit_1_schem_FLp.png
Сделал блок ЦАП R-2R (DAC R-2R) 8 bit , от0 до 255 шагов на выходе получаем от 0 до 5V с шагом 0.02 V
копилируется, но в железе пока не проверил
DAC R-2R 8bit.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
Brand2
Лейтенант
Сообщения: 450
Зарегистрирован: 26 фев 2018, 21:27
Откуда: Haifa
Имя: Alex
Благодарил (а): 2 раза
Поблагодарили: 5 раз

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение Brand2 »

В esp32 есть два ЦАП 8 битных,на гитхабе были примеры для синусоиды,пилы и треугольника,макс частота кажется до 1,3-1,5 кгц
[spoiler]https://www.youtube.com/watch?v=T4jg1j0 ... e=youtu.be[/spoiler]
Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03 фев 2017, 12:23

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение AVGN »

[ref]Brand2[/ref], для регулировки напряжения есть?
Вот сделал блок
Тестируйте.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
Brand2
Лейтенант
Сообщения: 450
Зарегистрирован: 26 фев 2018, 21:27
Откуда: Haifa
Имя: Alex
Благодарил (а): 2 раза
Поблагодарили: 5 раз

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение Brand2 »

[ref]AVGN[/ref], не понял ,что значит для регулировки*?
Можно выставлять любое напряжение от 0-3,2 V
dacWrite(0-255);
вот на ютьюбе есть урок про него
[spoiler]https://www.youtube.com/watch?v=T4jg1j0 ... e=youtu.be[/spoiler]
Аватара пользователя
diman27
Сержант
Сообщения: 291
Зарегистрирован: 06 сен 2015, 07:33
Откуда: Белово
Благодарил (а): 4 раза

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение diman27 »

А 10-bit можно сделать или ограничения есть?
Brand2
Лейтенант
Сообщения: 450
Зарегистрирован: 26 фев 2018, 21:27
Откуда: Haifa
Имя: Alex
Благодарил (а): 2 раза
Поблагодарили: 5 раз

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение Brand2 »

[ref]diman27[/ref], только 8 бит
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение Sancho »

diman27 писал(а): 28 фев 2019, 10:04А 10-bit можно сделать или ограничения есть?
Brand2 писал(а): 28 фев 2019, 10:14diman27, только 8 бит
Други, Вы о какой платформе сейчас спрашиваете/отвечаете?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
diman27
Сержант
Сообщения: 291
Зарегистрирован: 06 сен 2015, 07:33
Откуда: Белово
Благодарил (а): 4 раза

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение diman27 »

Uno, nano, и т.д.
Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25 янв 2018, 22:23
Откуда: Bukovyna
Имя: Василий

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение Labu559 »

diman27 писал(а): 28 фев 2019, 10:04А 10-bit можно сделать или ограничения есть?
Попробую теоретически развить эту интересную идею с разрешения Уважаемого [ref]AVGN[/ref]. Наверное можно до скольких угодно, пока не закончатся резисторы и сдвиговые регистры, пересчитав токи (резисторного делителя) и научив програмно Ардуинку управлять сборкой [spoiler title=под спойлером.]
74HC595asDAC.jpg
[/spoiler] :)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Labu559 20 сен 2020, 11:01, всего редактировалось 3 раза.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение Sancho »

[ref]Labu559[/ref], И это будет очень быстрый ЦАП. Останется обеспечить очень стабильное питание и подобрать резисторы :)
А почему все резаки одинаковые, не r-2*r ?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03 фев 2017, 12:23

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение AVGN »

[ref=#ff8000]Sancho[/ref], Вы видите проблемы запилить используя порты PB+PD?
Вот здесь на Atmega8 задействовали все выходы PD+PC два вывхода.
[spoiler]
R2R.JPG
[/spoiler]
Есть сомнения?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение Sancho »

AVGN писал(а): 28 фев 2019, 12:53Sancho, Вы видите проблемы запилить используя порты PB+PD?
Нет.
AVGN писал(а): 28 фев 2019, 12:53Есть сомнения?
А это к чему?
Исходя из того, что данный блок был сделан Вами в контексте идеи из темы о блоке питания, могу Вам сказать, что я бы использовал внешние ЦАПы, так как мне их потребовалось бы два. Для тока и напряжения. А поддержание заданных значений я переложил бы на внешний аналог. И совсем бы не думал о быстродействии схемы.
Используя указанный Василием вариант внешнего ЦАПа, можно создать трёх-фазный генератор синусоиды с выходной частотой около 1кгц с дискретизацией 256.

Вопрос лишь в количестве каналов/штук.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25 янв 2018, 22:23
Откуда: Bukovyna
Имя: Василий

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение Labu559 »

Sancho писал(а): 28 фев 2019, 12:36Labu559, И это будет очень быстрый ЦАП
Ну да, конечно, вообще pinMode(); digitalWrite(); shiftOut(); delay() - "разработаны для высокого быстродействия". Друзья- это же платформа Ардуино, или как говорят "гуру"- функции с проверками на дурака (извините цитата). У нас-же "контруктор Лего" с кубиками-чёрными ящиками в виде пользовательских блоков. Зачем кубики курочить? Кому понятен Си и необходимо быстродействие издеваются над т.н. Ардуинщиками. А те кто спрашивает, что такое переменная, или кто всю жизнь варганил на реле конструкции, нашли этот способ складывая кубики решать задачи и удовлетворены такой скоростью. Каждому - своё. Подумал, может кто-то захочет таким способом регулировать уровень звука в усилителях- типа цифрового потенциометра. Я не читаю темы на форуме, которые мне не интересны и откуда мне знать что эта- продолжение другой про БП? Ниже скетч АрдуиноИДЕ для схемы на сдвиговых регистрах из выше. Будет кому-то нужно- засовывайте в блок (с костылями для переменной word :smile469: ). В Ардуино не заливал, схему не паял, работоспособность не гарантирую- концепт вариант. Резисторы делителя, по нагрузочной способности выходов НС595, не рассчитывал, схему поправил.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Labu559 02 мар 2019, 14:39, всего редактировалось 3 раза.
Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03 фев 2017, 12:23

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение AVGN »

Sancho писал(а): 28 фев 2019, 14:18Исходя из того, что данный блок был сделан Вами в контексте идеи из темы о блоке питания, могу Вам сказать, что я бы использовал внешние ЦАПы, так как мне их потребовалось бы два. Для тока и напряжения. А поддержание заданных значений я переложил бы на внешний аналог. И совсем бы не думал о быстродействии схемы.
Расточительно. Народ хотит экономить :smile38:
На подвиги сподвигнул имеено БП вот и блок сделал на 8bit на пути к 10bit.
Но с наскока что то у меня не получилось запилить 10 разрядный цап 2-r2 на портах PD+PC.
Знаете как сделать?

Отправлено спустя 16 минут 16 секунд:
Labu559 писал(а): 28 фев 2019, 14:29Резисторы делителя не рассчитывал, - увеличив колличество каналов из схемы Ув.ТС в 2-раза, уменьшил сопротивления, только не разобрался по нумерации резисторов на втором рисунке , исправлю сейчас рисунок.
Сопротивления рассчитывать и не надо.
Резисторная матрица R-2R или ЦАП R-2R так называется из-за номиналов применяемых в нём резисторов с сопротивлениями R и 2*R. Сопротивления по идее могут быть любыми (1k-2k; 10k-20k и т.д).
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение Sancho »

AVGN писал(а): 28 фев 2019, 14:39Знаете как сделать?
Возможно, так:
[spoiler]
setup ()
{

DDRD = 0xFF; // все выход
DDRC = DDRC | 0x03; // 0 и 1 выход
}

loop ()
{
PORTD = a & 0xFF; // здесь младшие
PORTC &= (a>>8 | 0xFC); // грузим только в два младших бита старшие входного
а++;

}
[/spoiler]

Отправлено спустя 15 минут 28 секунд:
А может и нет, с С, надо слегка подумать...

Отправлено спустя 18 минут 49 секунд:
Обновил, должно.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Mining
Сержант
Сообщения: 142
Зарегистрирован: 31 окт 2016, 15:01
Имя: Алексей

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение Mining »

Sancho писал(а): 28 фев 2019, 15:35loop ()
{
PORTD = a & 0xFF; // здесь младшие
PORTC = PINC & (a>>8 | 0xFC); // грузим только в два младших бита старшие входного
а++;

}
a = 1024 от нуля?
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение Sancho »

Mining писал(а): 28 фев 2019, 15:49a = 1024 от нуля?
Получим 0, и далее до 1023...

Отправлено спустя 1 минуту 48 секунд:
По кругу, на выходе пила :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03 фев 2017, 12:23

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение AVGN »

[ref=#ff8000]Sancho[/ref], Для портов PD0...PD7 + PC2...PC3 так правильно:
[spoiler]

Код: Выделить всё

setup ()
{

DDRD = 0xFF; // все выход
//DDRC = DDRC | 0x03; // 0 и 1 выход
DDRC = DDRC | 0x0C; //устанавливаем цифровые выводы PC2 и PC3 в качестве выходов
}

loop ()
{
PORTD = a & 0xFF; // здесь младшие
PORTC &= (a>>8 | 0xFC); // грузим только в два младших бита старшие входного
а++;

} 

[/spoiler]

?
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение Sancho »

Немного не до конца. Для С.

Код: Выделить всё

// PORTC &= (a>>8 | 0xFC); меняем на
PORTC &= (a>>6 | 0xF3);
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03 фев 2017, 12:23

ЦАП R-2R (DAC R-2R) на Arduino

Сообщение AVGN »

Сделал блок ЦАП R-2R (DAC R-2R) 10 bit , от0 до 1023 шагов на выходе получаем от 0 до 5V с шагом 0.005 V
копилируется для UNO, но в железе пока не проверил
DAC R-2R 10bit_test.flp

схемы подключения выходов микросхемы ATmega8, 328
[spoiler]
Изображение
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
Ответить

Вернуться в «Разработка пользовательских блоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость