Необходимо разработать схему и скетч: ИК-датчик - Ардуино - Светодиоды.

Рогачёв Дмитрий
Offline
Зарегистрирован: 21.09.2018

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

Жду ваши предложения.

Green
Offline
Зарегистрирован: 01.10.2015

Надеюсь лента цветная? htpicc@gmail.com

vvadim
Offline
Зарегистрирован: 23.05.2012
DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

800 рублей. 

300 мне на пузырь, а за 500 скиф сделает. :) 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

599 рублей мне на мобильник на оплату интернета :)

andycat2013@yandex.ru

 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

плавная полдсветка и гашение светодиодных лент в коридоре когда кто то проходит

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

#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif

// PB0 pin 5 - first led wave
#define PB0_OUT sbi(DDRB,PB0)
#define PB0_IN cbi(DDRB,PB0)
#define PB0_HIGH sbi(PORTB,PB0)
#define PB0_LOW cbi(PORTB,PB0)
// PB1 pin 6 - second led wave
#define PB1_OUT sbi(DDRB,PB1)
#define PB1_IN cbi(DDRB,PB1)
#define PB1_HIGH sbi(PORTB,PB1)
#define PB1_LOW cbi(PORTB,PB1)
// PB2 pin 7 - not use
#define PB2_OUT sbi(DDRB,PB2)
#define PB2_IN cbi(DDRB,PB2)
#define PB2_HIGH sbi(PORTB,PB2)
#define PB2_LOW cbi(PORTB,PB2)
// PB3 pin 2 - PIR device
#define PB3_OUT sbi(DDRB,PB3)
#define PB3_IN cbi(DDRB,PB3)
#define PB3_HIGH sbi(PORTB,PB3)
#define PB3_LOW cbi(PORTB,PB3)
#define PB3_READ bitRead(PINB,PB3)
// PB4 pin 3 - not use
#define PB4_OUT sbi(DDRB,PB4)
#define PB4_IN cbi(DDRB,PB4)
#define PB4_HIGH sbi(PORTB,PB4)
#define PB4_LOW cbi(PORTB,PB4)

#define WORK_LEVEL_LED 1
#define WORK_LEVEL_KEY 1

#if (WORK_LEVEL_LED == 0)
#define LED1ON PB0_LOW
#define LED2ON PB1_LOW
#define LED1OFF PB0_HIGH
#define LED2OFF PB1_HIGH
#define BR1LED OCR0A=255-bright_heart_led
#define BR2LED OCR0B=255-bright_heart_led
#else
#define LED1ON PB0_HIGH
#define LED2ON PB1_HIGH
#define LED1OFF PB0_LOW
#define LED2OFF PB1_LOW
#define BR1LED OCR0A=bright_heart_led
#define BR2LED OCR0B=bright_heart_led
#endif

#if (WORK_LEVEL_KEY == 0)
#define KEYINIT PB3_HIGH
#define KEYTEST PB3_READ==0
#else
#define KEYINIT PB3_LOW
#define KEYTEST PB3_READ==1
#endif

byte deviceMode = 0; // 0-off, 1 minimal light 2 full light
byte bright_heart_led;
boolean flag_people;
unsigned long timer_Led;
unsigned long timer_People;

void setup() {
  // put your setup code here, to run once:
  // init pins
  PB0_OUT; LED1OFF;
  PB1_OUT; LED2OFF;
  PB2_OUT; PB2_LOW; // off unusedpin
  PB3_IN; KEYINIT;
  PB4_OUT; PB4_LOW; // off unusedpin
  // hard pwm
  cbi(TCCR0B, CS02); sbi(TCCR0B, CS01); cbi(TCCR0B, CS00); // N=8
  sbi(TCCR0A, WGM01); sbi(TCCR0A, WGM01); // pwm mode
  // if need 9600 bod = count clock/N/9600-1  = 8000000/8/9600-1 = 103
  // real clock pwm = clock/(n*256) = 8000000/(8*256) = 3906 Hz
}

void loop() {
  // put your main code here, to run repeatedly:
  unsigned long current_millis = millis();
  switch (deviceMode) {
    case 1: {
        if ((current_millis - timer_Led) >= 15) { // 4000ms/255 bright level
          timer_Led = current_millis;
          if ((++bright_heart_led) >= 240) {
            if (flag_people) {
              pwm1off();
              LED1ON;
              deviceMode = 3;
              timer_People = current_millis;
              bright_heart_led = 0;
              pwm2on();
              flag_people = false;
            } else {
              deviceMode = 2;
              bright_heart_led = 255;
            }
          } else {
            BR1LED; // pwm level PB0
          }
        }
        break;
      }
    case 2: {
        if ((current_millis - timer_Led) >= 15) { // 4000ms/255 bright level
          timer_Led = current_millis;
          if ((--bright_heart_led) <= 15) {
            pwm1off();
            LED1OFF;
            deviceMode = 0;
          } else {
            BR1LED; // pwm level PB0
          }
        }
        break;
      }
    case 3: {
        if ((current_millis - timer_Led) >= 11) { // 3000ms/255 bright level
          timer_Led = current_millis;
          if ((++bright_heart_led) >= 240) {
            pwm2off();
            LED2ON;
            timer_People = current_millis;
            flag_people = false;
            deviceMode = 4;
          } else {
            BR2LED; // pwm level PB1
          }
        }
        break;
      }
    case 4: {
        if ((current_millis - timer_Led) >= 10000) { // 10 sec max light
          timer_Led = current_millis;
          if (flag_people) {
            timer_People = current_millis;
            flag_people = false;
          } else {
            bright_heart_led = 255;
            pwm1on();
            pwm2on();
            deviceMode = 5;
          }
        }
        break;
      }
    case 5: {
        if ((current_millis - timer_Led) >= 7) { // 2000ms/255 bright level
          timer_Led = current_millis;
          if ((--bright_heart_led) <= 10) {
            pwm1off();
            LED1OFF;
            pwm2off();
            LED2OFF;
            deviceMode = 0;
          } else {
            BR1LED; // pwm level PB0
            BR2LED; // pwm level PB1
          }
        }
        break;
      }
    default: { // mode 0
        if (KEYTEST) {
          deviceMode = 1;
          timer_Led = current_millis;
          timer_People = current_millis;
          bright_heart_led = 0;
          pwm1on();
          flag_people = false;
        }
      }
  }
  if ((current_millis - timer_People) >= 700) { // every 0.7 sec test pir device
    timer_People = current_millis;
    if (KEYTEST) {
      flag_people = true;
    }
  }
}

void pwm1on() {
  sbi(TCCR0A, COM0A1); cbi(TCCR0A, COM0A0); // pwm mode PB0
  //sbi(TCCR0A, WGM01); sbi(TCCR0A, WGM01); // pwm mode PB0
  BR1LED; // pwm level PB0
}

void pwm2on() {
  sbi(TCCR0A, COM0B1); cbi(TCCR0A, COM0B0); // pwm mode PB1
  //sbi(TCCR0A, WGM01); sbi(TCCR0B, WGM01); // pwm mode PB1
  BR2LED; // pwm level PB1
}

void pwm1off() {
  cbi(TCCR0A, COM0A1); cbi(TCCR0A, COM0A0); // no pwm mode PB0
  //sbi(TCCR0A, WGM01); cbi(TCCR0A, WGM01); // no pwm mode PB0
}

void pwm2off() {
  cbi(TCCR0A, COM0B1); cbi(TCCR0A, COM0B0); // no pwm mode PB1
  //sbi(TCCR0A, WGM01); cbi(TCCR0B, WGM01); // no pwm mode PB1
}

 

Green
Offline
Зарегистрирован: 01.10.2015

Зачем так людей пугать?)

sadman41
Offline
Зарегистрирован: 19.10.2016

DetSimen пишет:

800 рублей. 

300 мне на пузырь, а за 500 скиф сделает. :) 

Дак за 300р нынче рази чего купишь для удовольствия...

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

sadman41 пишет:

Дак за 300р нынче рази чего купишь для удовольствия...

У нас - да. Диапанос цен на вотку от 205 р до завода "Кристалл"

karamzin01
Offline
Зарегистрирован: 08.03.2018

maslachenko767@mail.ru решим вопрос

skif
skif аватар
Offline
Зарегистрирован: 24.03.2015

Да, за 300р напишу. skif7361@ya.ru

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

ТС, тогда 600. 

Green
Offline
Зарегистрирован: 01.10.2015

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

skif
skif аватар
Offline
Зарегистрирован: 24.03.2015

Да за что там 600? Я пока сиднл курил, уже написал левой рукой (одним пальцем)

skif
skif аватар
Offline
Зарегистрирован: 24.03.2015

Green пишет:

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

А ему разве собрать нужно?. 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

skif пишет:

Да за что там 600?

Дак пока ты пишешь, я ж за тебя стакан держать буду.  Тоже труд.

Green
Offline
Зарегистрирован: 01.10.2015

...

skif
skif аватар
Offline
Зарегистрирован: 24.03.2015

Да курил же. Второй занят был

skif
skif аватар
Offline
Зарегистрирован: 24.03.2015

DetSimen пишет:

skif пишет:

Да за что там 600?

Дак пока ты пишешь, я ж за тебя стакан держать буду.  Тоже труд.

Согласен

Рогачёв Дмитрий
Offline
Зарегистрирован: 21.09.2018

Кому интересно задание - пишите в почту или в ватсап. Остальных прошу угомонится и пофлудить в другом месте. Здесь ваши старания не оценят.

sadman41
Offline
Зарегистрирован: 19.10.2016

Топикстартер отлично зажег. Прямо анекдот из серии "Цирк примет на работу ясновидящего. Справки по известному вам телефону".

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Рогачёв Дмитрий пишет:

Кому интересно задание - пишите в почту или в ватсап. Остальных прошу угомонится и пофлудить в другом месте. Здесь ваши старания не оценят.

Тебе норм? Куда писать - на деревню дедушке? Ты бы не путался в показаниях, т.к. в теме твоих контактов - ноль целых хрен десятых. Так что это ещё вопрос - кто флудит ;) Не оценили мы твои старания, барин, не оценили - не показывает хрустальный шар адрес твоей почты и ватсапа. Не серчай, и не руби сплеча - холопы, чего с них взять.

skif
skif аватар
Offline
Зарегистрирован: 24.03.2015

Написал на почту

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

sadman41 пишет:

Топикстартер отлично зажег. Прямо анекдот из серии "Цирк примет на работу ясновидящего. Справки по известному вам телефону".

- Товарищ Сталин, к вам ясновидящий на приём пришёл.
- Расстрелять, был бы ясновидящим - не пришёл бы.

Smart Electronics 5V-30V Delay Relay Timer Module Trigger Delay Switch Micro USB Power Adjustable Relay Module
https://s.click.aliexpress.com/e/IO0Dv7a

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Рогачёв Дмитрий пишет:

Кому интересно задание - пишите в почту или в ватсап. Остальных прошу угомонится и пофлудить в другом месте. Здесь ваши старания не оценят.

Так выше же ценники без всякого флуда - что то вы не торопитесь выбирать, дорого?

Рогачёв Дмитрий
Offline
Зарегистрирован: 21.09.2018

Такие как ты не только холопы. Вы хамы.

Мне от вас требуется предполагаемая цена и адрес вашей почты.

Остальные клоуны отправляются в мусор сразу.

Я заказчик, плачу деньги. Соответственно я и заказываю музыку.

Ферштейн?

 

Рогачёв Дмитрий
Offline
Зарегистрирован: 21.09.2018

Скиф, на почте нет ничего. Скиньте вашу почту.

Рогачёв Дмитрий
Offline
Зарегистрирован: 21.09.2018

Те кто ценники выставлял - клоуны. Я же не выступление клоуна себе на день рождения заказываю. Пара шуток неуместных  в чате по моей заявке и шутник уходит в  черный список.

Рогачёв Дмитрий
Offline
Зарегистрирован: 21.09.2018

Спасибо за ссылку, алиэкспресс рулит.

Но требуется:

- схема расключения + подбор комплектующих

- написать скетчап по ТЗ + проконсультировать по его инсталяции

Закупим и соберём сами.  Пока ясно, что в схему входят ИК-датчик, контроллер и реле. Реле видимо выполняет просто функции физического замыкания - размыкания цепи. Непонятно по контроллеру. С блока питания светодиодов выходит 12В. Ардуно например от 5 работает. Нужен свой блок питания? Вы вообще другого производителя предлагаете. Но там видимо скетчап по задежке уже заложен.

Это я как диллетант рассуждаю.

Если интересно - скиньте адрес почты.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

С такой борзянки x5 полагается брать. Причем вперед. Иначе даже спасибо не скажет.

skif
skif аватар
Offline
Зарегистрирован: 24.03.2015

Рогачёв Дмитрий пишет:

Скиф, на почте нет ничего. Скиньте вашу почту.

Так я её уже 3 раза тут писал. Куда скидывать то ещё? В личку?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Рогачёв Дмитрий пишет:

Такие как ты не только холопы. Вы хамы.

Мне от вас требуется предполагаемая цена и адрес вашей почты.

Остальные клоуны отправляются в мусор сразу.

Я заказчик, плачу деньги. Соответственно я и заказываю музыку.

Ферштейн?

 

Не, не ферштейн. Ты пока никому ничего не заплатил, а уже слюной брызжешь почём зря. Как думаешь - захочется работать с неадекватным заказчиком? Отож. Заказывает музыку он :)

И что характерно. заметь: подобная тебе быдлячья гопота взъедается на первое замечание о том, что она - гопота. Ты перечитай свои сентенции выше, сделай над собой усилие. И скажи как на духу: кто тут холоп и хам, а? Тебе ясно и вполне иронично было сказано: куда писать, барин? Ты не привёл ни одного своего адреса, болезный. Как понимать твои выстанывания:

Рогачёв Дмитрий пишет:

Кому интересно задание - пишите в почту или в ватсап. Остальных прошу угомонится и пофлудить в другом месте. Здесь ваши старания не оценят.

Ась? Писать куда, ась? Ты с головой дружишь, ась? Барин пришёл музыку заказывать - всем холопам встать по стойке смирно и не выёживаться! И чтоб догадались, куда писать, а то, понимаешь ли, совсем уху ели!

Вот про таких, как ты - есть хорошая поговорка: клиент не всегда прав - клиент иногда охуевший.

ALEGYR
Offline
Зарегистрирован: 20.09.2018

Рогачёв Дмитрий пишет:

Мне от вас требуется предполагаемая цена и адрес вашей почты.

А ВЫ сами-то КТО, чтобы что-то требовать от незнакомых вам людей? Вы вроде не клиент,  который зашел в ресторан,  в надежде получить удовольствие, соглано предлагаемому рестораном меню, и в соответствии со своими финансовыми возможностями!

Рогачёв Дмитрий пишет:

Я заказчик, плачу деньги. Соответственно я и заказываю музыку.

Заказчиком вы были бы, если бы сказали не только то что вы хотите, но и обозначили бы СКОЛЬКО денег ВЫ готовы заплатить за то что ВЫ хотите!!!

А пока вы просто некий прохожий, который что-то хочет, но не знает сколько стоит то что он хочет!!!

Ферштейн?

 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Рогачёв Дмитрий пишет:

Такие как ты не только холопы. Вы хамы.

Мне от вас требуется предполагаемая цена и адрес вашей почты.

Остальные клоуны отправляются в мусор сразу.

Я заказчик, плачу деньги. Соответственно я и заказываю музыку.

Ферштейн?

 

Зажравшийся тупой дебил (

Update : простите, но не сдержался, херовый вы заказчик.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

andycat пишет:
простите, но не сдержался, херовый вы заказчик.

Ты нам ближе, чем Рогачёв, определённо ;) Так что - прощаем :) :) :)