A1essandro

ШИМ и RGB-светодиод с общим анодом

7 сообщений в этой теме

A1essandro    1

Здравствуйте.

Делаю ночник с плавно меняющимися цветами, в корпусе недорогого светильника, который включается в полной темноте. Включение/отключение реализовал через фоторезистор и составной транзистор. Для МК atMega8 в DIP-корпусе места в корпусе уже впритык. Думал напрямую к пинам подключить RGB-светодиод, но, внезапно, обнаружил, что они у меня с общим анодом. На макетной плате собрал с 3-мя транзисторами, работает. Но можно ли обойтись без транзисторов? Это дополнительные 6 элементов... Сейчас задам, возможно, сумасшедший вопрос, но если подключить светодиод катодами к пинам, а анод на +5 вольт :) ? Будет ли это работать как обратный сигнал ШИМ (т.е. при скважности 10%, обратная величина - 90%)? Или это просто загубит МК?

Изменено пользователем A1essandro

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yurkin2015    312

Будет работать, конечно, обратный ШИМ без проблем. Общий анод на +5В, а катоды через резисторы на выводы процессора. Резисторы нужны обязательно для ограничения тока.

  • Одобряю 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
COKPOWEHEU    261

кроме того, при настройке аппаратного ШИМа можно выбрать прямой он будет или обратный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
A1essandro    1

При прямом ШИМ и обратном подключении (светодиод с общим плюсом), цвета светодиода не гаснут полностью, через транзисторы всё хорошо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

COKPOWEHEU    261

Используйте phase-correct PWM вместо fast PWM, либо гасите светодиод в крайнем положении вручную

Поделиться сообщением


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

WS2812B может будет получше?

Выводы у меги держат смело по 20мА круглосуточно.

Открытый коллектор и того более могет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
cucumber    0

привет народ, собрал готовую схему, тоже ночник)) на трех диодах на atmega8, хотел сделать всякие эффекты, да только диоды не гаснут полностью - тестером измеряю на выходе МК - когда диод как-бы не должен гореть - около 2.5В. Осциллографа нет к сожалению. Что не так может быть?

#define F_CPU 4000000UL //4MHz
#include <avr/io.h>
#include <util/delay.h>

volatile unsigned long int0_cnt = 0;

void pin_init(void) {
	DDRB |= (1<<1) | (1<<2) | (1<<3);
	PORTB &= ~((1<<1) | (1<<2) | (1<<3));
}

void timer1_init(void) {
	TCCR1A |= (1 << COM1A1) | (1 << COM1B1) | (1 << WGM11);
	TCCR1B |= (1 << WGM13) | (1 << WGM12) | (1 << CS10);
	TCNT1 = 0x00;
	ICR1 = 0xFF;
	OCR1A = 0x00;
	OCR1B = 0x00;
}

void timer2_init(void) {
	TCCR2 |= (1 << COM21) | (1 << WGM21) | (1 << WGM20) | (1 << CS20);
	TCNT2 = 0x00;
	OCR2 = 0x00;
}

int main(void) 
{
	pin_init();
	timer1_init();
	timer2_init();
	while(1) 
	{
		//if (int0_cnt ==0)     
		// {	
		 for (int i=0; i<256; i++)  /////// возрастание диода 1
		   {
			OCR1A = i;
			_delay_ms(10);
		   }
		 for (int i=256; i>0; i--)  /////// затухание диода 1
		 {
			 OCR1A = i;
			 _delay_ms(10);
		 }  
		 /////////
		 for (int i=0; i<256; i++)   /////// возрастание диода 2
		   {
			OCR1B = i;
			_delay_ms(10);
		   }
		  for (int i=256; i>0; i--)  /////// затухание диода 2
		  {
			  OCR1B = i;
			  _delay_ms(10);
		  }  
		 //////////
		 for (int i=0; i<256; i++)   /////// возрастание диода 3
		   {
			OCR2 = i;
			_delay_ms(10);
		   }
		  for (int i=256; i>0; i--)  /////// затухание диода 3
		  {
			  OCR2 = i;
			  _delay_ms(10);
		  }
    	//}
	}
	
}

 

схема ночника.jpg

Поделиться сообщением


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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Evg69
      добрый день. Вернулся к микроконтроллерам после длительного перерыва. Сижу туплю и даже гугл не помог.
      Два вопроса по Atmel Studio 7. Режим отладки. Симуляция.
      1. Как включить окно в котором можно посмотреть что контроллер выплевывает
      в UART? Не содержимое регистра, а типа терминала.
      2. Как подсунуть студии файлик с содержимым EEPROM?
    • Гость Keil
      Автор: Гость Keil
      Добрый день, ситуация такая - попались мне под руку куча рассыпухи в числе которых достаточное количетво тинек и прочей лабуды - пытась хеловродить, попробовал взять готовый пример работы тиньки и лсдишника здесь также имею ардуинку как  Айсипи и чудесно мигаю светодиодом на мк прошитом ею же  так вот при попытке залить код который по ссылке чуда не произошло.
      курение мануалов лсдишника дало понять лиш одно что старший и младший биты одинаковы с лсдишником со статьи - лсдишник рабочий (игрался контрастом одной строки через V0  и потенциометр ) - как в прочем и мк, было задумано ковырнуть все это в протеусе и атмельстудии, но результатом не увенчалось. Пожалуйста тыкните носом что да где не так.
      fail.zip
    • Гость Пришёл без осциллографа
      Автор: Гость Пришёл без осциллографа
      Если какая-нибудь профессиональная литература на русском, в которой приводились бы сведения о преимуществах симметричной ШИМ, областях применения?

    • Автор: Roman Ukraine
      Здравствуйте, дорогие форумчане, хочу задать вопрос знающим людям. Нашел в интернете схему управления вентилятором при помощи драйвера вот по схеме приведенной на рисунке.
      Что про нее скажете, какие замечания? Сколькими вентиляторами можно управлять по такой схеме взяв в расчет то что сила тока одного примерно 120-200 мА ? 
      Ваше мнение очень важно, так как я хочу транзисторы заказать в китае, а ждать месяц, чтобы в итоге спаять нерабочее барахло тот еще резон...
      Заранее спасибо