Универсальный Ардуино пробник

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Подскажите-а на эту версию исходник вначале топика или  уже переделанный?

le8a
Offline
Зарегистрирован: 04.07.2019

Привет Andry Smart ! http://ansvet.ru/stm сдесь примерно тоже что ты делаеш только на стм32 но плюшек побольше.

le8a
Offline
Зарегистрирован: 04.07.2019

Привет Andry Smart ! а скетч для последней схемы это тайна?

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

le8a пишет:

Привет Andry Smart ! http://ansvet.ru/stm сдесь примерно тоже что ты делаеш только на стм32 но плюшек побольше.

прикольный тестер, не пробовали собирать?

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

Andry Smart
Offline
Зарегистрирован: 06.09.2016

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

сейчас уже более похоже на тот прибор, что выложили выше на стм. но со своими приколами.

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

 

теперь одна кнопка на вход прерывания подключена а на второй вход прерывания питание USB (что бы определять подключен ли к зарядке)

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

 

 

 

 

 

Andry Smart
Offline
Зарегистрирован: 06.09.2016

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

-NMi-
Offline
Зарегистрирован: 20.08.2018

Забудь про дурдуину, "клепай" сразу на STM. Не трать зря своё время.

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

Andry Smart пишет:

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

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

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

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

Andry Smart
Offline
Зарегистрирован: 06.09.2016

все заморочки ради удобства. 

а городить всякие лишние схемы не хочется. процессор в спящем режиме кушает очень мало. И кстати процессор дисплея тоже умеет спать.  

через 10 минут бездействия он уснет. А проснется либо от зарядки либо по кнопке и вообще в схеме осталось только две кнопки.

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

платы наверное закажу по новой. правда сейчас в Украину вариант доставки только DHL а цена там не очень мне нравится. 

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

Andry Smart пишет:

все заморочки ради удобства. 

а городить всякие лишние схемы не хочется. процессор в спящем режиме кушает очень мало. И кстати процессор дисплея тоже умеет спать.  

через 10 минут бездействия он уснет. А проснется либо от зарядки либо по кнопке и вообще в схеме осталось только две кнопки.

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

платы наверное закажу по новой. правда сейчас в Украину вариант доставки только DHL а цена там не очень мне нравится. 

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

mazaysky
Offline
Зарегистрирован: 19.05.2014

Andry Smart пишет:

все заморочки ради удобства. 

платы наверное закажу по новой. правда сейчас в Украину вариант доставки только DHL а цена там не очень мне нравится. 

Те же "яйца" но дешевле ;)
http://pcbway.com/

5 USD - производство
8 USD - пересылка в Украину

Первый заказ - скидка 5 USD.

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

Апну немного тему

Andry Smart

Есть продвижения в вашем нелегком деле?

 

le8a
Offline
Зарегистрирован: 04.07.2019

Привет! Делал ради "спортивного интереса" пробничек на голой атмеге 328 правда там не скетч а хекс https://www.radiokot.ru/forum/viewtopic.php?f=2&t=172874

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

le8a пишет:

Привет! Делал ради "спортивного интереса" пробничек на голой атмеге 328 правда там не скетч а хекс https://www.radiokot.ru/forum/viewtopic.php?f=2&t=172874

спасибо! 

Andry Smart
Offline
Зарегистрирован: 06.09.2016

тут не продвижение а тупик. намаялся я атмега и все же решил перейти на стм.  АЦП и вообще все на много интереснее.

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

 

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Andry Smart пишет:

тут не продвижение а тупик. намаялся я атмега и все же решил перейти на стм.  АЦП и вообще все на много интереснее.

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

 

Тоже подумал,что скорей всего надо менять  платформу для разработки,но вот больно гиморно настраивать stm да и с иде какая-то  чехарда..Желаю скорейшего выздоровления.Берегите себя..

volzin
Offline
Зарегистрирован: 07.06.2019

Мне лично меги для контрольки хватает за глаза. Оставил только вольт метр и омметр. Сейчас добавляю проверку диодов. Для автоконтрольки больше и ненадо. Может позже ещё чего... Делаю на экране 128/32. Он лучше вписывается в размеры контрольки.
И да, ИДЕ сильно чудит. Добавляешь код и начинает ругаться в тех местах где раньше работала.

Andry Smart
Offline
Зарегистрирован: 06.09.2016

ye не знаю, мне лично режим осциллографа очень нужен. но АЦП все таки слабоват у Атмеги.

volzin
Offline
Зарегистрирован: 07.06.2019

За 20 лет работы с машинами если и нужен был осцыл то только как минимум 2х лучевой. У меня есть 8 ми канальный. А в контрольке нужно быстро оценить состояние. Ещё бы добавил измерение индуктивность... А так... Изменил вольтметр до 40,есть машины на 24, омметр... Хочется перекроить алгоритм,если терпения хватит. А в целом питание с внутреннего аккума, умещается в корпус маркера. Для моих задач хватает. Для большего уже другое оборудование.

Andry Smart
Offline
Зарегистрирован: 06.09.2016

да ну мне так постоянно надо пощупать импульсы. стаж до 20 не дотягивает я всего 15 лет с машинами вожусь.

но уже выручал мой недодел в таких моментах

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

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

3 импульсы на форсунку надо проверить особенно размах (плохой контакт накосячили ГБОшники)

4 toyota sequoia странный звук музыки рывками только благодаря визуализации импульсов на LIN шине я вычислил, что эту шину подсадил потолочник

 

я потому и заморочился так.

 

 

volzin
Offline
Зарегистрирован: 07.06.2019

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

AVL4ARDUINO
Offline
Зарегистрирован: 04.01.2012

http://ansvet.ru/stm/
Этот вариант кто-то повторил? Есть смисл заморачиваться мне?
Спасибо.

volzin
Offline
Зарегистрирован: 07.06.2019

Тут тема ардуинки а в ссылке другой проц.

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

AVL4ARDUINO пишет:
http://ansvet.ru/stm/ Этот вариант кто-то повторил? Есть смисл заморачиваться мне? Спасибо.

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

Floki
Offline
Зарегистрирован: 11.11.2020

   Привет всем

Пoвторил пробник как на 25 пост, дисплей  OLED SSD1306 128x32, со вторй библиотекой kak писал dimax, прошивка с 183 поста. пока на макетной плате. Напряжение меряет, но почти наполовину меньше показывает, сопротивление тоже неправильно. В чём может быть проблема?

svm
Offline
Зарегистрирован: 06.11.2016

По напряжению смотрите в 68 строке. Поставьте реальный коэффициент делителя. Номиналы с исходной схемой могут сильно отличаться. Пробник собирался из того что попалось под руку номиналы +/- лапоть. По резисторам та-же картина. Там есть фото платы, на ней наверное можно увидеть реальные номиналы. Да и у резисторов, значительный разброс. Поэтому реальные коэффициенты лучше подобрать при измерении известных резисторов, примерно в середине диапазона измерения.

yur9415
Offline
Зарегистрирован: 12.09.2015

Добрый день, друзья! я решил заказать нормальную плату и нарисовал схему в сервисе EASYEDA. добавил функцию автоотключения, зарядка акб от юсб,измерение заряда ​встроенного акб.  поделюсь с вами  когда нарисую плату.  хочу попробовать заказать 4-х слойную плату. У китайцев акция на эти платы , вот и хочу попробовать.  япридумал как сделать красивый корпус, но об этом позже.  

 

yur9415
Offline
Зарегистрирован: 12.09.2015

https://oshwlab.com/yur9415/arduino_probnik

вот ссылка на проект

 

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

прикольно, ждем=)

Andry Smart
Offline
Зарегистрирован: 06.09.2016

а можно про корпус по подробнее?

а то для меня это тоже актуально

u_k
Offline
Зарегистрирован: 23.11.2020

Andry Smart, пробник с поста #298 что умеет?

Схему с прошивкой где можно скачать?

z.glass
Offline
Зарегистрирован: 30.11.2020

mazaysky пишет:
Andry Smart пишет:

Те же "яйца" но дешевле ;) http://pcbway.com/ 5 USD - производство 8 USD - пересылка в Украину Первый заказ - скидка 5 USD.

Есть еще вариант, но это уже в промышленных масштабах. https://www.andwinmcpcb.com/

yur9415
Offline
Зарегистрирован: 12.09.2015

Всем привет вот пришла наконец то плата.

сегодня буду собирать это устройство.

kolyancom2
Offline
Зарегистрирован: 18.03.2020

А скетчем не поделитесь?

mazaysky
Offline
Зарегистрирован: 19.05.2014

yur9415 пишет:

Всем привет вот пришла наконец то плата.

сегодня буду собирать это устройство.


Ну, паузу по Станиславскому ты выдержал...
Давай уже, хвастайся!

le8a
Offline
Зарегистрирован: 04.07.2019

yur9415 вносит интригу,но у всех выдержка железная......Ждём!

Анатолий89
Offline
Зарегистрирован: 16.03.2021

Заинтересовал этот проект...

Его сложно переделать на ST7735?

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

satalexx
Offline
Зарегистрирован: 07.05.2021

Всем доброго времени суток!

Апну тему!

Спасибо автору и другим участникам, повторил пробник от автора на arduino pro mini (последний с кнопкой и измерением емкости). Точность измерения напряжения и сопротивления подправил резисторами, а вот частоту меряет ровно в 20 раз меньшую. К примеру на генераторе 1kHz а показывает 50Hz.

Может кто подскажет в чем дело?

Заранее спасибо! 

svm
Offline
Зарегистрирован: 06.11.2016

Так быть не может. Все остальные измерения зависят от номиналов резисторов, а частота только от точности кварца. Посмотрите  внимательно скетч, возможно при копировании или окультуривании скетча поставили не то время измерения. Теоретически - частотомер самая без проблемная часть проекта.

satalexx
Offline
Зарегистрирован: 07.05.2021

svm пишет:

Так быть не может. Все остальные измерения зависят от номиналов резисторов, а частота только от точности кварца. Посмотрите  внимательно скетч, возможно при копировании или окультуривании скетча поставили не то время измерения. Теоретически - частотомер самая без проблемная часть проекта.

Спасибо за быстрый ответ! Честно, не ожидал! Я тоже так понял что номиналы сопротивлений на частотомер не влияют. Пробник собран на Arduino Pro Mini с кварцем 16MHz, кварц не трогал. В скетче только изменил вывод на дисплей (у меня желто-синий 128Х64), в частотомере ничего не трогал.


// Входом частотомера является цифровой пин 5
 #include <Wire.h>
 #include "SSD1306Ascii.h"
 #include "SSD1306AsciiWire.h"
 #define I2C_ADDRESS 0x3C
 //#define DEBUG // Раскомментировать,если нужна отладочная информация в монитор
 SSD1306AsciiWire oled;
 //******************** Большие емкости **************************************
#define resistorValue  24500.0F   // Зарядный резистор для измерения емкости
unsigned long elapsedTime;
float microFarads;                
float nanoFarads;
volatile unsigned long startTime;
//volatile unsigned long rez,duration;
//**************************************************************************** 
 volatile unsigned int int_tic=0; 
 volatile unsigned long tic; 
 long adc_buff,tau_svet,t_svet;
 float u_del,u_izm,rez;
 byte ri,rr,rs,prob,svet;// режим измерения
//***************************************************************

void setup()
{
 Serial.begin(9600);
  #ifdef  DEBUG 
 Serial.begin(9600);
 #endif
 Wire.begin();
 Wire.setClock(400000L);
  oled.begin(&Adafruit128x32, I2C_ADDRESS);
  oled.setFont(font5x7);
  oled.clear();
  oled.set2X();
  tone(9,500,100);                   
  oled.print("  ------- ");
  oled.println("          ");
  oled.print("  PROBNIK");
  delay(1000);
TCCR1A=0; TIMSK1 = 1<<TOIE1; //прерывание по переполнению
}
ISR (TIMER1_OVF_vect){ int_tic++;
}

void loop(){
rs=0;  
svet=0;
prob=1;
start:
pinMode(2, INPUT);// 2 пин высокий импеданс
pinMode(3, INPUT);// 3 пин высокий импеданс
pinMode(4, INPUT);// 4 пин высокий импеданс
//*******************************************************************
svet:// фиксация длительности вкючения кнопки подсветки
if (analogRead(A0)>100 && svet==0){t_svet=millis();svet=1;goto svet;}
if (analogRead(A0)>100 && svet==1)goto svet;
if (analogRead(A0)<10  && svet==1){tau_svet=millis()-t_svet;
if (tau_svet<400){rr++;prob=0;rs=0;} //короткое нажатие выбор режима
if (tau_svet>800){rr=0;prob=1;}      //очень длинное  нажатие возврат к пробнику
if (tau_svet>450)rr=0;               //длинное  нажатие
svet=0;t_svet=0;}
//************** измерение выборочных величин ************************

if (rr==0)goto probn;
if (rr==1){show_menu();voltmeter();}
if (rr==2){show_menu();ommeter();}
if (rr==3){show_menu();f_meter();ri=0;}
if (rr==4){show_menu();C_meter();}
if (rr>4){show_menu();goto probn;}
vdspl();
if (prob==0)goto start;


probn:;//******************** РЕЖИМ ПРОБНИКА ****************************
  
//****************************  ЧАСТОТОМЕР ******************************************
test_F();     //  Тест наличия импульсов с F>5 Гц.
if (tic>1) {  // Если есть импульсы измеряем частоту
f_meter();
goto ind;
}
//**************************** Вольтметр ******************************************
voltmeter();
if (adc_buff > 150) goto ind;   //если есть напряжения выводим - иначе измеряем сопротивление
//**************************** ОММЕТР ********************************************
//rezist:
ommeter();
//*************************** ИНДИКАЦИЯ ************************************
ind:;
vdspl();// Вывод на дисплей 
 #ifdef  DEBUG 
 info(); 
 #endif
goto start;
}
// ************* Конец лупа ***********************

void show_menu(){
if (rs==0){
tone(9,500,100);                   
oled.clear();
if (rr>4){oled.println("  PROBNIK");rr=0;}
if (rr==1)oled.println(" Voltmeter");
if (rr==2)oled.println("  Ommeter");
if (rr==3)oled.println("  F_meter");
if (rr==4){oled.println("  C_meter");
           oled.print  ("0.1-500 mF");}
delay(600);
rs=rr;}}


//**************************************************************************
// вывод на  SSD1306
void vdspl()
{ 
if (rez> 7999999 || rez<0){         //ХЗ что на входе
//oled.clear();
oled.setCursor(1,0);
oled.print("           ");
oled.println("           ");
oled.print(" Incorrect ");
if (rr==1) oled.print("U");
if (rr==2) oled.print("R");
if (rr==3) oled.print("F");
if (rr==4) oled.print("C");
if (rr==0) oled.print("P");
goto vdsp;
}  
oled.setCursor(1,0);
if (rez==0)goto vdsp;
if (ri==5 && rez >=0 && rez < 1){;   //Щупы 3акорочены или сопроивление < 1 Om
tone(9,500,100);                     // для пассивного спикера на 9 пине
oled.clear();
oled.println("  SHORT     ");
delay(100);
goto vdsp;
}
if (ri==0){ 
oled.print (" Частота ");
oled.println("              ");
oled.print (int(rez));
oled.print(" HZ        ");
goto vdsp;
}
if (rs==3)goto vdsp;
if (ri==1){;                        // Вывод напряжения
oled.print(" Напряжение ");
oled.println("           ");
oled.print(rez,2);
oled.print(" V         ");
goto vdsp;
}
if (ri==6){;                        // Вывод емкости
oled.print(" Емкость ");
oled.println("           ");
oled.print(rez,2);
oled.print  (" mF        ");
goto vdsp;
}

if (ri==2 ||ri==3) rez=rez/1000;    // Вывод сопртивления
oled.print("Сопротивление");
oled.println("         ");
oled.print(rez,1);
if (ri==2 ||ri==3) oled.println(" KOhm    ");  
else oled.println(" Ohm     ");                    
vdsp:; 
}


// измерение напряжения питания
long readVcc() {
  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  delay(2); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Convert
  while (bit_is_set(ADCSRA,ADSC));
  uint8_t low = ADCL; // сначала нужно прочесть ADCL - это запирает ADCH
  uint8_t high = ADCH; // разлочить оба
  float result = (high<<8) | low;
  //result = (1.03357 * 1023.0*1000) / result;
  result =1057342.11/ result;
  return result;
}

//************* отладочная информация *****************
void info(){
Serial.println("-------<>-------");
Serial.println("");
Serial.print("REJIM - ");
Serial.println(ri);
Serial.print("UCC   = ");
Serial.print((float)readVcc());
Serial.println(" V");
Serial.print("U_del - ");
Serial.println(u_del);
Serial.print("U_izm - ");
Serial.println(u_izm);
Serial.print("REZULT- ");
Serial.println((float)rez);
Serial.println("");
Serial.println("-------<>-------");
delay(1500);
}


void voltmeter(){// *************** ВОЛЬТМЕТР *****************
   ri=1; 
 analogReference(INTERNAL);// включаем внутренний ИОН 1.1 В
pinMode(2, INPUT); 
pinMode(3, INPUT); 
pinMode(4, OUTPUT); // выводим на 4 пин 0
digitalWrite(4,0);         // устанавливая его в 0(включаем нижний резистор делителя)
  delay(2);
adc_buff=0;
for (int n=0; n<=255; n++ ) {
adc_buff+= analogRead(A1); }
adc_buff >>=4; // 16368 полная шкала 14bit
rez= (float)adc_buff/16368.0*5.29;// - реальный коэфф делителя
}
//****************************************************************************
void ommeter(){// *************** ОММЕТР *****************
     
//R=20 kOm  
ri=2;
pinMode(2, INPUT);         // 2 пин высокий импеданс
pinMode(3, INPUT);         // 3 пин высокий импеданс
pinMode(4, OUTPUT);        // 4 пин выход
digitalWrite(4,1);         // переводим его в 1 подключаем измерительный резистор 20 kOm
analogReference(DEFAULT);// подключаем опорное 5 В  
delay(2);

// измеряем полное напряжение на делителе под нагрузкой
//**************************************************************
adc_buff=0;
for (int n=0; n<=255; n++ ) {
adc_buff+= analogRead(A1); }
adc_buff >>=4;
u_del= (float)adc_buff;

// измеряем напряжение на измеряемом резисторе
//**************************************************************
adc_buff=0;
for (int n=0; n<=255; n++ ) {
adc_buff+= analogRead(A3); }
adc_buff >>=4;
u_izm= (float)adc_buff;
rez= float(u_izm*20000)/float(u_del-u_izm);// для 20 kOm
if (u_izm>4000){;//Если значение достоверно - вывод на индикацию
goto vyv;
}

//#############################  4,7 kOm  ######################################
ri=3;
pinMode(4, INPUT);         // 4 пин высокий импеданс
pinMode(3, OUTPUT);        // 3 пин выход
digitalWrite(3,1);         // переводим его в 1 подключаем измерительный резистор 4.7 kOm
analogReference(DEFAULT);// подключаем опорное 5 В  
delay(2);

// измеряем полное напряжение на делителе под нагрузкой
//**************************************************************
adc_buff=0;
for (int n=0; n<=255; n++ ) {
adc_buff+= analogRead(A2); }
adc_buff >>=4;
u_del= (float)adc_buff;

// измеряем напряжение на измеряемом резисторе
//**************************************************************
adc_buff=0;
for (int n=0; n<=255; n++ ) {
adc_buff+= analogRead(A1); }
adc_buff >>=4;
u_izm= (float)adc_buff;
rez= float(u_izm*4750)/float(u_del-u_izm);// для 4,7 kOm
if (u_izm>4000){;
goto vyv;
}

 //#############################  500 Om  ######################################
 
  analogReference(DEFAULT);// подключаем опорное 5 В
  ri=4;
pinMode(3, INPUT);         // 3 пин высокий импеданс
pinMode(2, OUTPUT);        // 2 пин выход
digitalWrite(2,1);         // переводим его в 1 подключаем измерительный резистор 500 Ом 
  delay(2);
// измеряем полное напряжение на делителе под нагрузкой
//**************************************************************
adc_buff=0;
for (int n=0; n<=255; n++ ) {
adc_buff+= analogRead(A3); }
adc_buff >>=4; 
u_del= (float)adc_buff;

// измеряем напряжение на измеряемом резисторе
//**************************************************************
// сначала при опорном 5 В
adc_buff=0;
for (int n=0; n<=255; n++ ) {
adc_buff+= analogRead(A1); }
adc_buff >>=4;
 u_izm= (float)adc_buff;
rez= float(u_izm*500)/float(u_del-u_izm);// для 500 om
if (u_izm >4000){
goto vyv;
}
//Если  точность не удовлетворяет переходим на опорное 1,1 В
// измеряем полное напряжение на делителе под нагрузкой при опорном 5 В
//**************************************************************
ri=5;
adc_buff=0;
for (int n=0; n<=255; n++ ) {
adc_buff+= analogRead(A3); }
adc_buff >>=4;
u_del= (float)adc_buff/16368*(float)readVcc();

// измеряем напряжение на измеряемом резисторе
analogReference(INTERNAL);// подключаем опорное 1.1 В
delay(2);
adc_buff=0;
for (int n=0; n<=255; n++ ) {
adc_buff+= analogRead(A1); }
adc_buff >>=4; 
u_izm= (float)adc_buff/16368*1100;
(rez)= float(u_izm*500)/float(u_del-u_izm);
vyv:;
}


void init_fm(){// ********* конфигурация входов частотомера *******
ri=0;
pinMode(4, OUTPUT);        // выводим на 4 пин 0
digitalWrite(4,0);         // загрубляем вход (борьба с наводками)
//pinMode(4, INPUT);       // если нужна макс. чувствительность
pinMode (5,INPUT);         // вход сигнала T1 (для atmega168/328)
}


void f_meter(){//*******************ЧАСТОТОМЕР********************
ri=0;
if (analogRead(A0)>100)rr=0;prob=1;goto vf;// ПРОВЕРКА КНОПКИ
init_fm();  
int_tic=0; TCNT1 = 0;
TCCR1B = (1<<CS10)|(1<<CS11)|(1<<CS12);//тактировани от входа Т1
delay(1000);// Время измерения
TCCR1B=0;
tic= ((uint32_t)int_tic<<16) | TCNT1; //сложить что натикало
rez=tic;
vf:;
}

void test_F(){// ******* Тест наличия импульсов с F>5 Гц.********
init_fm();
ri=0;
int_tic=0; TCNT1 = 0;
TCCR1B = (1<<CS10)|(1<<CS11)|(1<<CS12);//тактировани от входа Т1
delay(50);// Тестовый замер (срабатывает> 5 Гц  устойчиво)
TCCR1B=0;
tic= ((uint32_t)int_tic<<16) | TCNT1; //сложить что натикало
rez=tic;
}
//****************** Измерение емкости 0,1-500 Мкф ********************************************
// Взято из <a href="http://digitrode.ru/computing-devices/mcu_cpu/816-izmeritel-emkosti-na-arduino-svoimi-rukami.html" rel="nofollow">http://digitrode.ru/computing-devices/mcu_cpu/816-izmeritel-emkosti-na-arduino-svoimi-rukami.html</a>
void C_meter(){
  ri=6;
  pinMode(2, INPUT);
  pinMode(3, INPUT);
  pinMode(5, INPUT);  
  pinMode(4, OUTPUT);
  digitalWrite(4, HIGH);              //Включаем заряд конденсатора
  startTime = millis();               //Засекаем время
  while(analogRead(A2) < 648){}       //Ждем пока конденсатор не зарядится до 63,2% или 1,58 от  полной зарядки
  elapsedTime= millis() - startTime;  //Фиксируем время заряда
  //if (elapsedTime<2)elapsedTime=0;    // Борьба с шумами
  microFarads = ((float)elapsedTime / resistorValue) * 1000;  
 rez=microFarads;
 if (elapsedTime<=1)rez=0; 
  digitalWrite(4, LOW);               //Снимаем напряжение           
  pinMode(2, OUTPUT);                 //Разряжаем кондюк         
  digitalWrite(2, LOW);               //Закорачивая его на землю
  
  Serial.println(rez);
  delay(100);
  while(analogRead(A2) > 0){}         // Пока не разрядится         
  pinMode(2, INPUT);                  // Отключаем разряд 
} 

Хотел загрузить фотки,  не получается, пишет Upload failed

svm
Offline
Зарегистрирован: 06.11.2016

Вроде все правильно. Выведите сразу в частотомере в сериал.Чудес не бывает. Где-то в начале темы пост #13 есть подсказка от Димакса на этот частотомер. Проверьте на всякий случай. Ощущение, что вместо 1000 мс меряет 50. Может камень какой-то другой?

satalexx
Offline
Зарегистрирован: 07.05.2021

svm пишет:

Вроде все правильно. Выведите сразу в частотомере в сериал.Чудес не бывает. Где-то в начале темы пост #13 есть подсказка от Димакса на этот частотомер. Проверьте на всякий случай. Ощущение, что вместо 1000 мс меряет 50. Может камень какой-то другой?

Спасибо, сейчас перечитаю еще раз. Я тоже думал про 1000 мс. Если вдруг не разберусь, как вы думаете если поставлю 20000 мс?

svm
Offline
Зарегистрирован: 06.11.2016

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

satalexx
Offline
Зарегистрирован: 07.05.2021

svm пишет:

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

Не, схема Ваша, делителей не добавлял, поменял только номиналы двух резисторов 470 на 500 Ом и 4.7 на 5 кОм

Да,20сек это жестко

satalexx
Offline
Зарегистрирован: 07.05.2021

Добавил все таки фотки(уменьшил размер файла)

На 2 фото генерация с транзистор-тестера

На 3,4 - с пультоскопа

svm
Offline
Зарегистрирован: 06.11.2016

А в монитор порта выводили? Может где в индикации косяк? Или как вариант вместо атмеги 328 какой-то клон.

satalexx
Offline
Зарегистрирован: 07.05.2021

svm пишет:

А в монитор порта выводили? Может где в индикации косяк? Или как вариант вместо атмеги 328 какой-то клон.

В монитор еще не выводил. Индикация?Так напряжение, сопротивление, емкость меряет хорошо.

Arduino такая

svm
Offline
Зарегистрирован: 06.11.2016

По идее все Ок. Посмотри в мониторе, вдруг косяк с выводом на экран. Частотомер рабочий 100%.

satalexx
Offline
Зарегистрирован: 07.05.2021

svm пишет:

По идее все Ок. Посмотри в мониторе, вдруг косяк с выводом на экран. Частотомер рабочий 100%.

Индикация? Так напряжение, сопротивление, емкость меряет хорошо.

svm
Offline
Зарегистрирован: 06.11.2016

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