Зависание arduino при использовании переменного резистора

Sequd
Offline
Зарегистрирован: 05.09.2016

Использую Nano ATmega168 и вот такой шилд к ней http://robotdyn.com/catalog/shields/nano_i_o_expansion_shield/

Столкнулся с непонятной проблемой. Подключил резистор на 10 кОм. Если выкручивать ручку с максимума до минимума, то после значения < 80, зависает ардуинка и перестает реагировать на что либо, даже, мигать светодиодом. 
Просто читаю значение и вывожу в Сериал. В конце задержка delay(500). Задержку пробовал убирать и менять.

В мониторинге порта примерно так

255
...
83
82
81
80
79

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

До этого с шилдом все работало вроде корректно, попробовал все тоже самое но Attiny85, все работает норм, но там нет вывода в сериал, просто включаю и отключаю светодиод по достижению пределов.

Естественно грешу на шилд, но это как то странно. Кто сталкивался с таким?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Схема включения и скетч секретны или ДСП?

Sequd
Offline
Зарегистрирован: 05.09.2016

Не чего секретного, все слишком просто. Резистор через шилд подключал к размым аналоговым входами А0 и А2. Там же порты для питания и земли. На шилде можно увидеть выводы. 

void setup() {
Serial.begin(9600);
}

void loop() {
int sensorValue = analogRead(A0) / 4;
// сначала было map(sensorValue, 0, 1023, 0, 255); 
Serial.println(sensorValue );
delay(500);
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Блин, ну как подключал-то? Резистор переменный? Постоянный? Куда подключал? Нет, тут явно что-то секретное, раз схему не дают.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

ЕвгенийП, как вариант -он питание коротит резистором, стабилизатор на плате уходит в защиту.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

dimax пишет:

ЕвгенийП, как вариант -он питание коротит резистором, стабилизатор на плате уходит в защиту.

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Димах, Вы же электронщих, не проконсультируете чайника чуток? Есть минутка? я тогда схему с вопросом выложу (можно в отдельной теме).

Что-то Вы не отвечаете. Ну, ладно, я сейчас выложу здесь, может заметите.

Задача: вход простенького частотометра. Допустимая амплитуда "от <розетки> до <ардуиновского ШИМа>".

На схеме источник переменного напряжения - на самом деле вход - источник я для моделирования работы вставил. Красная точка - вход AVR'ки для тактирования таймера.

Как я это понимаю: за счёт большого резистора на входе, токи будут маленькими. После двух диодов буду иметь сигнал 0 - 0,6В. Усилитель (хочу поставить LM358) поднимет напряжение до 5В и всё это добро нормально протактирует таймер. При этом на входе может быть что угодно от 1,5-2В  до 400В (диоды поставлю киловольтные)

Если почему-либо пробьёт диоды будет короткое замыкание - нужен предохранитель на очень небольшой ток.

Имеет право на существование? Или совсем нет?

Sequd
Offline
Зарегистрирован: 05.09.2016

ЕвгенийП пишет:

Блин, ну как подключал-то? Резистор переменный? Постоянный? Куда подключал? Нет, тут явно что-то секретное, раз схему не дают.

Да какая там схема может быть? Самая простая. В теме написана про переменный резистор.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

ЕвгенийП, не очень понятно зачем такой разброс напряжений, разве нужно в реальности? Я б сделал для сетевого 220 вольт - схему с гальваноразвязкой, а для TTL напрямую.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

dimax, да, просто как-то хочется чтобы типа "что впихнул, то и измерилось", как в осциллографе. Делают же как-то люди.

Sequd
Offline
Зарегистрирован: 05.09.2016

А не чего, что я тему про другое создал? Может мне кто то поможет разобраться?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Извините.

А разобраться - ну, dimax же сказал - ищите соплю по питанию. Где-то Ваш средние провод пробивает на питание, но не прямо, а через некоторое сопростивление, неслишком большое (может контакт в сопле плохой)

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

ЕвгенийП, у меня в осциллографе для перехода между 220вольт и TTL  нужно как минимум на щупе рычажок переключить и ручку входного делителя покрутить :)

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

gena
Offline
Зарегистрирован: 04.11.2012

  По посту #6. Думаю, что самый левый диод не нужен, т.к. входная ёмкость + ёмкость ОУ зарядятся, а разрядить их некому. Нужно ставить дополнительно разряжающий резистор. При питании от 12 В на выходе ОУ будет до 9 В. Для ардуины это многовато. Я бы запитал от 5-ти Вольт, а что бы напряжение на выходе подтянуть выше (в этом ОУ он занижен - особенности схемотехники), то от выхода ОУ к шине +5 В можно поставить резистор килоОм на 10-ть. Теоретически как то так.

ptr
Offline
Зарегистрирован: 28.05.2016

ЕвгенийП пишет:

Имеет право на существование? Или совсем нет?

Мне кажется, что для 400 вольт без гальванической развязки лучше не делать. А то у Вас ведь 220 на земле МК будет.

То есть, вместо операционника полевик, им коммутировать оптопару, а уж с оптопары прямо на вход МК.

ВН
Offline
Зарегистрирован: 25.02.2016

ЕвгенийП пишет:
Имеет право на существование? 

попробуйте так https://yadi.sk/i/axJexSn6uoyak

компаратор наверно лучше взять сдвоенный 393

 резисторы R3, R4 должны уметь работать до  1кВ.

 

Sequd
Offline
Зарегистрирован: 05.09.2016

Возвращаюсь к вопросу. Сначало как то все заработало неожидано, на макетке все отладил, начал поять и теперь опять таже проблема. Перепаял провода на более толстые, думал, те может переломалились. Опять тоже самое... Зависает и все.

Левый провод на землю, средний на ардуино, правый на питаение 5в.

Може еще что то нужно впаять?

Сделал фотки. https://goo.gl/photos/dq9MVnjWmCqmu2rQ8

ЕвгенийП пишет:

Где-то Ваш средние провод пробивает на питание, но не прямо, а через некоторое сопростивление, неслишком большое (может контакт в сопле плохой)

Вроде все перепроверил уже по 10 раз. Как найти и как поченить?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Sequd, подключено правильно. Но тем не менее что-то глючит, это может быть как софт так и железо. Начните с установки другой версии arduino IDE. 

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Sequd пишет:

Левый провод на землю, средний на ардуино, правый на питаение 5в.

питание МК платы - 3,3в, а не 5в

 

__Alexander
Offline
Зарегистрирован: 24.10.2012

Клапауций 232 пишет:

питание МК платы - 3,3в, а не 5в

З яких пор?

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

__Alexander пишет:

Клапауций 232 пишет:

питание МК платы - 3,3в, а не 5в

З яких пор?

с той, что это единственно возможная причина возможного зависания.

__Alexander
Offline
Зарегистрирован: 24.10.2012

Клапауций 232 пишет:

с той, что это единственно возможная причина возможного зависания.

Ну это вряд-ли, а с другой стороны зависон то происходит при докручивании к земле. Сопли на землю такого эфекта не дадут. Раз меняется скорость, то походу помеха на линиях кварца.

А вот шилд да, походу выдает 3.3. Надо пробовать напрямую от юсб запитаться, без шилда. А то так можно долго гадать.

 

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

__Alexander пишет:

А вот шилд да, походу выдает 3.3. Надо пробовать напрямую от юсб запитаться, без шилда. А то так можно долго гадать.

он без шилда резистор подключает.

с учётом того, что плата - китайский клон, нужно проверить напряжение питания МК

Sequd
Offline
Зарегистрирован: 05.09.2016

В общем опытном путем удалось выяснить следующее

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

analogWrite(9, value);

Потом как оказалось, видимо не работал и сам пин, может как то сгорел?. Так как с подклеченным светодиодом, тоже не работало. Потом поменял на 6 порт, и все заработало нормально. 

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

James
Offline
Зарегистрирован: 26.02.2016
сначала:
void setup() {
Serial.begin(9600);
}

void loop() {
int sensorValue = analogRead(A0) / 4;
// сначала было map(sensorValue, 0, 1023, 0, 255); 
Serial.println(sensorValue );
delay(500);
}

теперь:
 

analogWrite(9, value);

фак...

Sequd
Offline
Зарегистрирован: 05.09.2016

Ну код переписывался, как не сложно догадаться. Не думаю что стоит сомневаться в моем кунг-фу.

__Alexander
Offline
Зарегистрирован: 24.10.2012

Sequd пишет:

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

"Если как-то сгорел, когда ничего к пину не подключено"... Вы никогда ничего не будете знать.

Sequd
Offline
Зарегистрирован: 05.09.2016

__Alexander пишет:

Sequd пишет:

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

"Если как-то сгорел, когда ничего к пину не подключено"... Вы никогда ничего не будете знать.


Буду рад твоим пояснениям.

novak
Offline
Зарегистрирован: 25.02.2017

Аналогичная ситуация. Виснит Ардуина напрочь при замыкании кнопки(на выходе A3). Не регулярно (обчно когда поработет минут 10). Из-за недостатка цифровых выводов четыре кнопки были подключены к аналоговым входам A0-A3. Кнопки просто замыкаются на землю без подтягивающих(внешних) резисторов. Остальные кнопки без проблем. Так до сих пор и не разобрался, не хочу перепаиваить ардуину в свою ПП. И да если принципиально, то аруино-мини.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

novak пишет:

Аналогичная ситуация. Виснит Ардуина напрочь при замыкании кнопки(на выходе A3). Не регулярно (обчно когда поработет минут 10). Из-за недостатка цифровых выводов четыре кнопки были подключены к аналоговым входам A0-A3. Кнопки просто замыкаются на землю без подтягивающих(внешних) резисторов. Остальные кнопки без проблем. Так до сих пор и не разобрался, не хочу перепаиваить ардуину в свою ПП. И да если принципиально, то аруино-мини.

а что мешает аналоговый вход в скетче инициализировать как цифровой и программно на него подтягивающий резистор одеть ?

novak
Offline
Зарегистрирован: 25.02.2017

andycat пишет:

а что мешает аналоговый вход в скетче инициализировать как цифровой и программно на него подтягивающий резистор одеть ?

А я и не говорил, что так не сделано. Всё так и есть, как Вы сказали. Вот часть кода. Библиотека Bounce2.

#define BUTTON_SELECT_PIN A0
#define BUTTON_UP_PIN     A1
#define BUTTON_DOWN_PIN   A2
#define BUTTON_OK_PIN     A3

// Instantiate
Bounce button_select = Bounce();
Bounce button_up = Bounce();
Bounce button_down = Bounce();
Bounce button_ok = Bounce();

void setup() {
  button_select.attach(BUTTON_SELECT_PIN, INPUT_PULLUP);
  button_select.interval(20); // interval in ms

  button_up.attach(BUTTON_UP_PIN, INPUT_PULLUP);
  button_up.interval(20); // interval in ms

  button_down.attach(BUTTON_DOWN_PIN, INPUT_PULLUP);
  button_down.interval(20); // interval in ms

  button_ok.attach(BUTTON_OK_PIN, INPUT_PULLUP);
  button_ok.interval(20); // interval in ms
}

 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Не знаю что там в этой библиотеке, имел в виду pinmode input и digitalwrite high на пине сделать, у меня проект на arduino pro mini, заняты почти все пины кроме i2c и аналоговые как вход от кнопки на землю работает прекрасно 

novak
Offline
Зарегистрирован: 25.02.2017

И у меня работало. Но после того как с макетки запаял в плату. Вот такие приколы и ещё мосфет на 13-м пине вылетел. Мосфет перепаял. А с кнопкой чудеса, может выход как то подгорел?

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Контакты?

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

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

А 13 м пине светодиод с резисторов не висит случаем?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

novak пишет:

andycat пишет:

а что мешает ...

А я и не говорил, что так не сделано. ....

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

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

ЕвгенийП пишет:

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

и это правильно, скоро и я наверное начну :(

да и novak не новичок судя по дате регистрации на форуме.

novak
Offline
Зарегистрирован: 25.02.2017

andycat пишет:
А 13 м пине светодиод с резисторов не висит случаем?

Висит. А это как то меняет поведение кнопки на А3?

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

ВН пишет:

ЕвгенийП пишет:
Имеет право на существование? 

 резисторы R3, R4 должны уметь работать до  1кВ.

А вот кстати, что для это предлагают в поднебесной, если есть таковые, то можно ссылочку