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

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


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

у меня есть электро велосипед сделанный самостоятельна с напряжением питания 48 вольт

вот и хочется сделать ампервольтомметр для него

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

пускай и не вся вернется

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

вот и спрашивал как реализовать мне измерения при разряде аккумулятора и заряде его

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

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

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

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

Я ж не могу по скрину схемы определить код и наоборот.

А перед тем как ето сделать пересмотрите урок! обратите анимание на детали. Гдето вы допускаете ошибку! если выводит отрицательное число - выводите отрезки и смотрите на полученное число оно должно быть строго в пределе 0...1023

если отличается ищем почему

И главное - не переписывайте мой код с экрана! Я знаю зачем у меня в коде каждая скобка и символ а вы - нет!

ПОСТАРАЙТЕСЬ ухватить смысл и написать по своему.

Зачем например использовать мои формулы и делители с 30 вольт на 2.56 - пробуйте свои!

Тренируйте мысль! - в конце концов - всегда можете подать на вход ацп 2.56 вольта с батарейки и посмотреть результат!

Может у вас Делитель/ОУ/Датчик - неверное настроен/расчитан

Судя по последним вопросам и их тематике - код у вас более или менее правильный на первый взгляд а вот пробои идут по схеме !

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

коплю на мечту - Днепр К750

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

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

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

Как откуда, функция readADC() возвращает знаковое int. Кстати если преобразование 10-битное, то там конкретный косяк: при сорока измерениях вблизи верхней границы tmp тупо переполнится. И функция вывода, видимо, честно это выводит.

ЗЫ. Перепишите участок кода как

for (char i=0;i<32;i++){
ADCSRA |= (1<<ADSC);
while ((ADCSRA &(1<<ADSC)));
tmp +=ADC;
}
return tmp>>5;

Переполнения не будет, заодно и от деления ненужного избавитесь. При усреднении лучше выбирать числа кратные 2 в степени n. А потом сдвигами делить.

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

Любой, заслуживающий внимания, опыт приобретается себе в убыток...

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

Друзья, задам наверное глупый вопрос, но все же задам.=)

Пришел мне с ебэя программатор USBASP. Пока он шел, я вообще все позабыл про микроконтроллеры. Как мне подключить сам микроконтроллер к этому программатору? Есть инструкция какая-нибудь? Нужны ли резисторы или стабилизаторы? Что и к каким ногам цеплять? Может есть у кого печатка в Layout? Буду благодарен за ответы. Туплю чет вообще =)))

Такой программатор http://www.ebay.com/itm/141204958327?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

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

Goodefine

Спасибо! Вы абсолютно правы! Перебор получился!

2 ALL

Ребята там действительно идет переполнение. Слишком большое число для такого типа переменной.

По сему - либо делаем меньше циклов, для среднеарифметического (например 20) либо меняем тип переменной temp

вместо

int temp=0;

пишем

unsigned long int temp=0;

Goodefine - еще раз спасибо!

коплю на мечту - Днепр К750

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

sensor2

"Пока он шел, я вообще все позабыл про микроконтроллеры. " :shok:

Смысл Вам отвечать, если через день все равно забудете. :(

Не в ту тему обратились. Ищите ответы в иных топиках.

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

Друзья, задам наверное глупый вопрос, но все же задам.=)

Пришел мне с ебэя программатор USBASP. Пока он шел, я вообще все позабыл про микроконтроллеры. Как мне подключить сам микроконтроллер к этому программатору? Есть инструкция какая-нибудь? Нужны ли резисторы или стабилизаторы? Что и к каким ногам цеплять? Может есть у кого печатка в Layout? Буду благодарен за ответы. Туплю чет вообще =)))

Такой программатор http://www.ebay.com/...984.m1497.l2649

коплю на мечту - Днепр К750

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

ADCSRA |= (1<<ADSC);

while ((ADCSRA &(1<<ADSC)));

Объясните зачем проверять бит adsc на единицу, судя по уроку там должен быть adif, ошибка?

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

нет. ошибки нет - это один из методов.

ADSC изнасально равен 0

После того как мы присваиваем ему 1 начинает выполнятся преобразование

после его окончания бит сбрасывается на 0

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

коплю на мечту - Днепр К750

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

И снова не получается....

В протеусе выдает "-23,0" и "13,1". Вообще не пойму, откуда там отрицательное число взялось....

подстроечные резисторы RV1, RV2 попробуй выставить 60% +-1

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

Ну вот ! Пошли по маленьку... вот думаю стоит ли продолжать уроки или каждый сам уже соберет готовое устройство ?

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

коплю на мечту - Днепр К750

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

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

Ну а вот если допустим мерять напряжение любое, которое поступает на ногу ADC0, например. Возьмем это напряжение за х:

Нам надо разделить х на опорное напряжение 2,56 и получим коефициент n. Для того, чтобы отобразить на дисплее нам нужно обратно n*х и по идее мы получим наше напряжения. Но нужно еще разделить на 1023?

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

Чтобы перевести число с ADC в вольты, нужно опорное разделить на кол-во шагов (дискрет) ADC, получим вольт/дискрету, затем умножить на полученное с АЦП значение.

Математика 5 - пропорции ..., ёпрст...

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

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

Тут точно тот же принцип!

коплю на мечту - Днепр К750

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

Да тут обычная пропорция

Vref - 1024
 X  - ADC

Отсюда X найти - элементарно...

ЗЫ: Извините конечно за грубость, но человеку, непонимающему подобных элементарных вещей, в программировании делать просто нечего. Математика будет встречаться постоянно.

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

Андрей - подумайте логически:

Зачем вам урок ? Датчик или не датчик - возвращает какоето напряжение - которое вам нужно измерить и перевести к нормальному виду.

Предел измеряемого напряжение на АЦП от 0 до 2.56В (или если ИОН внешний 5В)

Значит вам нужно с датчика или ослабить (делитель) или усилить напряжение до такого что бы в максимальном значении датчика на вход ацп поступало напряжение не большее чем ИОН.

Вы не можете подать в качестве ИОН 220 вольт и сравнивать с ним...

Программирование ето прежде всего не умение написать операторы в студии! Это понимание и составление алгоритма!

Вот возьмите листик и ручку и напишите программу без формул - а своими словами ! Создайте логические блоки.

После того как сделате это - без прблем опишите ето уже на Си - НО !!!!

Для примера - мне надо написать программку которая будет каждую секунду пинговать гугл и если он не пингонулся - записать ето в лог.

Я знаю как это сделать в голове - поэтому мне всеравно на чем ее писать на Си или Python. Разница только в синтаксисе.

Может вам так не совсем очевидна мысль что я вам хочу донести - давайте рассмотрим еще пример:

Вы ремонтируете машины. Вы можете починить двигатель как на 2108 так и на 21099! Двигателя разные но принцып у них одинаковый. Потому что вы понимаете суть!

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

Кроме того тема у нас не сложная пока что и высшая математика не используется!

Для вас же не сложно вычислить расход бензина у автомобиля на 100 км ? В чем тогда трудность посчитать ацп если мы знаем что на 1023 метра мы тратим 2.56 литра бензина ?////

коплю на мечту - Днепр К750

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

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

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

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

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

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

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

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

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

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

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

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