Автоматическая рулонная штора своими руками.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Vallu пишет:

Чойто не работает. наверно таймер для формуги не установлен.

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

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014
Arduino: 1.6.4 (Windows 7), Плата"Arduino Uno"
 
Formuga_V.2.ino: In function 'void loop()':
Formuga_V.2:128: error: 'codeIRframAdjustOpen' was not declared in this scope
Formuga_V.2:131: error: 'adjustStepFr' was not declared in this scope
Formuga_V.2:133: error: 'codeIRframAdjustClose' was not declared in this scope
Formuga_V.2:136: error: 'adjustStepFr' was not declared in this scope
Multiple libraries were found for "IRremote.h"
 
 Used: C:\Users\VALERY\Documents\Arduino\libraries\IRremote
 
 Not used: C:\Users\VALERY\Documents\Arduino\libraries\RobotIRremote
 
 Not used: C:\Program Files\Arduino\libraries\IRremote
 
 Not used: C:\Program Files\Arduino\libraries\RobotIRremote
 
'codeIRframAdjustOpen' was not declared in this scope
 
  Это сообщение будет содержать больше информации чем
  "Отображать вывод во время компиляции"
  включено в Файл > Настройки
выдает такое
SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

а файл ******Def.h - обновил ?

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

SU-27-16 пишет:

Vallu пишет:

Чойто не работает. наверно таймер для формуги не установлен.

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

коды прописал пины поменял

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

SU-27-16 пишет:

а файл ******Def.h - обновил ?

нет вот блин

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

повторюсь

#include <IRremote.h>  
#include "ValluDef.h"  
IRrecv irrecv( recvPin );
decode_results results;
volatile int posFramCurrent = 0;      // текущее положение фрамуги
//volatile int posFramDelta =   0;    // приращение положения фрамуги
volatile int posFramDelta =   100;    // ВРЕМЕННО !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//boolean directFram = 0;             // направление = 0 - close , 1 - open
                                      // ВРЕМЕННО !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
byte directFram = 2;                  // направление = 0 - close , 1 - open , 2 - стоять
//=====================================================
//     setup
//=====================================================
void setup()
{
  irrecv.enableIRIn(); 
  pinMode( pinDriverStA, OUTPUT );
  pinMode( pinDriverStB, OUTPUT );
  pinMode( pinDriverFrA, OUTPUT );
  pinMode( pinDriverFrB, OUTPUT );
  pinMode( pinDriverFrPWM, OUTPUT );
  analogWrite( pinDriverFrPWM, motorFrSpeed );  // ШИМ мотора
  attachInterrupt( 0, InterruptFram,  CHANGE );
  pinMode( pinEncoderFr, INPUT );
  digitalWrite( pinEncoderFr, HIGH );  // подтяжка пина к VCC
  attachInterrupt( 0, InterruptFram, CHANGE );
}
//=====================================================
//     функция управления мотором шторы
//  motorStop , motorUpmotorUp , motorDown
//=====================================================
void MotorStora( byte _motorContrl )
{
  if( 0 == _motorContrl )
  {
    digitalWrite( pinDriverStA,  _motorContrl );   // может наоборот
    digitalWrite( pinDriverStB, !_motorContrl );   // может наоборот
    delay ( timeStoraDown );                       // может наоборот
  }
  if( 1 == _motorContrl )
  {
    digitalWrite( pinDriverStA, !_motorContrl );   // может наоборот
    digitalWrite( pinDriverStB,  _motorContrl );   // может наоборот
    delay ( timeStoraUp );                         // может наоборот
  }
  if( 2 == _motorContrl )
  {
    digitalWrite( pinDriverStA, LOW );
    digitalWrite( pinDriverStB, LOW );
  }
  digitalWrite( pinDriverStA, LOW );
  digitalWrite( pinDriverStB, LOW );
}
//=====================================================
//     функция управления мотором фрамуги
//  motorStop , motorUpmotorUp , motorDown
//=====================================================
void MotorFram( byte _motorContrl )
{
  if( 0 == _motorContrl )
  {
    digitalWrite( pinDriverFrA,  _motorContrl );   // может наоборот
    digitalWrite( pinDriverFrB, !_motorContrl );   // может наоборот
  }
  if( 1 == _motorContrl )
  {
    digitalWrite( pinDriverFrA, !_motorContrl );   // может наоборот
    digitalWrite( pinDriverFrB,  _motorContrl );   // может наоборот
  }
  if( 2 == _motorContrl )
  {
    digitalWrite( pinDriverFrA, LOW );
    digitalWrite( pinDriverFrB, LOW );
  }
}
//=====================================================
//     функция-обработчик прерываний от энкодера
//=====================================================
void InterruptFram( )
{
  if( directFram )
  {
    posFramCurrent++;
    posFramDelta--;
    if( posFramCurrent > maxStepFr )
    {
      posFramCurrent = maxStepFr;
      posFramDelta = 0;
    }
  }
  else
  {
    posFramCurrent--;
    posFramDelta--;
    if( posFramCurrent < 0 )
    {
      posFramCurrent = 0;
      posFramDelta = 0;
    }
  }
}
//=====================================================
//     loop
//=====================================================
void loop() 
{
// приём команд
  if ( irrecv.decode( &results) )
    {
      delay( timeIR ); 
// управление шторой
      if ( codeIRstoraUp == results.value )
        {
          MotorStora( motorUp );                 // штора вверх
        }
      if ( codeIRstoraDown == results.value )
        {
          MotorStora( motorDown );               // штора вниз
        }
// подготовка управления фрамугой
      if ( codeIRframOpen == results.value )
        {
          directFram = 1;                        // фрамугу приоткрыть
          posFramDelta = posFramDelta + microStepFr;
        }    
      if ( codeIRframClose == results.value )
        {
          directFram = 0;                        // фрамугу призакрыть
          posFramDelta = posFramDelta - microStepFr;
        } 
      if ( codeIRframAdjustOpen == results.value )
        {
          directFram = 1;                        // фрамугу юстировать +
          posFramDelta = adjustStepFr;
        }    
      if ( codeIRframAdjustClose == results.value )
        {
          directFram = 0;                        // фрамугу юстировать -
          posFramDelta = adjustStepFr;
        } 
      irrecv.resume(); 
    }
// управление фрамугой
//  if( directFram && ( posFramDelta != 0 ) )      // фрамугу приоткрыть
  if( ( 1 == directFram ) && ( posFramDelta != 0 ) )        // ВРЕМЕННО !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  {
    MotorFram( motorUp );
//    while( posFramDelta > 0 ) {}
    delay( 2000 );                    // ВРЕМЕННО !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    MotorFram( motorStop );
    directFram = 2;                   // ВРЕМЕННО !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  }
//  if( !directFram && ( posFramDelta != 0 ) )     // фрамугу призакрыть
  if( ( 0 == directFram ) && ( posFramDelta != 0 ) )        // ВРЕМЕННО !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  {
    MotorFram( motorDown );
//    while( posFramDelta > 0 ) {}
    delay( 2000 );                    // ВРЕМЕННО !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    MotorFram( motorStop );
    directFram = 2;                   // ВРЕМЕННО !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  }
}
//=====================================================

 

 

#include "Arduino.h"

// определения

// IR
#define recvPin 11
#define timeIR 300
// коды
#define codeIRstoraUp         0xDAEA83EC  // штора вверх
#define codeIRstoraDown       0x2BAFCEEC  // штора вниз
#define codeIRframOpen        0xFEFEFEFE  // фрамугу приоткрыть               пример
#define codeIRframClose       0xACACACAC  // фрамугу призакрыть               пример
#define codeIRframAdjustOpen  0x78787878  // юстировка положения фрамуги +    пример
#define codeIRframAdjustClose 0x78787878  // юстировка положения фрамуги -    пример
// штора
#define pinDriverStA    3
#define pinDriverStB    5
#define timeStoraDown   25300  // подбор-настройка
#define timeStoraUp     42500  // подбор-настройка
// фрамуга
#define pinDriverFrA     7
#define pinDriverFrB     8
#define pinDriverFrPWM   6
#define pinEncoderFr     2      // прерывание "0"
#define motorFrSpeed     128
#define maxStepFr        2000   // шагов для максимального открытия фрамуги, подбор-настройка
#define microStepFr      400    // шагов для перемещения на одно нажатие кнопки, подбор-настройка
#define adjustStepFr 20         // шагов для регулировки положения и усилия "закрыто"
// мотор
#define motorStop       2
#define motorUp         1
#define motorDown       0

 

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Vallu пишет:

Formuga_V.2:128: error: 'codeIRframAdjustOpen' was not declared in this scope
Formuga_V.2:131: error: 'adjustStepFr' was not declared in this scope
Formuga_V.2:133: error: 'codeIRframAdjustClose' was not declared in this scope
Formuga_V.2:136: error: 'adjustStepFr' was not declared in this scope

это он ругается , что эти три переменные не определены ( не декларированы )....
......нужно было посмотреть/проверить их наличие/отсутствие....

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

если два кода - то обновлять надо оба, если один - то только его можно
......бывает :)

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

Заработало но в одну сторону. поменял значение и все поехало как надо. еще один глупый вопрос а где регулировка шим? пин подключил но вроде ни чего не поменялось

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

проверь соединения

1 - закомментируй строки 145....152 - пробуй

2 - закомментируй строки 154....161 - пробуй

в каком варианте вообще не работает ?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

ШИМ подключил к драйверу ? ( не влияет на ошибку, просто спрашиваю )

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

ещё закомментируй строки 79....101

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

SU-27-16 пишет:

ещё закомментируй строки 79....101

Заработало но в одну сторону. поменял значение и все поехало как надо поменял значения местами в строках 067 068. еще один глупый вопрос а где регулировка шим? пин подключил но вроде ни чего не поменялось, без шима не работает. 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

:) не зря комментил "// может наоборот"

ШИМ :
пин - #define pinDriverFrPWM   6 
значение  - #define motorFrSpeed     128
назначение пина - сторка 21
запись значения - строка 22

ШИМ = 0....255 !

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

Спасибо огромное не увидел сразу. Надо уменьшить. Ща поэксперементирую, но сначала доделаю крепеж а то соседей не хочу травмировать с кодом можно хоть ночью а вот с лобзиками и бормашинками нет :)

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

про строки 67, 68......
тогда правильнее функцию так прописать

//=====================================================
//     функция управления мотором фрамуги
//  motorStop , motorUpmotorUp , motorDown
//=====================================================
void MotorFram( byte _motorContrl )
{
  if( ( 0 == _motorContrl ) || ( 1 == _motorContrl )  )
  {
    digitalWrite( pinDriverFrA,  _motorContrl );
    digitalWrite( pinDriverFrB, !_motorContrl );
  }
  if( 2 == _motorContrl )
  {
    digitalWrite( pinDriverFrA, LOW );
    digitalWrite( pinDriverFrB, LOW );
  }
}
//=====================================================

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

и эту подправить ( раз пока только по времени )


//=====================================================
//     функция управления мотором шторы
//  motorStop , motorUp , motorDown
//=====================================================
void MotorStora( byte _motorContrl )
{
  digitalWrite( pinDriverStA,  _motorContrl );
  digitalWrite( pinDriverStB, !_motorContrl );
  if( 0 == _motorContrl )
  {
    delay ( timeStoraDown );
  }
  if( 1 == _motorContrl )
  {
    delay ( timeStoraUp );
  }
  digitalWrite( pinDriverStA, LOW );
  digitalWrite( pinDriverStB, LOW );
}
//=====================================================

драйвер один ? двухканальный ?
и штору, и фрамугу не подсоединял ?

пойду кота погуляю....

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

код в #118 ИЗМЕНЁН !

http://ok.ru/video/8462664965 :)

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

SU-27-16 пишет:

и эту подправить ( раз пока только по времени )


//=====================================================
//     функция управления мотором шторы
//  motorStop , motorUp , motorDown
//=====================================================
void MotorStora( byte _motorContrl )
{
  digitalWrite( pinDriverStA,  _motorContrl );
  digitalWrite( pinDriverStB, !_motorContrl );
  if( 0 == _motorContrl )
  {
    delay ( timeStoraDown );
  }
  if( 1 == _motorContrl )
  {
    delay ( timeStoraUp );
  }
  digitalWrite( pinDriverStA, LOW );
  digitalWrite( pinDriverStB, LOW );
}
//=====================================================

драйвер один ? двухканальный ?
и штору, и фрамугу не подсоединял ?

пойду кота погуляю....

ща подсоеденю

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

есть в сусеках такое или подобное ? http://www.ebay.com/itm/1pcs-5V-2-Channel-Relay-Module-for-Arduino-PIC-ARM-DSP-AVR-Electronic-/251361854321?pt=LH_DefaultDomain_0&hash=item3a86558371
.....два канала освещения организовать :) , кнопок-то на пульте много !

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

Должны придти со дня на день. Я паралельно еще 2 проекта строю робот пылесос и аквариум еще сейчас подбираю детальки для квадрокоптера.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

может к ним пойдёшь ? :)
http://arduino.ru/forum/ishchu-ispolnitelya/konkurs-dlya-programmistov-i...
...смешно :)
лаболатория....   дилектор.... :)

нифигасссссееееее у тибя проектов !!!!!! :)

я подсел на RC-Fishing..... не интерессно мине удочкой махать....
http://www.youtube.com/watch?v=-5XK_iS-EE4 - перемотай на четверть...
http://arduino.ru/forum/proekty/radioupravlyaemyi-kater-iz-potolochki

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

достойная борьба радиоэлектроники и рыбы.... http://www.youtube.com/watch?v=FuLncUN2h4I
Ландышевка, между Приморском и Выборгом - тоже берег гранитом выложен...
бывшее имение Нобеля, брата Нобеля, который "тринитротолуол" - отянуцца туда ездим :)

как проект "светомаскировка-проветривание" ?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

если чё - roma1602@rambler.ru

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

Александр, а ты где проживаешь? В Питере?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Ленинский, 74 ( 2 км от Юноны ) , Приозерское шоссе, 16 - 95/5 %
сутки через трое - Пулково

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

SU-27-16 пишет:

Ленинский, 74 ( 2 км от Юноны ) , Приозерское шоссе, 16 - 95/5 %
сутки через трое - Пулково

Ха, дак мы соседи получается почти. У меня в сотом доме брательники двоюродные живут и сеструха рядом я в тех краях частенько бываю. Значит за помощь могу пивком проставиться.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

пЫва не горит !
....шутка , а встретицца мона :)

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

SU-27-16 пишет:

пЫва не горит !
....шутка , а встретицца мона :)

я в начале июня в твоих краях появлюсь, отпишусь предворительно, может чего с финки прихватить надо.

Еще просьба большая, не подскеажешь где можно инфу почитать по програмированию ардуины. Ты так быстро все делал что я вообще с кодом запутался, а хочется если не самому проги писать но хотябы понимать что другие пишут и уметь под себя подстраивать. я уроков много посмотрел но толку не много повторить могу а шаг в сторону и кирдык.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

нууууууууууу, чЮхони рыбов семь и фиников килограммов пять :) , если есть....
спасибо ! пока всё есть.....

а ты где в финке ? город ?

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

SU-27-16 пишет:

нууууууууууу, чЮхони рыбов семь и фиников килограммов пять :) , если есть....
спасибо ! пока всё есть.....

а ты где в финке ? город ?

да в Хувинке

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

http://lord-n.narod.ru/download/books/walla/programming/Spr_po_C/main.htm#13

http://www.cplusplus.com/reference/cstring/

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

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

SU-27-16 пишет:

http://lord-n.narod.ru/download/books/walla/programming/Spr_po_C/main.htm#13

http://www.cplusplus.com/reference/cstring/

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

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

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

есть умная книжка, у миня такой нет.... не помню - кажися , Хоровитц и ещё кто-то....
нашёл - https://ru.wikipedia.org/wiki/%D0%98%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%BE_%D1%81%D1%85%D0%B5%D0%BC%D0%BE%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B8
....Библия
а так, ищи "программирование AVR" - литературы валом

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

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

...спрашивай, если чё

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

спасибо огромное. сейчас взялся почитать про язык С, на сон грядущий. Буду стараться стать такимже очень прячусь от алкоголя и это очень помогает.

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

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

#include <IRremote.h>  

#define recvPin 11           // задаем номера пинов
#define driverA 2            
#define driverB 4
IRrecv irrecv( recvPin );
decode_results results;
#define timeStora1 25000    // задаем время поднятия и опускания шторы
#define timeStora2 43000
#define timeIR 300
int a=0;                   // peremennaya pereklyucheniya rezhima , pri nazhatii knopki ona prinimayet znacheniye +1
int b=0;                   
//=====================================================
void setup()
 {
  irrecv.enableIRIn(); 
  pinMode( driverA, OUTPUT );
  pinMode( driverB, OUTPUT);
 }
//=====================================================
// функция-подпрограмма поднятия/опускания шторы
// 0 - опустить , 1 - поднять

void StoraUp( boolean direction )

  {
    digitalWrite( driverA, direction );
    delay ( timeStora1 );
    digitalWrite( driverA, LOW );
  }  
void StoraDown( boolean direction )

  { digitalWrite( driverB, !direction );
    delay ( timeStora2 );  
    digitalWrite( driverB, LOW );
  }
//=====================================================
void loop() 
  {
    {
       if (results.value == 0xDAEA83EC) {a=a+1;} // obrabotka nazhitya klavishi , zdes? peremennaya prinimayet znacheniye +1
       if (results.value == 0x2BAFCEEC) {b=b+1;}
       if (a==1){digitalWrite(driverA, HIGH);} else {digitalWrite(driverA, LOW); a=0;} 
       if (b==1){digitalWrite(driverB, HIGH);} else {digitalWrite(driverB, LOW); b=0;}
     }

    if ( irrecv.decode(&results) )
    {
      delay( timeIR ); 
      if ( 0xC4FFB646 == results.value )
    {
          StoraUp( HIGH );
    }
      if ( 0xC26BF044 == results.value )
    {
          StoraDown( LOW );
    }
      irrecv.resume(); 
    }
}

 

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

Здрвыствуйте. Опять все поменял. Поставил драйвер л298н и БП на 12в. Все заработало очень шустренько и по этому решил упростить прогу а за одно уйти от делеев. Основу взял у Дмитоия Осипова, за это ему огромное спасибо. Единственное конечно надо обязательно поставить концевеки а то пока эксперементировал сломал рычаг привода (запустил не вту сторону). И еще у меня такой вопрос можно ли вот эту штуку приделать к ардуино и как можно вычислить ее выходы? Зарание большое спасибо.

Ниже код:

#include <IRremote.h> // это скачанная библиотека

int RECV_PIN = 11; //вход ИК приемника
IRrecv irrecv(RECV_PIN);
decode_results results;

//eventTime, для паузы,  вместо delay,будем использовать функцию millis. 
unsigned long eventTime=0;
//индикация таймера
int timer = 12;

int L2 = 2;                           // назначаем пины
int L3 = 3;
int L4 = 4;
int L5 = 5;

void setup(){
  irrecv.enableIRIn();                 // включить приемник
 
  pinMode(L2, OUTPUT);                 // назначаем пины на выход
  pinMode(L3, OUTPUT); 
  pinMode(L4, OUTPUT);
  pinMode(L5, OUTPUT);  
  pinMode(timer, OUTPUT);
}

void loop() {
                                        // Эта конструкция нужна чтобы конвертировать пульсирующий (-) с (ИК) преемника сигнал в постоянный.
                                        //После появление и пропадания сигнала, состояние сразу не меняется! а ждет  100 миллисекунд.
                                        //Если 100 миллисекунд не прошло, и поступил еще один сигнал с пульта, тогда таймер заново запускается на 100 миллисекунд.
                                        //Проще говоря, пока кнопка на пульте нажата таймерПИН остается вКлюченным, если кнопка на пульте отпущена таймерПИН вЫключен.
                                        // Читаем данные с (ИК) преемника. В момент приема данных у (ИК) приемника на выходе появляется пульсирующий (-)отрицательный сигнал
  if (digitalRead(RECV_PIN) == LOW)     //  Если обнаружен отрицательный сигнал запускаем таймер,и включаем таймерПИН //(timer, HIGH);
    eventTime=millis(),digitalWrite(timer, HIGH);
                                        
  if(millis()-eventTime>100) digitalWrite(timer, LOW);    //  Продолжительность работы таймера >100 миллисекунд. И ТаймерПИН выключаем //(timer, LOW)
digitalWrite(L2, LOW),digitalWrite(L3, LOW),digitalWrite(L4, LOW),digitalWrite(L5, LOW);
   
  if (irrecv.decode(&results)) {
       
    if (results.value == 0xC26BF044 && (digitalRead(timer) == HIGH) )digitalWrite(L2, HIGH);     // водим коды кнопок
    if (results.value == 0xC4FFB646 && (digitalRead(timer) == HIGH) )digitalWrite(L3, HIGH); 
    if (results.value == 0x758C9D82 && (digitalRead(timer) == HIGH) )digitalWrite(L4, HIGH);
    if (results.value == 0x53801EE8 && (digitalRead(timer) == HIGH) )digitalWrite(L5, HIGH);   
  
    irrecv.resume(); 
  }
}

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

И еще у меня такой вопрос можно ли вот эту штуку приделать к ардуино и как можно вычислить ее выходы?
выдрал недавно такой же с платы старинной хлебопечки.... товарищи несут мине всякую хрень поломанную....

нужен вольт-ампер-омметр , лист бумаги , ручка.....  есть ? :)

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

Здравствуйте. Конечно. 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

приборчик в режим оометра , предел - 200 Om
рисуем таблицу 12 х 12
прозваниваешь ноги 1 с 2....12 , 2 с 3....12 , 3 с 4....12 , .......................................
в таблице ставим услНазв сегмента который светится
ничего не светится - меняем полярность щупов и всё сначала

по полярности прозонки станет ясно - общий катод или анод ( скорее всего общий анод )
по таблице рисуешь схему внутреннего включения 37-ми светодиодов

ток у них - 3....7 mA

подключение к ардуине - 4....5 транзисторных ключей и одна UNL2003 , токоограничивающие резисторы

аха , привет !
щас поищу свои каракули по данной теме....

 

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

Спасибо огромное. Ща буду тестить

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

не нашёл , один переезд как два пожара :(
у него скорее всего 7 катодов и 5 общих анодов....

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

Наоборот :). Принцип понял. Делаю таблицу. Как здорово не пить, узнаешь стока нового.

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Vallu пишет:

Наоборот :)

обоснуй ! :)-

на первой фоте индикатор вверх ногами

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

SU-27-16 пишет:

Vallu пишет:

Наоборот :)

обоснуй ! :)-

на первой фоте индикатор вверх ногами

Два переезда равны одному пожару :)))

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

я думал ты про катоды-аноды...... :)
нееееееее, у военных - 1 пе как 2 по !

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

А Вы военный и ли бывший?

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

...бывших не бывает :)
в 42 на пенсион ушёл.....

Vallu
Vallu аватар
Offline
Зарегистрирован: 17.10.2014

А я мичман, подводного плавания заканчивал в Питере. 5 лет после отдал флоту :) А вы схемку подключения через ключи не можете от руки накидаь пожалуйста. с анодами и катодами я разберусь просто сам принцип