Transistor Tester for Arduino

Stargazer
Offline
Зарегистрирован: 09.12.2018

Спасибо, за ответ. В принципе, устраивает и прошивка из скетча #298 (респект arduinec, для начала - самое то), но жаль не использовать "весь потенциал" :)

 

Может кому будет полезна инфа, полученная опытным путём...

На прошивке из скетча #298 (на других не знаю) не хочет мерить резисторы больше 1 МОм, "лечится" задействованием 3-го измерительного контакта (можно просто замкнуть с одним из двух, используемых). В таком варианте результат очень не плох - точные замеры резисторов номиналом 1,98МОм, 3,03МОм, 4,7Мом (все 0,1% С2-29, даже не знаю как они у меня оказались)

Также "лечится" самотестированием с калибровкой (включается в 101 и 108 строке скетча)

RockKenny
Offline
Зарегистрирован: 20.10.2017

Подскажите ПЛЗ. При замере БП транзистора выводится параметр Uf в mV, что это?

Stargazer
Offline
Зарегистрирован: 09.12.2018

Напряжение открытия защитного диода эмиттер-коллектор, при его наличии...

bogdannin1
Offline
Зарегистрирован: 27.10.2018

Здравствуйте! При попытке залить скетч для OLED I2C выпадает ошибка : Ошибка компиляции для платы Arduino Nano. Что делать?

RockKenny
Offline
Зарегистрирован: 20.10.2017

Если в настройках выбрана нано, самое первое это попробовать разные верчие IDE. Какие ошибки выдает?

 

ps^ напладились сообщения, как удалить?

alex1978
alex1978 аватар
Offline
Зарегистрирован: 09.09.2017

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

Stargazer
Offline
Зарегистрирован: 09.12.2018

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

bogdannin1
Offline
Зарегистрирован: 27.10.2018

Ошибка exit status 1

 

yucan
Offline
Зарегистрирован: 20.04.2015

Ошибки полностью надо, все что есть в информационном окне

bogdannin1
Offline
Зарегистрирован: 27.10.2018

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

bogdannin1
Offline
Зарегистрирован: 27.10.2018

А в каком посту есть схема с автоотключением?

 

Stargazer
Offline
Зарегистрирован: 09.12.2018

Схема с автоотключением к скетчу не подойдёт...

bogdannin1
Offline
Зарегистрирован: 27.10.2018

Stargazer пишет:

Схема с автоотключением к скетчу не подойдёт...

то есть, нажал-посмотрел,нажал-выключил?

Stargazer
Offline
Зарегистрирован: 09.12.2018

т.е. подал питание - появилась надпись "Transistor Tester forАrduino 1.08a" (если не включали показывать напряжение батареи) - нажал кнопку тест - "testing..." - результат. Результат будет отображаться сколь угодно долго. Ещё раз тест - новый результат. И так пока не снимете питание...

(всё о прошивке из скотча в посте #289)

bogdannin1
Offline
Зарегистрирован: 27.10.2018

Stargazer пишет:

т.е. подал питание - появилась надпись "Transistor Tester forАrduino 1.08a" (если не включали показывать напряжение батареи) - нажал кнопку тест - "testing..." - результат. Результат будет отображаться сколь угодно долго. Ещё раз тест - новый результат. И так пока не снимете питание...

(всё о прошивке из скотча в посте #289)

 

спасибо!

bogdannin1
Offline
Зарегистрирован: 27.10.2018

А поддержки энкодера нет?

Stargazer
Offline
Зарегистрирован: 09.12.2018

bogdannin1 пишет:

А поддержки энкодера нет?

Если речь о скетче, то он предоставлен "as is" и доведён до рабочего состояния (за что спасибо топикстартеру) с возможностью лёгкой смены определённых дисплеев и, если надо, можно включить тесты, калибровку, замер батарейки, скорректировать значение 5V питания и значения измерительных резисторов под реальные (может и ещё что-нибудь, но я дальше не вникал). И Всё это используя стандартную ардуинку, её нативный IDE и 6+1(+2, если мерить батарейку) резисторов,  желающие получить больше "плюшек" могут выбрать готовые прошивки от ув. savantik, (нужен только программатор) или вообще обратится к первоисточникам. Но это уже не arduino-project... 

 

arduinec
Offline
Зарегистрирован: 01.09.2015

bogdannin1 пишет:
Ошибка exit status 1

Поставил Arduino IDE 1.8.7, скопировал туда библиотеки из архива.
В библиотеке Adafruit_SSD1306 обнаружилась ошибка - именно из-за неё ругался компилятор. Для её исправления нужно в 152 строке файла Adafruit_SSD1306.h заменить описание функции:
void dim(uint8_t contrast);
на то как она описана в строке 433 файла Adafruit_SSD1306.cpp:
void dim(boolean dim);
После этого компиляция проходит без ошибок.
Однако Arduino IDE 1.0.5 по этому поводу вообще никаких ошибок и предупреждений не выдаёт.

Ещё можно заменить библиотеки на новые (компиляция проходит, остальное пока не проверял):
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
В библиотеке Adafruit-GFX нужно будет заменить файл со шрифтами glcdfont.c на аналогичный файл из архива.

bogdannin1
Offline
Зарегистрирован: 27.10.2018

arduinec пишет:

bogdannin1 пишет:
Ошибка exit status 1

Поставил Arduino IDE 1.8.7, скопировал туда библиотеки из архива.
В библиотеке Adafruit_SSD1306 обнаружилась ошибка - именно из-за неё ругался компилятор. Для её исправления нужно в 152 строке файла Adafruit_SSD1306.h заменить описание функции:
void dim(uint8_t contrast);
на то как она описана в строке 433 файла Adafruit_SSD1306.cpp:
void dim(boolean dim);
После этого компиляция проходит без ошибок.
Однако Arduino IDE 1.0.5 по этому поводу вообще никаких ошибок и предупреждений не выдаёт.

Ещё можно заменить библиотеки на новые (компиляция проходит, остальное пока не проверял):
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
В библиотеке Adafruit-GFX нужно будет заменить файл со шрифтами glcdfont.c на аналогичный файл из архива.

спасибо, попробую

 

 

bogdannin1
Offline
Зарегистрирован: 27.10.2018

Вроде залилось, к каким пинам подключать i2c дисплей?

Stargazer
Offline
Зарегистрирован: 09.12.2018

стандартно: SDA/SCL (A4/A5)

только адрес посмотрите, изначально почему-то стоит

#ifdef LCD_I2C
    LiquidCrystal_I2C lcd(0x3f, 16, 2);
#else

а все, что мне встречались на PCF8574 имели адрес 0x27 (c возможностью выбрать перемычками до  0x20)

 

а вот у Karl-Heinz Kübbeler мне не удалось по I2C завести :(

так что V1.13k (v804) только по 6-ти проводам заработала, зато со всеми плюшками.

АШГЫ
Offline
Зарегистрирован: 17.01.2019

Добрый день. Взял из поста 298 файлы. При компеляции вылазиют ошибки.

C:\Users\1\Desktop\arduino-1.8.8\sketch\tt108004\tt108004.ino:79:0: warning: "F_CPU" redefined

 #define F_CPU 16000000UL
 ^
<command-line>:0:0: note: this is the location of the previous definition

C:\Users\1\Desktop\arduino-1.8.8\sketch\tt108004\tt108004.ino:5152:0: warning: "StartADCwait" redefined

   #define StartADCwait() ADCSRA = StartADCmsk; /* Start conversion */\
 ^
C:\Users\1\Desktop\arduino-1.8.8\sketch\tt108004\tt108004.ino:4133:0: note: this is the location of the previous definition

   #define StartADCwait() ADCSRA = (1<<ADEN) | (1<<ADIF) | (1<<ADIE) | AUTO_CLOCK_DIV; /* enable ADC and Interrupt */\
 ^
C:\Users\1\Desktop\arduino-1.8.8\sketch\tt108004\tt108004.ino: In function 'void setup()':

C:\Users\1\Desktop\arduino-1.8.8\sketch\tt108004\tt108004.ino:1349:28: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     lcd_string("Transistor");                        
C:\Users\1\Desktop\arduino-1.8.8\sketch\tt108004\tt108004.ino:1351:24: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     lcd_string("Tester");
C:\Users\1\Desktop\arduino-1.8.8\sketch\tt108004\tt108004.ino:1353:29: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     lcd_string("for Arduino");
C:\Users\1\Desktop\arduino-1.8.8\sketch\tt108004\tt108004.ino:1355:26: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     lcd_string("1.08.004")
C:\Users\1\Desktop\arduino-1.8.8\sketch\tt108004\tt108004.ino: In function 'void loop()':
C:\Users\1\Desktop\arduino-1.8.8\sketch\tt108004\tt108004.ino:286:19: warning: left shift count >= width of type [-Wshift-count-overflow]
   #define RST_PIN 17            // Pin, is switched to low, if push button is pressed
C:\Users\1\Desktop\arduino-1.8.8\sketch\tt108004\tt108004.ino:2141:28: note: in expansion of macro 'RST_PIN'
   while(!(ON_PIN_REG & (1<<RST_PIN))); // wait ,until button is released
C:\Users\1\Desktop\arduino-1.8.8\sketch\tt108004\tt108004.ino:286:19: warning: left shift count >= width of type [-Wshift-count-overflow]
   #define RST_PIN 17            // Pin, is switched to low, if push button is press
C:\Users\1\Desktop\arduino-1.8.8\sketch\tt108004\tt108004.ino:2146:27: note: in expansion of macro 'RST_PIN'
     if(!(ON_PIN_REG & (1<<RST_PIN))) {

После этого записываю скеч.  На дисплее 3310 появляется надпись  что транзистор тестер и все висяк. Че делать подскажите. 

arduinec
Offline
Зарегистрирован: 01.09.2015

АШГЫ пишет:

Добрый день. Взял из поста 298 файлы. При компеляции вылазиют ошибки.

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

АШГЫ пишет:

После этого записываю скеч.  На дисплее 3310 появляется надпись  что транзистор тестер и все висяк. Че делать подскажите. 

ТТ ещё может информацию в серийный монитор выдавать (даже без дисплея). Может стоит посмотреть там.

Stargazer
Offline
Зарегистрирован: 09.12.2018

savantik пишет:
Подойдут и те и те, если полной прошивкой то можно и номиналы прописать в самой прошивке. Как это будет работать в скетче я не знаю. А так не заморачивайся эти вполне подходят.

Не подскажете в каком файле это можно прописать? (в варианте от Karl-Heinz Kübbeler)

savantik
Offline
Зарегистрирован: 17.08.2016

Что бы не куда не лазить можно всё прописать в Майкфайле

"Вы можете указать другое значение сопротивления с помощью опции в Makefile (R_L_VAL и R_H_VAL). 
 
Значения по умолчанию "CFLAGS + = -DR_L_VAL = 6800" и "CFLAGS + = -DR_H_VAL = 47000". 
 
Значение R_L_VAL нужно разделить на 0,1 единицу Ом (680 Ом / 0,1 Ом = 6800) а R_H_VAL разделить на 10 единиц Ом. 
 
Каждое значение должно соответствовать 16-разрядному диапазону(<65536).
 
Рекомендуется выбирать значения вблизи от выбранного по умолчанию." 
 
Контролировать результат по тестам Т2-Т3.
 
alex1978
alex1978 аватар
Offline
Зарегистрирован: 09.09.2017

Всем привет. Может мне ктонибудь объяснить смысл вот этого участка полной схемы ТТ?

arduinec
Offline
Зарегистрирован: 01.09.2015

alex1978 пишет:

Всем привет. Может мне ктонибудь объяснить смысл вот этого участка полной схемы ТТ?

Полная схема ТТ в данной теме:

Другие схемы обсуждают в других форумах.

potok49
potok49 аватар
Offline
Зарегистрирован: 04.02.2019

Добрый день, Arduinec.                                                                                                                                                  Скажу сразу, в программировании я полный ноль, только начинаю учиться, мне 70 лет, пытаюсь сделать тестер на Arduino Nano дисплей LCD 1602 по I2C.  Сделал по Вашему описанию, но запустить не полачается, на дисплее в первой строке квадратики. Понимаю что не приходит на него информация. Залил на Arduino скетч из урока по подключению дисплея по I2C - все отлично работает (даже пробовал менять выводимую информацию на дисплее)                                                                                                                                                                        Вы пишете:- "Для подключения дисплея LCD 1602 по I2C нужно поменять лишь несколько строк кода (старый код закомментирован):" Но в каком месте программы заменить эти несколько строк? Все перепробовал, ничего не получилось. Помогите, если не сложно, Можно, и даже лучше на почту potok49@gmail.com

yucan
Offline
Зарегистрирован: 20.04.2015

Вот в этом месте. Автор уже всё сделал.

1 //#include <LiquidCrystal.h>
2 //LiquidCrystal lcd(7, 6, 5, 4, 3, 2);  // RS,E,D4,D5,D6,D7
3 #include <Wire.h>
4 #include <LiquidCrystal_I2C.h>
5 LiquidCrystal_I2C lcd(0x3F, 16, 2);
6  
7 //#define lcd_init()         lcd.begin(16,2)
8 #define lcd_init()         lcd.begin()        // for LCD I2C

 

potok49
potok49 аватар
Offline
Зарегистрирован: 04.02.2019

Спасибо Yucan.  Разобрался, оказывается неправильно был указан адрес дсплея, поменял на LiquidCrystal_I2C lcd(0x27,16,2) и запустился тестер, правда пока не знаю что показывает,но уже дисплей работает, буду дальше копать...

Djahon
Offline
Зарегистрирован: 05.02.2019

Вот накалякал для ардуино нано и дисплей нокиа3310 правильно?

1) какой скетч залить 

2) 3.3 с самого нано на дисплей потянет или нестоит

arduinec
Offline
Зарегистрирован: 01.09.2015

Djahon пишет:
Вот накалякал для ардуино нано и дисплей нокиа3310 правильно?

У меня использовался китайский модуль с дисплеем Nokia 5110 с подписанными ножками.

Djahon пишет:
1) какой скетч залить

Из поста #298 (http://arduino.ru/forum/proekty/transistor-tester-arduino?page=5#comment...).

Djahon пишет:
2) 3.3 с самого нано на дисплей потянет или нестоит

Ардуино Нано берёт 3.3V из микросхемы CH340, она ток не более 50 мА может обеспечить.

Stargazer
Offline
Зарегистрирован: 09.12.2018

arduinec пишет:

Djahon пишет:
2) 3.3 с самого нано на дисплей потянет или нестоит

Ардуино Нано берёт 3.3V из микросхемы CH340, она ток не более 50 мА может обеспечить.

Если это не версия от Robotdyn (а может и ещё кто подобные делает), там больше 500мА и по 5 и по 3,3

Djahon
Offline
Зарегистрирован: 05.02.2019

Особо не ругать только вникаю в ардуино, авр, пики. С++, С# немного знаю, с паяльником дружу

Я правильно понимаю выводы 3-7 соотвественно уже назначены в скетче (7-res,6-ce,5-dc,4-din,3-clk). Выводы нокии 5110 и 3310 отличаются поэтому был такой вопрос.

Скачал скетч, не компилировался ругался на adafruit.GFX установил все библеотеки через Инструменты>управлять библиотеками(филтр Экран)>adafruit gfx, adafruit 1602, pdb8544 и т.д.  Вроде теперь компилируется, но я так понял русские буквы он выводить не будет. Платы пока нет  чтоб проверить. Есть дисплеи от 3310 2 шт. Аrduino nano заказал на Али (3 шт. плюс дисплей1602) . Просто хочу на макетке плату подготовить пока привезут.

drauger
Offline
Зарегистрирован: 20.02.2018

Djahon пишет:

 

от накалякал для ардуино нано и дисплей нокиа3310 правильно?

Не забывайте про согласование уровней сигналов. Экран от 3310 работает с уровнями 3.3В.

arduinec
Offline
Зарегистрирован: 01.09.2015

Stargazer пишет:

arduinec пишет:

Djahon пишет:
2) 3.3 с самого нано на дисплей потянет или нестоит

Ардуино Нано берёт 3.3V из микросхемы CH340, она ток не более 50 мА может обеспечить.

Если это не версия от Robotdyn (а может и ещё кто подобные делает), там больше 500мА и по 5 и по 3,3

Второй стабилизатор на 3,3 В у Наны видел только у Роботдина, но у Arduino Uno второй стабилизатор есть у нескольких поставщиков с Алиэкспресс.

arduinec
Offline
Зарегистрирован: 01.09.2015

Djahon пишет:

Я правильно понимаю выводы 3-7 соотвественно уже назначены в скетче (7-res,6-ce,5-dc,4-din,3-clk). Выводы нокии 5110 и 3310 отличаются поэтому был такой вопрос.

Пины 3-7 в скетче можно переобозначить и подключить к другим контактам дисплея. Ещё свободен и может использоваться пин 2.

Djahon пишет:

Вроде теперь компилируется, но я так понял русские буквы он выводить не будет.

В скетче русский язык вырезан, но при желании его можно добавить (это не касается LCD1602, так как их шрифт обычно не содержит кириллицу).
Как русифицировать библиотеку Adafruit-GFX подробно описано здесь: http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru... (для ТТ лучше подходит вариант из поста #399).

Скетч выводит результат также и в Serial Monitor, даже при отсутствии дисплея.

Djahon
Offline
Зарегистрирован: 05.02.2019

1.у меня в arduino ide 1.8.7 не показывает номер строки кода как настроить.
2.в каких строках нужно переназначить выводы 3-7

Stargazer
Offline
Зарегистрирован: 09.12.2018

Djahon пишет:
1.у меня в arduino ide 1.8.7 не показывает номер строки кода как настроить.

А что в "настройках" нет чек-бокса "показывать номера строк"?

arduinec
Offline
Зарегистрирован: 01.09.2015

Djahon пишет:
1.у меня в arduino ide 1.8.7 не показывает номер строки кода как настроить.
2.в каких строках нужно переназначить выводы 3-7

1. Файл - Настройки - Показать номера строк

2. В скетче из поста #298 в строке 1281:
Adafruit_PCD8544 lcd = Adafruit_PCD8544(3, 4, 5, 6, 7);  // CLK,DIN,DC,CE,RST

pred161
Offline
Зарегистрирован: 11.02.2019

доброго времени суток уважаемые форумчане ! собрал тестер по схеме из 47 поста. прошиваю - всё удачно.... вот только проблема в том что на дисплее нет ничего абсолютно.... вычитал - что нужно раскомментировать под дисплей 5110... я в этом не ок... помогите пожалуйста.....

potok49
potok49 аватар
Offline
Зарегистрирован: 04.02.2019

pred161   У меня был подобный случай, (пост 628 и 630) Неправильно был прописан адрес дисплея.

arduinec
Offline
Зарегистрирован: 01.09.2015

pred161 пишет:

доброго времени суток уважаемые форумчане ! собрал тестер по схеме из 47 поста. прошиваю - всё удачно.... вот только проблема в том что на дисплее нет ничего абсолютно.... вычитал - что нужно раскомментировать под дисплей 5110... я в этом не ок... помогите пожалуйста.....

В скетче из поста #298 нужно раскомментировать всего одну строку: //#define NOK5110
Кроме того у данного дисплея иногда требуется изменить контрастность - она менятся в строке 1329.

pred161
Offline
Зарегистрирован: 11.02.2019

в скетче в данный момент прописано так :

//#define LCD1602

//#define LCD_I2C

#define NOK5110
 я так понял что тут ничего менять не надо.... а вот насчёт контрастности ? 
#ifdef NOK5110
    lcd.begin();
    lcd.cp437(true);
    lcd.setContrast(75);
    lcd.clearDisplay();
я так понял это нужная мне строка, попробую поставить значение 100... правильно? я в скетчах дуб дубом... могу только повторить устройство ( если всё готово к его повторению)

 

Tweaker
Offline
Зарегистрирован: 11.02.2019

в версии 1.8.8 с ардуино uno и китайским синим дисплеем 16х2 i2c надо поправить несколько строк управления дисплеем, 

1.  

LiquidCrystal_I2C lcd(0x27, 16, 2);

 

#define lcd_init()         lcd.init()        // for LCD I2C
 
2. После строки lcd_init() вставить lcd.backlight()
 
3. Поправить начальную позиционирование курсора 
 
/ Makros for LCD
#define lcd_line1() lcd.setcursor(0,0)  // move to beginning of 1 row
#define lcd_line2() lcd.setcursor(0,1)  // move to beginning of 2 row
#define lcd_line3() lcd.setcursor(0,2)  // move to beginning of 3 row
#define lcd_line4() lcd.setcursor(0,3)  // move to beginning of 4 row
 
4. вместо строк:
 
 lcd_string("TransistorTester");
  lcd_set_cursor(1, 0);
  lcd_string("forArduino 1.08a");
пишем:
    lcd.setcursor(0, 0);
 lcd_string("TransistorTester");
  lcd.setcursor(0, 1);
  lcd_string("forArduino 1.08a");
 
переместив весь блок после "lcd.backlight()"
Вложенную в архив скетча папку библиотек удалить.
 
Tweaker
Offline
Зарегистрирован: 11.02.2019

2 модератор del plz

Tweaker
Offline
Зарегистрирован: 11.02.2019

2 модератор del plz

arduinec
Offline
Зарегистрирован: 01.09.2015

pred161 пишет:

а вот насчёт контрастности ? 
#ifdef NOK5110
    lcd.begin();
    lcd.cp437(true);
    lcd.setContrast(75);
    lcd.clearDisplay();
я так понял это нужная мне строка, попробую поставить значение 100... правильно?

При 100% может быть полностью чёрный экран.