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

Простые вопросы новичка.


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

Всем здравствуйте.

Помогите начинающему и необразованному в сфере микроконтроллеров.

Взялся разбираться с Atmega8A
Пытался я рыть примеры в интернете, все они грубо заточены и новичку толком не понять.
В свое время я сталкивался с инструкциями в PHP. Там есть справочник свой.
В любом языке есть зарезервированные комманды, макросы, и переменные.
Где найти справочник комманд и интсрукций?
Я не думаю что написав - PORT_Strob_Signal_E, человек сидел накуренный и летал в фантазиях.

 

Есть такое (для LCD)

 

#define PORT_Strob_Signal_E PORTC
#define PIN_Strob_Signal_E 1

 

#define PORT_Strob_Signal_RS PORTC
#define PIN_Strob_Signal_RS 0

 

Что тут написано, это мне более-менее понятно. Я немогу найти никакого обьяснения, как сделать что-бы 

 

Были выводы для одного дисплея
#define PORT_Strob_Signal_E PORTC
#define PIN_Strob_Signal_E 1

 

#define PORT_Strob_Signal_RS PORTC
#define PIN_Strob_Signal_RS 0

 

А это были выводы для другого дисплея
#define PORT_Strob_Signal_E PORTC
#define PIN_Strob_Signal_E 3

 

#define PORT_Strob_Signal_RS PORTC
#define PIN_Strob_Signal_RS 2

 

По сути мне нужно вывести 2-а дисплея через каждый отдельный программный SPI(если я правильно понял).

 

Возможно-ли вообще сделать 2,3,4,5 Программных SPI или UART? И как? (особо важно)

 

Второй вопрос общеобразовательный.

 

Ни где не смог найти примеры кода или библиотек.
Нужен пример кода где микроконтроллервыводит на семисегментный индикатор то число (5 к примеру), которое написано в коде.
И такое-же самое, но со сдвиговым регистром 74HC595 (пока ковыряю эту детальку, а там разберусь как работают другие).

 

Зарание спасибо.

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

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

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

Те куски что у вас написаны это называются ДИРЕКТИВЫ, и собственно сама директива DEFINE работает на уровне предпроцессора исходного текста тупо заменяет все найденные по исходнику левые части на правые. Это удобство чтобы назвать порт или какую-то константу понятным по контексту названием. Обратите внимание на директиву .def которая использется ТОЛЬКО для именования регистров.

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

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

Не до конца показал. Наверное стало и не понятно.
 

#ifndef HD44780_Config_D
#define HD44780_Config_D

#define uchar unsigned char
#define Sbit(reg,bit) (reg|=(1<<bit))
#define Cbit(reg,bit) (reg&=~(1<<bit))
#define CheckBit(reg,bit) (reg&(1<<bit))
#define FirstStr_StartPosition_DDRAM_Addr 0x80
#define SecondStr_StartPosition_DDRAM_Addr 0xC0
#define Data_Length 0
#define NumberOfLines 1
#define Font 1

/*
 *указываем порт МК, к которому подключена линия E
 *указываем номер бита порта МК, к которому подключена линия E
 */
#define PORT_Strob_Signal_E PORTC
#define PIN_Strob_Signal_E 1

/*
 *указываем порт МК, к которому подключена линия RS
 *указываем номер бита порта МК, к которому подключена линия RS
 */
#define PORT_Strob_Signal_RS PORTC
#define PIN_Strob_Signal_RS 0

/*
 *порты ввода-вывода шины данных дисплея D4-D7
 *номер бита порта ввода-вывода шины данных дисплея D4-D7
 */
#if Data_Length==0
   #define PORT_bus_4 PORTD
   #define PIN_bus_4 4
   #define PORT_bus_5 PORTD
   #define PIN_bus_5 5
   #define PORT_bus_6 PORTD
   #define PIN_bus_6 6
   #define PORT_bus_7 PORTD
   #define PIN_bus_7 7
#endif

void LCDb_Init(void);
void LCDb_Full_Clean(void);
void LCDb_CursorPosition_ToStart(void);
void LCDb_AutoMovCurDispDirect(uchar I_D, uchar S);
void LCDb_DisplEnable_CursOnOffBlink(uchar D, uchar C, uchar B);
void LCDb_MovingCurDispDirection(uchar S_C, uchar R_L);
void LCDb_Show(uchar Addr, uchar Str, uchar Cursor);
void LCDb_UserSymbolsWrite(uchar Addr, uchar *data);
void BusLinesStateb(uchar *data, uchar RS);

#endif
 

Это Си. 
За подсказку спасибо (новенькое, будем рыть значит).

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

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

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

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

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

55 минут назад, Valerius_San сказал:

Возможно-ли вообще сделать 2,3,4,5 Программных SPI или UART?

SPI допускает подключение нескольких устройств к одним и тем же выводам МК (Вики). Но возможны подводные камни из-за целого зоопарка стандартов, точнее отсутствия единого стандарта. Но ничто не мешает написать несколько (насколько хватит ножек) интерфейсов со своими алгоритмами общения. Поскольку интерфейс синхронный, то строгая стабильность временных диаграмм обмена не нужна. Чего не скажешь об USART, где отклонение скорости от стандартной критично.
Для начинающих хорош BASCOM, если есть желание использовать в дальнейшем другие семейства МК, тогда учи Си. Неплохая книга М. Б. Лебедев "CodeVisionAVR. Пособие для начинающих". Не обязательно писать именно в этой среде, там хорошие примеры использования языка Си. 

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

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

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

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

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

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

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

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

 

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

Я не думаю что написав - PORT_Strob_Signal_E, человек сидел накуренный и летал в фантазиях.

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

 

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

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

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

 

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

По сути мне нужно вывести 2-а дисплея через каждый отдельный программный SPI

Если не смущает то, что вывод будет тормознутым, то можно и так. А так оба дисплея подключаются к одному SPI. Опять же, для начала прочтите, как вообще работает SPI.

 

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

Нужен пример кода где микроконтроллервыводит на семисегментный индикатор то число (5 к примеру), которое написано в коде.

А что там трудного? Число на таком индикаторе - определенная последовательность включенных ножек. Если цель стоит в том, чтобы написать прошивку, а не научиться, и больше с МК дела не иметь, то имеет смысл взять ардуйню, там и примеров валом, и библиотек целый табун. Но опять же понадобятся знания Си.

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

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

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

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

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

Попытался я в среде Ардуино переписать одну программку, которую до этого на BASCOM написал. Используя нативные ардуиновские библиотеки. Так там с библиотеками такой цирк с конями... То, что компилируется в одной версии IDE не факт, что скомпилируется в другой, с другими версиями стандартных(!!!) библиотек. И сторонние библиотеки могут компилироваться только в определённой версии IDE. И всё это нужно подобрать методом тыка или исправить бибилиотеки. Помучался и перешёл на CodeVisionAVR. Где за пару часов всё сделал, заодно обучаясь языку (ну не люблю из-за мозголомного синаксиса, а потому плохо знаю Си).

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

Вывод на светодиодный семисегментный надо осуществлять через таблицу преобразования цифра-набор_сегментов причем так хорошо совпало что самые популярные индикаторы укладываются в 8 бит - значит достаточно завести массив на 16 байт(кто скажет навскидку почему удобно 16 а не 10?), а в качестве индекса брать входное число с погашенными(во избежание выхода за границы) старшими 4-мя битами операцией '...AND 0xF0'

Если надо вывести допустим 5-разрядное число, то сначала его надо пропустить через алгоритм разложения на цифры (обычно такие алгоритмы зовутся BIN2BCD и есть разные реализации по сложности и разрядности) в результате которого получаешь BCD-представление исходного числа, делишь его на тетрады по 4 бита пропускаешь через массив и получаешь сразу наборы сегментов которые надо зажечь, их остаётся загрузить в регистры сдвига и число у тебя на индикаторе.

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

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

Спасибо. Начинаю кое что понимать.

То что нужно писать библиотеку с битностью по цифрам я понял.

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

 

Но в принципе навели на мысли более логические.

Спасибо. Большое. Тут дальше дело за мною.

 

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

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

Отправлено с моего Nexus 5 CAF через Tapatalk

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

7-сегментники луче всего подключать при помощи регистра сдвига совмещённого с драйверами светодиодов. Когда-то на ибее взял 20 штук и они почти сразу пропали из продажи. Тот же регистр, как HC595 только с стабилизаторами тока на выходе, ток регулируется одним выводом для всех в пределах 2...80мА на каждый вывод и никаких внешних ограничителей тока в виде резисторов что актуально при большом количестве светодиодов. Сейчас больше популярны такие микросхемы на 16 бит - stp16cp05 например. Или вовсе готовый драйвер с SPI управляющий 8-ю 7-сегментными индикаторами в динамической индикации, только задаёшь где какую цифру засветить и всё...

А если надо реально много светодиов зацепить... HT1632 - матрицу 32*8 или 16*24 светодиода, с 4-мя уровнями яркости для КАЖДОГО. тоже SPI интерфейс на входе.

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

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

Зачем такие сложности с редкими драйверами? Есть же max7219, там не только драйвер, но и кое какие мозги есть. И подключить можно 8 знакомест или вообще матрицу 8х8. Плюс можно включать их один за одним. На али их валом и стоят недорого.

Отправлено с моего Nexus 5 CAF через Tapatalk

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

Знаете...

Я так скажу откровенно.


В свое время я программировал на С++. Знаю PHP JavaScripts Linux Shell. Сам по себе я занимался программированием сетей и серверов.

Казалось-бы "что тебе решать тут детскую задачу"?!
Аж нет. Все не так как кажется. Когда работал на C++ То ты имееш дело с графикой и операционной системой. По факту ты не можеш через программу сказать операционной системе, сделать то о чем она не догадывается. По факту работы - программист, пишет графическую оболочку при этом манипулируя библиотеками. А если не хватает, КЛЯНЧИТ у производителей (Visual C++, Net Frameworck). 
Грубо говоря - играются в игрушки, рисуя картинки.

В контролерах, все сложнее (вернее вопросы и ответы).
Я встречал были такие глупости и понты у людей, когда программер написал код термостата и всунул "обработчик" для сверки данных.

Бред и понты я тоже могу отличить (жаль не было обратной формы связи) - на кой хрен лепить обработчик?


Если контролер может выcчитать частоту, поставить интервал по времени - он-же откуда-то знает что больше и что меньше. Зачем писать тома Достоевского?
Значит там есть библиотеки. А если они есть, то значит есть и инструкции.

Я не в критику и без притензий нивкоем случае.
Просто меня интересуют эти инструкции. Как туда попасть через Cи (а что там производитель припрятал то это дело каждого разбираться или нет - а припрятал). 
Мне очень интересно, как цепляться к ячейкам памяти. Что-бы один блок памяти весел, а другой обновлялся (про скорость обработки я не переживаю, 8 Мгрц ).
Вы только вдумайтесь в скорость! 8000000, вы 50 - глазами не видите , а если что-то тормозит и блымает - значит код написан не то что ПЛОХО, а Х.....О (какие-бы ордена на сиськах программиста не висели).


P.S.
Я ради опыта один раз прикольнулся - написал одну HTML страницу, и JavaScript-ом повесил камень компьютера (меню создал), что мышка ели шевелилась. И буквально 8-ю строками создал такое-же меню, но там ничего не тормозило и создавалось автоматически из MySQL.
Если у вас тормозит компьютер, медленно открываеться страница, лезут вирусы, лезет "ненавящевая реклама" - отключаете JavaScripts и наслаждаетесь колоссальными скоростями, где ваш даже старенький компьютер будет выплевывать и не задумываться.

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

Не надо обольщаться тем, что там 8МГц. На самом деле это очень медленно, особенно, когда речь идёт о выводе на дисплей. Особенно, когда интерфейс написан программно. Любая программная реализация на порядок медленнее, чем аппаратный блок в МК. Плюс если дисплей графический, то нужна не одна команда, чтобы вывести пиксель, а пикселей выводится много. Так что о скорости думать надо в первую очередь. Особенно учитывая то, что интерфейс последовательный. Даже аппаратный интерфейс не работает на тактовой частоте МК. Приведу пример. МК с частотой 72МГц, к нему подключен цветной дисплей 160х220 пикселей по SPI. SPI аппаратный на частоте 36МГц. Так вот, таких параметров не хватает для того, чтобы незаметно зарисовать весь дисплей одним цветом. Идём дальше, цепляем к этому же МК дисплей 320x240, но используя параллельный интерфейс 8бит. В итоге скорость работы возрастает в разы. А mega8 справится максимум с ч/б дисплеем от nokia3310. И дело тут не в коде, а в аппаратных ограничениях. А ещё стоит помнить, что 8битные МК очень медленно работают с теми же числами с плавающей запятой. А к этому ещё кучу нюансов. Например то, что все инструкции выполняются только последовательно. Распараллелить процессы в МК невозможности.

 

 

А все инструкции описаны в заголовочном файле для вашего МК и в даташите.

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

Даташит - в нём описаны все нюансы конкретного "камня". А что касается быстродействия - AVR не имеет развитой периферии, работающей независимо от ядра. В отличие от ARM. Там и порты (SPI, I2S, USART) не тормозят работ, а используют DMA. То есть закинул в память данные для отправки, дал команду "отправить"  - и занимайся дальше другими делами, всё отправится без участия ядра. То же и с приёмом - выделяется буфер, как только он заполнится (не требуя участия ядра!), вызывается аппаратное прерывание для обработки принятого. 
А в AVR работа с портами лежит на плечах ядра, хотя можно исхитриться и работать по прерываниям. Даже многозадачные микро-ОС есть.
Вас испортила объектная ориентированность, когда объекты работают независимо друг от друга. То есть задал объекту Line отрисоваться на Canvas - он это сделает. Как - вам знать не обязательно, для этого есть ОС с графической подсистемой и драйверами. А в МК нужно самому определить, какие байты отправить индикатору,  чтобы пиксели с нужными координатами отобразить нужным  цветом. И помнить, что в это время МК ничем другим заниматься не может - ни кнопки опросить, ни АЦП запустить. Правда, существенно облегчает наличие прерываний, но тут нужно выработать соответствующий стиль программирования. 

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

Ого...........

Такого облома я даже не ожидал.


Теперь я понял. Mega 8 - однопоточный как первый DOS.

 

Мой вопрос, просто не имеет смысла. Ему незачем поднимать 2 SPI и 2 MOSI.
Я так понял дешевле гнать аппаратные возможности и не умничать. Будет и быстрее и дешевле для нервов.


А я от него требую нереальное. Он тут просто ляжет или роды будут те еще...
Значит - либо менять камень, либо добавлять камни (смешно будет выглядеть).

Вымерять температуру с 2-х датчиков, сопоставить с заданным в оперативке (а их там ничего не останеться), вывести на дисплей, подать включить или выключить да и еще высокой точности....
Скорость чипа достаточная (я так считаю) и памяти достаточно. Но не на одном потоке читать 5м памяти, занимать оперативку и на тормозах остатков пытаться еще что-то посчитать и выполнить.

Тогда зачем их производят? Это-же мусор.
Есть все в нем, но толку?

Приятный холодный душ.

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

Ну, опросить 8 датчиков и отработать 16 порогов сигнализации (или дискретно вкл/выкл нагревателей или вентиляторов) с одновременной индикацией - для mega8 раз плюнуть. Ещё и время на опрос кнопок (с алгоритмом антидребезга) и работы с меню уставок хватает. Просто нужно отвыкнуть от перекладывания максимальной части задач на плечи ОС и перейти к линейному программированию. Наиболее часто применяется парадигма "конечного автомата". Которая прекрасно реализуется на прерываниях (от таймера или состояния порта при опросе кнопок).

А ничего, что ПО современных томографов - на базе MS-DOS 6.22, ну может с надстройкой Windows-98? Так что С++ вас разбаловал...

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

Ваша задача очень простая, особенно в случае грамотного использования прерываний. МК целыми двигателями в машинах управляют, а у вас всего лишь опрос датчиков. Для начала заложите временные рамки, в которых должен произойти опрос датчика и выдача действия, чтобы было понятно, к чему стремиться. Затем определитесь, что за датчики вы хотите использовать. От этого будет сильно зависеть все остальное. Далее надо выбрать дисплей. Зачем вам обязательно SPI? Что мешает использовать символьные дисплеи со встроенным знакогенератором? С ними МК будет летать.
Ну а по поводу написания программы необходимо усвоить, что надо по максимуму использовать аппаратные модули МК, т.к. их скорость работы всегда выше, чем у программных реализаций. А также изучить работу интерфейсов передачи данных. Так к одному SPI (и это не только к SPI относится) можно подключить хоть 20 устройств, лишь бы у МК хватило выводов переключать линии CE. Так что два SPI вам совершенно не нужны. Кроме того, если на обоих дисплеях должно отображаться одно и то же, то их вообще можно соединить параллельно и вывод на них будет идти одновременно. А за константы для сравнения данных, хранящиеся во флеш памяти можно вообще не переживать, компилятор сам распределить их вызов.

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

2 часа назад, BARS_ сказал:

Приведу пример. МК с частотой 72МГц, к нему подключен цветной дисплей 160х220 пикселей по SPI. SPI аппаратный на частоте 36МГц. Так вот, таких параметров не хватает для того, чтобы незаметно зарисовать весь дисплей одним цветом.

Что за камень был? Потому что мне на stm32 с той же частотой ядра и SPI удалось выжать 11-20 кадров в секунду на трехмерной графике, правда, с DMA. Но уж одним цветом залить можно и быстрее.

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

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

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

F103. Заливка была ощутимо видно глазом. Дисплей от сименса. DMA, правда, не использовал. Вот через fsmc все летает даже при шине 8бит и без DMA [emoji4] Кстати, частоту поднимать ядра не пробовали? STM32 неплохо разгоняются.

 

 

У вас вообще круто получилось, как-то даже не задумывался, что можно такое сделать на STM. Изображения в памяти МК хранятся?

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

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

Ваша задача очень простая, особенно в случае грамотного использования прерываний. МК целыми двигателями в машинах управляют, а у вас всего лишь опрос датчиков. Для начала заложите временные рамки, в которых должен произойти опрос датчика и выдача действия, чтобы было понятно, к чему стремиться. Затем определитесь, что за датчики вы хотите использовать. От этого будет сильно зависеть все остальное. Далее надо выбрать дисплей. Зачем вам обязательно SPI? Что мешает использовать символьные дисплеи со встроенным знакогенератором? С ними МК будет летать.
Ну а по поводу написания программы необходимо усвоить, что надо по максимуму использовать аппаратные модули МК, т.к. их скорость работы всегда выше, чем у программных реализаций. А также изучить работу интерфейсов передачи данных. Так к одному SPI (и это не только к SPI относится) можно подключить хоть 20 устройств, лишь бы у МК хватило выводов переключать линии CE. Так что два SPI вам совершенно не нужны. Кроме того, если на обоих дисплеях должно отображаться одно и то же, то их вообще можно соединить параллельно и вывод на них будет идти одновременно. А за константы для сравнения данных, хранящиеся во флеш памяти можно вообще не переживать, компилятор сам распределить их вызов.

"Что мешает использовать символьные дисплеи со встроенным знакогенератором? С ними МК будет летать. " - именно так и выбрал.
Я может и не правильно мыслю, но мне кажеться: - для экранчиков по круче, лучше добавлять что-то графическое (может и дешифратор).
Для TFT использовать графические чипы (соответственно параметры/требования).


Просто один дисплей выдает 2 параметра которые показывает 2-е ТЕРМОПАРЫ. Другой показывает "программирование 2-ух порогов".
(Мне для литья металлов.
Там на самом деле идет 2-е печки. Одна плавит металл, другая греет форму. Если без предварительного нагрева, то заготовка в лучшем случае будет запартачена (будут не гладкие стенки краев, а пузырчатые), но зачастую взрыв так как форма полюбому набирает влагу и при 1350 градусов вода не успевает выпариться через поры и она просто пробивает себе дорогу как ей хочеться.
Отсюда мне и нужна регулеровка температуры без всяких пуск/задано (форму слишком быстро тоже нагревать нельзя) - это назыветься отпуск метала. 25-40 мин держиш 250 гр (сам смотриш), потом поднимаеш до 600 на 60-90 мину, потом 900-1000 еще на полтора часа.
)

Но это моя первая задача для себя, потом нужно будет себе сделать ЧПУ-фрезер. Но это все потом, нужно сначала еще азы освоить.

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

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

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

Абсолютно неправильно. Ничего "графического" туда добавить нельзя. Оно все должно быть в МК и ПО. Графических чипов тоже нет (есть дорогие и мощные МК с ARM ядром, в них встроен графический акселератор и можно даже игрушки запускать, но для базового GUI вполне хватает обычных МК), вся графика реализуется руками. Вы пройдите по ссылке, что выше давали и посмотрите видео. Там голый МК, причем копеечный, и дисплей.

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

Просто один дисплей выдает 2 параметра которые показывает 2-е ТЕРМОПАРЫ. Другой показывает "программирование 2-ух порогов".

А не проще все выводить на одном дисплее? Например таком:

LK204-25-2.jpg

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

5 минут назад, Valerius_San сказал:

это назыветься отпуск метала. 25-40 мин держиш 250 гр (сам смотриш), потом поднимаеш до 600 на 60-90 мину, потом 900-1000 еще на полтора часа.

А аналоговая часть у вас уже есть, которая будет между термопарой и МК? Да и заставить встроенный АЦП точно измерять напряжения тоже целая наука. А если нужна точность измерения до десятичных знаков, то это многократно усложнит задачу. Ну а программу тут реализовать очень просто. Вам надо всего лишь опрашивать 2 канала АЦП и по формуле переводить полученные значения в температуру. Далее переключать нагрузки и слать данные на дисплей. При желании можно и клавиатуру подключить для управления или связь с ПК организовать:

1111111111111111111111111111111111111111

 

Но сначала в любом случае придется научиться простейшим вещам, типа работы с портами, прерываниями и интерфейсами. Без этого никуда. И учиться лучше поэтапно, от простого к сложному, а не пытаться с ходу понять чужие прошивки:umnik2:

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

Во-первых процесс не настолько быстрый, что нужно одновременное наблюдение сразу всех параметров. Минимальный вариант - четырехзначный семисегментник с контроллером TM1637, типа такого:
59d1207c134ad_Untitled-2copy.jpg.36aa5ed4628b343446cd6f7934a45bc6.jpg

Для подключения к МК нужно всего две ножки. Для индикации названия параметра - четыре светодиода. Или даже два: первый горит/не горит = термопара 1/2, второй = уставка/текущая температура.
Хочется больше информативности - такой с контроллером MAX7219, будет видно сразу две температуры или уставки:
59d12216c5df5_Untitled-3copy.jpg.1aaa0a05b2f3c5c8256d5af7b682f82d.jpg

Ещё лучше использовать двухстрочный ЖК:
EK66871_B.PNG

Во-вторых для вашей задачи скорость процессора - вообще дело десятое! Опросить два канала АЦП раз в секунду, а то и реже, перевести из "попугаев" в реальные градусы и отправить это на индикатор - это вообще задача плёвая.

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

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

Абсолютно неправильно. Ничего "графического" туда добавить нельзя. Оно все должно быть в МК и ПО. Графических чипов тоже нет (есть дорогие и мощные МК с ARM ядром, в них встроен графический акселератор и можно даже игрушки запускать, но для базового GUI вполне хватает обычных МК), вся графика реализуется руками. Вы пройдите по ссылке, что выше давали и посмотрите видео. Там голый МК, причем копеечный, и дисплей.

А не проще все выводить на одном дисплее? Например таком:

LK204-25-2.jpg

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

А аналоговая часть у вас уже есть, которая будет между термопарой и МК? Да и заставить встроенный АЦП точно измерять напряжения тоже целая наука. А если нужна точность измерения до десятичных знаков, то это многократно усложнит задачу. Ну а программу тут реализовать очень просто. Вам надо всего лишь опрашивать 2 канала АЦП и по формуле переводить полученные значения в температуру. Далее переключать нагрузки и слать данные на дисплей. При желании можно и клавиатуру подключить для управления или связь с ПК организовать:

1111111111111111111111111111111111111111

 

Но сначала в любом случае придется научиться простейшим вещам, типа работы с портами, прерываниями и интерфейсами. Без этого никуда. И учиться лучше поэтапно, от простого к сложному, а не пытаться с ходу понять чужие прошивки:umnik2:

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

Я взял два LCD 1602 (больше просто нет смысла).

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

"А аналоговая часть у вас уже есть, которая будет между термопарой и МК? " - я склепал на скорую руку LM358, подобрал сопротивление и просто вывел на стрелку.

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

Только что, Valerius_San сказал:

Имеются ввиду экранчики типа планшетов 7-ми дюймовых.

Там уже и частоты МК совсем другие нужны. Даже 72МГц маловато будет.

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

Я взял два LCD 1602

Даже с  двумя такими дисплеями все будет летать. SPI там даром не нужен. Используется 6 ножек МК, 4 из которых надо подключить к одному порту. Тут можно 4 линии данных обоих дисплеев соединить вместе, а линии управления раскидать на разные ноги МК. Или же вообще все на одном дисплее отобразить, просто по кнопке переходить в режим настройки, а все остальное время отображать текущую температуру. Интерфейс будет программным, т.к. это параллельная шина данных и Mega8 такого не умеет. Да и нет смысла под такие простые дисплеи использовать что-то аппаратное. 

 

5 минут назад, Valerius_San сказал:

я склепал на скорую руку LM358, подобрал сопротивление и просто вывел на стрелку.

Ну если точность +/- лапоть устраивает, то все еще проще.

 

P.S.

Не цитируйте полностью сообщения, модераторы этого не любят. Выделяйте интересующий вас участок текста и жмите всплывающую кнопку "Цитата".

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

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

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

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

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

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

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

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

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

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

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

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