т.е. только на микросхеме FT232RL пойдет?
т.е. только на микросхеме FT232RL пойдет?
Да, только на FT232RL
Спасибо
Скажите а можно вместо ардуино нано использовать Arduino Pro Mini 5V ATMega328 и подключить к нему USB-UART / USB-TTL конвертер на чипе FTDI FT232RL? программа Oscilloscope будет работать?
Можно.
FTDI не китайская подделка?
написано чип FTDI FT232RL, подделка это ch340g вроде как
Прошу вашему вниманию самый простой осциллограф на Aduino.
Подходят только китайские Arduino ценой не более 1,5$/шт.
Схема предусматривает измерение отрицательного сигнала.
Администраторов прошу не наказывать. Текст мой и код мой, просто лень для нескольких форумов все наново переписывать. Передрал и все тут.
Удалось достичь максимальной частоты которую позволяет АЦП контроллера.
20kHz выглядят так:
Програмка: https://yadi.sk/d/ww1kQopXm8LA2
Схема:
Скетч:
В строке:Код://Осциллограф ©RasyakRoman #include <CyberLib.h> unsigned long currentTime; unsigned long loopTime; byte N = 0; byte Rb = 255; uint8_t MyBuff[255]; void setup() { UART_Init(256000); ADCSRA = (1 << ADEN) | (1 << ADSC) | (1 << ADATE) | (0 << ADIF) | (1 << ADIE) | (0 << ADPS2) | (1 << ADPS1) | (0 << ADPS0); ADMUX = (0 << REFS1) | (0 << REFS0) | (1 << ADLAR) | (0 << MUX3) | (0 << MUX2) | (0 << MUX1) | (0 << MUX0) ; } void loop() { currentTime = millis(); if (currentTime >= (loopTime +100)) // сравниваем текущий таймер с переменной loopTime + 1 секунда { ADCSRA &= ~(1 << ADIE); //Выключить UART_SendByte(15); UART_SendByte(0); UART_SendByte(15); UART_SendArray(MyBuff, 255); UART_SendByte(OCR1A); //Не используются UART_SendByte(OCR1B); //Не используются UART_SendByte(N); //Начальная точка UART_SendByte(1); UART_SendByte(15);UART_SendByte(1); ADCSRA |= (1 << ADIE); // Включить прерывание loopTime = currentTime; } if (UART_ReadByte(Rb)) { ADCSRA = (ADCSRA >> 3) << 3 | Rb ; }; } ISR(ADC_vect) { MyBuff[N] = ADCH; N++; }
if (currentTime >= (loopTime +100))
Можно изменить частоту выборок. В представленом варианте производится 10 выборок в секунду. Можно поставить больше.
Обяснение по интерфейсу:
"Open" - открывает порт.
"Старт" - включает/останавливает отрисовку.
"Стабілізація" - пытается стабилизировать график сдвигая его на десятые доли выборок вправо или влево.
"AVG проходи" - усредняет значение отрисовки с предварительніми выборками. Число означает количество усреднений. 1 - рисует живой график.
"Дільник" - делитель прерываний АЦП. Онже частота выборок.
"Калибровка" - Я этот пункт оставил для ручных настроек. Количество настроек можно добавлять войдя в вкладку "Режими". После правок можно сохранитьнастройки. Я не делал калибровочных замеров (лень). Буду благодарен за предоставленную информацию для каждого из режимов делителя.
Принцип работы:
Ацп отталкивается от стабилизированного выхода 3,2В и считает его максимумом. Входная шкала составляет 8 бит, тоесть 0 - 254.
Примитивный делитель делит 3,2/2=1,6В на два плеча. Такую схему нельзя использовать если масса ПК и измеряемой модели соединены. Идеальный вариант, как делал я, использовать ноутбук.
Итого 1,6В на входе А0 будет равно 127 - вход это первый столбец параметров "Калибровка". После вход масштабируется в соответствии с вторым столбцом "Калибровка".
Ячейка, что размещена отдельно в параметрах "Калибровка" отвечает за горизонтальную шкалу.
Исходный код предоставлять не вижу смысла, ибо использовалисть платные библиотеки EhLib (честно купленные). С энтузиастами могу поделится в личке.
Немножко кривой калибровки
И несколько тестов:
Последний раз редактировалось Okmor; 09.02.2016 в 01:16.
есть ардуино мини и конвертер фт232. А как сигнал подавать? Сразу на А0 или нужен делитель, или щуп какой-то?
Залил первый скетч, все работает, НО... Теперь ничего не заливается, вроде как порт занят. Как исправить?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)