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

Саня555
Offline
Зарегистрирован: 02.09.2016

За ранее извеняюсь за глупый вопрос.
Если не хватает производительности ардуэнки мини про то возможна ли сделать этот проэкт на двх мини про.?
Тоесть чтобы одна мини про управляла дисплэем а другая занималась расщетом данных - информации.
Или в этом нет смысла .?

GFX
Offline
Зарегистрирован: 24.04.2015

Саня555 пишет:

За ранее извеняюсь за глупый вопрос.
Если не хватает производительности ардуэнки мини про то возможна ли сделать этот проэкт на двх мини про.?
Тоесть чтобы одна мини про управляла дисплэем а другая занималась расщетом данных - информации.
Или в этом нет смысла .?

В этом никогда не было смысла, тут и подавно.

man_200
Offline
Зарегистрирован: 29.04.2016

А почему бы и нет? В первый МК загоняешь поток, раскладываешь в ряд Фурье и скидываешь параллельным кодом, ног-то хватает, вторым МК отрисовываешь, т.е первый используется как АЦП с предварительной обработкой. Тактировать от основного МК. Может не прав, но мысль интересная. Иногда напряг с АЦП

GFX
Offline
Зарегистрирован: 24.04.2015

man_200 пишет:

А почему бы и нет? В первый МК загоняешь поток, раскладываешь в ряд Фурье и скидываешь параллельным кодом, ног-то хватает, вторым МК отрисовываешь, т.е первый используется как АЦП с предварительной обработкой. Тактировать от основного МК. Может не прав, но мысль интересная. Иногда напряг с АЦП

А где взять общую память? как они общаться будут друг с другом, их общение убьет всю выгоду. Проще на МК пожиренее перейти, чем пытаться получить выгоду от двух МК, это вам не двухядерная система специально заточенная, ито не дающего двухкратного роста производительности. А тут и подавно пшык будет.

GFX
Offline
Зарегистрирован: 24.04.2015

Комент задвоился.

Саня555
Offline
Зарегистрирован: 02.09.2016

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

GFX
Offline
Зарегистрирован: 24.04.2015

Саня555 пишет:

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

Ближе к делу рассмотрильщики) нет от этого толку, один другого будет ждать, они будут передавать данные друг другу и на этом все.

Саня555
Offline
Зарегистрирован: 02.09.2016

GFX пишет:

Саня555 пишет:

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

Ближе к делу рассмотрильщики) нет от этого толку, один другого будет ждать, они будут передавать данные друг другу и на этом все.

Спасибо за твет.

VetalST
Offline
Зарегистрирован: 29.12.2015

Лекс 59 пишет:

VetalST пишет:

 Xumuk и Лекс 59 я помню у вас есть дисплеи LS020 и L2F50.

Вот библиотеки всё как и в старых, но работают с новими ID вплоть до arduino 1.6.11.

VetalST здравствуйте. Ну я более-менее переустановился после переезда на другое железо.

Возвращаюсь к пробам с ЛС020. Во, блин... пару месяцев не попользовался программами и програматорами и усе... Как по новой начинать.

Сегодня честно скрипел мозгами чтобы примантулить Ваш новый скетч (с приглаженым мерцанием), попытавшись воспользоваться советом и заменить часть кода в скетче с гашением экрана отдельной командой меню, пост 1455 стр. 30 данного обсуждения) (ну не люблю я полевики по старой памяти с советских времен, чтобы делать выключение кнопкой). И нифига у меня не получилось. Не вьехал, какую именно часть нужно заменить. Сорри. Если не в лом и если не так долго, то не могли бы Вы ... (далее следует потупленый взгляд в пол и застенчивое шарканье ножкой).

Если нет, то и фиг с ним. Это не критично и носит скорее характер пробы пока.

А если Вы подумываете после завершения варианта от Окмор пересадить его на ЛС020, то проба эта (с пультоскопом на ЛС020) практически наверняка дальше пробы не зайдет.

Можите просто в свой скетч добавить 

byte mass[501];//массив АЦП
byte massPOV[501];//массив АЦП

byte sinhMASS=0;
byte sinhMASSPOV=0;

/////////////// ИЗМЕНИТЬ////////////////////////
void Zamer(){
  if (razv>=6){ADCSRA = 0b11100010;}//delitel 4
  if (razv==5){ADCSRA = 0b11100011;}//delitel 8
  if (razv==4){ADCSRA = 0b11100100;}//delitel 16
  if (razv==3){ADCSRA = 0b11100101;}//delitel 32
  if (razv==2){ADCSRA = 0b11100110;}//delitel 64
  if (razv<2){ADCSRA = 0b11100111;}//delitel 128
  if (razv==0){
      for(int i=0;i<500;i++){ 
          while ((ADCSRA & 0x10)==0);
          ADCSRA|=0x10;
          delayMicroseconds(500);
          mass[i]=ADCH;
      }
  }
  if (razv>0){
      for(int i=0;i<500;i++){ 
          while ((ADCSRA & 0x10)==0);
          ADCSRA|=0x10;
          mass[i]=ADCH;
      }
  }
  
}


/////////////////////////// ЗАМЕНИТЬ КУСОК КОДА ///////////////////////////
        x=25;
        for(int y=sinhMASSPOV;y<sinhMASSPOV+150;y++){ 
          //for(int y=0;y<145;y++){
           if(razv<7){
            x++;
          }
          if(razv==7){
            x=x+2;
          }
          if(razv==8){
            x=x+3;
          } 
          if(razv==9){
            x=x+4;
          }
          if(razv==10){
            x=x+5;
          }
          if(x>175){
            x=176;
          } // что бы не засирало экран
          
          lcd.drawLine(x,110-massPOV[y]/3, x+1,110-massPOV[y+1]/3, BLACK);//график
        }
        /////////////////////////////////////////////////////////////////////////////////////////
        x=25;
        for(int y=sinhMASS;y<sinhMASS+150;y++){ 
         // for(int y=0;y<145;y++){
           if(razv<7){
            x++;
          }
          if(razv==7){
            x=x+2;
          }
          if(razv==8){
            x=x+3;
          } 
          if(razv==9){
            x=x+4;
          }
          if(razv==10){
            x=x+5;
          }
          if(x>175){
            x=176;
          } // что бы не засирало экран
                
          lcd.drawLine(x,110-mass[y]/3, x+1,110-mass[y+1]/3, GREEN);//график
        }

       // memcpy(massPOV,mass,350); // копируем с одного в другой массив
        for(int i = 0; i < 500; i++){  // копируем с одного в другой массив
        massPOV[i] = mass[i]; // убираем все лишнее
        } 
        sinhMASSPOV = sinhMASS;
        sinhMASS = 0;
        MenuT();  
      }
     ///////////////////////////////////////////////////////////////////////////

Питаюсь переделать библиотеку для 8 битного цвета и этим ускорить экран. Но пока библиотека правелно работает только в Atmel Studio, а в ардуино глючит. Так что скорей всего вариант олика Okmor будет переписан в Atmel Studio и скину HEX файл и если нужно исходник.

Лекс 59
Лекс 59 аватар
Offline
Зарегистрирован: 02.04.2016

VetalST пишет:

Можите просто в свой скетч добавить 

Питаюсь переделать библиотеку для 8 битного цвета и этим ускорить экран. Но пока библиотека правелно работает только в Atmel Studio, а в ардуино глючит. Так что скорей всего вариант олика Okmor будет переписан в Atmel Studio и скину HEX файл и если нужно исходник.

Понял, спасибо.

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

VetalST не подскажете по поводу новой версии, скачал архив схемку глянул схемку выключения экрана, там используется IRF9Z34N, можно ли его заменить на аналог чтобы был поменьше корпус например sot-23, по каким параметрам подбирать данный мосфет? судя по даташиту 19А держит=) думаю там столько не нужно

VetalST
Offline
Зарегистрирован: 29.12.2015

Мосфет можно любой, там где  то 100 ма потребление. Я когда проверял прошивку поставил первое что попалось подруку IRF9Z34N. Мы это обсуждали где то на 28 -29 странице проэкта. А на макетке у меня просто стоит четвертая кнопка (power A1) тушем экран и потом можем выкл питание.

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

VetalST пишет:

Мосфет можно любой, там где  то 100 ма потребление. Я когда проверял прошивку поставил первое что попалось подруку IRF9Z34N. Мы это обсуждали где то на 28 -29 странице проэкта. А на макетке у меня просто стоит четвертая кнопка (power A1) тушем экран и потом можем выкл питание.

кароче можно не замарачиваться просто тупо еще одну кнопку вывести?) и транзистор я так полагаю можно любой npn например у меня прост куча ss8050

VetalST
Offline
Зарегистрирован: 29.12.2015

Если поставить просто кнопку power A1, то больше ни каких транзисторов не нужно. Кнопка будет только программно выключать экран, а питание всего пультоскопа выключаете отдельным выключателем.

Забыл глянул в скет 

#define power A1 //пин который опрашивает кнопку включения
#define OFF A2//пин который управляет ключем питания
 
А на схеме  power A0 //пин который опрашивает кнопку включения а OFF A1//пин который управляет ключем питания Измените или в скетче или на схеме чтобы не путались. Это моя ошибка не досмотрел.
Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

VetalST пишет:

Если поставить просто кнопку power A1, то больше ни каких транзисторов не нужно. Кнопка будет только программно выключать экран, а питание всего пультоскопа выключаете отдельным выключателем.

Забыл глянул в скет 

#define power A1 //пин который опрашивает кнопку включения
#define OFF A2//пин который управляет ключем питания
 
А на схеме  power A0 //пин который опрашивает кнопку включения а OFF A1//пин который управляет ключем питания Измените или в скетче или на схеме чтобы не путались. Это моя ошибка не досмотрел.

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

Лекс 59
Лекс 59 аватар
Offline
Зарегистрирован: 02.04.2016

VetalST пишет:

Если поставить просто кнопку power A1, то больше ни каких транзисторов не нужно. Кнопка будет только программно выключать экран, а питание всего пультоскопа выключаете отдельным выключателем.

Забыл глянул в скет 

#define power A1 //пин который опрашивает кнопку включения
#define OFF A2//пин который управляет ключем питания
 
А на схеме  power A0 //пин который опрашивает кнопку включения а OFF A1//пин который управляет ключем питания Измените или в скетче или на схеме чтобы не путались. Это моя ошибка не досмотрел.

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

Тогда скетч действительно не нужно переделывать под отдельное гашение экрана.

Так я правильно Вас понял, вы присматриваетесь к варианту от Окмор применительно к ЛС020?

VetalST
Offline
Зарегистрирован: 29.12.2015

Xumuk Принцип работы схемы вкл/откл:

 

 

 

 

 

 

 

 

 

 

1) Замыкаем кнопку, подаем плюс через диод на базу транзистора. Открывается транзистор и минусом питания открывает мосфет. Через мосфет подается плюс и включается ардуина. Ардуина включилась подает на пин А1 плюс, и этим самоблокируется. На экране видем черный экран и рамку. Отпускаем кнопку и появляются надписи Осциллоскоп, Генератор, ДДС. Все ардуина готова к работе с программами.

2) Отключить ардуину : замыкаем кнопку, и этим подаем плюс на пин А0 и ардуина видет что нажата кнопка. Отключает экран и когда мы отпустим кнопку ардуина на пин А1 подаст минус и транзистор закроется,  закроется мосфет и отключится ардуина. 

Любой маломощный мосфет Р-канальный. Транзистор любой маломощный NPN.

Лекс 59 Да присматриваетесь к варианту от Окмор применить LS020.

Попользовался пультоскопом и заметел что на экране LS020 не знаю как на других. Нужно делать маштаб сетки или графика для правельного отображения на разных развертках. А то скважность шима не реально точно вычеслить. Получается что сетка просто для красоты.

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

Всем привет!попробовал собрать первый вариант все работает,кварц 16 МГц,дисплей SPFD5408 http://ru.aliexpress.com/item/Free-Shipping-1lot-2pcs-UNO-R3-MEGA328P-For-Arduino-2-4-Inch-TFT-Touch-LCD-Screen/32246798992.html

если припаяю кварц 27 мгц при перепрошивке снова впаивать кварц 16 МГц?

можно ли рабочую часть экрана сдвинуть влево?то есть надписи 5.00 V  4.00 V  и т д написать просто 5,4 и т д-увеличится рабочее поле

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

собирал вариант на 5110,работало,спасибо за конструкцию!

sirota
Offline
Зарегистрирован: 18.08.2015

bulat943 пишет:

Всем привет!попробовал собрать первый вариант все работает,кварц 16 МГц,дисплей SPFD5408 http://ru.aliexpress.com/item/Free-Shipping-1lot-2pcs-UNO-R3-MEGA328P-For-Arduino-2-4-Inch-TFT-Touch-LCD-Screen/32246798992.html

если припаяю кварц 27 мгц при перепрошивке снова впаивать кварц 16 МГц?

можно ли рабочую часть экрана сдвинуть влево?то есть надписи 5.00 V  4.00 V  и т д написать просто 5,4 и т д-увеличится рабочее поле

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

собирал вариант на 5110,работало,спасибо за конструкцию!

Ищите поиском на форму конструктор Optiboot Под 328 мегу можно сделать загрузчик под нужную частото и будер работать и сериал и все чт душе угодно. 27МГц сериал работает так себе, но работает, ибо контроль ошибок уже не заточен на акую частоту.

Лекс 59
Лекс 59 аватар
Offline
Зарегистрирован: 02.04.2016

VetalST пишет:

Если хотите вот мой последней версии убрал мерцание экрана.

Сегодня разобрался наконец с программатором (ардуинка, которую применил не шилась через усб-варт) и попробовал ваш скетч с убраным мерцанием. Пришлось закомментировать одну строку (ругался ардуино 1.6.11) и все пошло. Пин А1 тупо замыкал на землю (ну не лепить же на макетной панели автоотключение).

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

В принципе, если даже вы не будете переводить вариант Окмора на ЛС020, тогда я реализую этот вариант. Но, возможно, добавлю ОУ на входе для нормального входного сопротивления. Посмотрю. Как еще компоноваться будет.

В любом варианте - спасибо огромное.

VetalST
Offline
Зарегистрирован: 29.12.2015

Лекс 59 

Я занялся осликом от Okmor вот тут видео того что пока получилось http://arduino.ru/forum/proekty/virtos-samyi-prostoi-dvukhluchevoi-ostsillograf-ostsillograf-na-arduino#comment-220946

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

Что к пултоскопу что к ослику от Okmor можно прикрутить практически любой TFT экран изменив логику вывода графика и информации на экран.

Кстати мне будет нужна ваша помощь, в плане правельной разводки платы и т.д. Я в этом почти ноль.

Лекс 59
Лекс 59 аватар
Offline
Зарегистрирован: 02.04.2016

VetalST пишет:

Лекс 59 

Я занялся осликом от Okmor вот тут видео того что пока получилось http://arduino.ru/forum/proekty/virtos-samyi-prostoi-dvukhluchevoi-ostsillograf-ostsillograf-na-arduino#comment-220946

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

Что к пултоскопу что к ослику от Okmor можно прикрутить практически любой TFT экран изменив логику вывода графика и информации на экран.

Кстати мне будет нужна ваша помощь, в плане правельной разводки платы и т.д. Я в этом почти ноль.

Во блин, а я проспал появление отдельной темы. Спасибо.

Что до платы, да, помогу конечно.

Denis.dd
Offline
Зарегистрирован: 29.09.2016

Добрый день.Попался дисплей скорее всего от 3410,Подправить скетч можно?Или проще на LS020 перейти.

На одном форуме нашел такое: Достаточно поменять значения LCD_X_RES и LCD_Y_RES)
3310 - 84 и 6
3410 - 96 и 8

Немогу найти,помогите.
 

 

 

Jtest
Offline
Зарегистрирован: 02.06.2015

Я переделывал под 3410. Вот ссылка http://best-chart.ru/samodelnye-izmeritelnye-ustrojstva-testery/pultosco...

Там нет последней функции - перемотка в режиме пауза. Но код открытый, при желании, можете добавить.

Denis.dd
Offline
Зарегистрирован: 29.09.2016

Спасибо.Почемуто некомпилируется,может есть секрет,поделитесь.

Jtest
Offline
Зарегистрирован: 02.06.2015

Смотрите ошибки компиляции и узнаете причину.

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

VetalST не подскажете, делаю печатку для корпуса под ослик лс020 там стоит делитель на вход А3 для показания напряжения батареи, вопрос собственно зачем он там? если батарея всегда не выше 4х вольт

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

Denis.dd
Offline
Зарегистрирован: 29.09.2016

Jtest,спасибо.Всё работает отлично.Есть мысль добавить DDS генератор,к сожалению немогу осилить.Набросал примерно,если не затруднит помочь,буду премного благодарен.

[code]
//
//Страница проэкта  <a data-cke-saved-href="<a data-cke-saved-href="http://srukami.inf.ua/pultoscop_v25110.html" href="http://srukami.inf.ua/pultoscop_v25110.html" rel="nofollow">http://srukami.inf.ua/pultoscop_v25110.html</a>" href="<a data-cke-saved-href="http://srukami.inf.ua/pultoscop_v25110.html" href="http://srukami.inf.ua/pultoscop_v25110.html" rel="nofollow">http://srukami.inf.ua/pultoscop_v25110.html</a>" rel="nofollow"><a data-cke-saved-href="http://srukami.inf.ua/pultoscop_v25110.html" href="http://srukami.inf.ua/pultoscop_v25110.html" rel="nofollow">http://srukami.inf.ua/pultoscop_v25110.html</a></a>
//Переделка под дисплей от Nokia 3410 и оптимизация кода <a data-cke-saved-href="<a data-cke-saved-href="http://best-chart.ru" href="http://best-chart.ru" rel="nofollow">http://best-chart.ru</a>" href="<a data-cke-saved-href="http://best-chart.ru" href="http://best-chart.ru" rel="nofollow">http://best-chart.ru</a>" rel="nofollow"><a data-cke-saved-href="http://best-chart.ru" href="http://best-chart.ru" rel="nofollow">http://best-chart.ru</a></a>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <FreqCount.h> 
#include <PWM.h>
#define led  9   //пин для генератора сигналов dds(не менять)
#define led  10   //пин для генератора сигналов (Только 10й пин)
//#################№№№№№№####пользовательские настройки
#define levo 11  //кнопка ЛЕВО(можно любой пин)
#define ok 8    //кнопка ОК(можно любой пин)
#define pravo 12 //кнопка ПРАВО(можно любой пин)
#define akb A0 //любой свободный аналоговый пин для измерения напряжения АКБ 
#define overclock 16  //Частота на которой работает Ардуино
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 4, 3, 2);//пины к которым у вас подключен дисплей          
byte cont=65;//контрастность дисплея
byte SinU=30;   //уровень синхронизации 0 до 255 
int PWM = 128;//стартовое значение ШИМ от 0 до 255 
float fiveV = 5.03; //наши 5v, меряем мультиметром
int32_t frequency = 5000; //стартовое значение частоты в Гц
//###########################################################   
float maxV = 0.0; // вычисление вольтажа
float printV = 0.0; // вывод вольтажа
float batt =0.00; // для вывода вольтажа батареи
byte hag=0;
int mnog=0;
boolean flag=0;
byte mass[256];
byte x=0; 
byte menu=0;//переменная выбора меню 
bool opornoe=1; //флаг опорного напряжения
bool paus=0; //флаг режима паузы
bool pultoskop=0; //флаг выбора генератора или осциллографа
byte razv=6; 

byte sinX=30; 
byte meaX=83;
int Vmax=0;// максимальное напряжение  
byte sinhMASS=0;
long countX=0;
byte zoom=1;  //Приближение по умолчанию 1:1
byte poz=8;   //Позиционирование
int koef=1; //коэффициент для синхронизации 
int newpoz=0;
unsigned long count =0;  
void setup(){  
display.begin();
display.setContrast(cont); 
display.clearDisplay();
display.setCursor(5,20);
display.setTextColor(BLACK);     
display.print("Pultoscope v.");
display.setCursor(82,13);
display.setTextSize(2); 
display.print("2");
display.setTextSize(1); 
display.setCursor(3,45);
display.println(utf8rus("Версия для 3410"));
display.setCursor(10,55);
display.print("best-chart.ru"); 
batt=analogRead(akb)*fiveV/1024;
display.display();    
delay(2000);

while(digitalRead(ok)==LOW){ 
   
    display.clearDisplay();  
    display.setCursor(15,10);
    display.println(utf8rus("Осциллограф"));
    display.setCursor(15,20); 
    display.println(utf8rus("Генератор"));
    display.setCursor(15,30);
    display.println(utf8rus("DDSгенератор"));
    display.setCursor(5,55);
    display.print(utf8rus("Батарея "));
    display.print(batt);
    display.println(utf8rus(" в"));  
  if(pultoskop==0) display.setCursor(5,10);   
  if(pultoskop==1) display.setCursor(5,20);
  if(pultoskop==2) display.setCursor(5,30);
    display.print(">");   
display.display();
if(digitalRead(levo)==HIGH){delay(300);pultoskop=pultoskop+1;}
if(digitalRead(pravo)==HIGH){delay(300);pultoskop=pultoskop+1;}
if(pultoskop>2){pultoskop=0;}

delay(50);  
display.display(); }   
}  
if(pultoskop==0){
    FreqCount.begin(1000);   
}
if(pultoskop==1){
   InitTimersSafe(); 
   bool success = SetPinFrequencySafe(led, frequency); 
} 
 if(pultoskop==2){
  InitTimersSafe();
   bool success = SetPinFrequencySafe(led,200000);
}

display.setTextColor(BLACK);
delay(500); 
    }   
void Zamer(){
  if (razv>=6){ADCSRA = 0b11100010;}//delitel 4
  if (razv==5){ADCSRA = 0b11100011;}//delitel 8
  if (razv==4){ADCSRA = 0b11100100;}//delitel 16
  if (razv==3){ADCSRA = 0b11100101;}//delitel 32
  if (razv==2){ADCSRA = 0b11100110;}//delitel 64
  if (razv<2){ADCSRA = 0b11100111;}//delitel 128
  if (razv==0){
      for(byte i=0;i<255;i++){ 
          while ((ADCSRA & 0x10)==0);
          ADCSRA|=0x10;
          delayMicroseconds(500);
          mass[i]=ADCH;
      }
  }
  if (razv>0){
      for(byte i=0;i<255;i++){ 
          while ((ADCSRA & 0x10)==0);
          ADCSRA|=0x10;
          mass[i]=ADCH;
      }
  }
  
}
void loop() {
if(pultoskop==0){  
String text="";
byte test;
if(opornoe==0){ADMUX = 0b11100100;}//выбор внутреннего опорного 1,1В
if(opornoe==1){ADMUX = 0b01100100;}//Выбор внешнего опорного
delay(5);
if(paus==0){Zamer();}
//#######################################определение точки синхронизации

maxV = 0;  
for(int y=1;y<85;y++){
  if(maxV<mass[y]){ maxV=mass[y];}        
}
if(opornoe==0) {
  koef=1;
} else {
    if(maxV>=85) koef=1;
    else {
      if(maxV>=17) koef=3;
      else koef=15;
    }            
 }

bool flagSINHRO=0;
bool flagSINHRnull=0;   
for(int y=1;y<255;y++){       
  if(flagSINHRO==0){if(mass[y]*koef<SinU){flagSINHRnull=1;}}
  if(flagSINHRO==0){if(flagSINHRnull==1){if(mass[y]*koef>SinU){flagSINHRO=1;sinhMASS=y;}}    
  }
}
  //if(flagSINHRO==0){if(mass[y]<SinU){if(mass[y]>SinU){flagSINHRO=1;sinhMASS=y;}}
  
//#######################################отрисовка графика
  
      x=10;
      if (zoom==2) x=5;
      if (zoom==3) x=3;   

      if(poz==9) newpoz=-14;    
      if(poz==8) newpoz=0; 
      if(poz==7) newpoz=7;
      if(poz==6) newpoz=14;
      if(poz==5) newpoz=21;
      if(poz==4) newpoz=28;
      if(poz==3) newpoz=35;
      if(poz==2) newpoz=42; 
      if(poz==1) newpoz=49;          

display.clearDisplay(); 
display.fillCircle(91,45-SinU/5.8, 2, BLACK);//рисуем уровень синхронизации       
      //for(int y=1;y<85;y++){ 
      for(int y=sinhMASS;y<sinhMASS+85;y++){
        if(razv<7){x++;}
        if(razv==7){x=x+2;}
        if(razv==8){x=x+3;}
        if(x<=95) {
            display.drawLine(x*zoom, (46+newpoz)-(mass[y]/5.6*koef)*zoom, (x+1)*zoom, (46+newpoz)-(mass[y+1]/5.6*koef)*zoom, BLACK);          
        } 
      }
   sinhMASS=0; 
//#######################################отрисовка графика
  for(int i=0; i<=45; i+=5) {
    display.drawPixel(24,i, BLACK);
    display.drawPixel(49,i, BLACK);
    display.drawPixel(74,i, BLACK);
  
  }//разметка экрана  вертикальная   
    if(opornoe==0) {
      for(int i=9; i<95; i+=5) {
        display.drawPixel(i,4, BLACK);
        display.drawPixel(i,17, BLACK);
        display.drawPixel(i,31, BLACK);
      }   
        display.drawFastHLine(0,11,9, BLACK);
        display.drawFastHLine(0,25,9, BLACK);
        display.drawFastHLine(0,39,9, BLACK);
        
        display.drawChar (1, 1, '3', 1, 0, 1); 
        display.drawChar (1, 14, '2', 1, 0, 1);  
        display.drawChar (1, 28, '1', 1, 0, 1);           
      }
    else {
      for(int i=45;i>=0;i=i-9){display.drawFastHLine(0,i,9, BLACK);}
      for(int i=9; i<95; i+=5) {
        display.drawPixel(i,18, BLACK);
        display.drawPixel(i,36, BLACK);
      }   
        display.drawChar (0, 14, '9', 1, 0, 1);  
        display.drawChar (0, 33, '3', 1, 0, 1);      
      if(maxV<85) {
        display.drawChar (0, 14, '3',  1, 0, 1);
        display.drawChar (0, 33, '1', 1, 0, 1);         
      }            
      if(maxV<17) {
        display.drawChar (-1, 14, '.',  1, 0, 1);   
        display.drawChar (-1, 33, '.',  1, 0, 1);                    
        display.drawChar (3, 14, '6',  1, 0, 1);
        display.drawChar (3, 33, '2', 1, 0, 1);                
      }   
    }
//#######################################отрисовка menu
display.fillRect(0, 47, 95, 18, 0);
if(menu==0){
    if(digitalRead(levo)==HIGH){opornoe=!opornoe;}
    if(digitalRead(pravo)==HIGH){opornoe=!opornoe;} 
    display.drawRect(0, 46, 9, 11, BLACK);   
}
if(menu==1){
    if(digitalRead(levo)==HIGH){razv=razv-1;if(razv==255){razv=0;}}
    if(digitalRead(pravo)==HIGH){razv=razv+1;if(razv==9){razv=8;}}
    display.drawRect(12, 46, 21, 11, BLACK);
}
if(menu==2){
    if(digitalRead(levo)==HIGH){zoom=zoom-1;if(zoom==0){zoom=1;}}
    if(digitalRead(pravo)==HIGH){zoom=zoom+1;if(zoom==4){zoom=3;}}    
    display.drawRect(36, 46, 21, 11, BLACK);
}
if(menu==3){
    if(digitalRead(levo)==HIGH) {poz=poz-1;if(poz==0){poz=1;}}
    if(digitalRead(pravo)==HIGH){poz=poz+1;if(poz==10){poz=9;}}    
    display.drawRect(60, 46, 21, 11, BLACK);
}
if(menu==4){
    paus=1;
    if(digitalRead(levo)==HIGH){Zamer();}
    if(digitalRead(pravo)==HIGH){Zamer();}    
    display.drawRect(82, 46, 11, 11, BLACK);
}
if(menu==5){
    paus=0;
    if(digitalRead(levo)==HIGH){if(SinU>=25){SinU=SinU-20;}}
    if(digitalRead(pravo)==HIGH){if(SinU<=225){SinU=SinU+20;}}   
    display.fillCircle(91,45-SinU/5.8, 3, BLACK);
    display.fillCircle(91,45-SinU/5.8, 2, WHITE); 
}
if(digitalRead(ok)==HIGH){menu++;if(menu==6){menu=0;paus=0;}}//перебор меню
if (FreqCount.available()) {count = FreqCount.read();}//вывод частоты по готовности счетчика
countX=count*(overclock/16.0);
if(countX==0) {
  //#######################################частоты сигнала
  byte Frec1=0;
  int Frec=0;
  bool flagFrec1=0;
  bool flagFrec2=0;
  bool flagFrec3=0;
  for(int y=1;y<255;y++){
    if(flagFrec1==0){if(mass[y]*koef<SinU){flagFrec2=1;}}
    if(flagFrec1==0){if(flagFrec2==1){if(mass[y]*koef>SinU){flagFrec1=1;Frec1=y;}}}
    if(flagFrec1==1){if(mass[y]*koef<SinU){flagFrec3=1;}}
    if(flagFrec3==1){if(mass[y]*koef>SinU){
    if (razv>=6){Frec=1000000/((y-Frec1-1)*3.27);}//delitel 4
    if (razv==5){Frec=1000000/((y-Frec1)*3.27)/2;}//delitel 8
    if (razv==4){Frec=1000000/((y-Frec1)*3.27)/4;}//delitel 16
    if (razv==3){Frec=1000000/((y-Frec1)*3.27)/8;}//delitel 32
    if (razv==2){Frec=1000000/((y-Frec1)*3.27)/16;}//delitel 64
    if (razv==2){Frec=1000000/((y-Frec1)*3.27)/32;}//delitel 128
    if (razv==1){Frec=1000000/((y-Frec1)*3.27)/32;}//delitel 128
    if (razv==0){Frec=1000000/((y-Frec1)*500);}//delitel 128
    flagFrec1=0;flagFrec3=0;}}}
  //#######################################частоты сигнала  
  countX=Frec*(overclock/16.0);
}

if(opornoe==0) text="1";
if(opornoe==1) text="5";
    
text=text+utf8rus(" Р:")+razv+utf8rus(" ")+zoom+utf8rus(":1")+utf8rus(" П:")+poz;

display.setCursor(2, 48);
display.print(text);

if(opornoe==1) printV=maxV*fiveV/255*3,2; //if(opornoe==1) printV=maxV*fiveV/255*3,2;
if(opornoe==0) printV=maxV*1.10/255*3,2; // напряжение на делителе 1.1в

display.setCursor(1, 58);
display.print(printV);display.print("v ");
display.print(countX);display.print("Hz");
display.fillRect(85, 48, 2, 7, 1);
display.fillRect(88, 48, 2, 7, 1);
//display.setCursor(55, 0); display.print(maxV); //градации напряжения
//#######################################отрисовка menu

display.display();
delay(200); 
}
if(pultoskop==1){Generator();}
if(pultoskop==2){DDSGenerator();}
}
//#######################################режим ренератора
void Generator(){
display.clearDisplay();  
if (flag==0){//флаг выборов режима настройки ШИМ или Частоты
            if(digitalRead(levo)==HIGH){
              frequency=frequency-mnog;
              if(frequency<0){frequency=0;}
              bool success = SetPinFrequencySafe(led, frequency);
              delay(3);//защита от дребезга 
            }
            if(digitalRead(pravo)==HIGH){
              frequency=frequency+mnog;
              bool success = SetPinFrequencySafe(led, frequency);
              delay(3);//защита от дребезга 
            }  
}
if (flag==1){//флаг выборов режима настройки ШИМ или Частоты
            if(digitalRead(levo)==HIGH){
              PWM=PWM-3;
              if(PWM<0){PWM=255;} 
              delay(3);//защита от дребезга
            
            }
            if(digitalRead(pravo)==HIGH){
              PWM=PWM+3;
              if(PWM>255){PWM=0;} 
              delay(3);//защита от дребезга 
            }  
}      
if(digitalRead(ok)==HIGH){//переключение разряда выбора частоты 
  delay(3);//защита от дребезга
  hag++;
  if(hag>=5){hag=0;}
} 
////////////
display.setTextSize(1);
display.setCursor(20,15);
display.print("PWM = ");
display.print(PWM*100/255);
display.print("%");
display.drawRect(2,2,92,10, BLACK);
display.fillRect(2,2,92*PWM/255.0,10, BLACK);

///////////    
display.setCursor(5,30);
 display.setTextSize(2);
long frequencyX=frequency*(overclock/16.0);
if(frequencyX<1000){display.print(frequencyX);display.setTextSize(1);display.println("Hz");}
if(frequencyX>=1000){if(frequencyX<10000){display.print((frequencyX/1000.0),3);display.setTextSize(1);display.println("KHz");}}
if(frequencyX>=10000){if(frequencyX<100000){display.print((frequencyX/1000.0),3);display.setTextSize(1);display.println("KHz");}}
if(frequencyX>=100000){display.print((frequencyX/1000.0),2);display.setTextSize(1);display.println("KHz");}
display.setCursor(15,55);
display.setTextSize(1);
display.print(">> X ");    
      if(hag==0){//выбор множителя частоты
        
          display.print(1*(overclock/16.0),1); 
          mnog=1;
          flag=0;
      }
      if(hag==1){//выбор множителя частоты
          display.print(10*(overclock/16.0),0); 
          mnog=10;
      }
      if(hag==2){//выбор множителя частоты
          display.print(100*(overclock/16.0),0); 
          mnog=100;
      }
      if(hag==3){//выбор множителя частоты
          display.print(1000*(overclock/16.0),0); 
          mnog=1000;
      } 
      if(hag==4){//выбор  PWM
          display.print(utf8rus("ШИМ"));
          flag=1;
      } 
display.print(" <<");        
pwmWrite(led, PWM);
display.display();
delay(300);
}
/////////////////////DDS
void DDSGenerator(){
int fr=9;
if(menuDDS==0){
    display.clearDisplay(); 
    display.setTextColor(WHITE, BLACK); // 'inverted' text
    display.setCursor(15,0);
    display.println(utf8rus("Синус");
    display.setTextColor(BLACK);
    display.setCursor(15,10); 
    display.println(utf8rus("Треугольник");
    display.setCursor(15,20);
    display.println(utf8rus("Пила");
    display.setCursor(15,30);
    display.println(utf8rus("Пила Обр");
    display.setTextColor(BLACK);
    display.setCursor(0,40);
    //display.print("Частота=");
    //display.print(57);
    //display.print("Гц"); 
    delay(100);  
    display.display();
    while(D11_Read==LOW){
      PWM=sinM[d];
      pwmWrite(dds,PWM);
      //delayMicroseconds(fr);
      d++;
      if(d==32){d=0;}}
    menuDDS++;
    delay(200);}
if(menuDDS==1){
    display.clearDisplay(); 
    display.setTextColor(BLACK); // 'inverted' text
    display.setCursor(15,0);
    display.println(utf8rus("Синус");
    display.setTextColor(WHITE, BLACK);
    display.setCursor(15,10); 
    display.println(utf8rus("Треугольник");
    display.setTextColor(BLACK);
    display.setCursor(15,20);
    display.println(utf8rus("Пила");
    display.setCursor(15,30);
    display.println(utf8rus("Пила Обр");
    display.setTextColor(BLACK);
    //display.setCursor(0,40);
    //display.print("Частота=");
   // display.print(57);
    //display.print("Гц");
    delay(100);  
    display.display();
    while(D11_Read==LOW){
      PWM=trianglM[d];
      pwmWrite(dds,PWM);
      //delayMicroseconds(fr);
      d++;
      if(d==32){d=0;}}
    menuDDS++;
    delay(200);}
if(menuDDS==2){
    display.clearDisplay(); 
    display.setTextColor(BLACK); // 'inverted' text
    display.setCursor(15,0);
    display.println(utf8rus("Синус");
    display.setTextColor(BLACK);
    display.setCursor(15,10); 
    display.println(utf8rus("Треугольник");
    display.setTextColor(WHITE, BLACK);
    display.setCursor(15,20);
    display.println(utf8rus("Пила");
    display.setTextColor(BLACK);
    display.setCursor(15,30);
    display.println(utf8rus("Пила Обр");
    display.setTextColor(BLACK);
    //display.setCursor(0,40);
    //display.print("Частота=");
   // display.print(57);
    //display.print("Гц");
    delay(100);  
    display.display();
    while(D11_Read==LOW){
      PWM=pilaM[d];
      pwmWrite(dds,PWM);
     // delayMicroseconds(fr);
      d++;
      if(d==32){d=0;}}
      menuDDS++;
    delay(200);}
if(menuDDS==3){
    display.clearDisplay(); 
    display.setTextColor(BLACK); // 'inverted' text
    display.setCursor(15,0);
    display.println(utf8rus("Синус");
    display.setTextColor(BLACK);
    display.setCursor(15,10); 
    display.println(utf8rus("Треугольник");
    display.setTextColor(BLACK);
    display.setCursor(15,20);
    display.println(utf8rus("Пила");
    display.setTextColor(WHITE, BLACK);
    display.setCursor(15,30);
    display.println(utf8rus("Пила Обр");
    display.setTextColor(BLACK);
    //display.setCursor(0,40);
    //display.print("Частота=");
   // display.print(57);
   // display.print("Гц");
    delay(100);  
    display.display();
    while(D11_Read==LOW){
      PWM=RpilaM[d];
      pwmWrite(dds,PWM);
      //delayMicroseconds(fr);
      d++;
      if(d==32){d=0;}}
      menuDDS++;
    delay(200);}
if(menuDDS==4){menuDDS=0;}

}
/////////////////////DDS


[/code]

 

Лекс 59
Лекс 59 аватар
Offline
Зарегистрирован: 02.04.2016

Xumuk пишет:

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

Рискну ответить за VetalST. Ослик не включается потому что: VetalST пишет в посте № 2014 "Если поставить просто кнопку power A1, то больше ни каких транзисторов не нужно".

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

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

походу отжил свое дисплей......

Jtest
Offline
Зарегистрирован: 02.06.2015

Denis.dd, на странице автора код, в котором реализован DDS, просто замените часть кога с генератором и добавьте резистор и конденсатор для генератора.

П.С. Отредаутируйте сообщение с кодом, чтобы он был в свернутом виде.

VetalST
Offline
Зарегистрирован: 29.12.2015

Xumuk пишет:

VetalST не подскажете, делаю печатку для корпуса под ослик лс020 там стоит делитель на вход А3 для показания напряжения батареи, вопрос собственно зачем он там? если батарея всегда не выше 4х вольт

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

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

А делитель особо и не нужен, если перед измерением акб будет вкл опорное 5в должно быть 

bool opornoe=1; //флаг опорного напряжения 

 

Xumuk пишет:

походу отжил свое дисплей......

Что значит похоже ?????

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

VetalST пишет:

Xumuk пишет:

VetalST не подскажете, делаю печатку для корпуса под ослик лс020 там стоит делитель на вход А3 для показания напряжения батареи, вопрос собственно зачем он там? если батарея всегда не выше 4х вольт

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

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

А делитель особо и не нужен, если перед измерением акб будет вкл опорное 5в должно быть 

bool opornoe=1; //флаг опорного напряжения 

 

Xumuk пишет:

походу отжил свое дисплей......

Что значит похоже ?????

белый экран и как будто темным расплытое пятно будто от воды

 

vasska
Offline
Зарегистрирован: 21.04.2016

может пленку снять защитную?)

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

vasska пишет:

может пленку снять защитную?)

я сначало тоже так подумал, но нет...

 

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

удалил.отправил дважды

 

Denis.dd
Offline
Зарегистрирован: 29.09.2016

Jtest,я так и сделал,только у Вас даже меню подругому,строчку вывел а курсор на неё не переходит.Еслибы просто добавить строки я б справился и не просил о помощи.

Лекс 59
Лекс 59 аватар
Offline
Зарегистрирован: 02.04.2016

Xumuk пишет:

походу отжил свое дисплей......

Белый экран - осталась только подсветка. Команда гашения ПРОШЛА. У меня это именно так и выглядит, когда размыкаю пин А1.

Пятно будто от воды может быть пятном от воды. Не говорит это ни о чем. А на фото синее поле с красной рамкой - это демонстрация НОРМАЛЬНОЙ работы дисплея.

Просто сделайте все как надо с кнопками. Подтяжки и т.д.

Продавец, от которого у меня дисплеи говорил, что сименсы очень живучие. Хочется думать, что он прав.

Пока нет подтяжки на кнопки - там все срабатывает случайным образом.

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

Лекс 59 пишет:

Xumuk пишет:

походу отжил свое дисплей......

Белый экран - осталась только подсветка. Команда гашения ПРОШЛА. У меня это именно так и выглядит, когда размыкаю пин А1.

Пятно будто от воды может быть пятном от воды. Не говорит это ни о чем. А на фото синее поле с красной рамкой - это демонстрация НОРМАЛЬНОЙ работы дисплея.

Просто сделайте все как надо с кнопками. Подтяжки и т.д.

Продавец, от которого у меня дисплеи говорил, что сименсы очень живучие. Хочется думать, что он прав.

Пока нет подтяжки на кнопки - там все срабатывает случайным образом.

 

я же писал что что кнопки управления не подключены НО резисторы подтяжки стоят. подтяжка А1 тоже стоит 4,7 ком. первый раз когда подтянул было норм потом ребутнулся экран,а потом чето произошло это ....возможно задел на стабилизаторе который 5 вольт выдает переменник и он больше чем нужно напругу выдал и аминь 

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

Лекс 59 пишет:

Xumuk пишет:

походу отжил свое дисплей......

Белый экран - осталась только подсветка. Команда гашения ПРОШЛА. У меня это именно так и выглядит, когда размыкаю пин А1.

Пятно будто от воды может быть пятном от воды. Не говорит это ни о чем. А на фото синее поле с красной рамкой - это демонстрация НОРМАЛЬНОЙ работы дисплея.

Просто сделайте все как надо с кнопками. Подтяжки и т.д.

Продавец, от которого у меня дисплеи говорил, что сименсы очень живучие. Хочется думать, что он прав.

Пока нет подтяжки на кнопки - там все срабатывает случайным образом.

 

я же писал что что кнопки управления не подключены НО резисторы подтяжки стоят. подтяжка А1 тоже стоит 4,7 ком. первый раз когда подтянул было норм потом ребутнулся экран,а потом чето произошло это ....возможно задел на стабилизаторе который 5 вольт выдает переменник и он больше чем нужно напругу выдал и аминь 

щас проверил про мини ардуину не шьется походу тоже аминь... глянул сколько вольт прилетает если задеть переменник....9 вольт

видимо придется заказывать новый дисплей либо как у окмора либо как у GFX =((((((((((((((((((( пока временно сделаю на дисплее 1.44

Лекс 59
Лекс 59 аватар
Offline
Зарегистрирован: 02.04.2016

Xumuk пишет:

я же писал что что кнопки управления не подключены НО резисторы подтяжки стоят. подтяжка А1 тоже стоит 4,7 ком. первый раз когда подтянул было норм потом ребутнулся экран,а потом чето произошло это ....возможно задел на стабилизаторе который 5 вольт выдает переменник и он больше чем нужно напругу выдал и аминь 

На А1 подтяжка не нужна.

Если прилетело около 9 вольт - возможно и умер. Ардуина точно практически, дисплей ХЗ, особенно если он у вас с переходником-адаптором. Советую его позже проверить на всякий.

Сочувствую.

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

Лекс 59 пишет:

Xumuk пишет:

я же писал что что кнопки управления не подключены НО резисторы подтяжки стоят. подтяжка А1 тоже стоит 4,7 ком. первый раз когда подтянул было норм потом ребутнулся экран,а потом чето произошло это ....возможно задел на стабилизаторе который 5 вольт выдает переменник и он больше чем нужно напругу выдал и аминь 

На А1 подтяжка не нужна.

Если прилетело около 9 вольт - возможно и умер. Ардуина точно практически, дисплей ХЗ, особенно если он у вас с переходником-адаптором. Советую его позже проверить на всякий.

Сочувствую.

не знаю видно нет, белые пятнышки и пятно наискось дисплея белее подсветки

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

Лекс 59 пишет:

Xumuk пишет:

я же писал что что кнопки управления не подключены НО резисторы подтяжки стоят. подтяжка А1 тоже стоит 4,7 ком. первый раз когда подтянул было норм потом ребутнулся экран,а потом чето произошло это ....возможно задел на стабилизаторе который 5 вольт выдает переменник и он больше чем нужно напругу выдал и аминь 

На А1 подтяжка не нужна.

Если прилетело около 9 вольт - возможно и умер. Ардуина точно практически, дисплей ХЗ, особенно если он у вас с переходником-адаптором. Советую его позже проверить на всякий.

Сочувствую.

не знаю видно нет, белые пятнышки и пятно наискось дисплея белее подсветки

Лекс 59
Лекс 59 аватар
Offline
Зарегистрирован: 02.04.2016

Возможно он ранее попадал в воду. Возможно частичное отслоение. Там структура подложки подсветки очень хитрая. Если напруга долго действовала, возможен перегрев и повреждение структуры. Но тогда и контроллер выжил вряд-ли.

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

Важнее гораздо контроллер дисплея. выжил или нет. А это можно выяснить только подключением.

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

Лекс 59 пишет:

Возможно он ранее попадал в воду. Возможно частичное отслоение. Там структура подложки подсветки очень хитрая. Если напруга долго действовала, возможен перегрев и повреждение структуры. Но тогда и контроллер выжил вряд-ли.

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

Важнее гораздо контроллер дисплея. выжил или нет. А это можно выяснить только подключением.

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

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

Лекс 59 пишет:

Возможно он ранее попадал в воду. Возможно частичное отслоение. Там структура подложки подсветки очень хитрая. Если напруга долго действовала, возможен перегрев и повреждение структуры. Но тогда и контроллер выжил вряд-ли.

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

Важнее гораздо контроллер дисплея. выжил или нет. А это можно выяснить только подключением.

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

Jtest
Offline
Зарегистрирован: 02.06.2015

Denis.dd, к сожалению, сейчас большая загруженность, разбираться некогда. Поседите вечерок, поэксперементируйте, думаю, у Вас все получится. Меню я внешний вид менял. Значит и там нужно внести изменения.

VetalST
Offline
Зарегистрирован: 29.12.2015

Xumuk У меня экран к макетке 5х7см приклеен и на ней резисторы, питание 2.9в и преобразователь подсветки. Экран старый внизу или в верху смотря какую библиотеку задействовать тоже пятно есть, оно было с первых дней как экран попал комне, его видно только когда работает подсветка. Библиотеки сдесь ни причем. Я что пультоскоп что сейчас ослик переделываю, то за вечер раз 100 могу ардуину перепрошить, а экран в раза три больше включить выключить. 

Отпаяйте экран и попробуйте прошить ардуину, хотя бы просто мигать светодиодом. Бывало не раз что ловил глюки при прошивки, или где то что то задел, и только доктором фьюзов http://www.getchip.net/posts/059-ispravlyaem-avr-fyuzy-pri-pomoshhi-atmega-fusebit-doctor/ востанавливал работоспособность. Я когда то тоже 9в подал на вход 5в, а не на RAM. Минут 5 работала но глючело ужасно, но выжила сейчас нормально работает. С экраном конешно трудней но пятно это не показатель что экран умер. 

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

VetalST пишет:

Xumuk У меня экран к макетке 5х7см приклеен и на ней резисторы, питание 2.9в и преобразователь подсветки. Экран старый внизу или в верху смотря какую библиотеку задействовать тоже пятно есть, оно было с первых дней как экран попал комне, его видно только когда работает подсветка. Библиотеки сдесь ни причем. Я что пультоскоп что сейчас ослик переделываю, то за вечер раз 100 могу ардуину перепрошить, а экран в раза три больше включить выключить. 

Отпаяйте экран и попробуйте прошить ардуину, хотя бы просто мигать светодиодом. Бывало не раз что ловил глюки при прошивки, или где то что то задел, и только доктором фьюзов http://www.getchip.net/posts/059-ispravlyaem-avr-fyuzy-pri-pomoshhi-atmega-fusebit-doctor/ востанавливал работоспособность. Я когда то тоже 9в подал на вход 5в, а не на RAM. Минут 5 работала но глючело ужасно, но выжила сейчас нормально работает. С экраном конешно трудней но пятно это не показатель что экран умер. 

хорошо спасибо, попробую,я уже подумываю сдаться и купить дсо138

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

VetalST пишет:

Xumuk У меня экран к макетке 5х7см приклеен и на ней резисторы, питание 2.9в и преобразователь подсветки. Экран старый внизу или в верху смотря какую библиотеку задействовать тоже пятно есть, оно было с первых дней как экран попал комне, его видно только когда работает подсветка. Библиотеки сдесь ни причем. Я что пультоскоп что сейчас ослик переделываю, то за вечер раз 100 могу ардуину перепрошить, а экран в раза три больше включить выключить. 

Отпаяйте экран и попробуйте прошить ардуину, хотя бы просто мигать светодиодом. Бывало не раз что ловил глюки при прошивки, или где то что то задел, и только доктором фьюзов http://www.getchip.net/posts/059-ispravlyaem-avr-fyuzy-pri-pomoshhi-atmega-fusebit-doctor/ востанавливал работоспособность. Я когда то тоже 9в подал на вход 5в, а не на RAM. Минут 5 работала но глючело ужасно, но выжила сейчас нормально работает. С экраном конешно трудней но пятно это не показатель что экран умер. 

хорошо спасибо, попробую,я уже подумываю сдаться и купить дсо138