Дело было вечером делать было нечего. Предлагаю вам устройство которое реагирует на движение руки, плавным извинением цвета…
Вместо опто-пары ставим фототранзистор и светодиод, а вместо генератора подключаем светодиод к питанию схемы. Поставить оптические элементы можно любые главное, чтобы у них была одна длина волны у меня стоят ИК диод и транзистор на 940 нанометров транзистор на 30 градусов обзор, а диод на 20 градусов. Так как таймер тиньки рассчитан только на два вывода  ШИМ пришлось использовать не RGB, а RB светодиод. Ну это и не важно.
Ах ну да я забыл Q1 у нас BC547C. А теперь приступим к самой программе :
 
#include <avr/eeprom.h>
#include <avr/io.h>
#include <stdio.h>
#include <avr/interrupt.h>
#include <inttypes.h>
#include <util/delay.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include <avr/boot.h>
#include <stdint.h>
 
volatile unsigned int ADC_buff=0;
volatile unsigned char PWM_buff0=0;
 
void ADC_init(void)//конфигурируем ADC
{
ADCSRA=0<<ADPS0|0<<ADPS1|1<<ADPS2|1<<ADEN|1<<ADSC|0<<ADIF|1<<ADIE;
ADMUX=0<<REFS0|1<<MUX0|0<<MUX1;
};
 
 
void TIM0_init(void)//конфигурируем TIMER
{
TCCR0B=1<<CS00|0<<CS01|0<<CS02|0<<WGM02;
TCCR0A=0<<COM0A0|1<<COM0A1|1<<COM0B0|1<<COM0B1|1<<WGM00|1<<WGM01;
OCR0A=0;
OCR0B=0;
TIMSK0=1<<TOIE0;
};
int main (void)// main
{
DDRB=0b11101011;
_delay_ms(150);
ADC_init();
TIM0_init();
asm("sei");
for (;;);//бесконечный цикл
return 0;
}
 
ISR(ADC_vect)// обработчик прерывания по таймеру ADC
{
ADC_buff=ADC;// Загоняем в буфер
PWM_buff0=ADC_buff/4;//Значение ADC делим на 4
ADCSRA=ADCSRA|1<<ADSC;//Запуск нового преобразования
};
 
ISR (TIM0_OVF_vect)//обработчик прерывания по таймеру
{
OCR0A=PWM_buff0;
OCR0B=PWM_buff0;
};
 
Сам hex файл конечно же прилагается. Fuse bits не трогаем оставляем заводские. Программа написана в AVRStudio + WinAVR.
Скачать прошивку
Для тех кто начнет орать что на Си писать для 1кБайта памяти это идиотизм отвечу сразу — пользуйтесь нормальными компиляторами и прямыми руками.
Спасибо за внимание. Ну и конечно же ВИДЕО работы железяки:

Не забываем рассчитывать свои резисторы для каждого цвета!!! Иначе сгорит, почему, так это вам домашнее задание.
P.S. Так много библиотек для тех у кого их мало, а у кого их много, то поделитесь, не жмитесь.


   
ASUS # 1
 
 
можно использовать как подсветка замочной скважины. Та и обычную микросхему логики можно применить.И не плохая идея, можно розвивать это устройство.
--------------------
против лома нет приема, разве что законы ома, лом ужасен и велик, он хороший проводник)))


   
DieselBorn # 2
 
 
можно спрасить. Какой у вас ИК диод и Фототранзистор?
маркировка


Обновления

Сообщения ФорумаОтветов
3D Модели для Авто0
Бакометр 2335
Touch Start-Stop Engine.587
Кодграберр17
Исправляем AVR фьюзы при помощ …109
Бакометр - измеритель остатка…4
IR конструктор на PIC12F62977
Универсальное зарядное устройство103
бaкoмeтр1974
Двунаправленный автомобильный…2
Программатор GENIUS G8401
Светодиодный тахометр34
Индикаторы ГРИ ИН1 - ИН141
Multiprog1
Управляющая программа LED CUB959
Универсальное зарядное устройство9
Изготовлю печатные платы29
Простой автоматический выключа…25