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

Видеокурс по AVR-микроконтроллерам для начинающих


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

@gogaze  , по амер/часам , ты же  силу тока умеешь измерять  . Таймер настроить на 1 секунду можешь ?  Если можешь , тогда в чем проблема с А/ч  , ты знаешь промежуток времени , 1 сек , ты знаешь какой ток проходил за этот период времени ,  это уже не программирование , а простая арифметика . Простой пример , ты заряжал батарею 1секунду током 10А . Вопрос , какой заряд приняла батарея в  амер часах за , эту,  1 секунду . Если ты решишь эту задачу  вопрос с амер часами должен отпасть сам собой .

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

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

24 минуты назад, DmitryS сказал:

@gogaze  , по амер/часам , ты же  силу тока умеешь измерять  . Таймер настроить на 1 секунду можешь ?  Если можешь , тогда в чем проблема с А/ч  , ты знаешь промежуток времени , 1 сек , ты знаешь какой ток проходил за этот период времени ,  это уже не программирование , а простая арифметика . Простой пример , ты заряжал батарею 1секунду током 10А . Вопрос , какой заряд приняла батарея в  амер часах за , эту,  1 секунду . Если ты решишь эту задачу  вопрос с амер часами должен отпасть сам собой .

Все это понятно, давно, и человеческим языком могу объяснить. Карандашом на бумаге, подсчет столбиком подсчитать и написать - легко! Этому я 10 лет учился в школе.  А для того, чтобы все это грамотно написать на языке С мне нужно подучиться и почитать, так как здесь я вроде как в первом классе. Ты меня понял?  Если нет, постарайся вспомнить себя после полугода занятия программированием МК.

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

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

Мир не без добрых людей!

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

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

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

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

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

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

@DmitryS, ему алгоритм и почти весь код привели тут http://www.cyberforum.ru/avr/thread2154621.html

@gogaze, как и подсказывает ARV, распишите сначала на человеческом языке. Вот у вас есть маленький чертик, который держит в руках часы и амперметр. По шагам расскажите что он должен делать чтобы назвать вам емкость в ампер-часах?

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

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

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

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

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

@COKPOWEHEU

7 минут назад, COKPOWEHEU сказал:

S, ему алгоритм и почти весь код привели тут http://www.cyberforum.ru/avr/thread2154621.html

И за это я Вам очень благодарен!!!  Я как раз это сейчас и делаю.

Мир не без добрых людей!

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

Так ты не дал ответа на конкретный пример , каков заряд в батарее то будет в А/ч ? Трудно что ли на калькуляторе несколько раз кнопки нажать ? 

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

6 минут назад, DmitryS сказал:

Так ты не дал ответа на конкретный пример , каков заряд в батарее то будет в А/ч ? Трудно что ли на калькуляторе несколько раз кнопки нажать ? 

0,0277777.. А/Ч

Мир не без добрых людей!

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

54 минуты назад, gogaze сказал:

0,0277777.. А/Ч

10А : 3600 сек  = 0.002777 А/Ч , где то на порядок ошиблись или опечатка ? 

Настраиваете таймер в режиме СТС (сброс при совпадении), что бы через 1 сек он вызывал обработчик прерывания . В прерывании делаете вычисления заряда за 1 сек и складываете их , как это делается вам показал AVR  , а уже в основном цикле выводите эти значения на экран мониторчика  . На мой взгляд лучше работать не с А/Ч , а с мА/Ч , цыфирки после запятой будут на 3 порядка больше микроконтроллеру их легче будет переваривать

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

40 минут назад, DmitryS сказал:

10А : 3600 сек  = 0.002777 А/Ч , где то на порядок ошиблись или опечатка ? 

Опечатка.Теперь попытаюсь на аллегории объяснить мое теперешнее положение и проблему. Я - первоклассник и выучил буквы  М А З Ы Л Ш К У. Могу написать - МАША МАЛА. МАМА МЫЛА МАШУ. Вы-учитель и даете задание написать следующее. Мама сказала: "На, Маша, кошку!" Конечно я кое-что напишу печатными буквами но без знаков препинания и прямой речи. Конечно хорошо бы сразу выучить все! А по факту, чтобы написать правильно задание, что я должен выучить в первую очередь?

Вот и я - дал себе задание, мне говорят, что писать, а я слышу, понимаю а написать не могу! Есть в том, что мне говорят, буквы, которые я пока писать не умею! Какие буквы мне надо научиться писать в первую очередь???

Я чувствую, что достал уже всех! Время отнял. Плюньте! Разберусь - сделаю сейчас, нет - сделаю, когда все буквы выучу! А если от души, то спасибо всем, что пытались сразу из первоклассника сделать студента ВУЗа!

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

Мир не без добрых людей!

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

@gogaze , ты хорошо понял урок про АЦП , мне кажется Кобзарь очень все подробно разжевал .  Посмотрите в код урока , и покажите в каком месте происходит превращение данных АЦП в вольты и амперы . Это происходит в функции вывода на экран , а в эту функцию МК заходит чаще чем один раз в секунду , следовательно  А/Ч  считать будет проблематично  .  Следовательно преобразование и расчет амер нужно вынести из функции отображения  ,  и присвоить значения этого расчета какой то переменной  , скажем переменная  A = (readADC(1)*2.56*(3/2.56))/1023;  переменную нужно объявить заранее   volatile float A ; , а уж с этой переменной можешь работать  в прерывании высчитывать амер часы и выводить на монитор  . 

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

3 часа назад, gogaze сказал:

Какие буквы мне надо научиться писать в первую очередь???

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

Вы делаете сами себе медвежью услугу, пытаясь делать по-своему - хвататься сразу за какой-то конкретный проект и требовать, чтобы вам объяснили, как его делать. Вам именно надо расширять изученный вами алфавит, причем делать это не путем написания своих "Войны и мира" или "Евгения Онегина" - шедевры еще успеете сделать, - а начинать вам надо с "мама мыла раму" и "кушай, Шура, кашу". То есть решать надо не конкретные задачи, а учебные: находить сумму чисел в массиве, находить среднее арифметическое чисел, мигать светодиодом по наперед заданному алгоритму типа "три точки - три тире - три точки", причем постепенно наращивая свои навыки. Сначала сумму можно найти простым последовательным сложением, но потом обязательно научиться делать это при помощи цикла. Сначала можно точки и тире делать задержками, а потом непременно - таймером. Сначала можно "точки и тире" делать "жестко", но потом следует научиться "воспроизводить" их произвольную последовательность, изначально вам неизвестную (пример - что поступило по UART, то и пропикать/промигать). Ну и так далее.

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

 

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

Получилось. Считает. Если верить протеусу, то правильно. Пятый час утра, завтра напишу подробнее.

Спасибо  DmitryS, направил в нужном направлении.

 

@ARV и Вам спасибо! Согласен со всем, что вы написали, а только себя вспомните - тоже наверное хотелось побыстрее.

2017-12-18_042902.jpg

Изменено пользователем gogaze
Добавление скриншота

Мир не без добрых людей!

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

В 17.12.2017 в 08:55, COKPOWEHEU сказал:

Приходится читать много литературы

А не могли бы Вы в продолжение этой темы, на основании кода, который начинающие сделали по этому уроку, дать рекомендации как можно этот код оптимизировать? Так сказать, с точки зрения мастера! Для заинтересованных! Не написать нам готовый оптимизированный код, а просто тезисами. Или ссылку дать, где об этом доходчиво написано.

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

Мир не без добрых людей!

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

В 18.12.2017 в 04:16, gogaze сказал:

Если верить протеусу, то правильно.

Проверил на макетке в железе 30 минут и 60 минут ровно. Результаты на фото. Рот растянулся в лягушачьей улыбке, и закапали слезы огромной благодарности тем, кто оказал реальную помощь! Еще раз огромное спасибо! С наступающим Новым Годом!IMG_20171220_105820.thumb.jpg.2f05da17f41ca1b824f0cb1d4aec6f9e.jpgIMG_20171220_112819.thumb.jpg.a8a0f65826a28b787db8c3997d6cbbda.jpg

Изменено пользователем gogaze
Удаление лишней фотографии

Мир не без добрых людей!

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

Забыл сразу добавить. Касается китайских клонов 5110. Видимо китайцы стали делать оригинальные дисплеи. 

// закомментируйте эту директиву, если ваш дисплей оригинальный
//#define CHINA_LCD  Если строку раскоментировать, строки сползают вниз как в протеусе, так и в железе.

2017-12-20_120851.jpg

Мир не без добрых людей!

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

5 часов назад, gogaze сказал:

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

Код-то свой покажите чтобы было что улучшать.

 

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

6 часов назад, gogaze сказал:

А не могли бы Вы в продолжение этой темы, на основании кода, который начинающие сделали по этому уроку, дать рекомендации как можно этот код оптимизировать? Так сказать, с точки зрения мастера! Для заинтересованных! Не написать нам готовый оптимизированный код, а просто тезисами. Или ссылку дать, где об этом доходчиво написано.

У оптимизации должна быть цель. Я подозреваю для вас эта цель выражается фразой:

"сделать код таким который всем нравится".

И по этому поводу мне вспоминается чье то грустное изречение:

В науке большинством ничего не решают, неучей всегда больше!

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

1 час назад, COKPOWEHEU сказал:

Код-то свой покажите чтобы было что улучшать.

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

main.c

1 час назад, ruhi сказал:

Я подозреваю для вас эта цель выражается фразой: "сделать код таким который всем нравится".

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

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

Мир не без добрых людей!

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

15 минут назад, gogaze сказал:

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

Если ток будет быстро меняться, скажем треть секунды 1А, треть 2А, треть 3А, будет очень большая ошибка причем случайная!

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

И момент измерения у вас не синхронизирован с суммированием - примерно каждое третье показание будет с ошибкой на изменяющейся величине тока.

Это не оптимизация, это неправильно реализована логика измерения!

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

в моих проектах за 1 секунду сейчас суммируется 256 измерений напряжения и 256 измерений тока. по окончании секундного интервала вычисляется среднее значение.

получается очень хорошее усреднение измерений.

Мудрость приходит вместе с импотенцией...

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

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

1 час назад, ruhi сказал:

Если ток будет быстро меняться, скажем треть секунды 1А, треть 2А, треть 3А, будет очень большая ошибка причем случайная!

Это как же, а главное за счет чего, будет так прыгать ток зарядки автомобильного аккумулятора "треть секунды 1А, треть 2А, треть 3А"?

 

44 минуты назад, Starichok сказал:

получается очень хорошее усреднение измерений

Если за 60 минут зарядки получается ошибка 0,1А/Ч за десять часов 1А/ч разве плохо? По факту, я считаю, что идеальных аккумуляторов, которые взяли весь ток, который получили, нет.

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

Мир не без добрых людей!

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

36 минут назад, gogaze сказал:

Это как же, а главное за счет чего, будет так прыгать ток зарядки автомобильного аккумулятора "треть секунды 1А, треть 2А, треть 3А"?

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

Когда все нормально, что же там контролировать то!

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

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

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

10 минут назад, ruhi сказал:

Я думаю придумать можно за счет чего

Очень хочется узнать за счет чего (не придумывая)!  Исходные данные: автомобильный аккумулятор+зарядное устройство.

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

Мир не без добрых людей!

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

1 минуту назад, gogaze сказал:

Очень хочется узнать!

ну элементарно контакт дребезжит, и тут вы начинающий? :)

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

19 минут назад, ruhi сказал:

ну элементарно контакт дребезжит, и тут вы начинающий?

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

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

Мир не без добрых людей!

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

6 минут назад, gogaze сказал:

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

а они окислились и дребезжат (добавляют сопротивление) даже поджатые

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

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

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

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

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

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

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

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

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

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

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

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