Перейти к содержанию

На Lcd1602 Плавает Напряжение 0.3 - 0.7В.


Рекомендуемые сообщения

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Проблема в том что показатель напряжение на LCD плавает 30 - 70мв и не зависимо с какого источника питания я на него подаю напряжение (батарейка или стабилизированный БП)

В вашей схеме нет участка цепи питания LCD. Надо непосредственно у выводов питания индикатора установить эл.лит не большой емкости и керамику порядка на 0,1мкф с питания на землю,то же и по регулировке контраста -достаточно керамики.Вы не забыли ли это сделать?

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Уважаемый Стрелок. Вам действительно надо подтянуть с теорией. Если вам некогда или сучно, повторяйте готовые схемы. Никто за вас и лучше вас не сделает. И не из вредности.

Как погода? Снега много? Можем поделиться :) Ленина-Мира чистят?

Изменено пользователем straw
Ссылка на комментарий
Поделиться на другие сайты

В вашей схеме нет участка цепи питания LCD.

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

Как погода? Снега много? Можем поделиться :)

Погода лётная, снега нету, делитесь лучше знаниями.

Изменено пользователем Стрелок

С Уважением!

Ссылка на комментарий
Поделиться на другие сайты

Еще раз--в непосредственной близости выводов индиктатора.Лучше *на* выводах.Кроме того,такие конденсаторы есть у выводов питания на землю контроллера на плате?.Приведите схему в должный вид на плате--развязывающие цепи --необходимость и их отсуствие очень может причиной ваших проблем.Также уберите длинные сигнальные провода на контроллер и LCD.

Изменено пользователем kotosob
Ссылка на комментарий
Поделиться на другие сайты

Делюсь. Создаете переменную двухбайтную. Читаете значение АЦП 4, 8, 16 раз. Сколько время позволяет. И складываете их в этой переменной. Потом сдвигаете биты в переменной на 2,3,4 позиции вправо и получаете свои честные стабильные цифры. Проверено.

Изменено пользователем straw
Ссылка на комментарий
Поделиться на другие сайты

Создаете переменную двухбайтную.

Вот Я писал уже что в программе не разбираюсь, а только повторяю проект. Приведенный выше код как сказал Alex это полный бред. Допустим Я найду готовый код переменной куда мне его записать?

С Уважением!

Ссылка на комментарий
Поделиться на другие сайты

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

попробую разжевать.

выкидываете функцию которая отвечает за аналоговые измерения

настраиваете АЦП на одиночное преобразование

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

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

получаете стабильную цифру

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

чтобы этого всего не делать, достаточно найти вашу функцию analogRead(), и переписать ее, for на 20 раз туда воткнуть. делов блин на 5 минут с хвостиком. найдите ее. она будет в библиотеке с расширением .с или .срр а то что вы открывали .h это хидер к библиотеке. Земляк, выключай ручник, люди смеятся уже начинают.

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

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

post-188957-0-36234800-1453065970_thumb.jpg

люди смеятся уже начинают

Если им от этого весело пусть смеются.

Изменено пользователем Стрелок

С Уважением!

Ссылка на комментарий
Поделиться на другие сайты

Вот функция analogRead из библиотеки Ардуино :

int analogRead(uint8_t pin)
{
   uint8_t low, high;

#if defined(analogPinToChannel)
#if defined(__AVR_ATmega32U4__)
   if (pin >= 18) pin -= 18; // allow for channel or pin numbers
#endif
   pin = analogPinToChannel(pin);
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
   if (pin >= 54) pin -= 54; // allow for channel or pin numbers
#elif defined(__AVR_ATmega32U4__)
   if (pin >= 18) pin -= 18; // allow for channel or pin numbers
#elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__)
   if (pin >= 24) pin -= 24; // allow for channel or pin numbers
#else
   if (pin >= 14) pin -= 14; // allow for channel or pin numbers
#endif

#if defined(ADCSRB) && defined(MUX5)
   // the MUX5 bit of ADCSRB selects whether we're reading from channels
   // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high).
   ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5);
#endif

   // set the analog reference (high two bits of ADMUX) and select the
   // channel (low 4 bits).  this also sets ADLAR (left-adjust result)
   // to 0 (the default).
#if defined(ADMUX)
   ADMUX = (analog_reference << 6) | (pin & 0x07);
#endif

   // without a delay, we seem to read from the wrong channel
   //delay(1);

#if defined(ADCSRA) && defined(ADCL)
   // start the conversion
   sbi(ADCSRA, ADSC);

   // ADSC is cleared when the conversion finishes
   while (bit_is_set(ADCSRA, ADSC));

   // we have to read ADCL first; doing so locks both ADCL
   // and ADCH until ADCH is read.  reading ADCL second would
   // cause the results of each conversion to be discarded,
   // as ADCL and ADCH would be locked when it completed.
   low  = ADCL;
   high = ADCH;
#else
   // we dont have an ADC, return 0
   low  = 0;
   high = 0;
#endif

   // combine the two bytes
   return (high << 8) | low;
}

Находится в файле wiring_analog.c

Ссылка на комментарий
Поделиться на другие сайты

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

Ну вот, спасибки могучим волшебникам))))

Начиная с конца, 2,3,4,5,6,7 строки, это то, что нам нужно. Но уже не сегодня, уже я тяпнул стопочку и прилёг)))

Изменено пользователем Viktor26

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

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

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

Ну дак что, кино по повышению разрядности АЦП будет ?

Или спать ложимся ? :(

А то я уже пиво из холодильника достал.

Кстати, вы не одиноки во вселенной :

post-48853-0-62226000-1453067844_thumb.png

:)

Ссылка на комментарий
Поделиться на другие сайты

Ну про повышение разрядности я не обещал, а вот среднее значение за промежуток времени- можно))

Сегодня точно кина не будет, завтра у супруги четвертак, ждём вторник.

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

Я вот на запросы эти смотрю и не понимаю, неужели кто-то верит в то что можно напильником потереть мк и у него ацп 12 битным станет? Как можно повысить разрядность? Это же заложено разработчиками.

Может я что-то не понимаю?( внешние ацп/цап не в счёт).

Спасибо Alex, передам)

Изменено пользователем Viktor26

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

В том то и дело, что у человека скачут показания в пределах младшего бита ! Что ему уже 4 страницы пытаются доказать.

Усреднение результата ни к чему не приведёт, показания всё равно будут дёргаться, просто немного реже. Это всё равносильно тому, что взять и тупо измерять раз в минуту и говорить, что мы сделали антидёрганье результата :)

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...