Простейший ГКЧ на AD9850 и Arduino Nano 328
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
Спасибо, принцип понятен.
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
Привет всем прибор такой ARDUino NANO, AD9850, AD8009, AD8307, все видит порт вкл. рисует график но проблема такая греется модуль AD9850 проверил питания 4,95В на неё подается, я думаю нормально, может кто подскажет в чем дело, и ещё вопрос такой мне надо прибор для настройки ПДФ и КФ и все подскажите какую лучше схему собрать за ранние благодарен
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
Для Pavel64: Запитайте модуль на ad9850 от 3.3В стабилизатора. Если на нём стоИт маленький, плоский smd опорник, он- то и греется. По поводу-"какую схему лучше собрать?"- у вас вроде всё есть. Я в такой комплектации и настраиваю и ДПФ-ы и кварцевые. Успехов.
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
Не подскажет, где можно скачать последнюю версию ПО и схем с топологией платы для данного устройства? Если у кого есть, киньте сюда пожалуйста. Хочу попробовать повторить прибор.
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
Всего-то 16 страниц ветки. Мотайте от конца к началу и всё найдёте. Печатки выкладывал Laguvit. Софт на 4 входа. На 11-ой странице всё есть.
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
а где продолжение лили оконечни вариант
- maxlab
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт апр 23, 2013 22:21:18
- Откуда: KUBAN, Krasnodar
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
Привет! А вместо обычной Nano 3 китайский клон WAVGAT с контроллером LGT8F328P на борту кто нибудь заюзал? Там АЦП покруче (12bit) будет и возможность подключить 3 внутренних референсных источников AREF.
Девице - Device
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
[uquote="maxlab",url="/forum/viewtopic.php?p=3825373#p3825373"]А вместо обычной Nano 3 китайский клон WAVGAT с контроллером LGT8F328P на борту кто нибудь заюзал?[/uquote]
У меня нет LGT8F328P. Если есть желание допилить ПО прилагаю исходники для ПК и ATMega 328P.
У меня нет LGT8F328P. Если есть желание допилить ПО прилагаю исходники для ПК и ATMega 328P.
- Вложения
-
- AD9850_1.ZIP
- Исходники для ПК и МК
- (579.77 КБ) 595 скачиваний
- maxlab
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт апр 23, 2013 22:21:18
- Откуда: KUBAN, Krasnodar
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
Спасибо за исходники. Попробую
Добавлено after 5 hours 3 minutes 10 seconds:
Для LGT8F328P (WAVGAT UNO R3) + AD9851 + диодный ВЧ пробник такое сквозное АЧХ получилось при analogReference(INTERNAL2V048) и 12 бит разрешение АЦП
Судя по графику, нужно только подкинуть широкополосной усилитель для AD9851 c обратной связью, и получить равномерную напругу в 2V или 4V (для рефернса 4.096) во всем интересуемом диапазоне частот (1мгц - 60 мгц). Остальные навороты в виде входных цепей от NWT нафиг не нужны. И между установкой очередной частоты нет смысла на A1 логический "0" выставлять для разряда кондера в пробнике. Потенциал в 0.3 v все равно присутствовать будет.
Добавлено after 5 hours 3 minutes 10 seconds:
Для LGT8F328P (WAVGAT UNO R3) + AD9851 + диодный ВЧ пробник такое сквозное АЧХ получилось при analogReference(INTERNAL2V048) и 12 бит разрешение АЦП
Спойлер
Код: Выделить всё
#define W_CLK 8
#define FQ_UD 9
#define DATA 10
#define RESET 11
#define pulseHigh(pin) {digitalWrite(pin, HIGH); digitalWrite(pin, LOW); }
void tfr_byte(byte data)
{
for (int i=0; i<8; i++, data>>=1) {
digitalWrite(DATA, data & 0x01);
pulseHigh(W_CLK);
}
}
void sendFrequency(double frequency) {
int32_t freq = frequency * 4294967295/180000000;
for (int b=0; b<4; b++, freq>>=8) {
tfr_byte(freq & 0xFF);
}
tfr_byte(0x001);
pulseHigh(FQ_UD);
}
float readInVoltage()
{
float vin = 0;
float vin1 = 0;
float vin2 = 0;
for (int i = 0; i < 12; i++)
{
vin1 = analogRead(A0);
vin2 = analogRead(A1);
vin = vin + (((vin1 + vin2) / 2) / 4095 * 2.048);
}
vin = vin / 12;
return vin;
}
void setup() {
pinMode(FQ_UD, OUTPUT);
pinMode(W_CLK, OUTPUT);
pinMode(DATA, OUTPUT);
pinMode(RESET, OUTPUT);
pulseHigh(RESET);
pulseHigh(W_CLK);
pulseHigh(FQ_UD);
analogReference(INTERNAL2V048);
analogReadResolution(12);
Serial.begin(115200);
uint32_t i=0;
while(i<=70000000)
{
sendFrequency(i);
Serial.print("fr=");
Serial.print(i);
Serial.print(" v=");
Serial.print(readInVoltage(),6);
Serial.println("");
i=i+1000;
}
}
void loop() {
}Судя по графику, нужно только подкинуть широкополосной усилитель для AD9851 c обратной связью, и получить равномерную напругу в 2V или 4V (для рефернса 4.096) во всем интересуемом диапазоне частот (1мгц - 60 мгц). Остальные навороты в виде входных цепей от NWT нафиг не нужны. И между установкой очередной частоты нет смысла на A1 логический "0" выставлять для разряда кондера в пробнике. Потенциал в 0.3 v все равно присутствовать будет.
- Вложения
-
- АЧХ.png
- (46.72 КБ) 498 скачиваний
Девице - Device
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
Измеряемое напряжение с Mega328 выводится на монитор компьютера. Для отображения АЧХ на мониторе достаточно 512 пикселей по вертикали (в среднем пол экрана). В АЦП Mega328p 10 разрядное (можно вывести 1024 пикселей). Так что, 10 бит разрешение АЦП для данного проекта достаточно.
Не забываем что это не высокоточный вольтметр, а ГКЧ для показа АЧХ.
Основная погрешность измерения АЧХ связана с временем окончания переходных процессов. Это наглядно видно если увеличить время измерения на каждой частоте (убрать галочку в V max в окне АЧХ, что уменьшает скорость сканирования по шкале частоты).
Разница амплитуд между соседними частотами не слишком большая и разряжать конденсатор пикового детектора до 0 необязательно.
Данный проект задумывался для измеритель АЧХ из минимум деталей. Можно не делать печатку, а бросить несколько проводников между модулями AD9850 и Arduino Nano 328р и спаять простейший выпрямитель. Питание осуществляется от USB.
Что позволяет во многих случаях посмотреть АЧХ.

А для дальнейшего развития ставь различные усилители на вход/выход, заводи отдельное питание...
Не забываем что это не высокоточный вольтметр, а ГКЧ для показа АЧХ.
Основная погрешность измерения АЧХ связана с временем окончания переходных процессов. Это наглядно видно если увеличить время измерения на каждой частоте (убрать галочку в V max в окне АЧХ, что уменьшает скорость сканирования по шкале частоты).
Разница амплитуд между соседними частотами не слишком большая и разряжать конденсатор пикового детектора до 0 необязательно.
Данный проект задумывался для измеритель АЧХ из минимум деталей. Можно не делать печатку, а бросить несколько проводников между модулями AD9850 и Arduino Nano 328р и спаять простейший выпрямитель. Питание осуществляется от USB.
Что позволяет во многих случаях посмотреть АЧХ.

А для дальнейшего развития ставь различные усилители на вход/выход, заводи отдельное питание...
- Вложения
-
- ГКЧ.zip
- Прошивка для МК и софт для ПК
- (444.18 КБ) 531 скачивание
Последний раз редактировалось kvn234 Пн апр 13, 2020 13:14:15, всего редактировалось 2 раза.
- maxlab
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт апр 23, 2013 22:21:18
- Откуда: KUBAN, Krasnodar
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
kvn234, понятно что перфекционизм штука вредная
, но иногда хочется на собранном на коленках девайсе сделать реальные измерения с точностью плюс-минус лапоть хотя бы, а не только посмотреть. Я с Вами полностью согласен, и благодарю за полезную идею. Сотня баксов экономии без необходимости покупать NWT.
Девице - Device
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
[uquote="maxlab",url="/forum/viewtopic.php?p=3825918#p3825918"]иногда хочется на собранном на коленках девайсе сделать реальные измерения с точностью плюс-минус лапоть хотя бы, а не только посмотреть.[/uquote]
А что и как мерить? Как я писал, если хотите увеличит точность измерения АЧХ необходимо увеличить время измерения на каждой частоте (для окончания переходных процессов). А затем для большего увеличения точности повышать разрядность АЦП.
Вас устроит время построения АЧХ 10-40 сек?
Для 40 сек для каждой частоты время измерения 40/1000=40 мс., и этого может быть недостаточно для окончания переходных процессов в некоторых цепях.
Другой вариант уменьшить количество частот для сканирования.
Увеличение разрядности АЦП не основной параметр для повышения точности.
А что и как мерить? Как я писал, если хотите увеличит точность измерения АЧХ необходимо увеличить время измерения на каждой частоте (для окончания переходных процессов). А затем для большего увеличения точности повышать разрядность АЦП.
Вас устроит время построения АЧХ 10-40 сек?
Для 40 сек для каждой частоты время измерения 40/1000=40 мс., и этого может быть недостаточно для окончания переходных процессов в некоторых цепях.
Другой вариант уменьшить количество частот для сканирования.
Увеличение разрядности АЦП не основной параметр для повышения точности.
Последний раз редактировалось kvn234 Вс апр 12, 2020 19:17:56, всего редактировалось 1 раз.
- maxlab
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт апр 23, 2013 22:21:18
- Откуда: KUBAN, Krasnodar
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
Аж 12 раз с двух каналов с усреднением. Достаточно для любого переходного процесса (50ms)
Полоса в 500 кГц сканируется за 3 секунды с шагом 1 кГц. Вполне приемлимое время
Код: Выделить всё
float readInVoltage()
{
float vin = 0;
for (int i = 0; i < 12; i++)
{
vin = vin + ((((float)analogRead(A0) + (float)analogRead(A1)) / 2) / 4095 * 2.048);
}
vin = vin / 12;
return vin;
}
Полоса в 500 кГц сканируется за 3 секунды с шагом 1 кГц. Вполне приемлимое время
Девице - Device
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
[uquote="maxlab",url="/forum/viewtopic.php?p=3825965#p3825965"]Аж 12 раз с двух каналов с усреднением. Достаточно для любого переходного процесса (50ms)
Полоса в 500 кГц сканируется за 3 секунды с шагом 1 кГц. Вполне приемлимое время[/uquote]
1. 500измерений х 50ms = 25000ms = 25s
2. Я писал об окончании переходных процессов в измеряемой цепи.
3. Измерение надо начинать (включать АЦП) после окончания переходных процессов в измеряемой цепи. Выставил частоту, ждеш окончания переходного процесса (можно делать вычисление следующей частоты) например 50ms, затем включаем АЦП. И так в цикле 500 раз.

Полоса в 500 кГц сканируется за 3 секунды с шагом 1 кГц. Вполне приемлимое время[/uquote]
1. 500измерений х 50ms = 25000ms = 25s
2. Я писал об окончании переходных процессов в измеряемой цепи.
3. Измерение надо начинать (включать АЦП) после окончания переходных процессов в измеряемой цепи. Выставил частоту, ждеш окончания переходного процесса (можно делать вычисление следующей частоты) например 50ms, затем включаем АЦП. И так в цикле 500 раз.
- Вложения
-
- Переходной процесс.JPG
- (42.75 КБ) 250 скачиваний
Последний раз редактировалось kvn234 Вс апр 12, 2020 20:52:35, всего редактировалось 2 раза.
- maxlab
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт апр 23, 2013 22:21:18
- Откуда: KUBAN, Krasnodar
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
Скетч адаптировал под LGT8 и десктопный показомер UA3REO
Завтра полосовик посмотрю
Спойлер
Код: Выделить всё
#define W_CLK 8
#define FQ_UD 9
#define DATA 10
#define RESET 11
#define pulseHigh(pin) {digitalWrite(pin, HIGH); digitalWrite(pin, LOW); }
String serial_readline = "";
const int bSize = 64; //serial buffer size from desktop
char Buffer[bSize]; //serial buffer from desktop
long freq = 35000000;
void tfr_byte(byte data)
{
for (int i = 0; i < 8; i++, data >>= 1) {
digitalWrite(DATA, data & 0x01);
pulseHigh(W_CLK);
}
}
void sendFrequency(double frequency) {
int32_t freq = frequency * 4294967295 / 180000000;
for (int b = 0; b < 4; b++, freq >>= 8) {
tfr_byte(freq & 0xFF);
}
tfr_byte(0x001);
pulseHigh(FQ_UD);
}
float readInVoltage()
{
float vin = 0;
for (int i = 0; i < 12; i++)
{
vin = vin + ((((float)analogRead(A0) + (float)analogRead(A1)) / 2) / 4095 * 2.048);
}
vin = vin / 12;
return vin;
}
void setup() {
pinMode(FQ_UD, OUTPUT);
pinMode(W_CLK, OUTPUT);
pinMode(DATA, OUTPUT);
pinMode(RESET, OUTPUT);
pulseHigh(RESET);
pulseHigh(W_CLK);
pulseHigh(FQ_UD);
analogReference(INTERNAL2V048);
analogReadResolution(12);
Serial.begin(115200);
Serial.setTimeout(100);
}
void loop() {
while (Serial.available() > 0)
{
memset(Buffer, 0, bSize);
Serial.readBytesUntil('\n', Buffer, bSize);
serial_readline = String(Buffer);
if (serial_readline.startsWith("GET "))
{
String sfreq = serial_readline.substring(4);
char carray[sfreq.length() + 1];
sfreq.toCharArray(carray, sizeof(carray));
sendFrequency(long(atof(carray)));
Serial.println(readInVoltage(), 6);
}
Serial.flush();
}
}Завтра полосовик посмотрю
- Вложения
-
- СквозноеАЧХсКалибровкой.png
- (230.32 КБ) 378 скачиваний
Девице - Device
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
[uquote="maxlab",url="/forum/viewtopic.php?p=3826019#p3826019"]Скетч адаптировал под LGT8 и десктопный показомер UA3REO[/uquote]
Блин!!!! Я сразу, как и все читающие форум, понял, что такое LGT8 и десктопный показомер UA3REO.
По LGT8 информацию нашёл здесь: http://arduino.ru/forum/apparatnye-vopr ... -lgt8f328p
А по запросу "десктопный показомер UA3REO" гугл вежливо послал меня к черту:
По запросу десктопный показомер UA3REO ничего не найдено.
Рекомендации:
Убедитесь, что все слова написаны без ошибок.
Попробуйте использовать другие ключевые слова.
Попробуйте использовать более популярные ключевые слова.
Попробуйте уменьшить количество слов в запросе.
Может дадите ссылочки, что бы заценить и воспользоваться Вашим скетчем?
Блин!!!! Я сразу, как и все читающие форум, понял, что такое LGT8 и десктопный показомер UA3REO.
По LGT8 информацию нашёл здесь: http://arduino.ru/forum/apparatnye-vopr ... -lgt8f328p
А по запросу "десктопный показомер UA3REO" гугл вежливо послал меня к черту:
По запросу десктопный показомер UA3REO ничего не найдено.
Рекомендации:
Убедитесь, что все слова написаны без ошибок.
Попробуйте использовать другие ключевые слова.
Попробуйте использовать более популярные ключевые слова.
Попробуйте уменьшить количество слов в запросе.
Может дадите ссылочки, что бы заценить и воспользоваться Вашим скетчем?
- maxlab
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт апр 23, 2013 22:21:18
- Откуда: KUBAN, Krasnodar
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
В предыдущем посте я напутал... 50 мкс - цикл установки частоты и измерение с усреднением.
Скорость визуализации зависит от канала передачи данных. Надо ethernet попробовать...
123ksn, конечно дам...
https://github.com/XGudron/UA3REO-Sweep-Analyzer
https://ua3reo.ru/izmerenie-parametrov- ... a-arduino/
Скорость визуализации зависит от канала передачи данных. Надо ethernet попробовать...
123ksn, конечно дам...
https://github.com/XGudron/UA3REO-Sweep-Analyzer
https://ua3reo.ru/izmerenie-parametrov- ... a-arduino/
- Вложения
-
- Контур465.png
- (60.75 КБ) 358 скачиваний
Девице - Device
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
[uquote="maxlab",url="/forum/viewtopic.php?p=3826167#p3826167"]Скорость визуализации зависит от канала передачи данных. Надо ethernet попробовать...[/uquote]
У меня скорость передачи 57600, что вполне достаточно.
Считаем время передачи для каждой частоты:
Посылка с МК состоит из кода начала ':' (1 байт), кода признака информации (1 байт), значения частоты (float = 4 байта), значения АЦП (2 байта) и CRC (1 байт). Итого 9 байт.
Для передачи 1 байта в RS232 использую 10 бит. Общая длина посылки для одной частоты 9х10=90бит.
Время передачи одной посылки 1 / 57600 x 90 = 1.562 ms.
Для правильного измерения необходима задержка начала измерения на несколько ms после установки новой частоты (для завершения переходного процесса в измеряемой цепи).
Пока идет задержка и измерение АЦП одновременно идет передача предыдущего значения с использованием кольцевого буфера и прерываний.
Если Вы уберете задержку начала измерения то получите недостоверные измерения на участке переходного процесса.

Так что увеличивать скорость передачи не имеет смысла.
У меня время полного сканирования 1000 значений частот около 3 сек. Можно уменьшить время сканирования за счет уменьшения количества частот 2, 4 раза.
У меня скорость передачи 57600, что вполне достаточно.
Считаем время передачи для каждой частоты:
Посылка с МК состоит из кода начала ':' (1 байт), кода признака информации (1 байт), значения частоты (float = 4 байта), значения АЦП (2 байта) и CRC (1 байт). Итого 9 байт.
Для передачи 1 байта в RS232 использую 10 бит. Общая длина посылки для одной частоты 9х10=90бит.
Время передачи одной посылки 1 / 57600 x 90 = 1.562 ms.
Для правильного измерения необходима задержка начала измерения на несколько ms после установки новой частоты (для завершения переходного процесса в измеряемой цепи).
Пока идет задержка и измерение АЦП одновременно идет передача предыдущего значения с использованием кольцевого буфера и прерываний.
Если Вы уберете задержку начала измерения то получите недостоверные измерения на участке переходного процесса.
Так что увеличивать скорость передачи не имеет смысла.
У меня время полного сканирования 1000 значений частот около 3 сек. Можно уменьшить время сканирования за счет уменьшения количества частот 2, 4 раза.
- maxlab
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт апр 23, 2013 22:21:18
- Откуда: KUBAN, Krasnodar
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
Немного причесал скетч
Спойлер
Код: Выделить всё
//Скетч для AD9851 и платы WAVGAT UNO R3 с контроллером LGT8F328P (AVGA328P) https://aliexpress.ru/item/4000587200875.html?gps-id=pcDetail404&scm=1007.16891.96945.0&scm_id=1007.16891.96945.0&scm-url=1007.16891.96945.0&pvid=12e0d1cd-2156-489e-a2b8-26084e010c5d&_t=gps-id:pcDetail404,scm-url:1007.16891.96945.0,pvid:12e0d1cd-2156-489e-a2b8-26084e010c5d,tpp_buckets:668%230%23131923%239_668%23808%234093%23801_668%23888%233325%235
//для проекта UA3REO-Sweep-Analyzer ссылки на оригинальный проект https://ua3reo.ru/izmerenie-parametrov-filtrov-i-konturov-na-arduino/
//GitHub https://github.com/XGudron/UA3REO-Sweep-Analyzer
//Дрова для этой платы лежат https://raw.githubusercontent.com/dbuezas/lgt8fx/master/package_lgt8fx_index.json
//Выбираем в Инструментах плату LGT8F328, Clock source - Internal, Clock - 16Mhz, Variant - 328P-LQFP32 MiniEVB nano-style
//Ноги для управления AD9851.
//Генератор на такой плате https://russian.alibaba.com/product-detail/ad9851-dds-signal-generator-module-circuit-diagram-2-sine-wave-0-70mhz-and-2-square-wave-0-1mhz-output-1918582945.html
//Перемычки J1,J2 установлены. Перемычка J3 - по желанию, если надо прямоугольник получить
#define W_CLK 7
#define FQ_UD 8
#define DATA 9
#define RESET 10
#define INP_VAL A0 //Измерительный вход
#define pulseHigh(pin) {digitalWrite(pin, HIGH); digitalWrite(pin, LOW); }
String serial_readline = "";
const int bSize = 64; //serial buffer size from desktop
char Buffer[bSize]; //serial buffer from desktop
long freq = 35000000;
void tfr_byte(byte data)
{
for (int i = 0; i < 8; i++, data >>= 1) {
digitalWrite(DATA, data & 0x01);
pulseHigh(W_CLK);
}
}
void sendFrequency(double frequency) {
int32_t freq = frequency * 4294967295 / 180000000;
for (int b = 0; b < 4; b++, freq >>= 8) {
tfr_byte(freq & 0xFF);
}
tfr_byte(0x001);
pulseHigh(FQ_UD);
}
float readInVoltage()
{
float vin = 0;
for (int i = 0; i < 12; i++)
{
vin = vin + ((float)analogRead(INP_VAL) / 4096 * 4.096);
}
vin = vin / 12;
return vin;
}
//При старте переключаемся на внешний кварц
void switchToExtQuartz() {
bitSet(PMCR, PMCE);
bitSet(PMCR, OSCMEN);
asm("nop");
asm("nop");
asm("nop");
bitSet(PMCR, PMCE);
bitClear(PMCR, CLKFS);
bitSet(PMCR, CLKSS);
asm("nop");
asm("nop");
asm("nop");
}
void setup() {
switchToExtQuartz(); // Для WAVGAT UNO R3, nano с внешним кварцем
pinMode(FQ_UD, OUTPUT);
pinMode(W_CLK, OUTPUT);
pinMode(DATA, OUTPUT);
pinMode(RESET, OUTPUT);
pulseHigh(RESET);
pulseHigh(W_CLK);
pulseHigh(FQ_UD);
analogReference(INTERNAL4V096);
analogReadResolution(12);
Serial.begin(115200);
}
void loop() {
while (Serial.available() > 0)
{
memset(Buffer, 0, bSize);
Serial.readBytesUntil('\n', Buffer, bSize);
serial_readline = String(Buffer);
if (serial_readline.startsWith("GET "))
{
freq = (long)serial_readline.substring(4).toFloat();
sendFrequency(freq);
Serial.println(readInVoltage(), 6);
}
Serial.flush();
}
}Девице - Device
- maxlab
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт апр 23, 2013 22:21:18
- Откуда: KUBAN, Krasnodar
Re: Простейший ГКЧ на AD9850 и Arduino Nano 328
У LGT8F328P (WAVGAT UNO R3) на борту 8 битный ЦАП есть. А это как бы намекает... 
Девице - Device