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

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

В общем, вернулся я к библиотеке 8544. Получилось расширить разрешение до 96x64 (строка в 1 пиксель остается в мусоре). Но, думаю, это будет получше, чем с u8g. И компилируется с данной библиотекой побыстрей.))

bpl
Offline
Зарегистрирован: 15.02.2016

Проблема с мусором на экране. 5110 LCD module Red. 

Подскажите в чем может быть причина. Модуль разбирал чистил не помогло. Убавлял контрастность в скетче с 75 до 65(65 самое оптимальное) стало лучше но дефект полностью не исчез.

 

 

5110 LCD module Синий и экран Nokia 3110 работают хорошо.

схемы, печатка, фото …….

https://yadi.sk/d/sQ6X3AkJoszLZ

не понял как вставлять изображение

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

bpl, а питание дисплея норм? мож какое-то возбуждение по 3,3 Вольта идёт?

я у себя проблему(дисплей ваще молчал) локализовал так - питание дисплея подал с Ардуино УНО, а сигналы -со своей платы.

bpl
Offline
Зарегистрирован: 15.02.2016

питание проверял подцеплял отдельно прогонял от 2.7V до 3.3V. 5110 LCD module Синий и экран Nokia 3310 с темже питанием на тойже UNO работают отлично. скорее всего брак.

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

bpl, мне тоже кажется, что питание завышено. Просто одни дисплеи переносят его нормально, а некоторые - нет.

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

bpl пишет:

Проблема с мусором на экране. 5110 LCD module Red. 

Подскажите в чем может быть причина. Модуль разбирал чистил не помогло. Убавлял контрастность в скетче с 75 до 65(65 самое оптимальное) стало лучше но дефект полностью не исчез.

 

 

5110 LCD module Синий и экран Nokia 3110 работают хорошо.

схемы, печатка, фото …….

https://yadi.sk/d/sQ6X3AkJoszLZ

не понял как вставлять изображение

На красном должен быть конденсатор с обратной стороны, попробуйте заменить или зашунтировать резистором 1МОм и выше.

Если не моможет, значит такой дисплей попался(((

bpl
Offline
Зарегистрирован: 15.02.2016

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

Спасибо 

cilentlekx
Offline
Зарегистрирован: 14.12.2014

bodriy2014! Доброго времени! Спасибо большое,за решение проблеммы с мерцанием графика! Я пробовал,у меня памяти уже не хватало  было больше 2кб. Вопрос , а можно как то значение частоты на экран вывести? За ранее спасибо!

cilentlekx
Offline
Зарегистрирован: 14.12.2014

убрал!

cilentlekx
Offline
Зарегистрирован: 14.12.2014

bodriy2014. У меня получилось убрать моргание нижнего меню,то есть время напряжение и батарея.Скетч прилагаю,может что выберешь для себя!

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

cilentlekx пишет:

bodriy2014! Доброго времени! Спасибо большое,за решение проблеммы с мерцанием графика! Я пробовал,у меня памяти уже не хватало  было больше 2кб. Вопрос , а можно как то значение частоты на экран вывести? За ранее спасибо!

Частоту считает только модель  с экраном 5110,

в модели TFT пин D5 занят экраном((((

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

cilentlekx пишет:

bodriy2014. У меня получилось убрать моргание нижнего меню,то есть время напряжение и батарея.Скетч прилагаю,может что выберешь для себя!

Спасибо!

Если можно сверните код http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...

cilentlekx
Offline
Зарегистрирован: 14.12.2014

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

cilentlekx
Offline
Зарегистрирован: 14.12.2014

 AREF для чего нужно? в вашем коде?

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

cilentlekx пишет:

 AREF для чего нужно? в вашем коде?

какая строка и какой именно код?

ПС. Имел ввиду свернуть код, а теперь его вообще нет.(((

cilentlekx
Offline
Зарегистрирован: 14.12.2014


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

//#define PAUSE 500
//#define INPUT_PIN A5
//MedianFilter medianFilter(5); 


#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
#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
//пользовательские настройки!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//byte mass[1301];//массив АЦП
//int mass[130];//массив АЦП
byte mass[501];//массив АЦП
byte massDEL[501];
byte menu=0;//переменная верхнего меню
byte razv=0;//значение развертки
float x=48;//счетчик оси Х
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;//флаг чистки паузы
int i;
float val = 0;
int raw;

//////////////////////////////////////////////////////////////////////////////////////////////
void setup(){  
    Vakb=analogRead(A6)*5.3/1024;//проверка напряжения на АКБ
    if(opornoe==0){ADMUX = 0b00100101;}//выбор внутреннего опорного 1,1В
    if(opornoe==1){ADMUX = 0b01100101;}//Выбор внешнего опорного
    uint16_t identifier = tft.readID();  
    tft.begin(identifier);
    delay(50);
    tft.fillScreen(BLACK);
    delay(500);
   //pinMode(A5,INPUT);
}
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){
      t=micros(); 
      for(int i=0;i<500;i++){ 
          while ((ADCSRA & 0x10)==0);
          ADCSRA|=0x10;
          delayMicroseconds(100);
          mass[i]=ADCH;                           
      }
      t= micros()-t;
      t_del=t*25/501;
  }  
  if (razv>0){
      t=micros();
      for(int i=0;i<500;i++){ 
          while ((ADCSRA & 0x10)==0);
          ADCSRA|=0x10;
          mass[i]=ADCH;          
      }
      t= micros()-t;
      t_del=t*25/501;
  }  
}

//////////////////////////////////////////////////////////////////////////////////////////////////
void graf()
{
  
     
  tft.setRotation(0); 
      //tft.fillRect(43,47, 155, 280, BLACK);//стиране графика 
  
      x=49;
      for(int y=0;y<=265;y++){
          tft.setRotation(1);
          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;}          
            //x1=x; 
            
        // tft.drawLine(x,195-mass[y]/1.85,x+1,195-mass[y+1]/1.85,BLACK); //любая линия по четырем точкам
         //tft.drawLine(x-2,195-mass[y-2]/1.85,x-1,195-mass[y-1]/1.85,GREEN);
             tft.drawLine(x+1,195-massDEL[y]/2+1, x+2,195-massDEL[y+1]/2+1, BLACK);//стираем график
      //tft.drawLine(x,195-massDEL[y]/2, x+1,195-massDEL[y+1]/2, BLACK);//стираем график
      tft.drawLine(x+1,195-mass[y]/2+1, x+2,195-mass[y+1]/2+1, GREEN);//график
      //tft.drawLine(x,195-mass[y]/2, x+1,195-mass[y+1]/2, GREEN);//график
         
  }
  for(int i=0;i<500;i++){massDEL[i]=mass[i];}
         
         
            
      }
      
      
//////////////////////////////////////////////////////////////////////////////////////////////////////

void MenuT(){//перерисовка нижнего меню    
    tft.setRotation(1); 
    tft.setTextSize(2); 
    tft.fillRect(20,220,80,22, BLACK);//стирание  времени развертки
    //tft.setRotation(1);
     tft.setTextColor(CYAN);
    tft.setCursor(0,220);
    tft.print("t=");
    if(razv<7){tft.print(t_del);}
    if(razv==7){tft.print(t_del/2);}
    if(razv==8){tft.print(t_del/3);}
    if(razv==9){tft.print(t_del/4);}
    if(razv==10){tft.print(t_del/5);}
    tft.print("mc  ");
    tft.setTextColor(RED);
    tft.setCursor(120,220);
    tft.print("Vmax=");
    tft.fillRect(180,220,50,22, BLACK);
    if(opornoe==0){tft.print(Vmax*1.1/255);}
    if(opornoe==1){tft.print(Vmax*5.3/255);}
    tft.setTextColor(GREEN  );
    tft.setCursor(245,220);
    tft.print("Bt");
    tft.fillRect(275,220,50,22, BLACK);
    tft.print(Vakb);
    ////////////////////////////////////////////////////////////////////////////
   val = pulseIn(A5,HIGH);
  tft.setCursor(195,28);
  tft.fillRect(195,28,80,14, BLACK);
  tft.print(1000000/val/2,0);
  //tft.print(medianFilter.process(raw),DEC);
  //////////////////////////////////////////////////////////////////////////////////////////
    

     
}

void loop() {


Zamer();  
//отрисовка и перебор меню###############################
if(menu==0){
  tft.setRotation(1);
  tft.setTextColor(RED);
  tft.setTextSize(2); 
  tft.fillRect(0, 0, 95, 25, CYAN);
  tft.setCursor(5,5);
  if(opornoe==0){tft.print("op-1.1V ");}
  if(opornoe==1){tft.print("op-5.3V ");}
  if(digitalRead(pravo)==HIGH){
    //tft.setRotation(1); 
    tft.fillRect(0,32,38, 150, BLACK);//стирание напряжения
    opornoe=!opornoe;}
  if(digitalRead(levo)==HIGH){
    //tft.setRotation(0); 
    tft.fillRect(0,32,38,150, BLACK);//стирание напряжения
    opornoe=!opornoe;}
  //tft.setRotation(1);
  tft.setTextSize(2);   
  tft.print(" Razv*");
  tft.print(razv);
  tft.setCursor(195,5);
  tft.print(" Pause-OFF");
  
}
if(menu==1){
  tft.setRotation(1);
  tft.setTextColor(RED);
  tft.setTextSize(2); 
  tft.fillRect(95, 0,105, 25, CYAN);
  tft.setCursor(5,5);
  if(opornoe==0){tft.print("op-1.1V ");}
  if(opornoe==1){tft.print("op-5.3V ");}
  if(digitalRead(pravo)==HIGH){//доработать скорость
  razv++;
  if(razv==11){razv=10;} 
  }
  if(digitalRead(levo)==HIGH){//доработать скорость
  razv--;
  if(razv==255){razv=0;} 
  }
  tft.print(" Razv*");
  tft.print(razv);
  tft.setCursor(195,5);
  tft.print(" Pause-OFF");
}
if(menu==2){//пауза
  paus=1;
  if(clen_p==0){
  clen_p=1;  
  tft.setRotation(1);
  tft.setTextColor(RED);
  tft.setTextSize(2); 
  tft.fillRect(205, 0,110, 25, CYAN);
  tft.setCursor(5,5);
  if(opornoe==0){tft.print("op-1.1V ");}
  if(opornoe==1){tft.print("op-5.3V ");}
  tft.print(" Razv*");
  tft.print(razv);
  tft.setCursor(200,5);
  if(paus==0){tft.print(" Pause-OFF");}
  tft.setCursor(195,5);
  if(paus==1){tft.print(" Pause-ON");}
}
}
if(digitalRead(ok)==HIGH){
 // delay(100);
  menu++;
  if(menu==3){menu=0;paus=0;clen_p=0;}
  tft.setRotation(1); 
  tft.fillRect(0, 0,320, 25, BLACK);    
}
//отрисовка и перебор меню###############################
//Выбор опорного#########################################  
if(opornoe==0){ADMUX = 0b11100101;}//выбор внутреннего опорного 1,1В
if(opornoe==1){ADMUX = 0b01100101;}//Выбор внешнего опорного
delay(5);
//Выбор опорного#########################################  
; 
//ось напряжения##########################################
//////////////////пунктир
 tft.setRotation(1);
for (i=46; i<320; i+=10) {
     tft.drawPixel(i,129,YELLOW);}
     
tft.drawLine(46,46,46,205,RED);
tft.drawLine(36,64,46,64,RED);  //риска  напряжения
tft.drawLine(36,90,46,90,RED);  //риска  напряжения
tft.drawLine(36,116,46,116,RED); //риска  напряжения
tft.drawLine(36,142,46,142,RED); //риска  напряжения
tft.drawLine(36,168,46,168,RED); //риска  напряжения
tft.drawLine(36,194,46,194,RED); //риска  напряжения
//ось времени#############################################
tft.setRotation(1);
for (i=46; i<205; i+=10) {
     tft.drawPixel(171,i,YELLOW);}

     for (i=46; i<205; i+=10) {
     tft.drawPixel(296,i,YELLOW);}
     
tft.drawLine(46,205,320,205,  MAGENTA);
tft.drawLine(0,27,320,27,BLUE);
tft.drawLine(46,205,46,215,RED);  //риска времени
tft.drawLine(71,205,71,210,MAGENTA);  //риска времени
tft.drawLine(96,205,96,210,RED);  //риска времени
tft.drawLine(121,205,121,210, MAGENTA);  //риска времени
tft.drawLine(146,205,146,210,RED); //риска времени
tft.drawLine(171,205,171,215, MAGENTA); //риска времени
tft.drawLine(196,205,196,210,RED); //риска времени
tft.drawLine(221,205,221,210, MAGENTA); //риска времени
tft.drawLine(246,205,246,210, RED); //риска времени
tft.drawLine(271,205,271,210, MAGENTA); //риска времени
tft.drawLine(296,205,296,215,RED); //риска времени

//ось времени#############################################
//tft.setRotation(1);  
tft.setTextColor(RED);
tft.setTextSize(2);
//шкала напряжения########################################
if(opornoe==0){tft.setTextColor(GREEN  );
    tft.setCursor(23, 184);tft.println("V"); 
    tft.setCursor(2, 184);tft.println("0"); 
    tft.setCursor(0, 158);tft.println("0.2"); 
    tft.setCursor(0, 132);tft.println("0.4"); 
    tft.setCursor(0,106);tft.println("0.6"); 
    tft.setCursor(0, 80);tft.println("0.8"); 
    tft.setCursor(0, 54);tft.println("1.1");   
}
if(opornoe==1){tft.setTextColor(GREEN  );
    tft.setCursor(23, 184);tft.println("V"); 
    tft.setCursor(2, 184);tft.println("0"); 
    tft.setCursor(0, 158);tft.println("1.0"); 
    tft.setCursor(0, 132);tft.println("2.0"); 
    tft.setCursor(0,106);tft.println("3.0"); 
    tft.setCursor(0, 80);tft.println("4.0"); 
    tft.setCursor(0, 54);tft.println("5.0");   
}
//шкала напряжения########################################
if(paus==0){MenuT();}
//максимальное значение сигнала##########################
Vmax=0; 
for(int i=0;i<500;i++){  
        if(Vmax<mass[i]){ Vmax=mass[i];} 
}
//максимальное значение сигнала##########################
//отрисовка графика№№№№№№№№№№№№№№№№№№№№№
if(paus==0){ 
  graf();
}
if(paus==1){//режим паузы
    if(digitalRead(pravo)==HIGH){//листаем    
      graf();
      MenuT();
    }
    if(digitalRead(levo)==HIGH){//листаем
     graf();
      MenuT();
    }     
}
//отрисовка графика№№№№№№№№№№№№№№№№№№№№№
}

 

 

cilentlekx
Offline
Зарегистрирован: 14.12.2014

вот ваш код с моим . Замечательно все скомпоновалось,ничего не моргает! большое вам спасибо!

cilentlekx
Offline
Зарегистрирован: 14.12.2014

#define vertikal 2   //размер вертикальной сеткаи(если "0" отключениа)

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

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

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

cilentlekx пишет:

вот ваш код с моим . Замечательно все скомпоновалось,ничего не моргает! большое вам спасибо!

Если можно поделитесь фотками устройства, и не понятен вопрос по AREF?

cilentlekx
Offline
Зарегистрирован: 14.12.2014

ваш новый скетч называется пультоскоп с aref

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

cilentlekx пишет:

ваш новый скетч называется пультоскоп с aref

Там два скетча, один стандарт второй AREF.

Они одинаковы просто второй для внешнего опорного напряжения.

Первый использует внутренний опорник.

cilentlekx
Offline
Зарегистрирован: 14.12.2014

https://yadi.sk/d/i7Kxms5Qp2JfC

ссылка на фото

cilentlekx
Offline
Зарегистрирован: 14.12.2014

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

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

cilentlekx пишет:

ваш новый скетч называется пультоскоп с aref

Вот видео про баг, я там описал для чего второй скетч https://youtu.be/VpbX2FCTpAQ

cilentlekx
Offline
Зарегистрирован: 14.12.2014

понял ,посмотрю!

Igor_kip
Offline
Зарегистрирован: 03.01.2016

Всем дорый вечер.

bodriy2014 - Спасибо за переделаный код (PULTOSCOPE_TFT_AREF)  , получилось хорошо , хотя моей ардуинке не помогло . Я тут попробыва пропустить 6 шаг в развёртке , не сам шаг , а делитель . Поставил такой как в 5 развёртке и о чудо , на 5 и 6 осц. одинаковы , а дальше всё работает. Может дело не столько в опорном (у меня внешнее) , а в некорректной обработке делителя на 4?

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

cilentlekx пишет:

https://yadi.sk/d/i7Kxms5Qp2JfC

ссылка на фото

а чего горизонтальная линия сетки как-то не в делениях?

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

Igor_kip пишет:

Всем дорый вечер.

bodriy2014 - Спасибо за переделаный код (PULTOSCOPE_TFT_AREF)  , получилось хорошо , хотя моей ардуинке не помогло . Я тут попробыва пропустить 6 шаг в развёртке , не сам шаг , а делитель . Поставил такой как в 5 развёртке и о чудо , на 5 и 6 осц. одинаковы , а дальше всё работает. Может дело не столько в опорном (у меня внешнее) , а в некорректной обработке делителя на 4?


Если смотреть меандр 20КГц разница между 4 и 8 видна сразу.
Странно у меня розогнанная 27МГц работает от внешнего опорного.
Если у вас даже с внешним не работает ставьте 16МГц обратно, зачем разгонять камень чтоб потом вдвое замедлять АЦП и с прошивкой неудобно.
С фьюзами не могли напутать? я hex не пробовал заливать я заливал при 16 потом перепаивал из IDE.

lex2k
Offline
Зарегистрирован: 17.12.2015

bodriy2014 пишет:

lex2k пишет:

bodriy2014 пишет:

Если мерить сторго до 15В рекомендую использовать делитель 1 к 3.

да там 1 к 10

а подскажите пожалуйста как правельно 1 к 3 сделать.....схемку и номиналы

например такой

Но karl2233 прав как работает делитель лучше знать.

спасибо! согласен что знать надо......

но в вашем примере если я заменю 20к и 10к  на 2к и 1к соответственно то ведь тоже 5в получится .

верно?

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

lex2k пишет:

bodriy2014 пишет:

lex2k пишет:

bodriy2014 пишет:

Если мерить сторго до 15В рекомендую использовать делитель 1 к 3.

да там 1 к 10

а подскажите пожалуйста как правельно 1 к 3 сделать.....схемку и номиналы

например такой

Но karl2233 прав как работает делитель лучше знать.

спасибо! согласен что знать надо......

но в вашем примере если я заменю 20к и 10к  на 2к и 1к соответственно то ведь тоже 5в получится .

верно?


да.

lex2k
Offline
Зарегистрирован: 17.12.2015

bodriy2014 пишет:
lex2k пишет:

bodriy2014 пишет:

lex2k пишет:

bodriy2014 пишет:

Если мерить сторго до 15В рекомендую использовать делитель 1 к 3.

да там 1 к 10

а подскажите пожалуйста как правельно 1 к 3 сделать.....схемку и номиналы

например такой

Но karl2233 прав как работает делитель лучше знать.

спасибо! согласен что знать надо......

но в вашем примере если я заменю 20к и 10к  на 2к и 1к соответственно то ведь тоже 5в получится .

верно?

да.

так почему тогда 10 и 20 а не 1 и 2

Igor_kip
Offline
Зарегистрирован: 03.01.2016

Но при опорном 5.3 работает нормально - почему? Дело не в аурдунке , куплю другую , хочется понять причину .

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

так понимаю, версии для 5110 с сеткой не будет?

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

lex2k пишет:
но в вашем примере если я заменю 20к и 10к  на 2к и 1к соответственно то ведь тоже 5в получится .

верно?

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

так что лучше ставить бОльшие сопротивления, а не 2к и 1к.

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

karl2233 пишет:

так понимаю, версии для 5110 с сеткой не будет?


Будет конечно.
Сегодня до ночи работал, кодить не было времени.
Сетка не единственное что хочу добавить.

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

bodriy2014, я себе на 3410 уже добавил сетку. А что еще планируется?

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

Немного плюшек от меня (все на 3410): Сетка + вольтметр сигнала.

Хочу еще поставить в корпус делитель 1:3 (чтоб можно было работать спокойно с 12v ). И учитывать его включение, при выводе напряжения.

bpl
Offline
Зарегистрирован: 15.02.2016
LCD Nokia 3410
LCD дисплей от Nokia 3410. Это графический чёрно-белый ЖК дисплей, с разрешением 96 х 65 точек, 
имеет последовательный интерфейс SPI с максимальной скоростью обмена 4 мбит/с. Напряжение питания 
+2.7в...+3.6в, потребляемый ток меньше миллиампера. Есть возможность программного перевода в режим 
низкого энергопотребления (отключение).
Вывод Название Функция
1 VDD Питание +2.7...+3.3В
2 SCLK Синхронизация
3 SDIN Данные
4 D/C Режим: данные(HIGH)/команда(LOW)
5 SCE Выбор кристалла (LOW)
6 GND Земля
7 VOUT Внутреннее напряжение
8 RES Сброс (LOW)
Между выводом 7 VOUT и землёй дожен быть подключен конденсатор ёмкостью 1..10 мкФ(керамика или электролит) - фильтр для внутреннего источника питания LCD. контроллерертPCD8544, который стоит в экранах от 3310. Разница в числе точек, и, вероятно, в расширенных командах, но в целом интерфейс очень похож.
Jtest хорошие плюшки а  скетч или прошивку можно посмотреть
Jtest
Offline
Зарегистрирован: 02.06.2015

bpl, прошивка практически ничем не отличается от оригинальной, что делал bodriy2014. Подогнан график под ширину поля, опущено меню и информационная строка вниз, добавлена сетка обычным перебором цикла, вывод напряжения сигнала. Напряжение сигнала сперва сделал по своему - среднее значение, а потом посмотрел у bodriy2014 код под цветной экран и переделал по аналогии (максимальное значение). Вот и все. Прошивку выложу обязательно, но только когда закончу задуманное.

bpl
Offline
Зарегистрирован: 15.02.2016

Спасибо буду ждать.

bpl
Offline
Зарегистрирован: 15.02.2016

Устал ждать из поднебесной TFT 2.4 240x320 SPFD5408

есть в наличии Модули

TFT  Color 1.44” 128x128 контроллер ILI9163. SPI

TFT Color 1.8” 128x160 контроллер ST7735. SPI

OLED 0.96" 128x64 SSD1306. I2C

Ни кто не переделывал  проект 5110(3310) под них. Сам не потяну.

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

Обновил скетч под 5110, сегодня ночью выложу.

После обновления мне он понемногу начинает нравиться)))

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

bodriy2014, что нового в нем? Это окончательный вариант?

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

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

я так думаю(с)

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

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

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

ааа. я тож уже хочу новую плату развести и перепаять всё :)

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

сетка(вроде будет); кнопка включения; ТL431 на AREF... делитель на плату - вполне себе идея, ведь в основном народ с 5 и до 15 Вольт, а кому на плате не надо - так в щуп вставит 1:10.

так что я сам весь в предвкушении - запультоскоплю всё, даже кота своего =)

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

покажате где на этом экранчике впихнуть вольтметр и он там будет)))

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

крррасота!

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

 

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

Новая прошивка для версии 5110 готова.

Всем удачи в реализации!

Не забываем хвастаться фото!!!

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

Jtest пишет:

Немного плюшек от меня (все на 3410): Сетка + вольтметр сигнала.

Хочу еще поставить в корпус делитель 1:3 (чтоб можно было работать спокойно с 12v ). И учитывать его включение, при выводе напряжения.


классно получилось.!!!
И вольтметр влез отлично!