Arduino осциллограф двухканальный

Arduino.ru

Выжимаем максимум. USB осциллограф на Arduino

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

На UNO будет работать?

а то этот http://compcar.ru/forum/showthread.php?t=4457 только на NANO работает и то только с чипом FTDI

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Работает с обычным китайским NANO и не вижу причин не работать на UNO.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

На UNO будет работать?

Без разницы — на UNO и NANO одинаковые микроконтроллеры стоят.

а то этот http://compcar.ru/forum/showthread.php?t=4457 только на NANO работает и то только с чипом FTDI

Не может такого быть. Опять же — одинаковые микроконтроллеры. И с любым USB-UART чипом должен работать (если он исправный конечно).

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

просто на carduino барыги админят, поэтому та тема начинается со ссылки на их магазин, где наны по 1 тыс. рублей за штуку. ну и естественно всё у них работает «только на таких ардуинах и больше ни на каких».

на самом деле китайские ардуины совместимы с самыми супер-пупер брендовыми с вероятностью 99.99% и тип уарта ни на что не влияет.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Забыл на схеме добавить один проводок.

if (currentTime >= (loopTime +100))

Можно изменить частоту выборок. В представленом варианте производится 10 выборок в секунду. Можно поставить больше.

Обяснение по интерфейсу:

«Open» — открывает порт.

«Старт» — включает/останавливает отрисовку.

«Стабілізація» — пытается стабилизировать график сдвигая его на десятые доли выборок вправо или влево.

«AVG проходи» — усредняет значение отрисовки с предварительніми выборками. Число означает количество усреднений. 1 — рисует живой график.

«Дільник» — делитель прерываний АЦП. Онже частота выборок.

«Калибровка» — Я этот пункт оставил для ручных настроек. Количество настроек можно добавлять войдя в вкладку «Режими». После правок можно сохранитьнастройки. Я не делал калибровочных замеров (лень). Буду благодарен за предоставленную информацию для каждого из режимов делителя.

Ацп отталкивается от стабилизированного выхода 3,2В и считает его максимумом. Входная шкала составляет 8 бит, тоесть 0 — 254.

Примитивный делитель делит 3,2/2=1,6В на два плеча. Такую схему нельзя использовать если масса ПК и измеряемой модели соединены. Идеальный вариант, как делал я, использовать ноутбук.

Итого 1,6В на входе А0 будет равно 127 — вход это первый столбец параметров «Калибровка». После вход масштабируется в соответствии с вторым столбцом «Калибровка».

Ячейка, что размещена отдельно в параметрах «Калибровка» отвечает за горизонтальную шкалу.

Исходный код предоставлять не вижу смысла, ибо использовалисть платные библиотеки EhLib (честно купленные). С энтузиастами могу поделится в личке.

Источник

Arduino.ru

VirtOs — Самый простой двухлучевой осциллограф осциллограф на Arduino

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

На схеме ошибка.

Должно быть так:

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Посчитал смету прибора. Вышло намного больше, чем я думал.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Посчитал смету прибора. Вышло намного больше, чем я думал.

=))по стоимости равен китайскому дешевому ослику

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Посчитал смету прибора. Вышло намного больше, чем я думал.

=))по стоимости равен китайскому дешевому ослику

На первый взгляд стоит так-же, НО

—в нем нет AKB нужно докупить

и он в 4 раза медленней и на один луч.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вот добавил, как обещал, новые видео и фото.

Внешний вид и разборка.

Сигнал 100 кГц, 400 кГц , 666 кГц

Сигнал 1мГц, 2мГц.

Сигнал 100кГц и увеличение 1х1.

Низкие частоты и двухканальный режим.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вот добавил, как обещал, новые видео и фото.

хороший результат. походу нужно заказывать еще один дисплей)))

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Прибор и прошивка довольно сырые, но усложнять не хотелось. Кому надо, тот еще чего то добавит.

Для начинающего любителя больше и не надо. Потыкать и посмотреть сигнал — самое то. Прибор можно собрать на коленке и не сложен в наладке.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Поправил. Если надо ещё что-то редактировать, обращайтесь.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Классно получилось молодец.

Okmor не могли бы вы, на схеме, на переменных резистрах указать где какое напряжение должно бить при настройке? А то ацп не хочется спалить.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Классно получилось молодец.

Okmor не могли бы вы, на схеме, на переменных резистрах указать где какое напряжение должно бить при настройке? А то ацп не хочется спалить.

АЦП здесь нету возможности спалить. Здесь нет отрицательного напряжения. АЦП выдерживает на входе все, что меньше напряжения питания, а болшему негде взятся. Так, что ставте все в среднее положение, и вперед.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

И еще вопросик. Я хочу попробовать подключить другой дисплей. Мне нужно освободить A0 перенести на A6 где искать в скетче.

Или как вообще убрать 2 канал покаместь. Что бы место в ардуине освободить. Вы уже знаете где что, а то я не хочу что не буть нужное удалить.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

И еще вопросик. Я хочу попробовать подключить другой дисплей. Мне нужно освободить A0 перенести на A6 где искать в скетче.

Или как вообще убрать 2 канал покаместь. Что бы место в ардуине освободить. Вы уже знаете где что, а то я не хочу что не буть нужное удалить.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Если я правельно понял void setADCSRA () это второй канал.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Да. setADCSRA () подготавливает АЦП к захвату. Измененя эту функцию, можно переназначить вход АЦП.

Зачем? Используйте А6 для дисплея.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Зачем? Используйте А6 для дисплея.

А6 и А7 это только аналоговый вход АЦП. Так разработчикам AVR захтелось добавить в TQFP и MLF корпус 2 ноги АЦП .

А0——А5 можно настроить как аналоговые или цифровые порты ввода/вывода .

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Кстати. Посмотрите как сделано у меня. Я ногу CS от дисплея тупо посадил на землю. Дисплей один и пусть всегда работает. Ногу RST подтянул к питанию через RC задержку. Не знаю почему, но сбрасывать надо с задержкой.

Итого, экономия двух ног.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Okmor Пологите пожалуйста у меня уже кипят мозги. Уберите с скетча все что касается второго канала и что лишнее на схеме. Выложите или скиньте на почту vetalst777(собака)gmail.com.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Залил сюда. Я не пробовал, но должно работать.

Там есть две функции с задержками. Задержки надо подобрать єкспериментально для точного отображения периода сигнала.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Okmor не могли бы вы подсказать в какой версии программы компилировали свой скетч, а то у меня в Arduino 1.6.11 при компиляции выскакивает ошибка ‘freeRam’ was not declared in this scope. В чем может быть причина?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Не знаю почему у вас эта функция не поддерживается, но ее можно без ущерба выбросить из скетча, а также все ее упоминания в нем. Функция используется для отладки, что бы видеть оставшуюся оперативную память.

Выбросить вот это и все, где ругается на ее использование.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вот что происходит при компиляции скетча даже в 1.6.5. Выбрасывание этого куска не помогло. Компилирую в ардуино нано АТМега 328. Что еще может быть?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

UpgaradeLibSPI.ino: In function ‘void setup()’:
UpgaradeLibSPI:70: error: ‘freeRam’ was not declared in this scope
‘freeRam’ was not declared in this scope

Почему-то скрин экрана загрузился, но не передался. Программа останавливается в

glcd.display(); delay(500); glcd.clear();

glcd.drawstringS(0, 0, «MEMORY= » + String(freeRam())) ;

На этой строке встает и пишет ‘freeRam’ was not declared in this scope

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

glcd.drawstringS(0, 0, «MEMORY= » + String(freeRam())) ;

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

После того, как убрал эту строку появились следующие ошибки:

UpgaradeLibSPI.ino: In function ‘void __vector_4()’:
UpgaradeLibSPI.ino:181:18: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
UpgaradeLibSPI.ino:184:19: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
UpgaradeLibSPI.ino: In function ‘void DravValue()’:
UpgaradeLibSPI.ino:288:18: warning: unused variable ‘kU’ [-Wunused-variable]
D:\Моя папка\Arduino\Версии программы Ардуино\arduino-1.6.5-r5\libraries\ST7565\ST7565.cpp:29:77: fatal error: c:\Program Files\Arduino\hardware\arduino\avr\libraries\SPI\SPI.h: No such file or directory
#include
^
compilation terminated.
Ошибка компиляции.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Уважаемый Okmor, не могли бы вы выложить портабельную версию ардуино, в которой компилировали с вашей библиотекой. Подозреваю, что дело только в этом, т.к. в разных версиях разные ошибки.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

В библиотеке ST7565 откройте файл ST7565 .CPP программой блокнот Notepad++. найдите строчку #include > это путь к файлу SPI.h в библиотеке SPI. Вам нужно прописать #include D:\Моя папка\Arduino\Версии программы Ардуино\arduino-1.6.5-r5 \hardware\arduino\avr\libraries\SPI\SPI.h> и сохранить файл.

UpgaradeLibSPI.ino: In function ‘void __vector_4()’:
UpgaradeLibSPI.ino:181:18: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
UpgaradeLibSPI.ino:184:19: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
UpgaradeLibSPI.ino: In function ‘void DravValue()’:
UpgaradeLibSPI.ino:288:18: warning: unused variable ‘kU’ [-Wunused-variable]
D:\Моя папка\Arduino\Версии программы Ардуино\arduino-1.6.5-r5\libraries\ST7565\ST7565.cpp:29:77: fatal error: c:\Program Files\Arduino\hardware\arduino\avr\libraries\SPI\SPI.h: No such file or directory
#include

^
compilation terminated.
Ошибка компиляции.

У вас arduino-1.6.5 лежит на диске D D:\Моя папка\Arduino\Версии программы Ардуино\arduino-1.6.5-r5 и в самой Arduino 1.6.5 есть библиотека SPI находиться в папках hardware\arduino\avr\libraries\SPI\SPI.h . Некоторые версии Arduino ID могут глючить из за названий папок на русском по пути к программе Arduino ID .

Arduino 1.6.11 у меня без проблем все компелирует. НО ЕЙ НЕ НРАВИТЬСЯ ДЛИННЫЙ ПУТЬ К СКЕТЧУ (папка в папке и так далие) когда есть папки с названиями написаных на русском языке, только цифры или англ. Я просто кидаю скетч в папке на рабочий стол и нет больше ни каких ошибок. А сначала тоже было куча ошибок, и я подумал что глючьная какая то новоя весия, и холел удалить ее нафиг.

Arduino 1.6.11 хочет чтобы Структура программы была написана по порядку. Сначала наши какие то функции ( int freeRam(void) ) и т.д, Потом void setup() и в конце скетча void loop(). Хотя у меня сейчас глотает все скетчи написанны как угодно, и процентов на 5 -7 уменьшает код по сравнению с 1.6.5 и 1.6.7.

Источник

Adblock
detector