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

BT201 схема подключения и управление из под ATMEGA8


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

11 минут назад, КЭС сказал:

может, имеет смысл создать тему с вопросами по 1602?

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

Возится с библиотеками так ещё сложней будет.

Пусть сделаю так с семисегментниками и всё на этом. Будет и проще и понятней.

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

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

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

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

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

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

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

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

функциях на которые студия бьёт постоянные ошибки на каждом шагу.

Ну так нужно было библиотеку подключить.

 

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

Возится с библиотеками так ещё сложней будет.

Ну так нужно было пример без библиотек пробовать.

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

Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов. Подробнее>>

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

31 минуту назад, korsaj сказал:

так нужно было пример без библиотек пробовать.

Вот именно такой пример я и пробовал но.

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

именно в функциях на которые студия бьёт постоянные ошибки на каждом шагу

Всё от дисплея я отказался не нужно тему засорять. 

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

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

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

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

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

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

Оно как сказать работает, но не во всех случаях.

Не он, а вы что-то не так делаете. Вангавать не будем, ждём от вас инфу.

45 минут назад, tifaso сказал:

Вот именно такой пример я и пробовал но.

Отнюдь. В примерах без библиотек студии не на что ругаться.

Ещё вариант - вы не весь код скопировали из примера (забыли функции, что от библиотек мало чем отличается).

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

Так ладно в общем нужно до конца разобраться с UART. Сейчас я выкладываю весь код и всю информацию что у меня есть.

Сначала поясню что по схеме. Микроконтроллер у меня ATMEGA16. На PD2 и PD3 установлены светодиоды, На PC0 и PC1 установлены кнопки. Также установлен внешний кварц на частоту 7.3728 MHz.

Теперь собственно сам код по UART. Код был взят из одного примера в просторах инета. Первоначально он был под ATMEGA8, но он вполне подошёл и на ATMEGA16.

#define F_CPU 7372800UL
#define BAUND 9600L
#define UBRRL_value (F_CPU/(BAUND*16))-1

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

void init_pin(void);
#define C_PC0 (~PINC&(1<<PC0))
#define C_PC1 (~PINC&(1<<PC1))
#define LED_1_ON() PORTD|=(1<<PD2)
#define LED_1_OFF() PORTD&=~(1<<PD2)
#define LED_2_ON() PORTD|=(1<<PD3)
#define LED_2_OFF() PORTD&=~(1<<PD3)

volatile start=1;

char b;

ISR(USART_RXC_vect)
{
	b=UDR;
}

void init_UART()
{
	UBRRL = UBRRL_value;
	UBRRH = UBRRL_value>>8;
	UCSRB|=(1<<TXEN);
	UCSRB|=(1<<RXEN);
	UCSRC|=((1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1));
	UCSRB|=(1<<RXCIE);
	sei();
}

void send_UART(char value)
{
	while(!(UCSRA&(1<<UDRE)));
	UDR=value;
}

int main(void)
{
	init_pin();
	init_UART();
	
	while(1)
	{
		if (start==1)
		{
			_delay_ms(500);
			send_UART('O');
        	send_UART('K');
	        send_UART('!');
        	send_UART(0x0D);
        	send_UART(0x0A);
			_delay_ms(10);
			start=0;
		}
		if (b == '0')
		{
			LED_1_ON();
			LED_2_OFF();
			send_UART('N');
			send_UART('+');
			send_UART('0');
			send_UART(0x0D);
			send_UART(0x0A);
			_delay_ms(10);
			b=4;
		}
		
		if (b == '1')
		{
			LED_1_OFF();
			LED_2_ON();
			send_UART('N');
			send_UART('+');
			send_UART('1');
			send_UART(0x0D);
			send_UART(0x0A);
			_delay_ms(10);
			b=4;
		}
		
		if (b == '2')
		{
			LED_1_ON();
			LED_2_ON();
			send_UART('N');
			send_UART('+');
			send_UART('2');
			send_UART(0x0D);
			send_UART(0x0A);
			_delay_ms(10);
			b=4;
		}
		
		if (b == '3')
		{
			LED_1_OFF();
			LED_2_OFF();
			send_UART('N');
			send_UART('+');
			send_UART('3');
			send_UART(0x0D);
			send_UART(0x0A);
			_delay_ms(10);
			b=4;
		}
		if (C_PC0)
		{
			send_UART('P');
			send_UART('C');
			send_UART('0');
			send_UART(0x0D);
			send_UART(0x0A);
			_delay_ms(250);
		}
		
		if (C_PC1)
		{
			send_UART('P');
			send_UART('C');
			send_UART('1');
			send_UART(0x0D);
			send_UART(0x0A);
			_delay_ms(250);
		}
	}
}

void init_pin(void)
{
	DDRC = 0b00000000;
	PORTC = 0b11111111;
	DDRD |= ((1<<2)|(1<<3));
	PORTD &=~ ((1<<2)|(1<<3));
}

Здесь я пробовал этот код UART конечно в таком виде работает, но здесь есть некоторая непонятная ситуация. На микроконтроллер почему то принимаются значения только в цифровом виде. По другому он отказывается работать. Возможно нужно как то перенастроить что то не совсем это понимаю. А UART эта вещь такая очень нужна без него не сделать управление плеером.

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

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

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

А как вы хотели? Буквы - те же цифры, т.е. у каждого знака есть свое значение (таблица ASCII). 

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

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

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

вы какой-то азбукой Морзе общаетесь. Нужно делать буфер для приема строк.

И что ты предлагаешь? Как это делать?

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

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

и так подойдёт

тогда вопрос отпадает ))

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

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

 

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

Например, у вас команды не будут превышать 20 символов, а конец строки будет заканчиваться знаком перевода каретки (0х0D). Тогда объявляете массив на 20 байт и в прерывании каждый байт пишете в массив увеличивая индекс, пока не встретится символ (0х0D). Как только он встретился взводите флаг о готовности данных. В основном цикле проверяете строку на совпадение, после проверки  устанавливаете индекс на начало массива и сбрасываете флаг. Пока флаг установлен ничего не принимаете через ЮАРТ. Если во время приема индекс достиг конца массива - отправляете на комп сообщение об ошибке, индекс сбрасываете.

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

45 минут назад, tifaso сказал:

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

Да ещё и только в двоичной системе счисления.

С уважением, Владимир

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

@korsaj Сейчас попробовал разобраться как это всё записать, но как то не получается данный код записать. Толи чего то я не понимаю в этом. Далеко не всё понятно как всё тобой сказанное записать в виде кода. Попытался записать и на второй же строчке вошёл в ступор из за не понимания как это правильно записать.

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

@korsaj В голове так прокручиваю написаный тобою сценарий вроде бы всё так, но в код у меня никак не получается это всё записать. Я разве что знаю как массив записать и всё тут. Так что ситуация для меня тут далеко не простая.

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

Ну не стесняйтесь показывайте.

Все мы с чего-то начинали, все по граблям прошлись и не один раз.

У вас вон хорошо, есть у кого спросить, с кем посоветоваться, а нам то с книжкой (хорошо если была) не очень насоветываешься.

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

@korsaj Да там пока и показать то нечего. Я во первых не совсем понимаю ещё в какое место правильно будет вписать этот код, а во вторых не совсем понятно как его записать. Из этого текста разве что понятно что нужно в каком то месте создать массив и сделать ограничитель по завершению команды. А вот как и куда конкретно вписать вот это и не могу сообразить?

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

Прикидую  девайс который будет пользователю все в Азбуке Морзе поповещать  :lol:

После пол литры  херь поймёшь че он там оттелеграфировал  :blush: 

У меня есть мысль , и я её думаю ...  

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

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

Объявление переменных и прототипов функций делается в начале файла.

Ну это итак понятно, а далее то что и как делается?

Написать можешь. А то я так и не соображу никак.

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

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

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

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

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

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

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

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

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

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

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

  • Сообщения

    • @Romanchek82 в данной ситуации скорее "подложена под ножку стола у дядюшки Ляо")
    • КИТ на Озоне, 2 канала за 500р. РФ. Я сам с конструктора начинал, там и опыт паять получите.  не надо с платы, схемы начинать, блок питания сначала соберёте, КИТ распаяйте, в корпус всё оформите. Одно до ума изделие доведите. Там и поймёте, куда дальше двигаться. А по схеме, ЕЩЁ раз, они есть на любое ОУ в даташит. По "ушникам", пятиножки в бОльшем случае - достаточно (по ссылке)
    • Привет!  Мне не известно, есть ли другие варианты формата прошивки. Почитайте ветку , может кто то и выкладывал.
    • Совершенно точно. И об этом и сам разработчик (ца) подтвердила о силовой плате. Вот файл pdf от разработчика похоже, где то попалось... Сопротивление , импеданс входа операционника надо учитывать как то. По взодам стоят резисторы по 20к (делители), как то многовато для ОУ на биполярниках. В буржуйских схемах и в даташитах начиная с легендарного ОУ 741 стоят не более 10к по входу, пробовал вместо 20к ставить 10к, но это отдельная тема.... И при правильном проектировании замена ОУ на аналогичный не должно влиять на параметры (настройки) схемы. В наем случаее решил заменить ОУ LM324 (бытовку) на LM224 (промышленную) ... Поставил панельку и при смене разных партий 224 и 124 (милитари) настройка тока уходила в ощутимо по индикатору. Ставил LM-ки от томсон и семикондуктор. Семикондуктор резко уходили насторойки, а томсон более близко к заводской настойке. С завода стояла 324 от томсон. Как и что не буду расписывать по этим двум фирмам. Подобрал балее , менее приемлимые 2 корпуса 224, один из частотника, второй из автомобильного реле. Крутить подстроечники на силовой плате не стал особо, т.к. это сложный случай и методики настойки нет и методом тыка не было времени и желания упражнятся. хотя с завода настройка не радует и желательно откорректировать.... термистор поставил  MF52 на 100к и прилепил на термопасту к радиатору VD1. Его тоже заменил на 60А - 100В и падению напряджния по мультиметру в 2 раза меньше, чем заводской. Индуктивность L2 проводом 1,9 мм 19 витков, замер показал 41,5 мкГн (пинцет Smart Tweezers Канада) заменена на на такое же салатовое кольцо (есть в загажнике) намотанно линцедратом 43х0,22 мм. Поместились все 19 витков как задская намотка один в один. Нагрузочный резистор R68 390 Ом заменил на 4 запаралеленных 1,2к 1 Вт. Конденсатор С20 1000х25 заменил на твёрдотельный 1000х50 и вынес от радиаторов. С9 и С10 заменил на твёрдотельные 47х50.  С5 заменил на два в параллель 150х450 и зашунтировал плёночной ёмкостью 2,5х630, чтобы облегчить жизнь электролитам....Поставил синфазный Др на синем колечке по 20 витков МГТФ 0,2 , индуктивность 5 мГн. Добавил варистор 20Т471 (470 В). Добавил сетевой выключательи дополнительную колодку с предохранителем 5А, штатный заменил на твёрдотельный 3,15А. Нагружал на 20А при 12 В - в течении часа всё работает, чуть тёплый воздух из  корпуса. ничего не кипятится не греется критично. ЗУ Вымпел-30.pdf Для справки, вроде как от разработчика(цы), утащено - Вымпел 30 ....
    • 01 — копия.lay6 amp_tda7377.pdf Назовём это "тестовый вариант по турецким мотивам". По идее должно норм ? 1к1 всё равно только рейсфедером нарисуешь.  Решено взять оттуда только УМ, фильтр wm019, питание внешний трансформатор. 
    • Новички собирают схемы из батарейки и лампочки! А не предусилители..
    • Вы не хотите понять новичка. Когда вы только начинаете чем то занимать то в книжках новичку что бы понять и разобраться нужно набить кучу шишек. Что плохого в том чтобы обратиться за помощью к людям? Я не собираюсь стать каким-то специалистом в этой сфере, мне просто нравиться это дело как хобби
×
×
  • Создать...