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

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

VetalST пишет:

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

Вот код что я добавил

int d=0;
byte menuDDS=0; 
byte sinM[32]={1,6,15,29,48,69,92,117,143,168,191,212,229,243,251,255,254,248,237,222,203,181,156,131,106,81,59,39,22,10,3,1};
byte pilaM[32]={1,9,17,25,33,41,49,57,65,73,81,89,97,105,113,121,129,137,145,153,161,169,177,185,193,201,209,217,225,235,245,255};
byte RpilaM[32]={250,246,238,230,222,214,206,198,190,182,174,166,158,150,142,134,126,118,110,102,94,86,78,70,62,54,41,33,25,17,9,1};
byte trianglM[32]={1,18,35,52,69,86,103,120,137,154,171,188,205,222,239,255,239,223,207,191,175,159,143,127,111,95,79,63,47,31,15,1};


и код


 //#######################################  режим DDS ренератор
if(pultoskop==3){
  while(1){
int fr=10;
if(menuDDS==0){
    lcd.drawText(35, 30,"Sinus", 1, WHITE, RED);
    lcd.drawText(35, 50,"Treugolnik", 1, WHITE, BLACK);
    lcd.drawText(35, 70,"Pila", 1, WHITE, BLACK);
    lcd.drawText(35, 90,"Pila Obr", 1, WHITE, BLACK);  
    delay(400); 
    while(!(PIND & (1<<PIND2))){
    PWM=sinM[d];
    pwmWrite(Out,PWM);
    //delayMicroseconds(fr);
    d++;
    if(d==32){d=0;}}
     menuDDS++;
    //delay(200);
  }
if(menuDDS==1){
    lcd.drawText(35, 30,"Sinus", 1, WHITE, BLACK);
    lcd.drawText(35, 50,"Treugolnik", 1, WHITE, RED);
    lcd.drawText(35, 70,"Pila", 1, WHITE, BLACK);
    lcd.drawText(35, 90,"Pila Obr", 1, WHITE, BLACK); 
    delay(400);
    while(!(PIND & (1<<PIND2))){
      PWM=trianglM[d];
      pwmWrite(Out,PWM);
      //delayMicroseconds(fr);
      d++;
      if(d==32){d=0;}}
    menuDDS++;
    //delay(400);
  }
if(menuDDS==2){
    lcd.drawText(35, 30,"Sinus", 1, WHITE, BLACK);
    lcd.drawText(35, 50,"Treugolnik", 1, WHITE, BLACK);
    lcd.drawText(35, 70,"Pila", 1, WHITE, RED);
    lcd.drawText(35, 90,"Pila Obr", 1, WHITE, BLACK); 
    delay(400);
    while(!(PIND & (1<<PIND2))){
      PWM=pilaM[d];
      pwmWrite(Out,PWM);
      //delayMicroseconds(fr);
      d++;
      if(d==32){d=0;}}
      menuDDS++;
      //delay(400);
  }
if(menuDDS==3){
    lcd.drawText(35, 30,"Sinus", 1, WHITE, BLACK);
    lcd.drawText(35, 50,"Treugolnik", 1, WHITE, BLACK);
    lcd.drawText(35, 70,"Pila", 1, WHITE, BLACK);
    lcd.drawText(35, 90,"Pila Obr", 1, WHITE, RED); 
    delay(400);  
    while(!(PIND & (1<<PIND2))){
      PWM=RpilaM[d];
      pwmWrite(Out,PWM);
      //delayMicroseconds(fr);
      d++;
      if(d==32){d=0;}}
      menuDDS++;
    //delay(200);
  }
if(menuDDS==4){menuDDS=0;}
}
}
/////////////////////DDS

Вот скет для LS020 с делителем (на пине 6 подтянуть к + или -) выход DDS и шим пин 9 остальное  как на схеме с поста 1344 может кто то еще проверит для надежности https://yadi.sk/d/gRp1Nty2sAokW 

Out какой пин задан?

Alex_Mirko
Alex_Mirko аватар
Offline
Зарегистрирован: 16.05.2016

VetalST пишет:

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

Вот код что я добавил

int d=0;
byte menuDDS=0; 
byte sinM[32]={1,6,15,29,48,69,92,117,143,168,191,212,229,243,251,255,254,248,237,222,203,181,156,131,106,81,59,39,22,10,3,1};
byte pilaM[32]={1,9,17,25,33,41,49,57,65,73,81,89,97,105,113,121,129,137,145,153,161,169,177,185,193,201,209,217,225,235,245,255};
byte RpilaM[32]={250,246,238,230,222,214,206,198,190,182,174,166,158,150,142,134,126,118,110,102,94,86,78,70,62,54,41,33,25,17,9,1};
byte trianglM[32]={1,18,35,52,69,86,103,120,137,154,171,188,205,222,239,255,239,223,207,191,175,159,143,127,111,95,79,63,47,31,15,1};


и код


 //#######################################  режим DDS ренератор
if(pultoskop==3){
  while(1){
int fr=10;
if(menuDDS==0){
    lcd.drawText(35, 30,"Sinus", 1, WHITE, RED);
    lcd.drawText(35, 50,"Treugolnik", 1, WHITE, BLACK);
    lcd.drawText(35, 70,"Pila", 1, WHITE, BLACK);
    lcd.drawText(35, 90,"Pila Obr", 1, WHITE, BLACK);  
    delay(400); 
    while(!(PIND & (1<<PIND2))){
    PWM=sinM[d];
    pwmWrite(Out,PWM);
    //delayMicroseconds(fr);
    d++;
    if(d==32){d=0;}}
     menuDDS++;
    //delay(200);
  }
if(menuDDS==1){
    lcd.drawText(35, 30,"Sinus", 1, WHITE, BLACK);
    lcd.drawText(35, 50,"Treugolnik", 1, WHITE, RED);
    lcd.drawText(35, 70,"Pila", 1, WHITE, BLACK);
    lcd.drawText(35, 90,"Pila Obr", 1, WHITE, BLACK); 
    delay(400);
    while(!(PIND & (1<<PIND2))){
      PWM=trianglM[d];
      pwmWrite(Out,PWM);
      //delayMicroseconds(fr);
      d++;
      if(d==32){d=0;}}
    menuDDS++;
    //delay(400);
  }
if(menuDDS==2){
    lcd.drawText(35, 30,"Sinus", 1, WHITE, BLACK);
    lcd.drawText(35, 50,"Treugolnik", 1, WHITE, BLACK);
    lcd.drawText(35, 70,"Pila", 1, WHITE, RED);
    lcd.drawText(35, 90,"Pila Obr", 1, WHITE, BLACK); 
    delay(400);
    while(!(PIND & (1<<PIND2))){
      PWM=pilaM[d];
      pwmWrite(Out,PWM);
      //delayMicroseconds(fr);
      d++;
      if(d==32){d=0;}}
      menuDDS++;
      //delay(400);
  }
if(menuDDS==3){
    lcd.drawText(35, 30,"Sinus", 1, WHITE, BLACK);
    lcd.drawText(35, 50,"Treugolnik", 1, WHITE, BLACK);
    lcd.drawText(35, 70,"Pila", 1, WHITE, BLACK);
    lcd.drawText(35, 90,"Pila Obr", 1, WHITE, RED); 
    delay(400);  
    while(!(PIND & (1<<PIND2))){
      PWM=RpilaM[d];
      pwmWrite(Out,PWM);
      //delayMicroseconds(fr);
      d++;
      if(d==32){d=0;}}
      menuDDS++;
    //delay(200);
  }
if(menuDDS==4){menuDDS=0;}
}
}
/////////////////////DDS

Вот скет для LS020 с делителем (на пине 6 подтянуть к + или -) выход DDS и шим пин 9 остальное  как на схеме с поста 1344 может кто то еще проверит для надежности https://yadi.sk/d/gRp1Nty2sAokW 

надо в 

if(pultoskop==3){
      lcd.drawText(35, 25,"Oscilloscope", 1,  WHITE, BLACK);
      lcd.drawText(35, 55,"Generator PWM", 1, WHITE, BLACK);
      lcd.drawText(35, 85,"Generator DDS", 1, WHITE, RED);
      
      lcd.drawText(30, 115,"Battery =", 1, BLUE, BLACK);
      armcurrent = analogRead(akb)*VCC/1023;//проверка напряжения на АКБ
      temp = (armcurrent - (int)armcurrent) * 100; // множитель - число знаков после запятой. 10 - 1, 100 - 2, 1000 - 3 и т.д.
      sprintf(str, "%d.%02dV", (int)armcurrent, abs(temp)); 
      lcd.drawText(110, 115, str, 1, BLUE, BLACK);
    } 

добавить 

InitTimersSafe();
  SetPinFrequencySafe(Out,200000);

 

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

нашел небольшой дефект при переключении делителя на 5 вольт после 50 две буквы V

bogdan68
Offline
Зарегистрирован: 23.04.2016

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

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

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

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

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

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

VetalST пишет:

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

Думаю все все понимают, у всех дела заботы свои

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

дел.

не в той теме выступил )

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

Мой экземпляр ослика на LS020. Освещение не слишком удачное, но фиг с ним. Что примечательно, работает сейчас с кварцем на 20 мгц. А эффектов на чувствительности 1 после 6 развертки нет. Максимально, что им можно относительно адекватно посмотреть на меандре - около 30 кгц. Скорее всего на этом кварце и остановлюсь. Сетка появляется в паузе после начала прокрутки. Использовал часть платы телефона с родными защелками и часть металлической обоймы. Плата адаптации служит основанием для всего пирога. Т.е. законченый блочек.

Кстати bodriy2014, по поводу рекомендованых вами ссылок, по крайней мере часть из них. Сегодня получил значительную часть заказов. Заказывал 16 мая. Так быстро мне еще не шли посылки. Часть, правда, еще не пришли. Зато до сих пор нет части старых заказов. Все по России бродят.

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

Лекс 59 пишет:

 Зато до сих пор нет части старых заказов. Все по России бродят.

Большая реформа. Упраздняется часть точек таможенных, часть транзитных почтовых отделений. По этому такая проблема с посылками. Какие-т с китая идут 10 дней, какие-то по стране месяц у меня висят... Но вообще по последним 30-40 посылкам - да - время увеличилось. Примерно на 20%. Обычно было 20-21 с китая и неделя по стране. Сейчас 25-27 с китая и 14 по стране. Так что не открывайте диспуты, просто продляйте сроки и ждите.

Ghost_d
Offline
Зарегистрирован: 22.04.2014

Ух ты! Действительно очень клевый проект!У меня аж глазки заблистели.... Хотя упоминание о пультоскопе нашел на ютубе.

Пока собрал на макетке и немного поигрался

Если позволите, пару хотелок на перспективу:

- все имеющиеся режимы родобраны ОЧЕНЬ удачно (МЕАНДР - выше всяческих похвал!!!). Единственное чего хотелось бы добавить - маленький лог. анализатор на 3-4 канала

(что-то типа: http://www.electronics-lab.com/4-input-mini-logic-analyzer/)

- как-то не клево переход из режимов по ресету или питанию (нужно что-то типа долгого нажатия ОК - возврат в режим выбора прибора)

Бегло пробежав по форому, увидел пару схем с защитой входов и делителем. Это тоже нужные вещи

 Я однозначно в теме, и незамедлительно приступаю к изготовлению. Экран будет от Нокии (ну, не впечатляют меня цветные).

Автору - респект и уважуха

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Лекс 59 пишет:
..............

Кстати bodriy2014, по поводу рекомендованых вами ссылок, по крайней мере часть из них. Сегодня получил значительную часть заказов. Заказывал 16 мая. Так быстро мне еще не шли посылки. Часть, правда, еще не пришли. Зато до сих пор нет части старых заказов. Все по России бродят.

Всегда приятно когда быстро приходят!

Но главное считаю чтоб китаец быстро отправлял и с номером не обманывал.

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

Веду учет таких "красавцев" продавцов чтоб больше случайно ничего не купить.

А почта как почта над ней ни китаец не я не властен!)

Кстати на счет пультоскопа я бы не останавливался на 20МГц , но и не спешил перепрашивать под другой кварц. Можно с этой же прошивкой подать сигнал допустим 30КГц и подымать кварцы сначала 20 потом 24 и так до 30МГ если сигнал на дисплее будет улучшатся значит разгон идет хорошо, и на максимальном что потянет прибор уже под него прошивать.

Я просто из своего опыта скажу, прибавка в тактировании 7МГц или даже 4МГц серьезно улучшает качество просмотра быстрых сигналов!

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Ghost_d Привет!

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

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

 

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

да-да-да.

 АЦП и ОУ наше фсьё))) тогда будет мегакруто.

Ghost_d
Offline
Зарегистрирован: 22.04.2014

А почему так категорично? Я пока код внимательно не смотрел, но в крупную клетку - есть большой потенциал по оптимизации использования  памяти. Всякие таблицы доя синусов и т.д. можно хранить во флешке и подгружать по мере выбора режима, и т. Д. Ведь одновременное использование режимов не предусмотренно.

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

Ghost_d пишет:

А почему так категорично? Я пока код внимательно не смотрел, но в крупную клетку - есть большой потенциал по оптимизации использования  памяти. Всякие таблицы доя синусов и т.д. можно хранить во флешке и подгружать по мере выбора режима, и т. Д. Ведь одновременное использование режимов не предусмотренно.

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

P.S. скорость считывания с флешки не помешает быстродействию ?

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

bogdan68 пишет:

 

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

Ghost_d
Offline
Зарегистрирован: 22.04.2014

Да нет же... Это не те флеш, которые вы имеете ввиду. Память ардуино состоит из нескольких типов: eeprom - энергонезависимая, озу- для переменных и массивов, и т. П., и flash - для хранения программ. Почитайте у меня в статье про этот вариант исользования:

http://robocraft.ru/blog/3354.html

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

Ghost_d пишет:

Да нет же... Это не те флеш, которые вы имеете ввиду. Память ардуино состоит из нескольких типов: eeprom - энергонезависимая, озу- для переменных и массивов, и т. П., и flash - для хранения программ. Почитайте у меня в статье про этот вариант исользования:

http://robocraft.ru/blog/3354.html

прикольненько))) взял на заметку как можно рисовать логотипы)

bogdan68
Offline
Зарегистрирован: 23.04.2016

240265

Да победил я его,там контролер редкий стоит.Библиотеку брал здесь  http://forum.arduino.cc/index.php?topic=366304.0     Mcufriend_kbv_2.90.zip 

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

bogdan68 пишет:

240265

Да победил я его,там контролер редкий стоит.Библиотеку брал здесь  http://forum.arduino.cc/index.php?topic=366304.0     Mcufriend_kbv_2.90.zip 

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

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

bogdan68 пишет:

240265

Да победил я его,там контролер редкий стоит.Библиотеку брал здесь  http://forum.arduino.cc/index.php?topic=366304.0     Mcufriend_kbv_2.90.zip 

Спасибо попробую !

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

240265 пишет:

bogdan68 пишет:

240265

Да победил я его,там контролер редкий стоит.Библиотеку брал здесь  http://forum.arduino.cc/index.php?topic=366304.0     Mcufriend_kbv_2.90.zip 

Спасибо попробую !

Все заработало !!!

bogdan68
Offline
Зарегистрирован: 23.04.2016

Xumuk пишет:

bogdan68 пишет:

240265

Да победил я его,там контролер редкий стоит.Библиотеку брал здесь  http://forum.arduino.cc/index.php?topic=366304.0     Mcufriend_kbv_2.90.zip 

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

У меня на экране было два одинаковых изображения,экран поделен пополам был.

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

а што на счёт убирания незначащих "0"?

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

Попробовал вариант питания для варианта  на голой меге и ЛС020. Питание выглядит так: Китайский степ-ап преобрзователь от лития дает 12 вольт, идущих на подсветку и питание степ-даун преобразователя на 5 вольт от которого питаю МК и дисплей. Пока без обвеса усилками и т.д. Потребление от лития около (чуть меньше) 100 миллиампер. Т.е. вполне допустимо батарейное питание.

На  снимке почти ВЕСЬ осциллограф кроме батареи и некоторых цепей. Т.е. реально можно в пачку сигарет пихнуть. Ну ладно,полторы пачки...

Кстати это сильно растянутый импульс скважностью 10%. На моем электронно-лучевом я его так растянуть не могу. Прокрутка в паузе - ВЕЩЬ!!! И вот так выглядит сетка.

И вот теперь жаба борется с ленью и стремлением к красоте.  Отдам пока пальму первенства жабе (LS020 все-таки...). Придут корпуса, возможно не удержусь. Уже представляю, как это выглядит в корпусе. Все на соплях (в смысле на термоклее) - плюну наверное на основательность на этот раз.

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

bogdan68 пишет:

240265

Да победил я его,там контролер редкий стоит.Библиотеку брал здесь  http://forum.arduino.cc/index.php?topic=366304.0     Mcufriend_kbv_2.90.zip 

Спасибо все Заработало , контроллер  R61520!!!

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

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

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

чето я в печали... перестал работать дисплей просто подсветка горит и все

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

Xumuk пишет:

bogdan68 пишет:

Да победил я его,там контролер редкий стоит.Библиотеку брал здесь  http://forum.arduino.cc/index.php?topic=366304.0     Mcufriend_kbv_2.90.zip 

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

Такое впечатление , что у Вас линии шины данных попутаны ...

И поиграйтесь с tft.setRotation . В примерах.

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

блин че могло произойти с ls020 дисплеем((( ниче вроде не делал а дисплей не пашет... уже вроде все проверил переподключил

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

сломался видимо от ls020 дисплей но зато заработал тфт с библиотекой который предоставил  bogdan68 

за что спасибо! а ктонить переделывал под него скетч от последнего пультоскопа?

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

Xumuk пишет:

 

сломался видимо от ls020 дисплей но зато заработал тфт с библиотекой который предоставил  

Может не все так печально? Я днями думал, что убил один из 3310. Оказалось провод отвалился, а под термоусадкой не было видно.

Я со своим ЛС020 весьма бережно. Особенно пока. А то вдруг на Хамелеоне решу остановиться? При всех экспериментах трясусь, как замерзающий над последней спичкой. И все смотрю, как бы добавить команду гашения экрана в меню.

Закономерно все. Наверное лет через несколько 3310 станут раритетом тоже.

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

Xumuk пишет:

сломался видимо от ls020 дисплей но зато заработал тфт с библиотекой который предоставил  bogdan68 

за что спасибо! а ктонить переделывал под него скетч от последнего пультоскопа?

Я брал скетч от Pultoscop v2_SPFD5408 и тупо подставлял эту библиотеку. Посмотрите в примерах. Там дальше даже переделывать ничего не нужно. Обращение к командам одинаковое.

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

Осталось немного - подправить под TFT 320x240

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

man_200 пишет:

Осталось немного - подправить под TFT 320x240

Так SPFD5408 и есть 320х240

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

По ссылке видимо параллельный показан. У меня SPI 2.2

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

man_200 пишет:

По ссылке видимо параллельный показан. У меня SPI 2.2

Да параллельный.

Эта библиотека вроде и SPI поддеживает , приедет попробую.

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

Вот код

//страничка проекта http://srukami.inf.ua/pultoscop_v2.html
//дистплей TFT SPFD5408
#include <Adafruit_GFX.h>    // Core graphics library
//#include <Adafruit_TFTLCD.h> // Hardware-specific library
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;

#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
// RES использовал ардуиновский
//#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin

#define  BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

//Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

//пользовательские настройки!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#define levo 12
#define ok 11
#define pravo 10
#define vertikal 1   //размер вертикальной сеткаи(если "0" отключениа)

//пользовательские настройки!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
byte mass[501];//массив АЦП
byte massDEL[501];
byte menu=1;//переменная верхнего меню
byte razv=0;//значение развертки
float x=60;//счетчик оси Х
int Vmax=0;// максимальное напряжение 
float Vakb=0;//напряженеиЕКБ
unsigned long t=0;//переменная для ращета развертки
unsigned long pause=0;//переменная для замены Delay
int t_del=0; //значение цены деления развертки в микросекундах
bool opornoe=1; //флаг опорного напряжения
bool paus=0; //флаг режима паузы
bool clen_p=0;//флаг чистки паузы

void setup(){  
    Vakb=analogRead(A6)*5.3/1024;//проверка напряжения на АКБ
    if(opornoe==0){ADMUX = 0b11100101;}//выбор внутреннего опорного 1,1В
    if(opornoe==1){ADMUX = 0b01100101;}//Выбор внешнего опорного
    uint16_t identifier = tft.readID();  Читаем ID экрана
    tft.begin(identifier);
    delay(50);
    tft.fillScreen(BLACK);
    delay(500);
}

Дальше ничего не трогал.

Хорошо бы Автору проверить свой экран с этой библиотекой. Она многие экраны поддерживает.

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

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

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

Буду ждать пока получишь последовательный. Контроллер тот-же, но прошивку видимо переделывать придется

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

Небольшая поправка : RES экрана подключить на 5в питания.

Или на А4 и раскоментировать в скетче.

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

man_200 пишет:

Буду ждать пока получишь последовательный. Контроллер тот-же, но прошивку видимо переделывать придется

А сам чо не попробуешь?

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

Паяльник, только паяльник! 40 лет назад на Паскале программировал.

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

240265 пишет:

Вот код

//страничка проекта http://srukami.inf.ua/pultoscop_v2.html
//дистплей TFT SPFD5408
#include <Adafruit_GFX.h>    // Core graphics library
//#include <Adafruit_TFTLCD.h> // Hardware-specific library
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;

#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
// RES использовал ардуиновский
//#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin

#define  BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

//Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

//пользовательские настройки!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#define levo 12
#define ok 11
#define pravo 10
#define vertikal 1   //размер вертикальной сеткаи(если "0" отключениа)

//пользовательские настройки!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
byte mass[501];//массив АЦП
byte massDEL[501];
byte menu=1;//переменная верхнего меню
byte razv=0;//значение развертки
float x=60;//счетчик оси Х
int Vmax=0;// максимальное напряжение 
float Vakb=0;//напряженеиЕКБ
unsigned long t=0;//переменная для ращета развертки
unsigned long pause=0;//переменная для замены Delay
int t_del=0; //значение цены деления развертки в микросекундах
bool opornoe=1; //флаг опорного напряжения
bool paus=0; //флаг режима паузы
bool clen_p=0;//флаг чистки паузы

void setup(){  
    Vakb=analogRead(A6)*5.3/1024;//проверка напряжения на АКБ
    if(opornoe==0){ADMUX = 0b11100101;}//выбор внутреннего опорного 1,1В
    if(opornoe==1){ADMUX = 0b01100101;}//Выбор внешнего опорного
    uint16_t identifier = tft.readID();  Читаем ID экрана
    tft.begin(identifier);
    delay(50);
    tft.fillScreen(BLACK);
    delay(500);
}

Дальше ничего не трогал.

Хорошо бы Автору проверить свой экран с этой библиотекой. Она многие экраны поддерживает.

 

у меня вот такие ошибки выдает 


Arduino: 1.6.6 (Windows 7), Плата:"Arduino/Genuino Uno"

sketch_jun05a:52: error: stray '\327' in program

     uint16_t identifier = tft.readID();  Читаем ID экрана

     ^

sketch_jun05a:52: error: stray '\350' in program

sketch_jun05a:52: error: stray '\362' in program

sketch_jun05a:52: error: stray '\340' in program

sketch_jun05a:52: error: stray '\345' in program

sketch_jun05a:52: error: stray '\354' in program

sketch_jun05a:52: error: stray '\375' in program

sketch_jun05a:52: error: stray '\352' in program

sketch_jun05a:52: error: stray '\360' in program

sketch_jun05a:52: error: stray '\340' in program

sketch_jun05a:52: error: stray '\355' in program

sketch_jun05a:52: error: stray '\340' in program

C:\Users\Xumuk\AppData\Local\Temp\arduino_93cc9f7359b0367c998b7d3ebb0c781c\sketch_jun05a.ino: In function 'void setup()':

sketch_jun05a:52: error: 'ID' was not declared in this scope

     uint16_t identifier = tft.readID();  Читаем ID экрана

                                                 ^

sketch_jun05a:53: error: expected ';' before 'tft'

     tft.begin(identifier);

     ^

C:\Users\Xumuk\AppData\Local\Temp\arduino_93cc9f7359b0367c998b7d3ebb0c781c\sketch_jun05a.ino: In function 'void loop()':

sketch_jun05a:250: error: 'sinhMASS' was not declared in this scope

 if(flagSINHRO==0){if(flagSINHRnull==1){if(mass[y]>Vmax/2){flagSINHRO=1;sinhMASS=y;}}}}

                                                                        ^

sketch_jun05a:254: error: 'sinNam' was not declared in this scope

   for(int y=sinNam;y<sinNam+270;y++){

             ^

sketch_jun05a:261: error: 'massDel' was not declared in this scope

       tft.drawLine(x,190-massDel[y]/2, x+1,190-massDel[y+1]/2, BLACK);//

                          ^

sketch_jun05a:268: error: 'sinhMASS' was not declared in this scope

   for(int y=sinhMASS;y<sinhMASS+260;y++){

             ^

sketch_jun05a:280: error: 'massDel' was not declared in this scope

   for(int y=0;y<500;y++){massDel[y]=mass[y];}

                          ^

sketch_jun05a:281: error: 'sinNam' was not declared in this scope

   sinNam=sinhMASS;

   ^

sketch_jun05a:281: error: 'sinhMASS' was not declared in this scope

   sinNam=sinhMASS;

          ^

exit status 1
stray '\327' in program

  Это сообщение будет содержать больше информации чем
  "Отображать вывод во время компиляции"
  включено в Файл > Настройки
240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

ХЗ , у меня  Arduino 1.6.5 Со страницы Автора  ,  Arduino Pro Mini.

Часть кода просто меняешь и все .

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

240265 пишет:

ХЗ , у меня  Arduino 1.6.5 Со страницы Автора  ,  Arduino Pro Mini.

Часть кода просто меняешь и все .

 

у меня тоже она, и на 1.6.5 и на 1.1.6.

кароч поменял только эти строки и закоментил другие библиотеки 

#include <Adafruit_GFX.h>
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;
все работает
был бы признателен автору если бы он переделал 5110 под этот дисплей думаю многие бы сказали спасибо
 
 
240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

Xumuk пишет:

240265 пишет:

ХЗ , у меня  Arduino 1.6.5 Со страницы Автора  ,  Arduino Pro Mini.

Часть кода просто меняешь и все .

 

у меня тоже она, и на 1.6.5 и на 1.1.6.

кароч поменял только эти строки и закоментил другие библиотеки 

#include <Adafruit_GFX.h>
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;
все работает
был бы признателен автору если бы он переделал 5110 под этот дисплей думаю многие бы сказали спасибо
 
 
 

Так у Вас экран на ILI9341.

У Автора так

uint16_t identifier = (0x9341);

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

А у меня он читает ID из регистра экрана.