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

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

а чем создать файл glcdfont.c ? созданием текстового документа и последующим переименованием не получается

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

Можно не создавать , в папке Adafruit_GFX_Library он есть русский.

Вы скачали arduino-1.6.5-r5.rar ?

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

пробовал и 1.6.5 и 1.8.1

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

Скиньте лог компиляции

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017
ide 1.8.1
 
C:\Users\User\Documents\Arduino\libraries\PWM\utility\BTimerDefs.cpp:26:0: warning: "UINT16_MAX" redefined
 
 #define UINT16_MAX 65535
 
 ^
 
In file included from c:\users\user\appdata\local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\lib\gcc\avr\4.9.2\include\stdint.h:9:0,
 
                 from c:\users\user\appdata\local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\avr\include\inttypes.h:37,
 
                 from c:\users\user\appdata\local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\avr\include\avr\sfr_defs.h:126,
 
                 from c:\users\user\appdata\local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\avr\include\avr\io.h:99,
 
                 from C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\cores\arduino/wiring_private.h:26,
 
                 from C:\Users\User\Documents\Arduino\libraries\PWM\utility\BTimerDefs.cpp:23:
 
c:\users\user\appdata\local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\avr\include\stdint.h:346:0: note: this is the location of the previous definition
 
 #define UINT16_MAX (__CONCAT(INT16_MAX, U) * 2U + 1U)
 
 ^
 
C:\Users\User\Documents\Arduino\libraries\PWM\utility\BTimerDefs.cpp:27:0: warning: "UINT8_MAX" redefined
 
 #define UINT8_MAX 255
 
 ^
 
In file included from c:\users\user\appdata\local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\lib\gcc\avr\4.9.2\include\stdint.h:9:0,
 
                 from c:\users\user\appdata\local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\avr\include\inttypes.h:37,
 
                 from c:\users\user\appdata\local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\avr\include\avr\sfr_defs.h:126,
 
                 from c:\users\user\appdata\local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\avr\include\avr\io.h:99,
 
                 from C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\cores\arduino/wiring_private.h:26,
 
                 from C:\Users\User\Documents\Arduino\libraries\PWM\utility\BTimerDefs.cpp:23:
 
c:\users\user\appdata\local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\avr\include\stdint.h:331:0: note: this is the location of the previous definition
 
 #define UINT8_MAX (INT8_MAX * 2 + 1)
 
 ^
 
Скетч использует 22704 байт (70%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 921 байт (44%) динамической памяти, оставляя 1127 байт для локальных переменных. Максимум: 2048 байт.
 
Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

дико извиняюсь нужно бежать на работу. вернусь завтра или вечером с телефона

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

Вообщем попробуйте удалить папку Arduino15 из C:\Users\User\AppData\Local и запуститься из arduino-1.6.5-r5 как я писал не забудте настроить ИДЕ по новой.

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

к стати у меня стоит 1.6.11 ивот чо в конце выдает

Скетч использует 20 514 байт (66%) памяти устройства. Всего доступно 30 720 байт.

Глобальные переменные используют 899 байт (43%) динамической памяти, оставляя 1 149 байт для локальных переменных. Максимум: 2 048 байт.

neoblack2
Offline
Зарегистрирован: 15.04.2017

Всем привет! Ни у кого нету пультоскопа под ардуино мега 2560 и такого екранчика 3,2 TFT 480x320 ?

Работает с библиотекой TFT_HX8357.h очень быстро

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

Ок. Завтра попробую вечером. Отпишусь

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

neoblack2 пишет:

Всем привет! Ни у кого нету пультоскопа под ардуино мега 2560 и такого екранчика 3,2 TFT 480x320 ?

Работает с библиотекой TFT_HX8357.h очень быстро

 

http://radiokot.ru/forum/viewtopic.php?f=59&t=134144

Ардуино слабоват

Mik.Bond.
Mik.Bond. аватар
Offline
Зарегистрирован: 06.06.2017

вот этот скетч под мега и тфт 3.2     взят здесь с форума
...надо дорабатывать.....

#include <TFT_HX8357.h> // Hardware-specific library
TFT_HX8357 tft = TFT_HX8357();

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

//пользовательские настройки!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#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=50;//счетчик оси Х
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)*4.33/1024;//проверка напряжения на АКБ
    if(opornoe==0){ADMUX = 0b11100101;}//выбор внутреннего опорного 1,1В
    if(opornoe==1){ADMUX = 0b01100101;}//Выбор внешнего опорного

    tft.begin();
    delay(50);
    tft.fillScreen(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){
      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 MenuT(){//перерисовка нижнего меню    
    tft.setRotation(0);  
    tft.fillRect(0, 20, 20,320, BLACK);//стирание поля меню низ???????????????????????
   
    tft.setRotation(1);
    tft.setCursor(30,300);
    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("us  ");
    tft.print("Vmax=");
    if(opornoe==0){tft.print(Vmax*1.1/255);}
    if(opornoe==1){tft.print(Vmax*5.3/255);}
    tft.print(" ");
    tft.print("B");
    tft.print(Vakb);  
}

void loop() { 
Zamer();  
//отрисовка и перебор меню###############################
if(menu==0){
  tft.setRotation(1);
  tft.setTextColor(RED);
  tft.setTextSize(2); 
  tft.fillRect(0, 0, 85, 25, CYAN);
  tft.setCursor(30,15);
  if(opornoe==0){tft.print("op-1.1V ");}
  if(opornoe==1){tft.print("op-5.3V ");}
  if(digitalRead(pravo)==HIGH){
    tft.setRotation(0); 
    tft.fillRect(65, 0, 120, 50, BLACK);//стирание напряжения???????????????????????????
    tft.fillRect(45, 60, 140, 260, BLACK);//стиране поля графика????????????????????????
    opornoe=!opornoe;}
  if(digitalRead(levo)==HIGH){
    tft.setRotation(0);  
    tft.setRotation(0); 
     tft.fillRect(45, 60, 140, 260, BLACK);//стиране поля графика??????????????????????? 
    tft.fillRect(65, 0, 120, 50, BLACK);//стирание напряжения???????????????????????????
    opornoe=!opornoe;}
  tft.setRotation(1);  
  tft.print("Razv*");
  tft.print(razv);
  tft.print("   PauseOFF");
}
if(menu==1){
  tft.setRotation(1);
  tft.setTextColor(RED);
  tft.setTextSize(2); 
  tft.fillRect(90, 0,120, 25, CYAN);
  tft.setCursor(30,15);
  if(opornoe==0){tft.print("op-1.1V ");}
  if(opornoe==1){tft.print("op-5.3V ");}
  if(digitalRead(pravo)==HIGH){//доработать скорость
  tft.setRotation(0); 
  tft.fillRect(45, 60, 140, 260, BLACK);//стиране поля графика??????????????????????????
  razv++;
  if(razv==11){razv=10;} 
  }
  if(digitalRead(levo)==HIGH){//доработать скорость
  tft.setRotation(0); 
  tft.fillRect(45, 60, 140, 260, BLACK);//стиране поля графика??????????????????????????
  razv--;
  if(razv==255){razv=0;} 
  }
  tft.setRotation(1); 
  tft.print("Razv*");
  tft.print(razv);
  tft.print("   PauseOFF");
}
if(menu==2){//пауза
  paus=1;
  if(clen_p==0){
  clen_p=1;  
  tft.setRotation(1);
  tft.setTextColor(RED);
  tft.setTextSize(2); 
  tft.fillRect(210, 0,100, 25, CYAN);
  tft.setCursor(30,15);
  if(opornoe==0){tft.print("op-1.1V ");}
  if(opornoe==1){tft.print("op-5.3V ");}
  tft.print("Razv*");
  tft.print(razv);
  if(paus==0){tft.print("   PauseOFF");}
  if(paus==1){tft.print("   PauseON");}
}
}
if(digitalRead(ok)==HIGH){
  menu++;
  tft.setRotation(0); 
  tft.fillRect(45, 60, 140, 260, BLACK);//стиране поля графика??????????????????????????  
  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(0); 
//ось напряжения##########################################
tft.drawFastHLine(50,52,215,BLUE);tft.drawFastHLine(50,51,215,BLUE);tft.drawFastHLine(50,50,215,BLUE);
tft.drawFastVLine(50,50,10, BLUE);tft.drawFastVLine(93,50,10, BLUE);tft.drawFastVLine(136,50,10, BLUE);
tft.drawFastVLine(179,50,10, BLUE);tft.drawFastVLine(222,50,10, BLUE);tft.drawFastVLine(265,50,10, BLUE);
//ось времени#############################################
tft.drawFastVLine(50,52,422, RED);tft.drawFastVLine(49,52,422, RED);tft.drawFastVLine(48,52,422, RED);
tft.drawFastHLine(48,53,10,RED);tft.drawFastHLine(48,95,10,RED);tft.drawFastHLine(48,137,10,RED);tft.drawFastHLine(48,179,10,RED);
tft.drawFastHLine(48,221,10,RED);tft.drawFastHLine(48,263,10,RED);tft.drawFastHLine(48,305,10,RED);tft.drawFastHLine(48,347,10,RED);
tft.drawFastHLine(48,389,10,RED);tft.drawFastHLine(48,431,10,RED);tft.drawFastHLine(48,473,10,RED);
//ось времени#############################################
//сетка вертикальная #####################################
tft.drawFastHLine(86,473,3*vertikal,WHITE);tft.drawFastHLine(129,473,3*vertikal,WHITE);tft.drawFastHLine(172,473,3*vertikal,WHITE);tft.drawFastHLine(215,473,3*vertikal,WHITE);tft.drawFastHLine(258,473,3*vertikal,WHITE);
tft.drawFastHLine(86,431,3*vertikal,WHITE);tft.drawFastHLine(129,431,3*vertikal,WHITE);tft.drawFastHLine(172,431,3*vertikal,WHITE);tft.drawFastHLine(215,431,3*vertikal,WHITE);tft.drawFastHLine(258,431,3*vertikal,WHITE);
tft.drawFastHLine(86,389,3*vertikal,WHITE);tft.drawFastHLine(129,389,3*vertikal,WHITE);tft.drawFastHLine(172,389,3*vertikal,WHITE);tft.drawFastHLine(215,389,3*vertikal,WHITE);tft.drawFastHLine(258,389,3*vertikal,WHITE);
tft.drawFastHLine(86,347,3*vertikal,WHITE);tft.drawFastHLine(129,347,3*vertikal,WHITE);tft.drawFastHLine(172,347,3*vertikal,WHITE);tft.drawFastHLine(215,347,3*vertikal,WHITE);tft.drawFastHLine(258,347,3*vertikal,WHITE);
tft.drawFastHLine(86,305,3*vertikal,WHITE);tft.drawFastHLine(129,305,3*vertikal,WHITE);tft.drawFastHLine(172,305,3*vertikal,WHITE);tft.drawFastHLine(215,305,3*vertikal,WHITE);tft.drawFastHLine(258,305,3*vertikal,WHITE);
tft.drawFastHLine(86,263,3*vertikal,WHITE);tft.drawFastHLine(129,263,3*vertikal,WHITE);tft.drawFastHLine(172,263,3*vertikal,WHITE);tft.drawFastHLine(215,263,3*vertikal,WHITE);tft.drawFastHLine(258,263,3*vertikal,WHITE);
tft.drawFastHLine(86,221,3*vertikal,WHITE);tft.drawFastHLine(129,221,3*vertikal,WHITE);tft.drawFastHLine(172,221,3*vertikal,WHITE);tft.drawFastHLine(215,221,3*vertikal,WHITE);tft.drawFastHLine(258,221,3*vertikal,WHITE);
tft.drawFastHLine(86,179,3*vertikal,WHITE);tft.drawFastHLine(129,179,3*vertikal,WHITE);tft.drawFastHLine(172,179,3*vertikal,WHITE);tft.drawFastHLine(215,179,3*vertikal,WHITE);tft.drawFastHLine(258,179,3*vertikal,WHITE);
tft.drawFastHLine(86,137,3*vertikal,WHITE);tft.drawFastHLine(129,137,3*vertikal,WHITE);tft.drawFastHLine(172,137,3*vertikal,WHITE);tft.drawFastHLine(215,137,3*vertikal,WHITE);tft.drawFastHLine(258,137,3*vertikal,WHITE);
tft.drawFastHLine(86,95,3*vertikal,WHITE);tft.drawFastHLine(129,95,3*vertikal,WHITE);tft.drawFastHLine(172,95,3*vertikal,WHITE);tft.drawFastHLine(215,95,3*vertikal,WHITE);tft.drawFastHLine(258,95,3*vertikal,WHITE);
//сетка вертикальная #####################################
tft.setRotation(1);  
tft.setTextColor(RED);
tft.setTextSize(2);
//шкала напряжения########################################
if(opornoe==0){
    tft.setCursor(30, 260);tft.println("0"); 
    tft.setCursor(0, 218);tft.println("0.22"); 
    tft.setCursor(0, 176);tft.println("0.44"); 
    tft.setCursor(0,134);tft.println("0.66"); 
    tft.setCursor(0, 92);tft.println("0.88"); 
    tft.setCursor(0, 50);tft.println("1.1V");   
}
if(opornoe==1){
    tft.setCursor(30, 260);tft.println("0"); 
    tft.setCursor(0, 218);tft.println("1.00"); 
    tft.setCursor(0, 176);tft.println("2.00"); 
    tft.setCursor(0,134);tft.println("3.00"); 
    tft.setCursor(0, 92);tft.println("4.00"); 
    tft.setCursor(0, 50);tft.println("5.0V");   
}
//шкала напряжения########################################
if(paus==0){MenuT();}
//максимальное значение сигнала##########################
Vmax=0; 
for(int i=0;i<500;i++){  
        if(Vmax<mass[i]){ Vmax=mass[i];} 
}
//максимальное значение сигнала##########################
//отрисовка графика№№№№№№№№№№№№№№№№№№№№№
if(paus==0){
  tft.setRotation(0); 
  x=50;
  for(int y=0;y<420;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;}
      tft.drawLine(x,267-massDEL[y]/1.2, x+1,267-massDEL[y+1]/1.2, BLACK);//стираем график???????????????????????
      tft.drawLine(x,267-mass[y]/1.2, x+1,267-mass[y+1]/1.2, GREEN);//график
         
  }
  for(int i=0;i<500;i++){massDEL[i]=mass[i];}
}
if(paus==1){//режим паузы
       if(digitalRead(pravo)==HIGH){//листаем
        tft.setRotation(0); 
        tft.fillRect(45, 60, 140, 260, BLACK);//стиране графика ????????????????????????????????????????????????
      x=50;
      for(int y=0;y<420;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;}
      tft.drawLine(x,267-mass[y]/1.2, x+1,267-mass[y+1]/1.2, GREEN);//график
      }
      MenuT();
    }
    if(digitalRead(levo)==HIGH){//листаем
      tft.setRotation(0); 
      tft.fillRect(45, 60, 140, 260, BLACK);//стиране графика?????????????????????????????????????????????????? 
      x=50;
      for(int y=0;y<420;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;}
      tft.drawLine(x,267-mass[y]/1.2, x+1,267-mass[y+1]/1.2, GREEN);//график
      }
      MenuT();
    }     
}
//отрисовка графика№№№№№№№№№№№№№№№№№№№№№
}

 

Mik.Bond.
Mik.Bond. аватар
Offline
Зарегистрирован: 06.06.2017

делл

neoblack2
Offline
Зарегистрирован: 15.04.2017

А доработанного у никого нету? никто не занимался?

Mik.Bond.
Mik.Bond. аватар
Offline
Зарегистрирован: 06.06.2017

вы попробуйте  в принципе работает ....

доработок на этом форуме больше не встречал

neoblack2
Offline
Зарегистрирован: 15.04.2017

Mik.Bond. пишет:

вы попробуйте  в принципе работает ....

доработок на этом форуме больше не встречал

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

+ нету главного меню, генераторов и т.д.

+ хочеться делитель хотябы на 12 вольт(как есть в одной версии пультоскопа на 20в), тоже непонятно что менять.....

+ непонятно где как по другому рисовать график - менять опорное 5.3 В, у меня 4.9В

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

всё сделак как советовали - не хочет русский учить

" Sketch uses 23 808 bytes (73%) of program storage space. Maximum is 32 256 bytes.

Global variables use 954 bytes (46%) of dynamic memory, leaving 1 094 bytes for local variables. Maximum is 2 048 bytes. "
 
chekotka
Offline
Зарегистрирован: 20.07.2017

А можно попросить уважаемого Electronik83 поделиться его последней актуальной версией пультоскопа для дисплея nokia 5110?

А то что-то совершенно запутался..

brotherirk
Offline
Зарегистрирован: 24.07.2017

Как раз ддумаю занять этим пультоскопом!

Как понял последняя версия по ссылке:

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

AJGrupp
Offline
Зарегистрирован: 24.07.2017

Приветствую всех.

Прошу помощи, ситуация такая - собрал пультоскопы по финальной версии (на китайских клонах и 5110):

1. Про Мини 16 Мгц, HEX из архива.

2. Про Мини с перепайкой на 27 мГц, HEX из архива.

3. Уно, HEX  из Arduino 1.8.3

Во всех трёх вариантах одинаковая беда:

- первоначальное меню показывает, кнопками перемещается, батарею показывает

- если нажимаю ОК на "пультоскоп", то успевает прорисовать сетку и волну, а потом (от долей сек до 3-х сек) выключается.

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

- если нажимаю ОК на "DDS" , то переходит в следующее меню, но зависает сразу, как только на любом нажму ОК.

- на "терминале" та же история - позволяет изменять значения от первоначальных 9600, и зависает сразу после ОК.

 

Подскажите, где у меня кривые руки (разводку перепроверял, коды не изменял)?

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

AJGrupp пишет:

Приветствую всех.

Прошу помощи, ситуация такая - собрал пультоскопы по финальной версии (на китайских клонах и 5110):

1. Про Мини 16 Мгц, HEX из архива.

2. Про Мини с перепайкой на 27 мГц, HEX из архива.

3. Уно, HEX  из Arduino 1.8.3

Во всех трёх вариантах одинаковая беда:

- первоначальное меню показывает, кнопками перемещается, батарею показывает

- если нажимаю ОК на "пультоскоп", то успевает прорисовать сетку и волну, а потом (от долей сек до 3-х сек) выключается.

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

- если нажимаю ОК на "DDS" , то переходит в следующее меню, но зависает сразу, как только на любом нажму ОК.

- на "терминале" та же история - позволяет изменять значения от первоначальных 9600, и зависает сразу после ОК.

Подскажите, где у меня кривые руки (разводку перепроверял, коды не изменял)?

Привет.

Дайте фото собранного устройства с таких ракурсов чтоб рассмотреть собранную схему.

Симптомы странные.

 

AJGrupp
Offline
Зарегистрирован: 24.07.2017

bodriy2014,

(БлагоДарю за внимание к проблеме)

Сделал предположение, что на макетном бутерброде где-то проскакивает КЗ... больше ничего в голову не пришло.

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

 

Duglas
Offline
Зарегистрирован: 22.07.2017

Подскажите,хотел собрать на олед дисплее - скетч залил PULTOSCOPE_128x64_OLED_display.

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

Сам дисплей рабочий-проверил скетчами из примеров. ардуина 328 тоже проверена-до этого работала с нокиевским экраном. или может кто поделиться хекс и еепромом для PULTOSCOPE_128x64_OLED_display ?

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

Nikolaj666 пишет:

всё сделак как советовали - не хочет русский учить

" Sketch uses 23 808 bytes (73%) of program storage space. Maximum is 32 256 bytes.

Судя по размеру Вы опять компилировали в 1,8,1. Дайте почту Я скину свой ИДЕ 1,6,11.

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

Или посмотрите где то выше sirota переделывал по своему.

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

Нет. Скачивал 1.6 по ссылке.
nikolajyashkin@ya.ru как раз собирался систему сносить с рабочего ноутбука, поставлю Вашу с чистого листа

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

отправил

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

Пусто в почте :(

UPD получил

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

победа. заменил adafruit_st7735 с другого сайта и заработало. пилю корпус. ура

Duglas
Offline
Зарегистрирован: 22.07.2017

D.I.M пишет:


можете поделиться хекс и еепромом для PULTOSCOPE_128x64_OLED_display ?
Не пойму в чëм проблема.
Вроде и подключил правильно.
Может адрес дисплея не совпадает с прописанным.
Мой дисплей запускался на примерах с адресом 3 c.
И нужны или нет резисторы подтяжки с sda scl на плюс питания?

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

да

Duglas
Offline
Зарегистрирован: 22.07.2017

240265 пишет:

да

для 328 ардуины

duglas4519@gmail.com

 

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

Это я про резисторы , а прошивок у меня нету.

Duglas
Offline
Зарегистрирован: 22.07.2017

Несколько десятков раз компилил PULTOSCOPE_128x64_OLED_display
и прошивал атмегу 328,
всë без толку.
Прошивки с других проектов,часы и т д.работают.
Нашел в сети кучу разных осциллографов под олед дисплей,но на экране при запуске ничего.
Или проблема с атмегой какая то

Duglas
Offline
Зарегистрирован: 22.07.2017

Dell

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

Duglas пишет:
Несколько десятков раз компилил PULTOSCOPE_128x64_OLED_display и прошивал атмегу 328, всë без толку. Прошивки с других проектов,часы и т д.работают. Нашел в сети кучу разных осциллографов под олед дисплей,но на экране при запуске ничего. Или проблема с атмегой какая то

---посмотреть в тех прошивках что работают какой адрес олед и его eстановить в скетче пультоскопа. Есть в сети скетчи I2C сканеров, они покажут адрес вашего олед.

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

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

И если задаете такие вопросы и хотите чтоб вам помогли выложите оба скетча сюда того что работает и того что нет.

Выкладывать вот так!

http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii

 

 

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

http://www.instructables.com/id/Make-an-Oscilloscope-Using-the-SainSmart...
Вот такая штука на глаза попалась

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

Nikolaj666 пишет:
http://www.instructables.com/id/Make-an-Oscilloscope-Using-the-SainSmart-Mega2560-/?utm_source=newsletter&utm_medium=email Вот такая штука на глаза попалась

картина из дерева, каким боком она к теме?

Duglas
Offline
Зарегистрирован: 22.07.2017

bodriy2014 пишет:

---посмотреть в тех прошивках что работают какой адрес олед и его eстановить в скетче пультоскопа. Есть в сети скетчи I2C сканеров, они покажут адрес вашего олед.

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

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

Дисплей работает только на скетчах с библиотеками OLED_I2C и U8glib.

В U8glib при раскомментировании



U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST);    // Fast I2C / TWI 

адрес дисплея 3c . резисторы подтяжки стоят.

с любыми скетчами и образцами на библиотеке Adafruit- не работает

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

bodriy2014 пишет:

картина из дерева, каким боком она к теме?

Поздравляю, спам и до вас добрался.

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

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

Господа товарищи ! Особенно уважаемый Лекс 59 . Я НЕ СПАМЕР !!!  Предложенная мной ссылка ведёт на сайт instructables.com с различными поделками. конкретно эта на осциллограф с тачскрином 3.8 + Мега2560. Я не знаю что у них произошдо, какойто сбой и они предлагают посмотреть другое. Я кидал ссылку с телефона. Самый прикол,что сейчас открывается только на телефоне на котором прочитал статью с сайта первый раз, захожу с планшета или компа - видео про картину. На сайте просят извинения за сбой и просят написать в техподдержку. скетч открывается, либы скачиваются

Introduction: Make an Oscilloscope Using the SainSmart Mega2560 With the TFT LCD Shield and the 3.5 "color Touch Screen

mailservice?url=https%3A%2F%2Fcdn.instru
mailservice?url=https%3A%2F%2Fcdn.instru
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc

This instructable will show you how to build a portable Touch Screen

Oscilloscope for less than 40 U$!

The oscilloscope is one of the most powerful electronic instruments that

is available to electronics hobbyist, experimenters, and engineers. It is

mainly used to measue time-varying signals. Any time you have a signal

that varies with time( slowly, quickly, and /or periodically ) you can use

an oscilloscope to measure it , visualize it, and to find any unexpected

features in it.

We can use an oscilloscope to observe and study signal characteristics

that we could otherwise not see .

You will learn about the Arduino mega analog to digital converter( ADC).

We will be using the Arduino analog A0 input to sample and capture time

varying signals by Writing a program that will also display those signals

in a 3.8" TFT LCD touch display, and we will input data to modify the

oscilloscope behavior, using the touch capabilities of the screen display.

Before we start building and programming, lets review some basic

characteristics of an oscilloscope.

These are functions you can control on most oscilloscopes:

Sweep speed. Sweep speed is usually measured in units of time per distance,

like milliseconds/centimeter or milliseconds per division.This might also

be referred to as the horizontal sensitivity.

Vertical sensitivity. That's the measure of how sensitive the display dot

is to voltage applied to the input terminals. It is usually measured in

volts/centimeter or volts per division.

A trigger signal can be generated when the signal value reaches some

particular level - the trigger level. In most cases you can set the trigger

level to a voltage value of your choosing. A trigger is used to capture and

stabilize the waveform on the screen, or to wait for an event before

capturing the data

.

The oscilloscope, like my 4 channel DC DVM, will not be as accurate as

a commercial unit, but it works pretty good for low voltage and low frequencies.

Step 1: UPDATE: Sketch to Convert Oscope to 3 Channel DVM With Graphic Display + Lego Enclosure

mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc

Thank you to all who voted for me! This Instructable won 3rd prize in the Arduino contest, and first prize in the Gadget contest...

Included are pictures and code to convert your oscope to a 3 Channel DVM and to show the output of each channel individually in the scope display by pressing a soft key on the display. ( the third button from the top)

you will need an L shaped female pin connector if you want to have the flexibility of inserting jumpers, otherwise, just bend the pins on one side of the jumpers to insert them in the analog channels (A0- A3) to use them as your probes.

Just download the sketch and upload it to the Arduino.

You can label each channel individually, just change the wording in the sketch.

I have also made a lego enclosure for the scope..check out the pictures.

Step 2: Parts List

mailservice?url=http%3A%2F%2Fwww.instruc
You will need :

Step 3: Build the Hardware.

mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc

Construction of the Oscilloscope is fairly simple. You just have to put the parts of the Sainsmart kit together. All you need to do is add two jumpers; one for ground, and the other to use as  your oscilloscope test probe.

You will need to bend the pins on one side of the jumper wires, and insert them into the A0 pin and GND pin of the Arduino (see pictures for detail),  before installing the display shield, as the display shield will cover the ports once it's in place. 

Plug  the Shield into the Arduino ,  then plug  the display into the shield, and you're done!!! 

Now let's  test the display before we turn it into an oscilloscope.

Step 4: The Software: UTFT Library Test.

mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc
mailservice?url=http%3A%2F%2Fwww.instruc

If you finished putting your kit together, plug it into the USB cable that connects to your PC running the Arduino IDE.

If you haven't done so, download the UTFT and UTouch Libraries, and copy them to the libraries folder where you have the arduino IDE installed.

If the libraries installed properly, you will see the UTFT and the UTouch options when you click on the Files option, and scroll down to examples.

If the UTFT option is in your menu list, select it, then select arduino, and finally, UTFT_Demo_320x240. This will load the cool demo program.

With the program loaded in the IDE, scroll down to view the following code:

 // Uncomment the next line for Arduino 2009/Uno

//UTFT myGLCD(ITDB32S,19,18,17,16);   // Remember to change the model parameter to suit your display module!

// Uncomment the next line for Arduino Mega

UTFT myGLCD(ITDB32S,38,39,40,41);   // Remember to change the model parameter to suit your display module!

Comment out the command for the UNO , and uncomment the  command for the Mega ,as I did.

Now, go to the tools menu, click on board, and select  Arduino Mega 2560 or Mega ADK , if not already selected.

Click on verify to compile the program. If there are no errors, click on upload to  load and execute the program.

If everything is Ok, you will see a cool demo program running. Pictures in this step, show screenshots of the demo running.

 

Step 5: The Software: UTouch Library Test.

mailservice?url=http%3A%2F%2Fwww.instruc

Now we need to test the Utouch  Library

Go to the files menu  and select ;Examples>UTouch>Arduino>Utouch_ButtonTest and load the program to the IDE.

Verify and  run the program.

You should see a keypad show up in the display, and, as you press the number keys, they should show up at the bottom of the screen.

If all went well, we are ready to load the Oscilloscope software.

Step 6: The Oscilloscope

mailservice?url=http%3A%2F%2Fwww.instruc

Below, you will find the sketch for the Oscilloscope. Before we copy and paste the program, let's review some limitations and explain the program.

I've had to do a fair amount of research to come up with the code, and many snippets have been "borrowed" from several sources.

I divided the program into several subrutines to make it easier to understand. The code is well documented, but, if you have trouble understanding it, leave a comment and I'll try to explain it.

The Oscilloscope bandwidth is limited to about 1 khz, but there is room for improvement.

The input is limited to a 5volt peak to peak waveform, unless you use a voltage divider at the input, and also limited to positive waveforms from 0 to 5 volts.

I used some code I found at:http://www.microsmart.co.za/technical/2014/03/01/advanced-arduino-adc/ to adjust the ADC sample time.

The graphics and touch functions were modified, and borrowed, from the Henning Karlsen examples provided in his libraries.

I used a LM 317 voltage regulator, and a 555 IC timer as an astable ocillator, to create the signals used to test the oscilloscope input.

Hope you enjoyed reading and hopefully building this instructable. If you find it useful, please vote for me in the contests.

Note: I included the sKetch, the UTFT and the UTouch libraries in the libraries.zip file for those of you having trouble.

Copy and paste the sketch to your Arduino IDE

//----------------------START PROGRAM

/*--------------------------------------------------------------

Program: OscopetouchLCDmega

Description: Digital Oscilloscope with data displayed

on Color TFT LCD with touch screen

Hardware: sainsmart mega2560 board with 3.5" tft lcd touch module display and shield kit 
http://www.sainsmart.com/home-page-view/sainsmart...

Software: Developed using Arduino 1.0.3 software

This program requires the UTFT library and the

UTouch library from Henning Karlsen.

web:http://www.henningkarlsen.com/electronics

Version 1.00

Date: 5 April 2014

Author: johnag 

--------------------------------------------------------------*/

#include 

#include 

// Declare which fonts we will be using

extern uint8_t SmallFont[];

// Initialize Screen and touch functions

UTFT myGLCD(ITDB32S,38,39,40,41);

UTouch myTouch(6,5,4,3,2);

// Declare variables

char buf[12];

int x,y;

int Input = 0;

byte Sample[320];

byte OldSample[320];

int StartSample = 0;

int EndSample = 0;

int Max = 100;

int Min = 100;

int mode = 0;

int dTime = 1;

int tmode = 0;

int Trigger = 0;

int SampleSize = 0;

int SampleTime = 0;

int dgvh;

int hpos = 50; //set 0v on horizontal grid

int vsens = 4; // vertical sensitivity

// Define various ADC prescaler

const unsigned char PS_16 = (1 << ADPS2);

const unsigned char PS_32 = (1 << ADPS2) | (1 << ADPS0);

const unsigned char PS_64 = (1 << ADPS2) | (1 << ADPS1);

const unsigned char PS_128 = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);

//------------Start Subrutines------------------------------------

//--------draw buttons sub

void buttons(){

myGLCD.setColor(0, 0, 255);

myGLCD.fillRoundRect (250, 1, 310, 50);

myGLCD.fillRoundRect (250, 55, 310, 105);

myGLCD.fillRoundRect (250, 110, 310, 160);

myGLCD.fillRoundRect (250, 165, 310, 215);

}

//-------touchscreen position sub

void touch(){

while (myTouch.dataAvailable())

{

myTouch.read();

x=myTouch.getX();

y=myTouch.getY();

delay(500);

if ((y>=1) && (y<=50)) // Delay row

{

if ((x>=250) && (x<=300)) // Delay Button

waitForIt(250, 1, 310, 50);

mode= mode ++ ;

{

myGLCD.setColor(255, 0, 0);

myGLCD.drawRoundRect (250, 1, 310, 50); 

// Select delay times

if (mode == 0) dTime = 0;

if (mode == 1) dTime = 1;

if (mode == 2) dTime = 2;

if (mode == 3) dTime = 5;

if (mode == 4) dTime = 10;

if (mode == 5) dTime = 20;

if (mode == 6) dTime = 30;

if (mode == 7) dTime = 50;

if (mode == 8) dTime = 100;

if (mode == 9) dTime = 200;

if (mode == 10) dTime = 500;

if (mode > 10) mode = 0; 

}}

if ((y>=70) && (y<=120)) // Trigger row

{

if ((x>=250) && (x<=300)) // Trigger Button

waitForIt(250, 55, 310, 105);

tmode= tmode ++;

{

myGLCD.setColor(255, 0, 0);

// Select Software trigger value

myGLCD.drawRoundRect (250, 55, 310, 105); 

if (tmode == 1) Trigger = 0;

if (tmode == 2) Trigger = 10;

if (tmode == 3) Trigger = 20;

if (tmode == 4) Trigger = 30;

if (tmode == 5) Trigger = 50;

if (tmode > 5)tmode = 0;

}}

if ((y>=130) && (y<=180)) // H position row

{

if ((x>=250) && (x<=300)) // H position Button

waitForIt(250, 110, 310, 160);

hpos= hpos ++;

{

myGLCD.setColor(255, 0, 0);

myGLCD.drawRoundRect (250, 110, 310, 160);

myGLCD.clrScr();

buttons();

if (hpos > 60)hpos = 50;

}}}}

//----------wait for touch sub

void waitForIt(int x1, int y1, int x2, int y2)

{

while (myTouch.dataAvailable())

myTouch.read();

}

//----------draw grid sub

void DrawGrid(){

myGLCD.setColor( 0, 200, 0);

for( dgvh = 0; dgvh < 5; dgvh ++){

myGLCD.drawLine( dgvh * 50, 0, dgvh * 50, 240);

myGLCD.drawLine( 0, dgvh * 50, 245 ,dgvh * 50);

}

myGLCD.drawLine( 245, 0, 245, 240);

myGLCD.drawLine( 0, 239, 245, 239);

myGLCD.setColor(255, 255, 255);

myGLCD.drawRoundRect (250, 1, 310, 50);

myGLCD.drawRoundRect (250, 55, 310, 105);

myGLCD.drawRoundRect (250, 110, 310, 160);

myGLCD.drawRoundRect (250, 165, 310, 215);

}

// ------ Wait for input to be greater than trigger sub

void trigger(){

while (Input < Trigger){ Input = analogRead(A0)*5/100;

}}

//---------------End Subrutines ----------------------

void setup() {

myGLCD.InitLCD();

myGLCD.clrScr();

myTouch.InitTouch();

myTouch.setPrecision(PREC_MEDIUM);

buttons();

pinMode(0, INPUT);

// set up the ADC

ADCSRA &= ~PS_128; // remove bits set by Arduino library

// you can choose a prescaler from below.

// PS_16, PS_32, PS_64 or PS_128

ADCSRA |= PS_64; // set our own prescaler

}

void loop() {

while(1) {

DrawGrid();

touch();

trigger();

// Collect the analog data into an array

StartSample = micros();

for( int xpos = 0;

xpos < 240; xpos ++) { Sample[ xpos] = analogRead(A0)*5/102;

delayMicroseconds(dTime);

}

EndSample = micros();

// Display the collected analog data from array

for( int xpos = 0; xpos < 239;

xpos ++)

{

// Erase previous display

myGLCD.setColor( 0, 0, 0);

myGLCD.drawLine (xpos + 1, 255-OldSample[ xpos + 1]* vsens-hpos, xpos + 2, 255-OldSample[ xpos + 2]* vsens-hpos);

if (xpos == 0) myGLCD.drawLine (xpos + 1, 1, xpos + 1, 239);

// Draw the new data

myGLCD.setColor (255, 255, 255);

myGLCD.drawLine (xpos, 255-Sample[ xpos]* vsens-hpos, xpos + 1, 255-Sample[ xpos + 1]* vsens-hpos);

}

// Determine sample voltage peak to peak

Max = Sample[ 100];

Min = Sample[ 100];

for( int xpos = 0;

xpos < 240; xpos ++)

{

OldSample[ xpos] = Sample[ xpos];

if (Sample[ xpos] > Max) Max = Sample[ xpos];

if (Sample[ xpos] < Min) Min = Sample[ xpos];

}

// display the sample time, delay time and trigger level

myGLCD.setBackColor( 0, 0, 255);

myGLCD.setFont( SmallFont);

myGLCD.setBackColor( 0, 0, 255);

myGLCD.print("Delay", 260, 5);

myGLCD.print(" ", 270, 20);

myGLCD.print(itoa ( dTime, buf, 10), 270, 20);

myGLCD.print("Trig.", 260, 60);

myGLCD.print(" ", 270, 75);

myGLCD.print(itoa( Trigger, buf, 10), 270, 75);

myGLCD.print("H Pos.", 260, 120);

myGLCD.print( itoa( hpos, buf, 10), 270, 135);

//myGLCD.setBackColor( 0, 0, 0);

SampleTime =( EndSample-StartSample)/1000;

myGLCD.print("Sec.", 205, 210);

myGLCD.print(" ", 280, 30);

myGLCD.print(itoa( SampleTime, buf, 10), 205, 220);

// Range of 0 to 64 * 78 = 4992 mV

SampleSize =( Max-Min)*78;

myGLCD.print("mVolt", 5, 210);

myGLCD.print( itoa( SampleSize, buf, 10),5, 220);

myGLCD.print(itoa( analogRead(A0)*4.15/10.23, buf, 10),110 ,220);

}}

//-------------------------END PROGRAM

Step 7: Video of the Oscope in Action

Step 8: Another Video

 

 

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

Nikolaj666 пишет:

 Я НЕ СПАМЕР !!!  Предложенная мной ссылка ведёт на сайт instructables.com с различными поделками. конкретно эта на осциллограф с тачскрином 3.8 + Мега2560. Я не знаю что у них произошдо, какойто сбой

Ясно. Приношу свои извинения за резкий комментарий.

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

Ок. Давайте жить дружно

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

Nikolaj666 пишет:

Introduction: Make an Oscilloscope Using the SainSmart Mega2560 With the TFT LCD Shield and the 3.5 "color Touch Screen

The Oscilloscope bandwidth is limited to about 1 khz, but there is room for improvement.

Слабовато :-(

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

спасибо за проект,меня сподвигло так,правда на баском авр,всем успеховhttps://www.youtube.com/watch?v=SN2vdPc1h08

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

 Здравствуйте,bulat943 это переделка Хамелеона или совсем другой осциллограф,тогда можно всю информацию выложить по нему сюда,думаю всем будет  интересно.

bester
Offline
Зарегистрирован: 25.06.2016

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

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

ну вот я и допилил. вариант от 240265 . лицевую пока лень делать

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

ЗдОрово. Но на СТМ посерьезней получается. Я этой конструкцией пользуюсь сейчас только как генератор.

Но тем не менее СПАСИБО АВТОРУ ! Если бы не ЭТА тема то многие другие темы и не образовались бы.

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

я серьёзным ремонтом не занимаюсь, хватит и этого. да и старый добрый с1-94 есть

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