ЦАП R-2R (DAC R-2R) на Arduino
ЦАП R-2R (DAC R-2R) на Arduino
Для регулировки напряжения от 0 до 5 вольт
на просторах буржуинского интернета набрел на темы создания ЦАП 8, 10 bit
и даже по два ЦАП на одной Ардуино Сделал блок ЦАП R-2R (DAC R-2R) 8 bit , от0 до 255 шагов на выходе получаем от 0 до 5V с шагом 0.02 V
копилируется, но в железе пока не проверил
на просторах буржуинского интернета набрел на темы создания ЦАП 8, 10 bit
и даже по два ЦАП на одной Ардуино Сделал блок ЦАП R-2R (DAC R-2R) 8 bit , от0 до 255 шагов на выходе получаем от 0 до 5V с шагом 0.02 V
копилируется, но в железе пока не проверил
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
☆Альберт Эйнштейн
-
- Лейтенант
- Сообщения: 450
- Зарегистрирован: 26 фев 2018, 21:27
- Откуда: Haifa
- Имя: Alex
- Благодарил (а): 2 раза
- Поблагодарили: 5 раз
ЦАП R-2R (DAC R-2R) на Arduino
В esp32 есть два ЦАП 8 битных,на гитхабе были примеры для синусоиды,пилы и треугольника,макс частота кажется до 1,3-1,5 кгц
[spoiler]https://www.youtube.com/watch?v=T4jg1j0 ... e=youtu.be[/spoiler]
[spoiler]https://www.youtube.com/watch?v=T4jg1j0 ... e=youtu.be[/spoiler]
ЦАП R-2R (DAC R-2R) на Arduino
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
☆Альберт Эйнштейн
-
- Лейтенант
- Сообщения: 450
- Зарегистрирован: 26 фев 2018, 21:27
- Откуда: Haifa
- Имя: Alex
- Благодарил (а): 2 раза
- Поблагодарили: 5 раз
ЦАП R-2R (DAC R-2R) на Arduino
[ref]AVGN[/ref], не понял ,что значит для регулировки*?
Можно выставлять любое напряжение от 0-3,2 V
dacWrite(0-255);
вот на ютьюбе есть урок про него
[spoiler]https://www.youtube.com/watch?v=T4jg1j0 ... e=youtu.be[/spoiler]
Можно выставлять любое напряжение от 0-3,2 V
dacWrite(0-255);
вот на ютьюбе есть урок про него
[spoiler]https://www.youtube.com/watch?v=T4jg1j0 ... e=youtu.be[/spoiler]
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
ЦАП R-2R (DAC R-2R) на Arduino
Други, Вы о какой платформе сейчас спрашиваете/отвечаете?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
ЦАП R-2R (DAC R-2R) на Arduino
Попробую теоретически развить эту интересную идею с разрешения Уважаемого [ref]AVGN[/ref]. Наверное можно до скольких угодно, пока не закончатся резисторы и сдвиговые регистры, пересчитав токи (резисторного делителя) и научив програмно Ардуинку управлять сборкой [spoiler title=под спойлером.] [/spoiler]

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Labu559 20 сен 2020, 11:01, всего редактировалось 3 раза.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
ЦАП R-2R (DAC R-2R) на Arduino
[ref]Labu559[/ref], И это будет очень быстрый ЦАП. Останется обеспечить очень стабильное питание и подобрать резисторы 
А почему все резаки одинаковые, не r-2*r ?

А почему все резаки одинаковые, не r-2*r ?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
ЦАП R-2R (DAC R-2R) на Arduino
[ref=#ff8000]Sancho[/ref], Вы видите проблемы запилить используя порты PB+PD?
Вот здесь на Atmega8 задействовали все выходы PD+PC два вывхода.
[spoiler] [/spoiler]
Есть сомнения?
Вот здесь на Atmega8 задействовали все выходы PD+PC два вывхода.
[spoiler] [/spoiler]
Есть сомнения?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
☆Альберт Эйнштейн
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
ЦАП R-2R (DAC R-2R) на Arduino
Нет.
А это к чему?
Исходя из того, что данный блок был сделан Вами в контексте идеи из темы о блоке питания, могу Вам сказать, что я бы использовал внешние ЦАПы, так как мне их потребовалось бы два. Для тока и напряжения. А поддержание заданных значений я переложил бы на внешний аналог. И совсем бы не думал о быстродействии схемы.
Используя указанный Василием вариант внешнего ЦАПа, можно создать трёх-фазный генератор синусоиды с выходной частотой около 1кгц с дискретизацией 256.
Вопрос лишь в количестве каналов/штук.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
ЦАП R-2R (DAC R-2R) на Arduino
Ну да, конечно, вообще pinMode(); digitalWrite(); shiftOut(); delay() - "разработаны для высокого быстродействия". Друзья- это же платформа Ардуино, или как говорят "гуру"- функции с проверками на дурака (извините цитата). У нас-же "контруктор Лего" с кубиками-чёрными ящиками в виде пользовательских блоков. Зачем кубики курочить? Кому понятен Си и необходимо быстродействие издеваются над т.н. Ардуинщиками. А те кто спрашивает, что такое переменная, или кто всю жизнь варганил на реле конструкции, нашли этот способ складывая кубики решать задачи и удовлетворены такой скоростью. Каждому - своё. Подумал, может кто-то захочет таким способом регулировать уровень звука в усилителях- типа цифрового потенциометра. Я не читаю темы на форуме, которые мне не интересны и откуда мне знать что эта- продолжение другой про БП? Ниже скетч АрдуиноИДЕ для схемы на сдвиговых регистрах из выше. Будет кому-то нужно- засовывайте в блок (с костылями для переменной word

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Labu559 02 мар 2019, 14:39, всего редактировалось 3 раза.
ЦАП R-2R (DAC R-2R) на Arduino
Расточительно. Народ хотит экономить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 и т.д).
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
☆Альберт Эйнштейн
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
ЦАП R-2R (DAC R-2R) на Arduino
Возможно, так:
[spoiler]
[/spoiler]setup ()
{
DDRD = 0xFF; // все выход
DDRC = DDRC | 0x03; // 0 и 1 выход
}
loop ()
{
PORTD = a & 0xFF; // здесь младшие
PORTC &= (a>>8 | 0xFC); // грузим только в два младших бита старшие входного
а++;
}
Отправлено спустя 15 минут 28 секунд:
А может и нет, с С, надо слегка подумать...
Отправлено спустя 18 минут 49 секунд:
Обновил, должно.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
ЦАП R-2R (DAC R-2R) на Arduino
a = 1024 от нуля?Sancho писал(а): 28 фев 2019, 15:35loop ()
{
PORTD = a & 0xFF; // здесь младшие
PORTC = PINC & (a>>8 | 0xFC); // грузим только в два младших бита старшие входного
а++;
}
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
ЦАП R-2R (DAC R-2R) на Arduino
Получим 0, и далее до 1023...
Отправлено спустя 1 минуту 48 секунд:
По кругу, на выходе пила

мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
ЦАП R-2R (DAC R-2R) на Arduino
[ref=#ff8000]Sancho[/ref], Для портов PD0...PD7 + PC2...PC3 так правильно:
[spoiler]
[/spoiler]
?
[spoiler]
Код: Выделить всё
setup ()
{
DDRD = 0xFF; // все выход
//DDRC = DDRC | 0x03; // 0 и 1 выход
DDRC = DDRC | 0x0C; //устанавливаем цифровые выводы PC2 и PC3 в качестве выходов
}
loop ()
{
PORTD = a & 0xFF; // здесь младшие
PORTC &= (a>>8 | 0xFC); // грузим только в два младших бита старшие входного
а++;
}
?
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
☆Альберт Эйнштейн
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
ЦАП R-2R (DAC R-2R) на Arduino
Немного не до конца. Для С.
Код: Выделить всё
// PORTC &= (a>>8 | 0xFC); меняем на
PORTC &= (a>>6 | 0xF3);
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
ЦАП R-2R (DAC R-2R) на Arduino
Сделал блок ЦАП R-2R (DAC R-2R) 10 bit , от0 до 1023 шагов на выходе получаем от 0 до 5V с шагом 0.005 V
копилируется для UNO, но в железе пока не проверил
схемы подключения выходов микросхемы ATmega8, 328
[spoiler]

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