подскажите в чем трабл. переделал скетч под Adafruit библиотеку (руссифицырованную) . работает как надо но переключивши в режим вольтметра гаснет экран и выводит напряжение, если на щупе что то есть. а если нет то пустой экроан. Замучился искать косяк
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <FreqCount.h>
#include <PWM.h>
#define OLED_RESET 4
//------------------------------------------------------------ПЕРЕМЕННЫЕ------------
Adafruit_SSD1306 display(OLED_RESET);
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()
{
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.cp437(true);
display.clearDisplay();
display.setTextSize(2);
display.setCursor(1,0);
display.setTextColor(WHITE);
pinMode(10, OUTPUT);
display.println(utf8rus("ПРОБНИЧЕК"));
display.display();
delay(1000);
display.clearDisplay();
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 пин высокий импеданс
display.clearDisplay();
//*******************************************************************
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>3){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();// Вывод на дисплей
if (rr==1) voltind ();
display.display();
goto start;
}
void show_menu(){
if (rs==0){
display.clearDisplay();
display.setTextSize(2);
display.setCursor(0,0);
if (rr>3){display.println(utf8rus(" ПРОБНИК "));rr=0;}
if (rr==1)display.println(utf8rus(" ВОЛЬТМЕТР "));
if (rr==2)display.println(utf8rus(" ОММЕТР "));
if (rr==3)display.println(utf8rus("ЧАСТОТОМЕР "));
display.display();
delay(500);
rs=rr;}}
//**************************************************************************
// вывод на SSD1306
void vdspl()
{
if (rez> 7999999 || rez<0){ //ХЗ что на входе
display.clearDisplay();
display.setCursor(1,0);
display.println(utf8rus(" -------"));
display.print(utf8rus(" на входе"));
display.display();
digitalWrite(10,0);
goto vdsp;
}
display.setCursor(1,0);
if (rez==0)goto vdsp;
if (ri==5 && rez >=0 && rez < 70){; //Щупы 3акорочены или сопроивление < 70 Om
display.clearDisplay();
display.setCursor(1,0);
display.println(utf8rus("КОРОТЫШ"));
display.print(rez,1);
display.println(" ");
if (ri==2 ||ri==3) display.println(" KOhm ");
else display.println(" Ohm ");
display.display();
digitalWrite(10,1);
delay(100);
goto vdsp;
}
digitalWrite(10,0);
if (ri==0){
display.setCursor(1,0);
display.print (int(rez));
display.println(" ");
display.print("HZ ");
display.display();
goto vdsp;
}
if (rs==3)goto vdsp;
if (ri==1){; // Вывод напряжения
display.clearDisplay();
display.setCursor(1,0);
display.print(rez,2);
display.println(" ");
display.print(utf8rus("ВОЛЬТ "));
display.display();
goto vdsp;
}
if (ri==2 ||ri==3) rez=rez/1000; // Вывод сопртивления
display.setCursor(1,0);
display.print(rez,1);
display.println(" ");
if (ri==2 ||ri==3) display.println(" KOhm ");
else display.println(" Ohm ");
vdsp:;
display.display();
//display.clearDisplay();
}
// измерение напряжения питания
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 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;
}
void voltind ()
{
display.clearDisplay();
display.setCursor(1,0);
display.print(rez,2);
display.println(" ");
display.print(utf8rus("ВОЛЬТ "));
display.display();
}
// ---------------------------------------------------------------------перекодировка русских символов
/* Recode russian fonts from UTF-8 to Windows-1251 */
String utf8rus(String source)
{
int i,k;
String target;
unsigned char n;
char m[2] = { '0', '\0' };
k = source.length(); i = 0;
while (i < k) {
n = source[i]; i++;
if (n >= 0xC0) {
switch (n) {
case 0xD0: {
n = source[i]; i++;
if (n == 0x81) { n = 0xA8; break; }
if (n >= 0x90 && n <= 0xBF) n = n + 0x30;
break;
}
case 0xD1: {
n = source[i]; i++;
if (n == 0x91) { n = 0xB8; break; }
if (n >= 0x80 && n <= 0x8F) n = n + 0x70;
break;
}
}
}
m[0] = n; target = target + String(m);
}
return target;
}
еще планирую резистор делителя для измерени я напряжения 4.7к заменить на 1.3 (увеличить диапазон входного напряжения до 16в) вход ардуинки думаю защитить стабилитроном на 5в на всякий случай. пин 4.
в каком режиме еще этот резистор используется? где мне код поправить?
еще планирую резистор делителя для измерени я напряжения 4.7к заменить на 1.3 (увеличить диапазон входного напряжения до 16в) вход ардуинки думаю защитить стабилитроном на 5в на всякий случай. пин 4.
в каком режиме еще этот резистор используется? где мне код поправить?
Кажется, только в частотомере, для борьбы с наводками строка 307 в Вашем коде. Но он закорачивает вход частотомера не напрямую, а через резистор 47 кОм, так-что ни на что это изменение не повлияет.
А что так грубо коротыш фиксируете < 70 Ом. Строка 116.
А коротыш то для удобства. сопротивление подберу экспериментально. to добавил вывод сопротивления в режиме коротыша. это по принцыпу знаменитого мультиметра DT830 (там тоже по моему до 70 ом пищалка работает). визульно проконтролировать удобно.
удобно на слух прозванивать катушки реле, клапанов, лампочек в автомобилях.
кстати оператор Tone в моем коде не хочет компилировать. не пойму почему.
я тут подумал. А можно ведь резистор не менять. Достаточно сделать проверку, если скажем результат больше 4,5в то произвести измерение с опорным напряжением в 5в. по моему в пультоскопе данная идея реализована.
кстати оператор Tone в моем коде не хочет компилировать. не пойму почему.
Потому что tone() использует для генерации аппаратный timer 0, который уже занят библиотекой FreqCount. Если Вы не собираетесь менять частоту звучания, проще поставить активный зуммер (active buzzer). Там достаточно подать на пин HIGH и он будет сам пищать.
подскажите сильно ли упадет точность измерения сопротивдений, при изменении напряжения питания? хочу запитать схему от аккумулятора 3.6-4.2в без преобразователя
подскажите сильно ли упадет точность измерения сопротивдений, при изменении напряжения питания? хочу запитать схему от аккумулятора 3.6-4.2в без преобразователя
Теоретичски, напряжение питания не должно влиять, т.к. при расчетах используется соотношение напряжений, а не абсолютные значения.
подскажите еще такой момент. поставлю я в цепь делителя для измерения напряжения резистор на 1к вместо 4к7 . смогу по идее до 20в измерять. вопрос в следующем не будет ли опасно это напряжение для порта с резисторами на 500 ом? и спасет ли стабилитрон ?
сам порт D2 думаю в состоянии высокого импенданса не пострадает а вот А3 не выгорит ли?
вопрос в следующем не будет ли опасно это напряжение для порта с резисторами на 500 ом? и спасет ли стабилитрон ?
сам порт D2 думаю в состоянии высокого импенданса не пострадает а вот А3 не выгорит ли?
Если посмотреть схему портов Ардуино, то там присутствуют защитные диоды. При напряжении менее 5В они запереы и никакого влияния не оказывают. Если больше, то они открываются и напряжение на пине порта ограничивается напряжением питания + падение напряжения на открытом диоде. Возникает вопрос, какой ток выдержат эти диоды? Согласно закона Ома при 20 В и нагрузке 500 ом ток будет 40 мА, теоретически должно прокатить, но что будет на самом деле покажет время. Я бы не стал рисковать и убрал диапазон измерения с резистором 500 Ом,немного потеряв в точности измерении малых сопротивлений
ладно посмотрю попробую диапазон 500ом выбросить. может меня точность устроит.
похоже получается у меня скрестить с пультоскопом. катастрофически не хватает времени этим заниматься но все же иногда получается.
решил питать схему без преобразователя от аккумулятора (литийионного) при измерении напряжения а также в пультоскопе использую опорное только 1.1в ...
решил все же два диапазона сделать по напряжению. до5в и до20в. пин 2 освободился и теперь он управляет так же как пин 4 резистором только уже на 1к для диапазона до 20в.
частотомер уберу. (в режиме пультоскопа показывает и частоту)
программер из меня не очень . код пока не эффективен. боюсь все задуманное в атмегу 328 не влезет.
не получается выбросить резистор на 500ом. через него ведь и остальные диапазоны измекряют. например по входу А3 змеряется напряжение при подключенном резиторе на 20к.
что то у меня уже крыша едет. может посоветуетете как его исключить?
получается надо оставить лишь один режим измерения сопротивления. это с подключенным 4к7 к питанию а считывать напряжение на измеряемом резиторе через 20к. тут точно точность будет не очень.
может имеет смысл вместо 500 ом установить 4к7, естественно подправиви формулу в коде? точность будет лучше или нет смысла?
получается надо оставить лишь один режим измерения сопротивления. это с подключенным 4к7 к питанию а считывать напряжение на измеряемом резиторе через 20к. тут точно точность будет не очень.
может имеет смысл вместо 500 ом установить 4к7, естественно подправиви формулу в коде? точность будет лучше или нет смысла?
По сравнению с входным сопротивлением аналогового входа (десятки мегаом), 20 кОм никакой погрешности не внесут. Можно оставить один резистор для измерения сопротивлений, взяв его допустим в 1 кОм. Тогда естественно точность на малых и больших значениях пострадает, можно будет доверять где-то от 50 Ом до 100 кОм, но риск спалить вход от 20 вольт практически сведется к "0" Это не измерительный прибор, а пробник, поэтому без усложнения схемы высоких требований к нему предъявлять не стоит
Пока все устраивает. Если в новогодние праздники с будуна, какая идея придет , то что нибудь добавим. Но это будет другая конструкция, т.к. в этот корпус уже ничего не впихнуть. Только программно.
день добрый, давно темка не обновлялась, автор не стал дальше проект развивать?
Запал пропал.
В принципе все устраивает, но при поиске неисправностей или демонтаже деталей с плат доноров чувствуется острая необходимость хотя-бы грубого измерения емкостей и особенно ESR. Из недстатков сегодняшней констукции - мелковат корпус. И в руке неудобно лежит и найти в бардаке трудно. Измерение емкостей несколько раз пытался реализовать чисто программно, но все время что-то отвлекает. Несколько человек начинали делать этот пробник. Может у них что-то более функциональное получилось.
Так у него рожа и так оранжевая (фото пост #187)? Все равно теряется. Кстати - оранжевый млй любимый цвет. У меня и токарник оранжевый и два фрезера. Дело в том, что мне достался ящик оранжевой аэрозольной краски. Друг хотел "Газель" подкрасить, но тон немного не подошел.
у меня уже как год лежит пылиться недоделанный. впринципе доделанный, калибровать только надо. а сейчас еще вспомнил, что не помню где находиться исходный скетч, печально. большой плюс, что он гдето на этой ветке форума или я могу скачать последнюю версию. правда мой собран на трехсемисегментном индикаторе, для практичности, ронять можно, или запустить в кого нибудь
Сюда бы еще измеритель емкости и индуктивности
Получился бы нефиговый пинцет
Сюда бы еще измеритель емкости и индуктивности
Получился бы нефиговый пинцет
В случае с переключением режимов, измерение емкостей не проблема ,если использовать решение от Димакса http://arduino.ru/forum/apparatnye-voprosy/kak-kontrolirovat-obryv-provoda-datchika-kondensator-na-kontse#comment-161133 цена вопроса- 1 резистор, или пины перекинуть. У меня это достаточно проблематично из-за конструктивных "особенностей". Но в следующей реинкарнации учту. Грубо большие индуктивности наверное тоже удастся оценить. Неплохо еще-бы малой кровью ESR добавить.
подскажите в чем трабл. переделал скетч под Adafruit библиотеку (руссифицырованную) . работает как надо но переключивши в режим вольтметра гаснет экран и выводит напряжение, если на щупе что то есть. а если нет то пустой экроан. Замучился искать косяк
еще планирую резистор делителя для измерени я напряжения 4.7к заменить на 1.3 (увеличить диапазон входного напряжения до 16в) вход ардуинки думаю защитить стабилитроном на 5в на всякий случай. пин 4.
в каком режиме еще этот резистор используется? где мне код поправить?
Поставьте в 142 и 339 строкач вывод в сериал, и посмотрите что там при отсутствии входного напряжения. Однозначно что-то с выводом на дисплей.
еще планирую резистор делителя для измерени я напряжения 4.7к заменить на 1.3 (увеличить диапазон входного напряжения до 16в) вход ардуинки думаю защитить стабилитроном на 5в на всякий случай. пин 4.
в каком режиме еще этот резистор используется? где мне код поправить?
Кажется, только в частотомере, для борьбы с наводками строка 307 в Вашем коде. Но он закорачивает вход частотомера не напрямую, а через резистор 47 кОм, так-что ни на что это изменение не повлияет.
А что так грубо коротыш фиксируете < 70 Ом. Строка 116.
Спасибо. буду разбираться.
А коротыш то для удобства. сопротивление подберу экспериментально. to добавил вывод сопротивления в режиме коротыша. это по принцыпу знаменитого мультиметра DT830 (там тоже по моему до 70 ом пищалка работает). визульно проконтролировать удобно.
удобно на слух прозванивать катушки реле, клапанов, лампочек в автомобилях.
кстати оператор Tone в моем коде не хочет компилировать. не пойму почему.
В принципе для автоэлектрики - логично. А с TONE непонятно.
я тут подумал. А можно ведь резистор не менять. Достаточно сделать проверку, если скажем результат больше 4,5в то произвести измерение с опорным напряжением в 5в. по моему в пультоскопе данная идея реализована.
Все-таки опорное 1.1 В более стабильное. Если конструкция еще не собрана, то лучше резистор подобрать.
кстати оператор Tone в моем коде не хочет компилировать. не пойму почему.
Потому что tone() использует для генерации аппаратный timer 0, который уже занят библиотекой FreqCount. Если Вы не собираетесь менять частоту звучания, проще поставить активный зуммер (active buzzer). Там достаточно подать на пин HIGH и он будет сам пищать.
Потому что tone() использует для генерации аппаратный timer 0, который уже занят библиотекой FreqCount.
Кстати, я не обратил внимания, зачем там эта библиотека? Частотомер ее не использует. И для чего PWM.h?
библиотеки попали изза моей невнимательности. это с пультоскопа. одна для измерения частоты а другая для генератора сигнала ШИМ.
закомментировал их и стал компилировать. только звук приятней но тише. вернулся к пищалке с генератором.
а вот с иникацией так и не разобрался. в режиме вольтметр черный экран при отсутствии сигнала на входе. (это если его включить кнопкой)
подскажите сильно ли упадет точность измерения сопротивдений, при изменении напряжения питания? хочу запитать схему от аккумулятора 3.6-4.2в без преобразователя
подскажите сильно ли упадет точность измерения сопротивдений, при изменении напряжения питания? хочу запитать схему от аккумулятора 3.6-4.2в без преобразователя
Теоретичски, напряжение питания не должно влиять, т.к. при расчетах используется соотношение напряжений, а не абсолютные значения.
подскажите еще такой момент. поставлю я в цепь делителя для измерения напряжения резистор на 1к вместо 4к7 . смогу по идее до 20в измерять. вопрос в следующем не будет ли опасно это напряжение для порта с резисторами на 500 ом? и спасет ли стабилитрон ?
сам порт D2 думаю в состоянии высокого импенданса не пострадает а вот А3 не выгорит ли?
вопрос в следующем не будет ли опасно это напряжение для порта с резисторами на 500 ом? и спасет ли стабилитрон ?
сам порт D2 думаю в состоянии высокого импенданса не пострадает а вот А3 не выгорит ли?
Если посмотреть схему портов Ардуино, то там присутствуют защитные диоды. При напряжении менее 5В они запереы и никакого влияния не оказывают. Если больше, то они открываются и напряжение на пине порта ограничивается напряжением питания + падение напряжения на открытом диоде. Возникает вопрос, какой ток выдержат эти диоды? Согласно закона Ома при 20 В и нагрузке 500 ом ток будет 40 мА, теоретически должно прокатить, но что будет на самом деле покажет время. Я бы не стал рисковать и убрал диапазон измерения с резистором 500 Ом,немного потеряв в точности измерении малых сопротивлений
А если поставить как в схеме порта параллельно диоды? Вместо нижнего даже стабилитрон.
На низких сопротивлениях точность важна для автопробника
Защитить наверное получится, но при напряжении выше 5В, или напряжения стабилизации стабилитрона, не повлияет-ли на работу измеряемых цепей?
ладно посмотрю попробую диапазон 500ом выбросить. может меня точность устроит.
похоже получается у меня скрестить с пультоскопом. катастрофически не хватает времени этим заниматься но все же иногда получается.
решил питать схему без преобразователя от аккумулятора (литийионного) при измерении напряжения а также в пультоскопе использую опорное только 1.1в ...
решил все же два диапазона сделать по напряжению. до5в и до20в. пин 2 освободился и теперь он управляет так же как пин 4 резистором только уже на 1к для диапазона до 20в.
частотомер уберу. (в режиме пультоскопа показывает и частоту)
программер из меня не очень . код пока не эффективен. боюсь все задуманное в атмегу 328 не влезет.
не получается выбросить резистор на 500ом. через него ведь и остальные диапазоны измекряют. например по входу А3 змеряется напряжение при подключенном резиторе на 20к.
что то у меня уже крыша едет. может посоветуетете как его исключить?
получается надо оставить лишь один режим измерения сопротивления. это с подключенным 4к7 к питанию а считывать напряжение на измеряемом резиторе через 20к. тут точно точность будет не очень.
может имеет смысл вместо 500 ом установить 4к7, естественно подправиви формулу в коде? точность будет лучше или нет смысла?
получается надо оставить лишь один режим измерения сопротивления. это с подключенным 4к7 к питанию а считывать напряжение на измеряемом резиторе через 20к. тут точно точность будет не очень.
может имеет смысл вместо 500 ом установить 4к7, естественно подправиви формулу в коде? точность будет лучше или нет смысла?
По сравнению с входным сопротивлением аналогового входа (десятки мегаом), 20 кОм никакой погрешности не внесут. Можно оставить один резистор для измерения сопротивлений, взяв его допустим в 1 кОм. Тогда естественно точность на малых и больших значениях пострадает, можно будет доверять где-то от 50 Ом до 100 кОм, но риск спалить вход от 20 вольт практически сведется к "0" Это не измерительный прибор, а пробник, поэтому без усложнения схемы высоких требований к нему предъявлять не стоит
Хм, подписался....
Супер. Подпишусь
Подскажите,а максимальные параметры по измерениям какие?Максимальное измеряемое наряжение и частота?
Частота 4 МГц, напряжение в автопробнике до 20 В, в Ардуино пробнике желательно не более 5-6 В.
Благодарю.Будет ли развитие проекта и дальше?
Благодарю.Будет ли развитие проекта и дальше?
Пока все устраивает. Если в новогодние праздники с будуна, какая идея придет , то что нибудь добавим. Но это будет другая конструкция, т.к. в этот корпус уже ничего не впихнуть. Только программно.
день добрый, давно темка не обновлялась, автор не стал дальше проект развивать?
так автор сделал то, что хотел. а я так и не доделал.
умер дисплей. потом раздавил вообще прототип. (наступил случайно)
собираюсь купить новое железо спаять. и продолжить делать автопробник.
правда посещают меня грешные мысли все же на stm32 сделать ...но страшновато. а вдруг я с ним не разберусь.
день добрый, давно темка не обновлялась, автор не стал дальше проект развивать?
Запал пропал.
В принципе все устраивает, но при поиске неисправностей или демонтаже деталей с плат доноров чувствуется острая необходимость хотя-бы грубого измерения емкостей и особенно ESR. Из недстатков сегодняшней констукции - мелковат корпус. И в руке неудобно лежит и найти в бардаке трудно. Измерение емкостей несколько раз пытался реализовать чисто программно, но все время что-то отвлекает. Несколько человек начинали делать этот пробник. Может у них что-то более функциональное получилось.
как я понял у Вас есть 3д принтер, на нем какой угодно корпус можно сделать=))а в бардаке можно найти наприменив яркий цвет корпуса=)
а запал это да бывает такое дело))))
как я понял у Вас есть 3д принтер, на нем какой угодно корпус можно сделать=))а в бардаке можно найти наприменив яркий цвет корпуса=)
а запал это да бывает такое дело))))
как я понял у Вас есть 3д принтер, на нем какой угодно корпус можно сделать=))а в бардаке можно найти наприменив яркий цвет корпуса=)
а запал это да бывает такое дело))))
в строке 55 ошибка после цифры 10?
и еще в стркое 43
в строке 55 ошибка после цифры 10?
строка синтаксически нормальная, без ошибок. логику не отслеживал.
читать "Тернарный оператор Си"
в строке 55 ошибка после цифры 10?
строка синтаксически нормальная, без ошибок. логику не отслеживал.
читать "Тернарный оператор Си"
спасибо, почитаю, не знал о таком
интересно Andry Smart доделал свой автомобильный пробник или нет
Так у него рожа и так оранжевая (фото пост #187)? Все равно теряется. Кстати - оранжевый млй любимый цвет. У меня и токарник оранжевый и два фрезера. Дело в том, что мне достался ящик оранжевой аэрозольной краски. Друг хотел "Газель" подкрасить, но тон немного не подошел.
та был на процентов 80 готов а потом я его сломал. вот собираюсь возобновить
та был на процентов 80 готов а потом я его сломал. вот собираюсь возобновить
а вы уже реализовали на нем осцилограф?Тот код,что вы выкладывали, у меня просто есть все детальки, думал залить код или нет проверить
ну код на 90 процентов готов. схема уже перетерпела кучу изменений.
изменил измерения сопротивления (увеличил сопротивления одного из резисторов).
сделал два режима 0-5в и 0-21в (и переключается кнопкой но програмно (хочу реализовать автопереключение, что бы от кнопки избавится)).
сам режим пробника переключается кнопкой осциллограф/пробник
в пробнике оставил прозвонку, сопротивление, напряжение а частотомер выбросил (частоту показывает осциллограф)
код не успел отладить и поубирать глюки. да и не помню какой исходник из множества самый готовый .
в воскресение выходной вот и покопаюсь. а дисплейчик на днях должен у меня появится.
продолжу все таки его делать. уж очень не хватает в работе...
С днем победы. Добьем гада.
С днем победы. Добьем гада.
спасибо!Взаимно!
сегодня выходной, а "Новая почта" типа работаетю но только толку нет. А я надеялся в выходной получу дисплей и буду химичить.
а посылка прийдет только завтра. А руки чешутся.
и всех с победой.
сегодня выходной, а "Новая почта" типа работаетю но только толку нет. А я надеялся в выходной получу дисплей и буду химичить.
а посылка прийдет только завтра. А руки чешутся.
Ждем с нетерпением=)
п.с. и вас с праздником=)
Всем Привет=))) подниму немного тему, а то уже долеко ушла=))) Уважаемый Andry Smart не делали чего нового с пробником?)
у меня уже как год лежит пылиться недоделанный. впринципе доделанный, калибровать только надо. а сейчас еще вспомнил, что не помню где находиться исходный скетч, печально. большой плюс, что он гдето на этой ветке форума или я могу скачать последнюю версию. правда мой собран на трехсемисегментном индикаторе, для практичности, ронять можно, или запустить в кого нибудь