Страница 1 из 2
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 27 фев 2019, 19:09
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
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 27 фев 2019, 19:26
Brand2
В esp32 есть два ЦАП 8 битных,на гитхабе были примеры для синусоиды,пилы и треугольника,макс частота кажется до 1,3-1,5 кгц
[spoiler]
https://www.youtube.com/watch?v=T4jg1j0 ... e=youtu.be[/spoiler]
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 27 фев 2019, 20:05
AVGN
[ref]Brand2[/ref], для регулировки напряжения есть?
Вот сделал
блок
Тестируйте.
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 27 фев 2019, 21:45
Brand2
[ref]AVGN[/ref], не понял ,что значит для регулировки*?
Можно выставлять любое напряжение от 0-3,2 V
dacWrite(0-255);
вот на ютьюбе есть урок про него
[spoiler]
https://www.youtube.com/watch?v=T4jg1j0 ... e=youtu.be[/spoiler]
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 10:04
diman27
А 10-bit можно сделать или ограничения есть?
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 10:14
Brand2
[ref]diman27[/ref], только 8 бит
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 10:29
Sancho
diman27 писал(а): 28 фев 2019, 10:04А 10-bit можно сделать или ограничения есть?
Brand2 писал(а): 28 фев 2019, 10:14diman27, только 8 бит
Други, Вы о какой платформе сейчас спрашиваете/отвечаете?
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 12:09
diman27
Uno, nano, и т.д.
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 12:22
Labu559
diman27 писал(а): 28 фев 2019, 10:04А 10-bit можно сделать или ограничения есть?
Попробую теоретически развить эту интересную идею с разрешения Уважаемого [ref]AVGN[/ref]. Наверное можно до скольких угодно, пока не закончатся резисторы и сдвиговые регистры, пересчитав токи (резисторного делителя) и научив програмно Ардуинку управлять сборкой [spoiler title=под спойлером.]
74HC595asDAC.jpg
[/spoiler]

ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 12:36
Sancho
[ref]Labu559[/ref], И это будет очень быстрый ЦАП. Останется обеспечить очень стабильное питание и подобрать резисторы

А почему все резаки одинаковые, не r-2*r ?
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 12:53
AVGN
[ref=#ff8000]Sancho[/ref], Вы видите проблемы запилить используя порты PB+PD?
Вот здесь на Atmega8 задействовали все выходы PD+PC два вывхода.
[spoiler]
R2R.JPG
[/spoiler]
Есть сомнения?
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 14:18
Sancho
AVGN писал(а): 28 фев 2019, 12:53Sancho, Вы видите проблемы запилить используя порты PB+PD?
Нет.
AVGN писал(а): 28 фев 2019, 12:53Есть сомнения?
А это к чему?
Исходя из того, что данный блок был сделан Вами в контексте идеи из темы о блоке питания, могу Вам сказать, что я бы использовал внешние ЦАПы, так как мне их потребовалось бы два. Для тока и напряжения. А поддержание заданных значений я переложил бы на внешний аналог. И совсем бы не думал о быстродействии схемы.
Используя указанный Василием вариант внешнего ЦАПа, можно создать трёх-фазный генератор синусоиды с выходной частотой около 1кгц с дискретизацией 256.
Вопрос лишь в количестве каналов/штук.
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 14:29
Labu559
Sancho писал(а): 28 фев 2019, 12:36Labu559, И это будет очень быстрый ЦАП
Ну да, конечно, вообще pinMode(); digitalWrite(); shiftOut(); delay() - "разработаны для высокого быстродействия". Друзья- это же платформа Ардуино, или как говорят "гуру"- функции с проверками на дурака (извините цитата). У нас-же "контруктор Лего" с кубиками-чёрными ящиками в виде пользовательских блоков. Зачем кубики курочить? Кому понятен Си и необходимо быстродействие издеваются над т.н. Ардуинщиками. А те кто спрашивает, что такое переменная, или кто всю жизнь варганил на реле конструкции, нашли этот способ складывая кубики решать задачи и удовлетворены такой скоростью. Каждому - своё. Подумал, может кто-то захочет таким способом регулировать уровень звука в усилителях- типа цифрового потенциометра. Я не читаю темы на форуме, которые мне не интересны и откуда мне знать что эта- продолжение другой про БП? Ниже скетч АрдуиноИДЕ для схемы на сдвиговых регистрах из выше. Будет кому-то нужно- засовывайте в блок (с костылями для переменной word

). В Ардуино не заливал, схему не паял, работоспособность не гарантирую- концепт вариант. Резисторы делителя, по нагрузочной способности выходов НС595, не рассчитывал, схему поправил.
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 14:55
AVGN
Sancho писал(а): 28 фев 2019, 14:18Исходя из того, что данный блок был сделан Вами в контексте идеи из темы о блоке питания, могу Вам сказать, что я бы использовал внешние ЦАПы, так как мне их потребовалось бы два. Для тока и напряжения. А поддержание заданных значений я переложил бы на внешний аналог. И совсем бы не думал о быстродействии схемы.
Расточительно. Народ
хотит экономить
На подвиги сподвигнул имеено БП вот и блок сделал на 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 и т.д).
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 15:35
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 секунд:
Обновил, должно.
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 15:49
Mining
Sancho писал(а): 28 фев 2019, 15:35loop ()
{
PORTD = a & 0xFF; // здесь младшие
PORTC = PINC & (a>>8 | 0xFC); // грузим только в два младших бита старшие входного
а++;
}
a = 1024 от нуля?
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 16:18
Sancho
Mining писал(а): 28 фев 2019, 15:49a = 1024 от нуля?
Получим 0, и далее до 1023...
Отправлено спустя 1 минуту 48 секунд:
По кругу, на выходе пила

ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 19:26
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]
?
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 19:39
Sancho
Немного не до конца. Для С.
Код: Выделить всё
// PORTC &= (a>>8 | 0xFC); меняем на
PORTC &= (a>>6 | 0xF3);
ЦАП R-2R (DAC R-2R) на Arduino
Добавлено: 28 фев 2019, 22:02
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]