Пультоскоп на Arduino 27МГц!!!

ArduinoFart
Offline
Зарегистрирован: 14.02.2017

Если не затруднительно. Пытаясь переписать функции вырастил на экране цветок. Подскажите что означает появление этого бурьяна:неправильность в коде,зависший проц,неправильная инициализация дисплея или вмешательство рассы рептилоидов?

Winstonn
Winstonn аватар
Offline
Зарегистрирован: 25.02.2017

ArduinoFart, у меня такое сегодня было, когда делал Хэлп-меню и вбил длинный русский текст. Потом то же самое на латиницей написал - весь бурьян исчез. Возможно ты забил свой экран инфой.

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

это эмблема графической библиотеки Adafruit которую вы используете.  корни данного бурьяна следует искать в коде библиотеки :). ведь Вы не задумываетесь какой объем кода подгружаете когда пишете #include <Adafruit_GFX.h>  и #include <Adafruit_PCD8544.h>

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

быстренько пробежался по библиотеке и только в файле glcdfont .c имеется формирование графических изображений. причем  фонт грузится в ЕЕПРОМ.  у меня цветок появилмя после запуска одного из примеров. пойду пробегусь  по примерам мне кажется я в одном видел код для цветка.  также следует разобраться имеется ли  енергонезависимая память в самом дисплее 5110.

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

и вот результат в примере имеется вот такой код в файле примера pcdtest.ino (  ВОТ ОН РАССАДНИК ЭТОЙ ЗАРАЗЫ  )

#define LOGO16_GLCD_HEIGHT 16

#define LOGO16_GLCD_WIDTH  16

static const unsigned char PROGMEM logo16_glcd_bmp[] =
{ B00000000, B11000000,
  B00000001, B11000000,
  B00000001, B11000000,
  B00000011, B11100000,
  B11110011, B11100000,
  B11111110, B11111000,
  B01111110, B11111111,
  B00110011, B10011111,
  B00011111, B11111100,
  B00001101, B01110000,
  B00011011, B10100000,
  B00111111, B11100000,
  B00111111, B11110000,
  B01111100, B11110000,
  B01110000, B01110000,
  B00000000, B00110000 };

ничего не напоминает ? :)  
и грузится в енергонезависимую память!!!  

наверняка многие, для  пробы его загружали !!!

предлогаю  сделать  логотип пультоскопа и загрузить его вместо  цветка !!!  и при включении пультоскопа нас будет встречать ... !!!  кто  возмется  за графику ???

http://alex-exe.ru/programm/image-generate/

bulat943
Offline
Зарегистрирован: 19.09.2016

вроде вот та картинка,файл Adafruit_PCD8544.cpp

// the memory buffer for the LCD
uint8_t pcd8544_buffer[LCDWIDTH * LCDHEIGHT / 8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFC, 0xFE, 0xFF, 0xFC, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
0xF8, 0xF0, 0xF0, 0xE0, 0xE0, 0xC0, 0x80, 0xC0, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x7F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xC7, 0xC7, 0x87, 0x8F, 0x9F, 0x9F, 0xFF, 0xFF, 0xFF,
0xC1, 0xC0, 0xE0, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFC, 0xFC, 0xFC, 0xFE, 0xFE, 0xFE,
0xFC, 0xFC, 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xC0, 0xE0, 0xF1, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0x0F, 0x0F, 0x87,
0xE7, 0xFF, 0xFF, 0xFF, 0x1F, 0x1F, 0x3F, 0xF9, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xFD, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xF0, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
0x7E, 0x3F, 0x3F, 0x0F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0xE0, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFC, 0xF0, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01,
0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x7F, 0x7F,
0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x1F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
};

можно попобовать изменить,будет красота!!!

еще вопрос такой-у меня дисплей L2F50,память занята 18 кб,основное время пультоскоп лежит под рукой(около компа),помогает хорошо,так вот-реально ли добавить часики?тот же DS1307 наприме-пусть себе показывают время

Winstonn
Winstonn аватар
Offline
Зарегистрирован: 25.02.2017

ВНИМАНИЕ             #НоваяПрошивкаПультоскопа  

новая прошивка для моего эдишена ! PULTOSCOPE_LCD5110_final2_DDS_Z_WIN_V1.1

https://drive.google.com/open?id=0B8Cen3bTAimVYWVOOEF5SzRHUWM

как всегда в той же папке в архиве PULTOSCOPE_LCD5110_final2_DDS_Z_WIN_V1.1-170311a.zip

//Переделал главное меню для уменьшения строчек кода, спасибо Electronik83 за вдохновение
//Осцилоскоп практически без изменений, за исключением пары дельных советов от ArduinoFart
//PWM остался как в Ver.V1 без изменений
//DDS переделал отдельные подменю (больше для красоты). Переделал формулу изменения частоты, показания стали точней. Подкорректировал DDS функции.
//TTL заменил на Help. Так так пишу прошивку для своего типа схемы, а в ней TTL функция не поддерживается. Перепрошивка МК происходит на отдельной плате.
 

все найденые ошибки и баги мне на форум или мыло mailto: winstonn2017@gmail.com

Тестирующих прошу о кратком репорте:

1. Используемый кварц

2. Реальная максимальная частота на выходе DDS по всем 4-м функциям.

3. Погрешность показаний частоты одной любой (указать какой) функции на 100%, 99%, 95%, 90%, 75%, 50%.

Зарание всем большое спасибо.

Winstonn
Winstonn аватар
Offline
Зарегистрирован: 25.02.2017

Stashevskiy68, я буду делать лого однозначно! спасибо за находку )

Electronik83
Offline
Зарегистрирован: 06.12.2015

А цветок не в еепроме сидит, а во флеши. Давайте не будем народ вводить в заблуждение!

ArduinoFart
Offline
Зарегистрирован: 14.02.2017

Спасибо за советы,правда оказалась более жестокой:код просто не доходит до функции отображения ))))).Давлю баги)

satelit 2
Offline
Зарегистрирован: 04.12.2016

я в програмировании ноль, но я думаю может в каждом режиме на дисплее в правом верхнем углу поставить активный кубик( типа крестика на компе) для возврата в предыдущее меню. будет супер. у меня в голове только функция goto и переменные = колву экранов во всей программе

режим dds я так и не победил, у меня при нажатии на любую клавишу пункт меню перебирается вниз, не заходит.буду вырезать с функцией ресивера. может на свою плюшку места хватит

цветок в библиотеке сидит, я сутки его выкуривал, перед вводом данных введи оцистку экрана

Electronik83
Offline
Зарегистрирован: 06.12.2015

И так места нету на экране. И дополнительную обработку этого кубика надо делать. Так что я думаю, что идея - не очень. Нажал плюс с минусом и вылетел в главное меню.
В ддс не должно никуда заходить! Выбрал строку и сигнал пошел.

satelit 2
Offline
Зарегистрирован: 04.12.2016

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

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

PS твой вариант с внутренним сопротивлением порадовал, кнопки отрезвели. респект!!!

собирающим совет, собирайте сразу два, я неделю потерял на разборку, что к чему. в итоге мультитестор давал не стабильную частоту. собрал два. один в режим генератора, другой осицил=, первый осицил, второй генератор, тоже ровно. частота+-погрешность минимальная. 

еще один вопрос. я так понимаю ТЕРМИНАЛ работает в качестве трансмиттера, это получается , если я внедрю второй про мини с другой прошивкой, то первая будет служить как монитор порта?

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

для Electronik83

 прошу прощения  перепутал.

satelit 2

 я выше предлогал делать 2 прибора один генерирует все что можно, второй- измеряет.

Juris
Juris аватар
Offline
Зарегистрирован: 28.10.2016

Stashevskiy68 пишет:

 я выше предлогал делать 2 прибора один генерирует все что можно, второй- измеряет.

Мне тоже такой подход кажетса привлекателнее. К тому же, наличие в чипе, где "живёт" осциллоскоп, дополнительных чего-то генерирующих кодов, по моему это напрашивание на дополнитеьльные помехи.

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

bulat943

а к часикам добавить секундомер и таймер - для полноты ощущений !

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

//*********  функция преобразования кол-ва секунд  в стринг  m:s или h:m в зависимости от их колличества    *************************************************************************
// int time_sec -   количество секунд 
// возвращает String в виде "00:00" (":"  мигает когда выводим часы и минуты)
// все переменные локальные !
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   String sec2hour (unsigned long time_sec ){
    String time_out=""                                                                              ; // обьявление переменных  возращаемый  стринг
    String time_m="";                                                                               ; // вычисленные минуты и преобразованные  в стринг 00 
    String time_h="";                                                                               ; // впереди стоящий "0" для часов  
    String ed_izm="m:s";                                                                            ; // ед. измерения если прошло больше 60 мин. (по умолчанию)
    String razdel=":"                                                                               ; // переменная  для разделителя 
    
    while (time_sec >86399){time_sec-=86399 ;}                                                        // если прошли сутки  (может и не одни, я их кол-во не считаю)
    if (time_sec > 3599){{if (time_sec%2>0){razdel=" ";}else{razdel=":";}};time_sec/=60;ed_izm="h:m";}// если больше  59мин 59сек вывдим "h:m"    выбираем разделитель при мигании если индицируем "h:m"
    if (time_sec%60<=9){ time_m="0"+String(time_sec%60);}else{time_m=String(time_sec%60);}            // формируем стринг с минутами 00
    if (time_sec/60<10) {time_h="0";}                                                                 // если кол-во минут < 10 дописываем впереди "0"
    
    time_out= time_h + String(time_sec/60)+razdel+time_m+"  "+ed_izm                                ; // формируем стринг 00:00
    return  time_out                                                                                ; // возвращаем сформированыый стринг 00:00
   }
//********************************************************************************************************************************************************************************

 

satelit 2
Offline
Зарегистрирован: 04.12.2016

3000 постов в одной ветке можно мониторить, а когда у тебя несколько проектов с задержкой аликспреса извините. я не компьютер(который тоже частенько память теряет), да и библиотеки переделывают, в которых я не курю(я уже десяток дисплеев скупил- дешевле с али готовый прибор заказать хамелеон, а руки куда девать- чешуться-хобби)

Juris
Juris аватар
Offline
Зарегистрирован: 28.10.2016

satelit 2 пишет:

3000 постов в одной ветке можно мониторить, а когда у тебя несколько проектов с задержкой аликспреса извините. я не компьютер(который тоже частенько память теряет), да и библиотеки переделывают, в которых я не курю(я уже десяток дисплеев скупил- дешевле с али готовый прибор заказать хамелеон, а руки куда девать- чешуться-хобби)

Полностью понимаю. Со слежением за несколькими разветвлёнными проектами - беда. Надежда на понимание Авторов на случай переспросов, на предмет - "так которое сейчас Ваш вариант самый актуальный?".

satelit 2
Offline
Зарегистрирован: 04.12.2016

автору ты сам видишь предлагаю модернизацию. а на счет переспросов надо , чтобы модератор сделал каждому личку, в которой сам автор распологал материал по полкам pultoscopV1, pultoscop V1.1, pultoscop V10.5

satelit 2
Offline
Зарегистрирован: 04.12.2016

Stashevskiy68 пишет:

для Electronik83

 прошу прощения  перепутал.

satelit 2

 я выше предлогал делать 2 прибора один генерирует все что можно, второй- измеряет.

http://srukami.inf.ua/pultoscop_v25110.html

отсюда два разных собрал, один на 3310, другой на сименсе

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

satelit 2

да у меня тоже 2 собранны один на  nokia 5110(84x48) + ProMini (пост №2399 и 2400  )    и  на nokia 5200 (96x64)+ Uno  макетки . жду пока народ  насочиняет нужные мне функции а я пока доделаю анализатор для Li-ion  аккумуляторов. уже все функции измерения и расчета написаны теперь ломаю голову над интерфейсом и логированием разряда и измененим внутреннего сопротивления в зависимости от напряжения аккумулятора. в принципе алгоритмы понятны осталась МЕЛОЧЬ - создать рабочий код.

 

Electronik83
Offline
Зарегистрирован: 06.12.2015

Stashevskiy68 пишет:

В принципе алгоритмы понятны осталась МЕЛОЧЬ - создать рабочий код.

Можно скооперироваться, если есть желание)))

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

Electronik83

как только сделаю более менее рабочий вариант сразу-же выложу  а может и форум создам. но ели сильно интересно могу  то что сделано на почту скинуть. но там для сименса С55, хотя  использую граф библиотеку U8glib(универсальная  ВЕСЧЬ ) там надо только поменять строку с инициализацией  контроллера дисплея. 

да и фотки могу сделать с рабочими "экранами"

bulat943
Offline
Зарегистрирован: 19.09.2016

Stashevskiy68 пишет:

...а я пока доделаю анализатор для Li-ion  аккумуляторов. уже все функции измерения и расчета написаны...

поделитесь конструкцией?UART предусмотрен?

Electronik83
Offline
Зарегистрирован: 06.12.2015

Stashevskiy68 пишет:

 но ели сильно интересно могу  то что сделано на почту скинуть. 

...

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

bulat943

 в принципе ДА .в терминал выводит (я макетирую на работе  на нано) да и второй макет дома на УНО  через  ЮСБ  в Ардуиновской оболочке  вывожу.  

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

Electronik83

лови. 

 

sakatgg
Offline
Зарегистрирован: 09.03.2017

Прошил PULTOSCOPE_SSD1306_final2_DDS_Z_EL83_EDITION.

В терминале проекта уже поболее выводит инфы :) Ток заторможено конечно, я роутер выключаю, а вывод еще 8 сек идет, и часть вывода из-за быстрого потока не успевает видно обработать и пропускает. 

Да еще, когда с usb литиевого бокса подключаю, чет черный экран или снег, и в последней строчке быстро чет пробегает, передергиваю питание нормально стартует.

Хорошо бы сделать сохранение последней выбранной скорости. Спасибо :)

Electronik83
Offline
Зарегистрирован: 06.12.2015

Stashevskiy68 пишет:

лови. 

Спасибо, принял!

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

bulat943

скинь свою почту . Електроник83 уже отправил

bulat943
Offline
Зарегистрирован: 19.09.2016
Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

Electronik83

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

Electronik83
Offline
Зарегистрирован: 06.12.2015

sakatgg пишет:

Ток заторможено конечно, я роутер выключаю, а вывод еще 8 сек идет, и часть вывода из-за быстрого потока не успевает видно обработать и пропускает.

Тоже тормоза наблюдал. Не знаю, с чем связано. Может немного позже поразбираюсь. Скоростей достаточно, которые есть? Я просто еще хотел добавить. Вот в машинах в к-линии там ваще нестандартная скорость обмена, например. Или можно сделать чтоб выбирать из стандартных и отдельный пункт - выбор своей.

Еще вскоре ответ хочу прикорячить, не знаю, конечно - критиковали тут, но реализовать интересно. Посимвольный ответ хочу сделать. Например для отладки устройств по уарту.

И еще непонятно, что делать с \r\n. Можно просто прятать, можно выводить, можно на новую строку перескакивать... И с ответом тоже непонятно с \r\n...

И невыводимые символы надо прятать, спасибо за наводку - на фотке увидел:)

bulat943
Offline
Зарегистрирован: 19.09.2016

спасибо,принял

посмотрю позже(наверно завтра-на рыбалку собираюсь)

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

bulat943

а я ни как не собирусь. надо спининг лайтовый + катушка 1500  размочить. плетенку никак не куплю. все деньги спускаю на модули для ардуино

Winstonn
Winstonn аватар
Offline
Зарегистрирован: 25.02.2017

sakatgg,
а что на счёт подтягивающих конденсаторов на кварце? может с ними получится...

Electronik83
Offline
Зарегистрирован: 06.12.2015

Winstonn пишет:
подтягивающих конденсаторов

Первый раз слышу такую формулировку "подтягивающие конденсаторы". Гм....

Мне кажется, что не в них дело.

sakatgg
Offline
Зарегистрирован: 09.03.2017

Поставил кондеры, другой фирмы usb бокс взял, первый раз включаю опять или черный экран или мусор и последняя строчка бегущая бешенно и перевернута, вот бы с такой скоростью выводил в терминале :). Передергиваю - нормально, главное выключишь, постоит немного и опять глюк с двойным включением надо проделыват:)

Скорости в меню вроде самые ходовые уже есть, конечно и ручной не помешало, как то нестандартная тоже попадалась 

Electronik83
Offline
Зарегистрирован: 06.12.2015

sakatgg пишет:

Поставил кондеры, другой фирмы usb бокс взял.................

Кварц поменьше запихай, на 8 или 4. Если глюков не будет - надо увеличивать задержки в инициализации дисплея.

Если с ардуино иде дружишь, попробуй в delay побольше поставить цифры, чем есть. Или своих понатыкать в ините дисплея.

Просто у меня есть подозрения, что дисплей не успевает принять данные при ините.

sakatgg
Offline
Зарегистрирован: 09.03.2017

C  кварцом 8 и 6Мг также глючит, раскоментировал здесь delay, заменил 50 на 250 





















    // перемещаемся по меню  
    if (flag_key-!digitalRead(key_up)  ) { mode++; delay(100); }
    if (flag_key-!digitalRead(key_down)) { mode--; delay(100); }
    if (mode == 0xFF) mode = 3;
    if (mode>3) mode=0;
    delay(250);  
    ssd1306_refresh(); // выводим все на экран

Все равно глюк остался, строка нижняя ток медленные стала бегать

И не понятно почему когда в течении 1 мин повторно включаю - нормально.

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

P.S На другой дисплее пробую - тоже самое




 

sakatgg
Offline
Зарегистрирован: 09.03.2017

 

Electronik83, добавил delay в это место - нормально стал стартовать.

Да и кнопки заодно отвязал от +, на землю посадил без резюков, вроде работают :)













void setup() {
  delay(500);// ожидаем 0.5 сек
  // автоматическое определение подключение кнопок
  byte key_test=0;
  // подтянули кнопки к питанию

Если запитываю схему от 3.3В (A5 подтянут с VCC), показывает напряжение батарее всё равно 5В

Достаточно поменять на 3.3В здесь? И как это отразиться на правильности замера в осциллографе?













float VCC       = 5.0; // напряжение питания, меряем мультиметром

 

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

для sakatgg

 ты в начале разберись как работает АЦП! и у тебя не будет возникать таких вопросов! А там все очень просто! 

1. существует 2 основных типа АЦП паралельное (очень быстрые и очень дорогие) и последовательного приближения (наша тема)

2. входное напряжение сравнивается образцовым ! какое на AREF повесишь с тем и будет сранивать, а можешь внутреннее включить 1.1в. иначе сравнивает с напряжением питания.

3. если у нас АЦП  10 разрядное значит у нас образцовое напряжение будет делиться на 1024.  и АЦП все равно какое оно 5в. или 3,3в или 1.1в.

4. как правило для определения АЦП входного напряжения используется время заряда конденсатора (находится внутри микропроцессора), время заряда до достижения  напряжения равного   входному переводят в двоичный код и ...вуаля  получите код АЦП.  а конденсатор заряжают образцовым напряжением. меняется образцовое напряжение - меняется время заряда  и меняется оно ПРОПОРЦИОНАЛЬНО !!!   поэтому  независимо от  величины образцового  ОТНОШЕНИЕ(а именно это и показывет нам АЦП)   напряжений  будет правильным. Ставь свои 3.3в и не заморачивайся  -это математика всегда можно скоректировать каэффициентом.

Если я  в чем-то ошибаюсь поправьте - буду благодарен. 

sakatgg
Offline
Зарегистрирован: 09.03.2017

Спасибо за разьяснение.

Сейчас в скетче PULTOSCOPE_SSD1306_final2_DDS_Z_EL83_EDITION есть реализация автоматического определения U батареи?

Или  надо на AREF подсоединить ИОН еще, как на скрине?

На данный момент какое U не подаю - всегда 5В.

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

1. напряжение считается от Vcc  . поставь Vcc (в начале программы где объявление перемменых) -  какое тебе надо

2. максимальное напряжение измерения будет AREF.  во включении tl431 как на схеме -это  2,5 в. 

 Я питаю свой пультоскоп от акумма для телефона +  DC-DC UP до 5в . смотри пост #2399 . очень компактно получается.  акумм 750мА .держит 6 часов с подсветкой дисплея на вздутом аккумуляторе!!!

satelit 2
Offline
Зарегистрирован: 04.12.2016

а что если вместо про мини установить esp8266? памяти больше(=больше плюшек), частота 80 против 16(20)мгц. или это все ацп решает?

sakatgg
Offline
Зарегистрирован: 09.03.2017

Stashevskiy68, т.е. показания U батареи не имеет привязки к реальному U на батарее, что пропишу в скейче, то и будет :( или я не догоняю? Хотелось бы автоматического мониторинга батареи, как в ТТ например.

Поставил на всякий случай TL431 - все равно 5В кажет при изменении VCC

P.S. Дисплей Nokia 5110 значит от 5В питаете и согласование уровней не делали? Работает :)

По идее можно от повышалки и отказазаться 328 и от 3.3В нормально пашет (не разогнанная). 

Если сделают передачу комманд в порт, то предпочтипельнее запитывать от 3.3В или делитель делать. У роутеров, по крайней мере, порты на 3.3В

 

bulat943
Offline
Зарегистрирован: 19.09.2016

sakatgg каким напряжением питаете свой 1306?в моем(оказываетсяон не умер-грелся сильно,но работает) стоит стабилизатор на 3,3в,питал от 5 в,просто если вы его питаете от 3,3 в то после стабилизатора (если он есть) напряжение будет еще ниже

фузы правльно зашиты в мега328?(генерация от вч кваца,делитель на 8 отключен,пока не меняйте никак-можно залочить атмегу)

про 5 в-это опорное для измерения напяжения батареи,оно равно напряжению питания атмега328(если питание 3,3 в то ставим VCC=3.3

измеряетсянапряжение на батарее!!!после него стоит стабилизатор на 5 в(или на 3,3 в),от которого запитана схема

можете скинуть свой скетч или вы его не изменяли?

sakatgg
Offline
Зарегистрирован: 09.03.2017

bulat943,  давно еще брал 1306, тогда говорили, что 3.3В его питать надо, но недавно делал ТТ и читал описание bpl, там стоит стаб на 3.3В на плате,. От 3.3В дисплей прекрасно работает тоже.  В ТТ от 5В запитан, вроде нормально не греется,  вместе с ТТ потребляет меньше 10mA

Фьюзы брал от Arduino UNO 

Золочить не страшно, доктор есть, кстати если кому нужен к доктору адаптер к Arduino Mini Pro то здесь выложил http://radiokot.ru/forum/viewtopic.php?p=3020611&sid=893fd8b8f827d1cb8f4b343700ec8245#p3020611

Скейч PULTOSCOPE_SSD1306_final2_DDS_Z_EL83_EDITION.rar, ток добавил delay, чуть выше писал в каком месте

We4nost
Offline
Зарегистрирован: 30.01.2017

Добрый вечер. Собрал Пультоскоп. Но есть проблемки(

железяки- про мини 328р 16мнц, дисплей нокиа 5110, плата с кнопками на плюс 5в.

Неадекватно работает контраст\подсветка при контрасте 7% без подсветки очень хорошо, с подсветкой не видно.

и при контрасте 70% с подсветкой очень хорошо без чёрный дисплей.((

Осциллограф работает! меандр работает 2Мнц идеальный!

Синус, треугольник, пила. не пашут( при выборе их в меню и нажатии ОК 0 реакции.

Фотки пока не понял как приклеить, завтра сфоткаю и разберусь.

 

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

для We4nost

попробуй прошивы от  Winstonn или Electronik83 . они сейчас активно занимаются пультоскопом.