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

Вопросы от начинающих по МК


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

2 минуты назад, GOR23 сказал:

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

А есть поэтапная инструкция? А то я новичёк в этом деле.

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

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

  • Ответов
  • Создана
  • Последний ответ

Топ авторов темы

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

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

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

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

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

Поэтапных инструкций не существует. Только очень простые прошивки можно в автоматическом режиме распарсить в исходник на ассемблере, но без его знания даже такой исходник вам ничего не даст. Автоматический дизасемблер для прошивок не может существовать в принципе, потому как для дизасемблирования слишком много неопределённостей в реальном коде, дизасемблер НЕ ЗНАЕТ где в прошивке лежит код а где просто данные, поэтому код всегда раскручивается исключительно при помощи человека чётко понимающего что он делает а дизасемблер помогает только с рутиной.

Учение - изучение правил. Опыт - изучение исключений.

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

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

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

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

11 час назад, SDD39 сказал:

@Demonrostov
Для меня важнее правильно ли я пишу код для ардуино 

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

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

  • 2 недели спустя...

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

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

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

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

Доброго времени суток.

Кто даст пинка в сторону регулируемой задержки между включением и выключением пина в ардуино.

Понятно, подключаем переменник к питанию, земле и аналоговому входу ардуино... а дальше?

К примеру нужна регулировка от 1 секунды до 10

         digitalWrite(ledPin1, HIGH);
         delay(2000);  //вот это нужно убрать, а вместо этого...???
         digitalWrite(ledPin1, LOW);

Я начинающий, так что просьба не пинать не в ту сторону.

Спасибо.

З.Ы. Просьба к модератору меня не банить за создание отдельной темы. Sorry. Если будет мешать - удали. Спасибо за понимание. 

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

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

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

14 минуты назад, Гость Дима сказал:

Кто даст пинка в сторону регулируемой задержки между включением и выключением пина в ардуино.

ну я могу дать для начала : http://forum.cxem.net/index.php?/topic/183908-как-подружить-attiny-2313-и-биполярный-шаговый-двигатель/&do=findComment&comment=2690436

 

 

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

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

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

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

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

Спасибо, я не настолько уж и начинающий. Первый класс вторая четверть.

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

const int buttonPin = 2; // номер порта нашей кнопки
const int ledPin1 =  3; // номер порта опускания вниз
const int ledPin2 =   4; // номер порта включения вибрации
const int ledPin3 =  5; // номер порта подьема вверх
const int ledPin4 =   6; // номер порта гидрокомпрессора
void setup() {
 
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  pinMode(buttonPin, INPUT);

}

void loop() {
  digitalWrite(ledPin1, HIGH);
  digitalWrite(ledPin2, HIGH);
  digitalWrite(ledPin3, HIGH);
  digitalWrite(ledPin4, HIGH);
  int buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {
    digitalWrite(ledPin1, LOW);
    digitalWrite(ledPin4, LOW);
    delay(3000);            
    digitalWrite(ledPin1, HIGH);
    delay(2000);
    digitalWrite(ledPin1, LOW);
    digitalWrite(ledPin2, LOW);
    delay(6000);    //вот эта
    digitalWrite(ledPin1, HIGH);
    digitalWrite(ledPin2, HIGH);
    digitalWrite(ledPin3, LOW);
    delay(2000);
    digitalWrite(ledPin3, HIGH);

    digitalWrite(ledPin4, HIGH);
    digitalWrite(ledPin1, HIGH);
    digitalWrite(ledPin2, HIGH);
    digitalWrite(ledPin3, HIGH);
    digitalWrite(ledPin4, HIGH);

  }
}

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

наивный... мало прочитать значение АЦП , его еще надо прогнать через ЦФ(цифровой фильтр) , получить средние значение

и только потом примерять его на регулировку задержки. и это уже отдельная задача

а дрыгание ногами это уже другая задача. 

46 минут назад, Гость Дима сказал:

я не настолько уж и начинающий. Первый класс вторая четверть.

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

Скрытый текст

 


while(1)
{
 delay(1); // системная задержка
 switch (rezhm)
      case 0: 
             LED_1=1; // включили первый диод
             LED_2=0;
             count = 1000; // задали время горения диода
             rezhm=1;
             break;
      case 1:
            count--;
            if(count==0) rezhm=2; 
      case 2: 
             LED_1=0; // выключили диоды
             LED_2=0;
             count = 2000; // задали время паузы
             rezhm=3;
             break;
      case 3:
            count--;
            if(count==0) rezhm=4;
             break;
      case 4: 
             LED_1=0; // включили второй диод
             LED_2=1;
             count = 1000; // задали время горения диода
             rezhm=5;
             break;
      case 5:
            count--;
            if(count==0) rezhm=6;
             break;
      case 6: 
             LED_1=0; // выключили диоды
             LED_2=0;
             count = 3000; // задали время паузы
             rezhm=7;
             break;
      case 7:
            count--;
            if(count==0) rezhm=0;
             break;
      
}


 

 

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

27 минут назад, IMXO сказал:

наивный... мало прочитать значение АЦП , его еще надо прогнать через ЦФ(цифровой фильтр) , получить средние значение

и только потом примерять его на регулировку задержки. и это уже отдельная задача

а дрыгание ногами это уже другая задача. 

Спасибо, но меня данный скетч (на теперешнем этапе изучения МК) устраивает.

Он работает, и это главное.

27 минут назад, IMXO сказал:

в нормальной проге функцию делай не используют

Меня эта функция устраивает. во всем скетче она работает хорошо.

Только ОДНУ задержку нужно регулировать.

Я так понял 

27 минут назад, IMXO сказал:

прогнать через ЦФ(цифровой фильтр) , получить средние значение

это задать время относительно 0 и 1023.

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

Спасибо

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

Попробуйте так

int dt;
...
dt = analogRead( pinX ); // 0...1023
dt = dt * 9;    // 0...9207
dt = dt + 1000; // 1000...10207
...
  delay( ( unsigned long )dt ); // 1 ... 10,2 сек

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

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

14 часа назад, Гость Дима сказал:

Спасибо, но меня данный скетч (на теперешнем этапе изучения МК) устраивает.

ну тогда продолжай дальше биться головой о стену 

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

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

...продолжай дальше биться головой...

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

Завтра установлю в машину, получу денежку и обязательно куплю книги по arduino, pic и avr.

Ибо работы тут непочатый край... Заказов очень много.

На данный момент, делаю все управление на таймерах (покупных).

В данный проект нужно было 4 таймера. Заказчик согласен.

Один таймер = 50 евро. 50*4=200 евро + работа около 100

А я обойдусь 10 евро. 

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

  • 2 недели спустя...

Всем Привет ! Хочу подключить температурный датчик LM35 к  8 меге , от 0º С до 150º у него зависимость 0.01V/ºC ,  получается весь диапазон измерений укладывается в 1.5V  ,  буду использовать внутренний ИОН меги 8 - 2.56V , нужно ли усиливать сигнал с датчика до 2.56V , или будет достаточно просто подключить его на вход АЦП ? Полазил по инету , смотрю ардуинщики подключают на прямую , но  у 328 меги внутренний ИОН 1.1V .

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

Ардуинщики не знают про внутренний ИОН, по умолчанию в ардуине опорное напряжение берётся за напряжение питания т.е. +5В .
А разве датчик выдаёт температуру уже со смещением под шкалу цельсия? Ох не верится мне... использовал LM135 так у него выход АБСОЛЮТНОЙ температуры т.е. по шкале кельвина! И ноль градусов по цельсию у него соответствует 2.73В итого в вашем случае будет диапазон напряжений 2.73В - 4.23В.
А ещё я сомневаюсь что вы правильно выбрали датчик, на 150 градусах он работать уже не будет, выше 125 - как повезёт. Для ваших температур нужна либо термопара либо платиновый терморезистор. Либо отказаться от температур выше +100.

Учение - изучение правил. Опыт - изучение исключений.

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

LM35 измеряет температуру от -55º до 150º С , но чтобы измерять отрицательные температуры ему нужен двуполярный источник , отрицателные температуры  дают на выходе отрицательное напряжение , мне и не нужно измерять температуру выше 70º и ниже 20º  . Да и не выбирал я датчик он просто есть у меня . Задумка сделать регулятор оборотов кулерами на системном блоке , ШИМ и датчик температуры .

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

Так вам до 70 надо измерять, тогда на выходе будет максимум +0.7В внутреннего ИОН ардуины хватит.

Учение - изучение правил. Опыт - изучение исключений.

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

Так посчитайте хватит ли вам точности.

1024 * 0.7 / 2.56 = 280 значение АЦП при 70 градусах

1 * 2.56 / 1024 / 0.01 = 0.25 градусов / деление

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

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

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

@COKPOWEHEU , я тоже так прикинул ,  думаю что должно хватить  ,  но фиг его знает , потому и спросил .  На Атмеге 8 я хочу обкатать то что у меня получится , если уложусь в 1кБайт , то перенесу на Тини13 , там то  ИОН 1.1V 

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

Парни , нужна ваша помощь , запутался в трех соснах .  , Как я уже говорил ранее , есть желание сделать управление оборотами вентиляторов  системного блока  (там их 4) , в зависимости от температуры внутри корпуса системника .  Поставил этому устройству примерные (пока) условия  : вентиляторы изначально вращаются с минимальными оборотами , шим 20% , регулировка начинается с 30градусов и заканчивается примерно 60 градусами - шим 100% .  Ни какой индикации в устройстве нет .  Был написан не хитрый код в Атмел студии , создано виртуальное устройство в Протеусе 7.10 . Проверка кода показала , что код работает , но до определенного момента . До 30градусов как и положено осциллограф показывает  примерно 20% шим , с ростом температуры процент заполнения растет , но вот на 50градусах заполнение прекращается , и это соответствует  примерно 80% шим , сколько дальше температуру не крути , роста нет . проект в студии и файлы протеуса прилагаю ниже в архиве . Для ясности поясню как я высчитывал шим , в зависимости от значений АЦП -  по условию 20% шим соответствует примерно значению 50 (шим 8 битный , таймер 2 Атмеги8) , меньше 50 в регистре OCR2 быть не должно  , весь диапазон значений регистра  255 - 50 = 205  .  Входные напряжения с датчика LM35  что меня интересуют , это от 0.3V до 0.6V  ,  что соответствует от 30 до 60 градусов и соответствует отсчетам АЦП от 120 до 240 , диапазон значений 240 -120 = 120  .  Исходя из этих данных вывожу линейную зависимость  205/120 = 1.7  , что бы не связываться с типом float , округляю коэффициент до 2 ,  создаю формулу  согласно своих условий расчета значений регистра OCR2 из значений АЦП  -  v = 50(минимальное значение шим) + (temperature (значениеАЦП) - 120)*2

PWM.rar

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

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

OCR2 из значений АЦП  -  v = 50(минимальное значение шим) + (temperature (значениеАЦП) - 120)*2

 

OCR2  = 50 + (240 - 120) / 2 = 110   - максимально возможное число. А должно быть 255?

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

3 минуты назад, Lexter сказал:

 

OCR2  = 50 + (240 - 120) / 2 = 110   - максимально возможное число. А должно быть 255?

Не разделить на 2 , а умножить

OCR2  = 50 + (240 - 120) * 2 = 290

 

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

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

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

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

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

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

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

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

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

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

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

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