Arduino и к176ие8

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

Здравствуйте Ардуиноведы!

Разрабатывая одну из своих идей, я столкнулся с проблемой.

Есть такая до неприличия наша м/с к176ие8. Это ничто иное, как десятичный счетчик с дешифратором. Так вот скретил я этого зверя со своей тестовой Arduino Uno и мне очень понравился результат. Микросхема тактируется от дуины, сбрасывается тоже. Но вот проблема - как вывести с нее насчитанное значение? Можно, конечно, подключить ее к дуине напрямую, но тратить 10 выводов на одну м/с - более чем неприлично. Решил - подключить ее выводы через 10 резисторов от 1 до 10 КОм на аналоговый вывод дуины. И обнаружил такие неполадки:

1. Подключив 1-ю м/с ко входу А0 - получил значения от 276 до 65. - Где мои обещаные 1023 и прочие???

2. Подключив 2-ю м/с ко входу А1 С ТАКИМИ-ЖЕ резисторами - получил значения уже от 146 до 65 - в чем дело???

3. Погрешность значений - лежит в пределах "2", следовательно это и учел в коде, однако все-равно значения конфликтуют друг с другом.

Иными словами, прошу помощи, как мне реализовать получение значений с этих м/с? Может я что не учел?

Кстати А0 и А1 объявлены как 

  pinMode (A0, INPUT_PULLUP);
  pinMode (A1, INPUT_PULLUP);

Ну и напоследок - мой быдлокод.

int Counterpin = 13;
int CtrResetpin = 12;
int FirstAnalogPin = 0;
int SecondAnalogPin = 1;
int OutFirstResult = 0;
int OutSecondResult = 0;
int ConvertedFirstDigit = 0;
int ConvertedSecondDigit = 0;
int ResultedValue = 0;

void setup()
{
  pinMode(Counterpin, OUTPUT);
  pinMode(CtrResetpin, OUTPUT);
  pinMode (A0, INPUT_PULLUP);
  pinMode (A1, INPUT_PULLUP);
  //attachInterrupt(0, blink, RISING); // привязываем 0-е прерывание к функции blink().
Serial.begin(9600);
  digitalWrite(CtrResetpin, HIGH);
      Serial.println("Reset to HIGH");
  delay(100);
  digitalWrite(CtrResetpin, LOW);
      Serial.println("Reset to LOW");
    Serial.println("Counter Resetted");
}

void loop()
{
    digitalWrite(Counterpin, HIGH);
  //Serial.println("Switched to HIGH");
  delay(50);
  digitalWrite(Counterpin, LOW);
  //Serial.println("Switched to LOW");
  OutFirstResult = analogRead(FirstAnalogPin);    // read the input pin
  OutSecondResult = analogRead(SecondAnalogPin);
  //Serial.println(OutSecondResult);             // debug value
  //Serial.println(ValuesConverter(OutFirstResult));
  //Serial.println(SecondDigitValuesConverter(OutSecondResult));
  ResultedValue = (SecondDigitValuesConverter(OutSecondResult) * 10) + ValuesConverter(OutFirstResult);
  Serial.println(ResultedValue);
      delay(500);
}

int ValuesConverter(int ValToConvert)
{
  /*This function converts Analog Values to real numbers, received from counter.
  Accuracy setted to about 2. And used a 10x 1 to 10 KOhm resistors.*/

  if (ValToConvert >= 274 && ValToConvert <= 278)
  {
  return ConvertedFirstDigit = 0;
  }
  else if (ValToConvert >= 180 && ValToConvert <= 184)
  {
  return ConvertedFirstDigit = 1;
  }
    else if (ValToConvert >= 134 && ValToConvert <= 138)
  {
  return ConvertedFirstDigit = 2;
  }
    else if (ValToConvert >= 114 && ValToConvert <= 118)
  {
  return ConvertedFirstDigit = 3;
  }
    else if (ValToConvert >= 100 && ValToConvert <= 104)
  {
  return ConvertedFirstDigit = 4;
  }
    else if (ValToConvert >= 94 && ValToConvert <= 98)
  {
  return ConvertedFirstDigit = 5;
  }
    else if (ValToConvert >= 83 && ValToConvert <= 87)
  {
  return ConvertedFirstDigit = 6;
  }
    else if (ValToConvert >= 74 && ValToConvert <= 78)
  {
  return ConvertedFirstDigit = 7;
  }
    else if (ValToConvert >= 66 && ValToConvert <= 70)
  {
  return ConvertedFirstDigit = 8;
  }
    else if (ValToConvert >= 62 && ValToConvert <= 65)
  {
  return ConvertedFirstDigit = 9;
  }
}

int SecondDigitValuesConverter(int ValToConvert)
{
  /*This function converts Analog Values to real numbers, received from counter.
  Accuracy setted to about 2. And used a 10x 1 to 10 KOhm resistors.*/

  if (ValToConvert >= 144 && ValToConvert <= 148)
  {
  return ConvertedSecondDigit = 0;
  }
  else if (ValToConvert >= 91 && ValToConvert <= 95)
  {
  return ConvertedSecondDigit = 1;
  }
    else if (ValToConvert >= 136 && ValToConvert <= 140)
  {
  return ConvertedSecondDigit = 2;
  }
    else if (ValToConvert >= 60 && ValToConvert <= 64)
  {
  return ConvertedSecondDigit = 3;
  }
    else if (ValToConvert >= 103 && ValToConvert <= 107)
  {
  return ConvertedSecondDigit = 4;
  }
    else if (ValToConvert >= 97 && ValToConvert <= 101)
  {
  return ConvertedSecondDigit = 5;
  }
    else if (ValToConvert >= 84 && ValToConvert <= 88)
  {
  return ConvertedSecondDigit = 6;
  }
    else if (ValToConvert >= 76 && ValToConvert <= 80)
  {
  return ConvertedSecondDigit = 7;
  }
    else if (ValToConvert >= 71 && ValToConvert <= 75)
  {
  return ConvertedSecondDigit = 8;
  }
    else if (ValToConvert >= 62 && ValToConvert <= 67)
  {
  return ConvertedSecondDigit = 9;
  }
}

Выводы микросхемы Q0-Q9 подключены к аналоговому пину через резисторы от 1 до 10 КОм.

Буду благодарен за помощь!

Xinzo
Offline
Зарегистрирован: 18.06.2017

Andrey_Ryzhov пишет:
Можно, конечно, подключить ее к дуине напрямую, но тратить 10 выводов на одну м/с - более чем неприлично. Решил - подключить ее выводы через 10 резисторов от 1 до 10 КОм на аналоговый вывод дуины.

Буду благодарен за помощь!

Одним пином пытаетесь управлять 10-ю входами микросхемы? Без принципиальной схемы сказанное вами выглядит мутно и непонятно.

Волшебник
Offline
Зарегистрирован: 22.12.2016

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

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

Не-не, Вы меня не поняли. Это не входы, а выходы микросхемы.

В общем - Q0-Q9 - это ВЫХОДЫ микросхемы. На них появляется высокий уровень в зависимости от текущего такта (десятичный счетчик).

CN - +5 вольт (по даташиту, если на CP подаем сигнал)

CP - сигнал такта (12 нога ардуины) (дергая эту ногу из HIGH в LOW мы инкримируем счетчик)

RST - сброс (13 нога ардуины) (дергая эту ногу из HIGH в LOW мы сбрасываем счетчик)

А вот Q0-Q9 - через них выводятся значения счетчика (от 0 до 9) и каждый Q вывод - соответствует своей цифре. Вот и вопрос - я вывожу сигналы с Q0-Q9 через резисторы с шагом в 1 КОм на ОДИН аналоговый вывод дуины. Но значения идут очень близкие друг к другу и почему они лежат не в пределе от 0 до 1023 а от 65 до 276?

 

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

Прикладываю "схему на коленке" и даташит на микру.

 

Даташит - https://lib.chipdip.ru/021/DOC001021132.pdf

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

ну, да - было бы понятно, если бы ие4-ю заюзал с семисегментным индикатором

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

Answer to: Волшебник - Дело  том, что тактовка от дуины - это временное "тестовое" решение. В дальнейшей реализации проекта - дуина не будет тактировать микросхему, а будет просто каждую секунду читать значения с нее.

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

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

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

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

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

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

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

Это Вы о чем? Что именно она может делать программно?

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

Andrey_Ryzhov пишет:

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

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

Это Вы о чем? Что именно она может делать программно?

эмулировать ие8

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

Вопрос стоит не о том, зачем мне эта микра, и не о том, зачем ее читать дуиной, если она ее и тактирует, просто, ну... все представляют себе, допустим, тахометр. Если его делать на дуино, без прерываний это реализовать тяжко. Прерываний я избегаю как могу ибо считаю их не стабилным решением (особенно если имеются другие ресурсоемкие функции). Дак вот я и выношу задачу счета импульсов на эту микросхему, дуина-же просто будет ее читать и сбрасывать каждую секунду. (В идеале - пин 12 просто тест. Его нет в финальном релизе проекта). Вот и вопрос - Как считать с десяти ног этой микры значение - не затратя 10 ног ардуино? В голову пришла идея с резисторами - но что-то у меня идет не так.

На выводах Q0-Q9 еденица выставляется ТОЛЬКО на том пине, которвый соответствует насчитанному знаению, на осталных - ноль. То есть если в счетчике число 5 - то на Q0-Q4, Q6-Q9 - нули, а на Q5 - единица.

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

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

эмулировать ие8

 

ну я знаю - через прерывания, а подругому - незнаю:( Да меня вариант с хардварной ие8 - устраивает

Волшебник
Offline
Зарегистрирован: 22.12.2016

В ваших словах нет логики, потому что считывать даже аналог Раз в секунду - это тоже прерывание хоть и програмное по таймеру.  А если теоретически, то R2R  ЦАП почитайте на гугле. Не понятно всё равно, почему раз в секунду, а если переполнится счётчик?

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

Andrey_Ryzhov пишет:

Как считать с десяти ног этой микры значение - не затратя 10 ног ардуино?

слушай, просто - иди в пень.

породил 10 пинов - читай их теперь

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

Просто одно дело в цикле считывать значение, через analogread и потом delay(1000) - отсюда и 1 секунда, а дугое дело attachinterrupt юзать. И счетчик не переполнится - там на этот случай второй будет стоять. Посмотрите в коде loop там можно увидеть о чем речь.

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

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

слушай, просто - иди в пень.

породил 10 пинов - читай их теперь

Да.. порой я не ищу легких путей

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

А вот насчет r2r да.. пожалуй надо покурить.

bwn
Offline
Зарегистрирован: 25.08.2014

Резистор в последовательном включении не умеет "понижать" напряжение. Он ограничивает ток. Нужно второе плечо делителя, на которое АЦП никак не подходит.

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

Дак а внутренняя подтяжка у меня, получается, на что? Разве она этим не занимается?

SLKH
Offline
Зарегистрирован: 17.08.2015

Во-первых, оно на фиг не нужно, ардуина и сама всё посчитать может, о чем здесь неоднократно сказано.

во-вторых, ЦАП из 176 серии - никудышный. А на 5 вольтах и с теми номиналами, что на рисунке - и ещё хуже.

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

Да о ЦАПе сдесь речи и не идет. К176ие8 - это счетчик, а не цап. Цап у меня в ардуине. Мне просто надо полученный сигнал с одного из 10 пинов счетчика, обработать через аналоговый вход ардуины. Просто на счетчике 10 ног и на какой то одной появляется единица. Мне надо поймать единицу ардуиной и так, чтоб я понял откуда она пришла. И чтобы не тратить 10 цифровых пинов на ардуине, я подключил счетчик к одному аналоговому пину через резисторы от 1 до 10 КОм. Теперь, основываясь на значении цапа в ардуине, мне надо разграничить значеня, чтобы я мог уловить, какой пин на счетчике выдает единицу. Но значения очень близки друг к другу и если учитывать погрешность резисторов, то их трудно разграничить. Вот я и хочу спросить, как подключить 10 пинов счетчика к одному аналог. пину ардуины через резисторы и разграничить значения.

Newport
Newport аватар
Offline
Зарегистрирован: 17.06.2017

Andrey_Ryzhov пишет:
Просто будет датчик холла, тактирующий микру, дуина будет читать что в микре - каждую секунду и тут-же ее сбрасывать. Это мой вариант сказать "нет" прерываниям. Я стараюсь обходить их стороной.
совершенно напрасно избегаете прерываний, если не секрет - что Вас в них пугает ?

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

Andrey_Ryzhov пишет:
Вот я и хочу спросить, как подключить 10 пинов счетчика к одному аналог. пину ардуины через резисторы и разграничить значения.

кто-то прекратит этот тупняк?

22422280.jpg

вместо кнопок - пины своего счётчика подключай

Newport
Newport аватар
Offline
Зарегистрирован: 17.06.2017

Andrey_Ryzhov пишет:
Да о ЦАПе сдесь речи и не идет. К176ие8 - это счетчик, а не цап. Цап у меня в ардуине. Мне просто надо полученный сигнал с одного из 10 пинов счетчика, обработать через аналоговый вход ардуины. Просто на счетчике 10 ног и на какой то одной появляется единица. Мне надо поймать единицу ардуиной и так, чтоб я понял откуда она пришла. И чтобы не тратить 10 цифровых пинов на ардуине, я подключил счетчик к одному аналоговому пину через резисторы от 1 до 10 КОм. Теперь, основываясь на значении цапа в ардуине, мне надо разграничить значеня, чтобы я мог уловить, какой пин на счетчике выдает единицу. Но значения очень близки друг к другу и если учитывать погрешность резисторов, то их трудно разграничить. Вот я и хочу спросить, как подключить 10 пинов счетчика к одному аналог. пину ардуины через резисторы и разграничить значения.

Вы сотворили именно ЦАП при помощи микросхемы. Нарисуйте эквивалентную схему делителя для каждого из 10 состояний и посчитайте напряжение на делителе. Например, для Q0  в делителе напряжения  верхнее плечо = R0, а нижнее 1/R_Oters=1/R1+1/R2+1/R3+1/R4+ ... +1/R9   (R0 верхнее сопротивление на вашей схеме, а R9 нижнее). Не знаю какие коэффиценты и падения напряжений получатся для таких номиналов, но за счет разброса значений резисторов из разных партий можно попясть в неприятную историю когда не сможете различить два соседних значения 9 и 10.

Если не намерены идти простым путем и считать импульсы по прерыванию и намерены мучить резисторный ЦАП и АЦП Ардуины, то есть способ сделать ЦАП точнее -  использовать делитель типа "R/2R". Он  принципиально хорош тем, что в нем можно применить одинаковые по номиналу резисторы из одной партии.

2R составляется из двух последовательных R+R  или наоборот  R*(1/2) составляется из двух параллелно соединенных R.  Какая бы ни была относительная ошибка, а она внутри одной технологической партии одинакова и напряжения на входе АЦП  будут определяться делителем степени двойки от питающего, его же (питающее делитель) подайте как опорное на AREF. Для верхнего разряда напряжение на выходе  "R/2R" будет равно1/2, для следующих 1/4, 1/8, 1/16,1/32 и тд от питания.

http://arduino.ru/forum/apparatnye-voprosy/tsap-na-rezistorakh

http://arduino.ru/forum/proekty/vspomnim-molodost-covox-r-2r

 

 

 

Newport
Newport аватар
Offline
Зарегистрирован: 17.06.2017

Andrey_Ryzhov пишет:
Как считать с десяти ног этой микры значение - не затратя 10 ног ардуино? В голову пришла идея с резисторами - но что-то у меня идет не так.

На выводах Q0-Q9 еденица выставляется ТОЛЬКО на том пине, которвый соответствует насчитанному знаению, на осталных - ноль. То есть если в счетчике число 5 - то на Q0-Q4, Q6-Q9 - нули, а на Q5 - единица.

 

Диагноз:  R/2R (он же R-2R) и резисторы строго одного номинала из одной партии. Для термокомпенсации все они должны быть при одной температуре :-((((((((((((((  , а так не бывает ...

SLKH
Offline
Зарегистрирован: 17.08.2015

Andrey_Ryzhov пишет:
Да о ЦАПе сдесь речи и не идет. К176ие8 - это счетчик, а не цап. Цап у меня в ардуине..
В ардине есть и то, и другое.

Желатольно прочитать, что такое цифро-аналоговый преобразователь и что - аналого-цифровой. И что во что они преобразуют.

bwn
Offline
Зарегистрирован: 25.08.2014

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

Andrey_Ryzhov пишет:
Вот я и хочу спросить, как подключить 10 пинов счетчика к одному аналог. пину ардуины через резисторы и разграничить значения.

кто-то прекратит этот тупняк?

22422280.jpg

вместо кнопок - пины своего счётчика подключай

Боюсь, еще хуже будет. Фактически у ТС получается, что 9 выходов замыкают на "землю", а один единственный пытается их побороть. Отсюда похоже и такой узкий диапазон в его схеме.

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

bwn пишет:

Боюсь, еще хуже будет. Фактически у ТС получается, что 9 выходов замыкают на "землю", а один единственный пытается их побороть. Отсюда похоже и такой узкий диапазон в его схеме.

пусть ставит ещё два корпуса инвентора

SLKH
Offline
Зарегистрирован: 17.08.2015

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

Andrey_Ryzhov пишет:
Вот я и хочу спросить, как подключить 10 пинов счетчика к одному аналог. пину ардуины через резисторы и разграничить значения.

кто-то прекратит этот тупняк?

22422280.jpg

вместо кнопок - пины своего счётчика подключай

Щаззз...

Там не кнопки (т.е. или полный разрыв, или миллиомы), а немолодая (164/176 серии больше 40 лет) микросхема. У нее на 9 выходах постоянно весьма проблематичные нули, а на одном - столь же проблематичная единичка, заметно далекие от питания и нуля, с достаточно ощутимыми ненормированными выходными сопротивлениями.  Так что схема выглядит несколько иначе...

 

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

Поставьте резистор 1 кОм на землю, а лучше еще меньше ( в пределах разумного чтобы не спалить выход ИЕ8, который в "1")  и все заработает.  Еше лучший результат будет, если последовательно с резисторами воткнуть диоды, они исключат влияние выходов в "0".

Извиняюсь, при Ваших номиналах спалить ничего невозможно, смело ставьте со входа А0 на землю резистор  ом 10 и соотношение показаний АЦП будет почти правильным, если значение "1" у ИЕ8 одинаковые.

 

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

Ух наконец-то пошло по делу. Пробовал ставить рез на 10К и на 1К на землю - результат тотже. Вот что схема нарисована мне как раз недавно она в голову и пришла. Буду пытаться.

Newport
Newport аватар
Offline
Зарегистрирован: 17.06.2017

Andrey_Ryzhov пишет:
Просто одно дело в цикле считывать значение, через analogread и потом delay(1000) - отсюда и 1 секунда, а дугое дело attachinterrupt юзать. И счетчик не переполнится - там на этот случай второй будет стоять. Посмотрите в коде loop там можно увидеть о чем речь.
Какую физическую величину вы измеряете ?

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

Я Вам посоветовал поставить на входе дуни резистор 10 Ом, но есть один нюанс - если вход случайно переключится как выход и выдаст "1", то 10 Ом это не очень хорошо. Лучше перестраховаться и вход подключить к делителю через резистор в 1 кОм. На работе АЦП это никак не скажется, а в нештатной ситуации спасет Дуню.

Закон Ома суров, но справедлив.

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

Andrey_Ryzhov, вы понимаете, что то, что вы задумали -это величайшее извращение? Удивляет, что до сих пор Вам никто этого не сказал. Всегда все счётчики делают на прерываниях, это стандарт. Если у вас какие-то проблемы, то опишите их. Можно и без прерываний если что, -16-разрядный счётчик с тактовым входом встроен в МК. На нём ещё проще.  Достаточно подать импульсы на его тактовый вход, и из счётного регистра забирать данные -две строчки кода всего!!!

pinMode (5,INPUT); // вход сигнала Т1 (mega328)
TCCR1B = (1<<CS10)|(1<<CS11)|(1<<CS12);//тактирование от входа Т1
TCNT1=0; // сброс счётчика
delay(1000);
//кол-во импульсов за секунду лежит в регистре TCNT1

 

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

Это если просто нужно посчитать количество импульсов, а если нужно посмотреть, что там насчитал ИЕ8 в соседнем девайсе, используя минимум проводов, то это уже и не извращение, а обычная задача.

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

svm пишет:

Это если просто нужно посчитать количество импульсов, а если нужно посмотреть, что там насчитал ИЕ8 в соседнем девайсе, используя минимум проводов, то это уже и не извращение, а обычная задача.

ок. и насколько актуально будет это посмотреть без прерываний?

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

Просто любопытно, сколько там за минуту накапало?

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

svm пишет:

Просто любопытно, сколько там за минуту накапало?

за минуту 0, за минуту и одну секунду - 100500 - какой смысл в этом смотрении?

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

А если просто статистика?

Newport
Newport аватар
Offline
Зарегистрирован: 17.06.2017

bwn пишет:
Боюсь, еще хуже будет. Фактически у ТС получается, что 9 выходов замыкают на "землю", а один единственный пытается их побороть. Отсюда похоже и такой узкий диапазон в его схеме.
поставит диоды на каждый выход и забудет про страхи

bwn
Offline
Зарегистрирован: 25.08.2014

Newport пишет:

bwn пишет:
Боюсь, еще хуже будет. Фактически у ТС получается, что 9 выходов замыкают на "землю", а один единственный пытается их побороть. Отсюда похоже и такой узкий диапазон в его схеме.
поставит диоды на каждый выход и забудет про страхи

Все равно не понятно, не говоря о самой идее, то зачем с десятичным дешифратором, а не обычный счетчик с шестнадцатеричным выходом? Хочешь их в МК воткни, хочешь резисторную матрицу сочиняй. Да и работа 176 серии на 5 вольтах, возможно таит в себе неприятные открытия.

Newport
Newport аватар
Offline
Зарегистрирован: 17.06.2017

bwn пишет:
Да и работа 176 серии на 5 вольтах, возможно таит в себе неприятные открытия.
У нее разные, а то и нестабильные  сопротивления выходных каналов. Количество (разброс сопротивлений) плавно перерастет в низкое качество всей затеи. К тому же обратное аналоговое преобразование отнимает время и вносит огромную ложку дегтя.

В результате запросто можно получить ХЗ.

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

В общем - Забил на эту затею, ибо и правда - колхозинг тот еще. Посмотрел в сторону прерываний по таймеру. Работаю с этим вариантом.

-------

Спасибо пользователю dimax, за затею с таймером. Как-то не догадывался прежде. Просто вбил в голову идею и... начал ее развивать.

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

Немного оффтопный вопрос, но связанный с моим проектом. Купил тут на Али ЖКИ с I2C и такая проблема - отмирают пиксели на нем. При первом включении - вылетело 2 столбца а потом - заметил что они там отмирают все больше и больше. На что грешить? Качество дисплея (по скидке брал), или на питание или на I2C модуль? Просто если это дисплей такой, то я могу подороже купить, но если не в нем проблема, то я уж и незнаю. Подключал как положено, 5в не более. С выхода 5в Ардуины.

bwn
Offline
Зарегистрирован: 25.08.2014

Попробуйте понадавливать по широким кромкам окна. Там токопроводящие резинки, если пиксели начнут исчезать - появляться: протянуть держатели или лучше сразу снять рамку и стекло, промыть все контактные поверхности и снова аккуратно собрать.

Andrey_Ryzhov
Offline
Зарегистрирован: 11.07.2015

Спасибо. Попробую.