LED Christmas Tree

До нового года осталось всего несколько дней, пора готовить ёлку. Но мы же гики, поэтому спаяем её сами из светодиодов :)




Читать дальше
  • +12
  • 28 декабря 2012, 02:58
  • Gum
  • 1

И все-таки оно светится.

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


Читать дальше

Игрушка-шар для маленьких на ATmega16 + акселерометр MMA7455 + led driver TLC5940

AVR
«Для маленьких» — это не фигура речи, а мне действительно хотелось бы рассказать о шарике-самоделке, мигающем огоньками и радующем моего еще совсем маленького годовалого сынка. Идея пришла спонтанно, как только встретил описания дешевого и легкодоступного акселерометра на eBay. Электроникой я увлекся всего полгода назад и в процессе этого домашнего проекта (длившегося, к слову сказать, несколько месяцев) схему переделывал неоднократно, изобретая велосипед за велосипедом.

Постановка задачи

А не сделать ли сынцу что-нибудь, чтоб можно было катать, чтоб разноцветное и с лампочками, но чуть умнее, чем просто мигающий светодиод?! А что, если это будет пластиковый шар, утыканный разноцветными диодами, знающий где верх, а где низ? По-моему, любому малышу, это должно понравится, а уж отцу поковыряться вечером — милое дело.



Читать дальше

"Волшебная коробка"

Решил сделать для любимой девушки оригинальный подарок своими руками. Это моя первая статься на блоге, так что не судите строго :))

Функционал устройства:

  • 7- программ миганния;
  • Переключенние между программами происходить по кнопке;
  • Переключенние между программами по таймеру, каждых 30с;
  • Отключение устройства по кнопке;
  • автоматичиское выключение при 5минутах неактивности.

Схема устройства очень простая — микроконтроллера ATmega8, красные светодиды, кнопки и батарейки питания (3 пальчика). Плату сделал двухслойной (не хотелось использовать перемычки).Разводил в Altium Designer, избыточно для такой прсотой платы использовать такую программу, но так как я с ней постоянно работаю — мне в ней удобно. Altium проект вконце статьи в архиве. Чтобы распечатать чертеж для ЛУТ сначала необходимо сгенерировать гербер, как сделать уже описано тут.

Вот так выглядит плата устройства в Altium Designer:



Визуализация платы в Altium Designer:



Плату поместил в сувенирную коробку:



Для программирования МК на плате есть разъем. Конечно он немного портыть выд устройства, но совсем не хотелось мучаться с проводами для прошивки. Я программировал через AVRISP mkII но можно использовать той что есть в у вас в наличии.
Прошивку писал в AVR Studio на язике С, не особо оптиммизировал. Частота работы МК 8MHz В программу очень легко вносить новые эффекты мигания. Кнопкой S2 включаеться устройство, S1 — переключючение программ мигания по кругу, после МК переходить в сон, и чтобы включить нужно нажать S2 (кнопка подключена к внешнему прерыванию). Если кнопка S1 не нажимаеться, через 30 секунд произойдет переключение на следующую программу мигания. Если нет активности пользователся, через 5хв устройство отключиться.

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

volatile unsigned char BlinkMode = 0; //  какой ефект должен работать
volatile unsigned char  BlinkSpeed = 0; //скорость переключения
volatile unsigned char TaskFlag = 0; // переменная флагов для задачь

ISR(TIMER2_COMP_vect) // 1mS
{
	if (++count2 ==  BlinkSpeed)	
	{
		TaskFlag|= (1<<6); //set flag
		count2 = 0;
	}		
}

while(1)
{
    if (TaskFlag & (1<<6))
    {
        BlinkLedTask();
	TaskFlag&=~(1<<6); // clear flag
    }
}


Так происходить переключение программ мигания:

void BlinkLedTask(void)
{ 
	switch (BlinkMode)
	{
		case 0: Blink1(20);   break; 
		case 1: Blink2(50);   break; 
		case 2: Blink3(200);  break; 
		case 3: Blink4(255);  break;
		case 4: Blink5(150);  break;
		case 5: Blink6(90);   break;
		case 6: Blink7(250);  break;
		case 7: Sleep();      break;
	}	
}


Одна с функций мигания:
iBlinkSpeed
— параметр функции — скорость мигания.

EnableAll();
устанавливает лог «1» на аноды светодиодов.

PWM = 10;
минимальная яркость мигания светодиодов
PWM = 250;
максимальная яркость мигания светодиодов


void  Blink7(unsigned char iBlinkSpeed)
{
	static unsigned char num = 0;	
	
	BlinkSpeed = iBlinkSpeed;
	
	EnableAll();
	
	if (num == 0)
	{
		PWM = 10;
		num = 1;
	}
	else 
	{
		PWM = 250;
		num = 0;
	}
}


Для тех кто выдержал и дочитал:

Как работает устройство-видео

Файлы к статье:
we.easyelectronics.ru/attachments/get/1091
we.easyelectronics.ru/attachments/get/1092

Спасибо. Жду конструктивной критики и замечаний!)
  • +4
  • 08 сентября 2012, 00:05
  • Nemo
  • 2

Подключение 7-сегментного индикатора к msp430g2553 (launchpad) по SPI


Подсадил меня недавно один хороший товарищ на Launchpad (чему очень рада моя дорогая супруга), мигать светодиодами я научился быстро, в COM-порт плеваться показаниями встроенных датчиков температуры и напряжения научился, захотелось чего-то более приземлённого.

далее про драйвер tm1638

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

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



(Долго думал где разместить. Так как почти все в этой статье это своего рода инструменты – решил разместить в одноименном блоге. Если не по теме – скажите — перенесу в личный)


Читать дальше

Светодиодный матричный индикатор VQC 10 C

Попала мне в руки, некоторое время назад, занятная деталька.



Читать дальше

Вольтметр сетевого напряжения, часть 2.

Продолжу описание сборки вольтметра напряжения сети.

Рассмотрим сборку блока питания на LNK306, общую схему всего устройства, немного фоток некоторых шагов, описание граблей и методы их обхода.


Читать дальше

Вольтметр сетевого напряжения, часть 1.

Постановка задачи

Вот есть у меня дача и я на неё езжу :). Ситуация такова, что электричества там мало, в смысле киловатт. То есть чайник включаешь — свет в доме становится тусклее. А то иногда и насос в колодце не крутится, и микроволновка не греет (что редко). Те моменты, когда напряжения в сети нет вообще — рассматривать не будем.
Решил сделать вольтметр, пусть показывает сколько там в проводах вольт, да не просто так, а на светящихся семисегментниках.

Читать дальше