admin

Видеокурс По Avr-Микроконтроллерам Для Начинающих

2344 posts in this topic

sport_rib    0

Попробовал, не помогло. А подскажите пожалуйста, не связано ли это с тем что на порт я вывожу один байт, а не 2-а, и полное заполнение байта равно десятичному значению -1

image.png.95c14db67cfe6f7d81a479856257d6ff.png

Спасибо большое, а то чет запутался в элементарном.

Share this post


Link to post
Share on other sites
Alex    589
2 часа назад, sport_rib сказал:

Попробовал, не помогло.

А если uint ?

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

не связано ли это с тем что на порт я вывожу один байт, а не 2-а

Интересно, а как Вы выведите два байта в однобайтный порт ? :)

Share this post


Link to post
Share on other sites

для int8_t максимальное число 127.Для переменной tiktik при увеличении на 1 число должно будет увеличиваться от 0 до 127 потом должен быть снова 0, иначе ++ для отрицательного числа работать будет некорректно. Таким образом используется только 7 бит. Дополнительно вы в условии сравниваете tiktik (максимум 127) с число 256, чего никогда не будет. Думаю компилятор это условие совсем выбросит.

Поменяйте переменным tiktik и schet тип на uint16_t

лучше использовать единый стиль задания типов переменных: либо uint8_t, uint16_t..., либо unsigned char, signed int ...

Лучше использовать вариант uint8_t, т.к. в разных компиляторах, например, тип int, может иметь разную размерность

Share this post


Link to post
Share on other sites

Старт складской программы по Wi-Fi/ Bluetooth-чипам от Espressif

На склад КОМПЭЛ поступили чипы, модули и отладочные платы от компании Espressif Systems на базе ESP8266 и ESP32. Стоимость всех изделий данной линейки – в 2-3 раза ниже ближайших аналогов, чипы занимают минимальное место на плате, энергоэффективны и универсальны в применении

Подробнее...

sport_rib    0

Спасибо! заработало на UINT.  тогда я не пойму почему не отрабатывало на int, ну да ладно буду дальше штудировать матчасть. Всем большое спасибо за советы и "technik-1017" громаднейшее СПАСИБИЩЕ за разъяснение, и извините за глупые вопросы.

Share this post


Link to post
Share on other sites
sport_rib    0
1 час назад, Alex сказал:

Интересно, а как Вы выведите два байта в однобайтный порт ? :)

Да в том то и дело что никак, мне пока непонятен тот факт, что я счет произвожу в "слове" - это 2-а байта (integer 16 bit)  или в "двойном слове" (uint или dint - 32  bit) , а результат вывожу в байт- 8bit.  Приложенный код уже немного по истерзан, по этому там и есть разница в типах переменных изначально все было в int8_t  и тут я и ошибся. Как я не мучил калькулятор не получалось у меня в этом типе данных выдать 0xFF, поскольку его значение это -1, максимум 0x7F- это и есть те семь разрядов с которыми я и мучился, спасибо что объяснили, а то гугл уже в шоке от моих тупых запросов. 

Edited by sport_rib

Share this post


Link to post
Share on other sites

Вебинар Литиевые ХИТы FANSO или что нужно знать инженеру о батарейках»

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

Подробнее...

Alex    589
36 минут назад, sport_rib сказал:

мне пока непонятен тот факт, что я счет произвожу в "слове" - это 2-а байта (integer 16 bit)  или в "двойном слове" (uint или dint - 32  bit) , а результат вывожу в байт- 8bit.

Всё очень просто. При :

uint8 = uint16

у последнего просто отбрасывается старший байт, а младший заносится в int8-переменную.

Share this post


Link to post
Share on other sites
Berg    19
В ‎24‎.‎03‎.‎2018 в 12:07, sport_rib сказал:

почему не загораются все диоды?

 

В ‎24‎.‎03‎.‎2018 в 20:21, sport_rib сказал:

Спасибо! заработало на UINT

Не верю! Все не загорятся.

Share this post


Link to post
Share on other sites
polych    0

Здравствуйте!
У меня возникла проблема с практикой 7 урока.
Для начала решила сделать все в точности, как было показано в видео, чтобы понять вообще принцип, но при запуски модуляции в протеусе на дисплеи просто белый экран.
Не могли бы вы посмотреть код, может где то есть ошибка.

#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>
//Подключение библиотеки для работы с дисплем
#include "n5110.h"
#include <stdlib.h>
//Предварительные настройик
void preset()
{
 //Инициализируем дисплей
 Lcd_init();
 //Настройка АЦП
 //ADCRA
 ADCSRA |= (1<<ADEN)//Задействовать АЦП
 | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);// Делитель 128=64кГц
 //ADMUX
 ADMUX |= (1<<REFS1) | (1<<REFS0);//Опорное напряжение 2.56В внутренне
// | (0<<MUX3)| (0<<MUX2)| (0<<MUX1)| (0<<MUX0);// выбор лапки ADC0
 
}
int readADC(unsigned int ch)
{
 unsigned char set_admux = ADMUX;
 set_admux &= ~((1<<MUX3)| (1<<MUX2)| (1<<MUX1)| (1<<MUX0));
 switch(ch)
 {
  case 1: set_admux |= ((0<<MUX3) | (0<<MUX2) | (0<<MUX1) | (1<<MUX0));break;
  default: break;
 }
 ADMUX = set_admux;
 int tmp =  0;
    for(int i=0;i<32;i++)
 {
 ADCSRA |= (1<<ADSC); //Запуск преобразования
 while((ADCSRA &(1<<ADSC))); //Ожидание окончания преобразования
 tmp += ADC;
 }
 return tmp/32;

}
int main(void)
{   preset();
    while(1)
    {
  Lcd_clear();
  Lcd_printf(0,0,FONT_1X,((readADC(0)*2.56*(30/2.56))/1023),1);
  Lcd_printf(0,1,FONT_1X,((readADC(1)*2.56*(30/2.56))/1023),1);
 
        Lcd_update();
  _delay_ms(200);
  
  
    }
}

image.thumb.png.1087095a6595faa4955c3d2256bb61a0.png

Share this post


Link to post
Share on other sites
snn_krs    58
On 4/15/2018 at 10:58 AM, polych said:

Не могли бы вы посмотреть код, может где то есть ошибка.

В коде ошибок не нашел. Программа тоже не работает.

Удалил индикатор и вместо него вставил Nokia 5110. Заработало.

Конденсатор и питание к нему можно не подключать. Остальные ножки как и у этого.

Share this post


Link to post
Share on other sites
URRS    0

Всем здравствуйте. Попался в руки датчик температуры и влажности DHT11, решил приляпать к atmege8, а в результате переменную не могу вывести:mellow:. Подскажите по коду, где слажал. Жаль примеров почти нет. Картинки и код прилагаются. Заранее спасибо!

//Atmega8
#define F_CPU 8000000 //частота 8МГц
#include <avr/io.h>
#include "n5110.h" //Библиотека LCD Nokia3310
#include <util/delay.h>
#include <stdlib.h>
#include "dht11.h"

char buffer[8]; //Переменная
int main( void ){
    Lcd_init(); // Инициализация LCD
    Lcd_clear(); // Очистка дисплея
    int8_t temperature = 0; //Установка параметров из библиотеки dht11.h
    int8_t humidity = 0; //Установка параметров из библиотеки dht11.h
    while(1) {
        humidity = dht11_gethumidity();
        temperature = dht11_gettemperature();
        itoa(temperature, buffer, 10);
        Lcd_printf(0,1, FONT_1X, humidity, 0); //Вывод дробного значения (и так уже попробовал)
        Lcd_printf(0,2, FONT_1X, temperature, 0); //Вывод дробного значения (и так уже попробовал)
        Lcd_print(0,3,FONT_1X,(unsigned char*) buffer); //Вывод на дисплей переменную
    Lcd_update(); //Копирование буфера в ОЗУ дисплея
    _delay_ms(200); //Задержка
        }
}

 

 

код.jpg

рисун.jpg

Edited by URRS

Share this post


Link to post
Share on other sites
snn_krs    58
4 hours ago, URRS said:

Подскажите по коду, где слажал

-1 это скорее всего ошибка. Посмотрите в файле dht11.h куда подключается датчик, если у меня таже библиотека, то к РС5.

Share this post


Link to post
Share on other sites
URRS    0
9 часов назад, snn_krs сказал:

...если у меня таже библиотека, то к РС5.

@snn_krs приветствую! Перед сборкой схемы поменял в библиотеке на РС4. Так по схеме удобно:). Надо выполнить 3 этапа: 1 Объявляем переменную (char buffer[8]); 2 присвоение переменной ...ххх... значения; 3 выводим полученного значения переменной на экран. Чую что значение не присвоил переменной... (пункт 2 пропущен). Вот код предложенный одним из пользователей к датчику, но дисплей у него другой.

char buffer[8];
int main( void )
{	LCDinit(); // Инициализация LCD
	LCDcursorOFF(); // Выключаем курсоор
	LCDclr(); // Очищаем дисплей

	int8_t temperature = 0; //ХЗ что это int8_t??
	int8_t humidity = 0; //ХЗ что это int8_t??
	while(1) {
		humidity = dht11_gethumidity(); //Обращение к установкам в библиотеке (значение) влажности
		temperature = dht11_gettemperature(); //...-...-
		//по коду видно, что переменная и ее значения присутствуют со статическим тексттом
		LCDGotoXY(0,0); //Координаты на дисплее
		sprintf(buffer, "T=%02d", temperature); //Переменная и ее значение + статика
		LCDstring(buffer,4); //Переменная и количество знаков после запятой
		
		LCDGotoXY(0,1);
		sprintf(buffer, "H=%02d", humidity);
		LCDstring(buffer,4);
	}
}

 

Share this post


Link to post
Share on other sites
snn_krs    58
1 hour ago, URRS said:

Чую что значение не присвоил переменной... (пункт 2 пропущен)

temperature = dht11_gettemperature();

Это и есть присвоение.

//temperature = dht11_gettemperature();
temperature = 28;

Сделайте так, и если вторая строка вместо -1 станет 28, значит ошибка в библиотеке, или протеус плохо работает с этой библиотекой

Share this post


Link to post
Share on other sites
URRS    0
43 минуты назад, snn_krs сказал:

если вторая строка вместо -1 станет 28, значит ошибка в библиотеке...

humidity = 30;//dht11_gethumidity();
temperature = 5;//dht11_gettemperature();
Lcd_print(0,0,FONT_1X,(unsigned char*) itoa(humidity, buffer, 10)); //Вывод на дисплей переменную
Lcd_print(0,1,FONT_1X,(unsigned char*) itoa(temperature, buffer, 10)); //Вывод на дисплей переменную

Как только поменял, 30 и 5 на дисплее появились. Значит вопросы к библиотеке... И в макетке так же отображается:unsure:. Попробую библиотеку поискать и заменить. @snn_krs спасибо за помощь. 

Share this post


Link to post
Share on other sites
snn_krs    58

Скомпилировал проект. Выдает ошибку не задана частота процессора. Вставил в самое начало файла dht11.с

#define F_CPU 8000000

заработало.

Share this post


Link to post
Share on other sites
URRS    0

Урааа, заработало!!!@snn_krs Спасибо большущее!  Сейчас допишу и выложу материал, вдруг кому пригодиться. К датчику направления ветра (16 направлений) пришлепаю, будет более функциональнее. Еще раз спасибо!

 

 

Share this post


Link to post
Share on other sites
URRS    0

Проект: Домашняя метеостанция на Atmega8 датчик DHT11 с выводом на LCD_Nokia3310(5110).

Выкладываю готовый проект с кодом для Atmel Studio 6.1, схемой для Proteus 7.10 SP0 (т.к. библиотека дисплея подходит только под эту версию), фото для выставления Fuses и всеми необходимыми библиотеками (LCD_3310(5110), DHT11). Вдруг кого заинтересует. Проект делал для дополнения функционала датчика направления ветра, далее и его выложу. Все коды были исправлены и написаны при участии ребят с местного форума. Сам слабоват в коде С++, за что им респект и уважение!

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

//Atmega8
#define F_CPU 8000000 //частота 8МГц
#include <avr/io.h> //Библиотека
#include "n5110.h" //Библиотека LCD Nokia3310
#include <util/delay.h>
#include <stdlib.h>
#include "dht11.h"

char buffer[8]; //Переменная buffer
int main( void ){
	Lcd_init();		// Инициализация LCD дисплея
	Lcd_clear();	// Очистка дисплея
	int8_t temperature = 0;		//Установка параметров из библиотеки dht11.h
	int8_t humidity = 0;		//Установка параметров из библиотеки dht11.h
	while(1){
		temperature = dht11_gettemperature();	//Присвоение переменной - температура
		_delay_ms(800);							//Задержка
		humidity = dht11_gethumidity();			//Присвоение переменной - влажность
		_delay_ms(800);							//Задержка
		Lcd_prints(0,3, FONT_1X, (unsigned char*)PSTR("ТЕМПЕР  ВЛАЖН"));
		Lcd_print(0,5,FONT_2X,(unsigned char*) itoa(temperature, buffer, 10));	//Вывод на дисплей переменную
		//Lcd_printf(0,5, FONT_2X, temperature, 1); //Пример вывод переменной с дробной частью
		Lcd_prints(4,5, FONT_2X, (unsigned char*)PSTR("C"));
		Lcd_print(8,5,FONT_2X,(unsigned char*) itoa(humidity, buffer, 10));		//Вывод на дисплей переменную
		Lcd_prints(12,5, FONT_2X, (unsigned char*)PSTR("%"));
		_delay_ms(200);		//Задержка
		Lcd_update();		//Копирование буфера в ОЗУ дисплея
	}
}

 

DHT11_proj.rar

IMG_20180501_193752.jpg

IMG-60b48760a533dc3ca28cd2deebd77b1b-V.jpg

Share this post


Link to post
Share on other sites
URRS    0

Проект: Датчик направления ветра на ATMEGA8 и выводом на LCD_5110(Nokia_3310)

Представляю вариант датчика направления ветра с точностью до 16 направлений (22,5 градуса). Принцип его действия прост и основан на оптическом формировании информации. А именно: сверху ставиться ИК светодиод, снизу (по направлению друг к другу) ИК фотодиод, а между ними пластинка с отверстием. При прохождении света через отверстие свет поступает на ИК фотодиод и он посылает сигнал на МК (см.рисунок). Существуют два сигнала: есть свет или нет, т.е. логический «0» или «1». Можем получить два значения, но если установить 4 свето и фото диода, то получим 42=16 значений (4 бита информации).

5ae97d6f1c48e_.gif.3077bb1601a4856611478447a00bb73f.gif

Плюсы оптической схемы формирования сигнала информации: лёгкость исполнения, точность, сжатие информации (4 бита = 16 значений), широкое применение в сфере электроники (пож.датчик, волоконно-оптические системы передач и т.д., малые энергозатраты (и т.д.), низкая цена реализации.

//Atmega8
#define F_CPU 8000000 //частота 8МГц
#include <avr/io.h>
#include "n5110.h" //Библиотека LCD Nokia3310
#include <util/delay.h>
#include <stdlib.h>

int main(void)
{
	Lcd_init();		//Инициализация дисплея
	Lcd_clear();	//Чистка дисплея
	PORTC |= (1<<PC0)|(1<<PC1)|(1<<PC2)|(1<<PC3); //Порт 0,1,2,3 включены на приём
	while(1)
	{		
		switch(PINC & 0x0F) //Вывод направления ветра на дисплей (PINC & 0b1111)
		{	case 15: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("ВОСТОЧНЫЙ       ")); break;
			case 14: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("В-В-СЕВЕРНЫЙ    ")); break;
			case 13: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("С-С-ВОСТОЧНЫЙ   ")); break;
			case 12: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("СЕВЕРО-ВОСТОЧНЫЙ")); break;
			case 11: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("З-З-СЕВЕРНЫЙ    ")); break;
			case 10: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("СЕВЕРО-ЗАПАДНЫЙ ")); break;
			case 9: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("СЕВЕРНЫЙ        ")); break;
			case 8: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("С-С-ЗАПАДНЫЙ    ")); break;
			case 7: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("В-В-ЮЖНЫЙ       ")); break;
			case 6: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("ЮГО-ВОСТОЧНЫЙ   ")); break;
			case 5: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("ЮЖНЫЙ           ")); break;
			case 4: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("Ю-Ю-ВОСТОЧНЫЙ   ")); break;
			case 3: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("ЗАПАДНЫЙ        ")); break;
			case 2: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("З-З-ЮЖНЫЙ       ")); break;
			case 1: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("Ю-Ю-ЗАПАДНЫЙ    ")); break;
			case 0: Lcd_prints(0,1,FONT_1X,(unsigned char *)PSTR("ЮГО-ЗАПАДНЫЙ    ")); break;
			default: break;
		}
		//Вывод на дисплей LCD_5110(Nokia3310)
		Lcd_prints(4,0, FONT_1X, (unsigned char*)PSTR("ВЕТЕР:"));
		Lcd_update(); //Копирование буфера в ОЗУ дисплея
		_delay_ms(200); //Задержка
	}
}

Весь наработанный материал размещен в архиве (код с++, схема, коды направлений, фото разработки, схема в Proteus 7.10 SP0, библиотека). Проект находится на стадии разработки и любые внедрения и модернизации будут приветствоваться.

Если кто подскажет с помощью какой функции можно собрать датчик скорости ветра (частотомер) с моделью: замерить количество импульсов за 10 секунд (таймер и буфер), после сравнить результат с табличным (10-20 импульсов = 2м/с, 20-30 имп = 3м/с и т.д.) и вывести на экран LCD?

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

5ae97b5367dd9_.jpg.734938d358e89284b50a1ce73f945e25.jpg5ae97b53f18db_.JPG.e6814f946c144e72c8ac7b76164ab8c0.JPGIMG_20180502_130624.jpg.d3a1623486cd66d190f73cb78e38822a.jpg

5ae97ca0c369e_.jpg.0ce4b4eab0b54991f7e60a5da887d46b.jpg

Wind_direction_proj.rar

Edited by URRS

Share this post


Link to post
Share on other sites
Guest Дмитрий   
Guest Дмитрий

Здравствуйте, проблема такого плана. Дисплей в Proteus 8 при моделировании горит белым светом, на каждый пиксел, так же и с готовыми проектами, во всех случаях, когда проект должен работать.

AVR.jpg

Share this post


Link to post
Share on other sites
COKPOWEHEU    273
В 22.05.2018 в 13:12, Гость Дмитрий сказал:

Дисплей в Proteus 8 при моделировании горит белым светом

Проверяйте версию Протеуса и дисплея. Тот дисплей что используется в этой теме, не всегда работает с 8-м Протеусом.

Share this post


Link to post
Share on other sites
gogaze    4
В 22.05.2018 в 20:12, Гость Дмитрий сказал:

Дисплей в Proteus 8 при моделировании горит белым светом

Поставьте "родной" дисплей из Proteus 8 параллельно, соединения сделайте соответственно, удалите старый дисплей. Примерно так как на скрине.

 

2018-05-26_094735.jpg

Edited by gogaze
Добавление файлов

Share this post


Link to post
Share on other sites
Uleb    0

Добрый день,

Вопрос по видеокурсу от уважаемого Kobraz.

Собрал термометр на lm335, все работает. Но когда пытаюсь прописать простейшее условие, что при падении температуры ниже, допустим, 30 градусов, подать логическую 1 на выход, на какую-нибудь лапку, напряжение на лапку подается, но совсем не такое, какое я ожидаю. Я ожидаю напряжение питания (4,2 вольта от аккумулятора), а появляются какие-то невнятные 1,07 вольт....

Share this post


Link to post
Share on other sites
ARV    746

Предполагаю, вы не нстроили соответствующий пин микрокнтроллера на режим ВЫВОДА, т.е. не установили в его регистре DDR в единичку нужный бит.

Share this post


Link to post
Share on other sites
Uleb    0

А ведь верно, не настроил! Большое спасибо от начинающего раззявы)

Share this post


Link to post
Share on other sites

Добрый день!

При прохождении миникурса застрял на 3_ем уроке

Начинаю работь на Atmel Studio 7   и  при  отладке кода получаю  открытие  файла delay.h      и выделенную строку   187   как я понимаю это ошибка

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

__builtin_avr_delay_cycles = Unknown identifier   

 

Спасибо.

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By small girl
      Привет, ребят! Кто возьмется написать на С протокол взаимодействия для сети микроконтроллеров. База: STM32 с bluetooth модулем HC-06,- slave. ПК - master?

      За вознаграждение
    • By LegionKC
      Добрый день.
      Экспериментирую с платой TP4056 и MK ATmega8, конкретнее - пытаюсь собрать простенькое зарядное устройство с выводом параметров при зарядке/разрядке на АЦП МК. Для измерения тока нашел ACS712. Думаю, что получится выводить ток при зарядке (т.е. когда идет питание на TP4056 и нагрузка отключена) и при разрядке (питание выключено, нагрузка подключена). Нагрузка - резистор. Возникла проблема с измерением напряжения на АКБ. Вернее, проблема с отсутствием идей как это сделать. Может какую-нибудь схему делителя напряжения нужно сделать? Прошу помочь советом. Схему из пэинта прилагаю.
      Спасибо.
       

    • By Геннадий Быков
      Уважаемые электронщики и им сочувствующие!
      Хочу на даче собрать макет морского маяка в человеческий рост. Но для этого необходима схема управляющая светодиодами. Основное, схема должна иметь независимое питание(Солнечная панель) и быть слаботочной (5-9 вольт). Как вижу я. Маяк ориентировочно высотой 1,50-1,80 м. В маяке, с низу до верха 6 окошек (по одному 5мм светодиоду). И на верху сам маяк из 8-ми 0,5 ваттных светодиодов установленных по кругу. С наступлением темноты, включаются диоды на "1 этаже" и раз в 5-10 минут происходит действие. Диоды поэтажно (снизу вверх) начинают загораться (как будто кто-то поднимается вверх по ступеням) и после загорания самого верхнего окна, через пару секунд, включается маяк. Поочередно по кругу (эффект метеора), со скоростью 2-3 сек на круг, делает оборотов 10 и выключается. Потом в обратной последовательности гасятся окошки (светодиоды) сверху в низ и остаются два нижних, периодически и независимо включающиеся и выключающиеся (эффект присутствия). И вновь через 5-10 минут вышеописанное действие. Буду очень признателен любым советам, ссылкам, помощью. Немного умею паять, немного знаю Ардуино. Готов в разумных пределах спонсировать, разработку и сборку.
    • By Vladislav7
      Добрый день.
       
      Необходимо разработать схему для изготовления печатной платы с установленным микроконтроллером (подобрать подходящий), также подобрать все электронные компоненты и написать программу.
      Цель следующая:
      Необходимо с помощью одного контроллера управлять двумя цепями состоящими из 15 светодиодов (мощность одного = 0,1 Вт) каждая, диоды одноцветные.
      При включении одной кнопки начинает мигать одна цепь. При включении второй - вторая. Возможность одновременного включения кнопок.
      Необходим датчик индикации на кнопке, который будет мигать в такт светодиодной цепи. Принцип кнопки как у аварийной сигнализации.
       
      Спасибо.
  • Сообщения

    •   Локти, ягодицы и затылок обращены в одну сторону
    • решено проблема была в По
    • Откуда нашему  штирлицу в голову дует: У нас, к большому сожалению, Америка, Запад загоняют огромные деньги на подготовку людей, которые получают оттуда деньги. Они есть в каждом регионе, они есть и у нас. Они [хотят] не решить проблему, а дестабилизировать ситуацию… Много фейков, ложную информацию загоняют сюда. Как они находят телефоны?» губернатор Пензенской области Иван Белозерцев 16 июня. Справка: 13 июня в селе Чемодановка Пензенской области произошла массовая драка, пострадали пять человек, один впоследствии скончался в больнице. По уголовному делу задержаны 15 человек, в том числе подозреваемый в убийстве. После побоища 1,5 тысячи жителей села вышли на акцию протеста и перекрыли федеральную трассу М-5 «Урал».
    •  К.Т. Поддержал мой пост, если в двух словах. Зимой, например, даже если двигатель сверх хорошо отлажен, любое улучшение системы зажигания очень полезно.  А у проводов зажигания, которые сейчас продаются для старых машин, сопротивление сильно завышено. Что тоже можно компенсировать хорошими свечами.
    • Дело не столько в десятых/сотых процента гармошек, а в длине хвостов этих зверьков, во взаимном соотношении чётных и нечётных гармошек и их спектральной плотности. Ушки-то они такие инструменты -  даже те, которые выше 12 -14кГц уже вообще нихера не могут слышать, прекрасно слышат "биения" интермодов НЧ/ВЧ и всякого комбинационного дерьма в слышимом диапазоне частот, порождаемого фазовыми искажениями.  Если он ещё появляется в этой теме, то наверняка читая всё это ухмыляется, грызя марковку, и ждёт, когда кто-нибудь из модеров подчистит всё ... размазанное Мастерами. 
    • Никогда не оборачивайтесь назад. Там все без изменений.
    • А какой глубинный смысл вообще исследовать и ломать голову над некорректной работой микросхемы, которая включена по схеме, не соответствующей рекомендациям производителя?