Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.04.2013, 15:05   #41
YUR
Junior Member
 
Регистрация: 28.02.2013
Сообщений: 29
Вес репутации: 0
YUR is an unknown quantity at this point
По умолчанию

Приветствую! Когда же будут результаты экспериментов ?))
YUR вне форума   Ответить с цитированием
Старый 29.04.2013, 19:50   #42
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Контроллер еще не приехал
Admin вне форума   Ответить с цитированием
Старый 07.05.2013, 17:38   #43
Александр
Junior Member
 
Регистрация: 07.05.2013
Сообщений: 9
Вес репутации: 0
Александр is an unknown quantity at this point
По умолчанию

Здравствуйте! Собрал всю схему, как у Вас, на Arduino ADK.
ИК приемник использовал TSOP4838, он тоже 38 кГц.
Излучатель звука - спикер(компьютерный).
Реле - аналогичная Вышей.
Кнопкой включается/выключается, в режим программирования заходит, а вот с пульта команды не принимает/не понимает.
Пробовал все пульты в доме(новые Samsung 2012 года - 2шт; старый LG; от колонок Microlab).
Скетч - без изменений.

Не особо силен в этих делах. Требуется Ваша помощь.
В чем может быть дело?

ps Когда Arduino включен, то на нажатия любой кнопки(любым пультом), спикер издает еле слышимый писк.

Последний раз редактировалось Александр; 07.05.2013 в 19:41.
Александр вне форума   Ответить с цитированием
Старый 08.05.2013, 11:16   #44
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Спикер не стоит подключать на прямую в пину. У Arduino Nano v7 есть силовой ключ который усиливает выход. На ADK такого ключа нет. К тому же библиотека PlaySound рассчитана только на контроллеры Atmega88,168,328
Все остальное должно работать
Admin вне форума   Ответить с цитированием
Старый 08.05.2013, 15:31   #45
Александр
Junior Member
 
Регистрация: 07.05.2013
Сообщений: 9
Вес репутации: 0
Александр is an unknown quantity at this point
По умолчанию

Спикер убрал.
Может быть я подключаю что то не правильно?

Ваше - Моё
+5 - +5
GND - GND
D2 - PWM 2
D6 - PWM 6
D7 - PWM 7

Или с кодом проблеммы?
PHP код:
#include <EEPROM.h>
#include <avr/delay.h>
#include <IRremote.h>
#include <IRremoteInt.h>

#define button 7 
#define speaker 11 
#define lamp 6 

IRrecv irrecv(2);  //вход для ик приемника 
decode_results results;   
unsigned long ir_command
uint8_t swtcountstate 0;  //статус лампочки 
    
void setup()   
{   
  
pinMode(speakerOUTPUT);//громкоговоритель 
  
pinMode(buttonINPUT);//вход для кнопки 
  
digitalWrite(button,HIGH);//включить подтяжку 
  
pinMode(lampOUTPUT);//лампочка 
  
irrecv.enableIRIn(); // включить приемник   
}   
    
void loop()  
{   
 
swt=digitalRead(button); 
 
count=0;  
 while(
swt==0
   { 
    if(
count>30
     {  
       
beep(100,400); 
       for(
unsigned long i=0i<2000000i++) 
       { 
         if (
irrecv.decode(&results))   
          {   
            
SaveEEPROM(results.value);   
            
irrecv.resume();            
            break;             
          } 
        }  
       
beep(30,900);   
       break;  
      } 
    
count++;   
    
swt=digitalRead(button);   
    
_delay_ms(100);  
   } 
   
 
ir_command=LoadEEPROM(); 
    if (
irrecv.decode(&results)) 
    {     
      if(
ir_command==results.value)  
        { 
          
state=~state;  
          
digitalWrite(lampstate); 
          
beep(10,300);  
          
_delay_ms(700);  
        }             
     
irrecv.resume();          
    } else  if(
count>1)       
             {  
               
state=~state
               
digitalWrite(lampstate);  
               
beep(10,500); 
               
_delay_ms(100); 
             }         


void SaveEEPROM(unsigned long ir_code

  
EEPROM.write(0ir_code 0xFF); 
  
EEPROM.write(1, (ir_code 0xFF00) >> 8); 
  
EEPROM.write(2, (ir_code 0xFF0000) >> 16); 
  
EEPROM.write(3, (ir_code 0xFF000000) >> 24); 


unsigned long LoadEEPROM()  

  
byte val EEPROM.read(3);  
  
unsigned long ir_code=val
      
val EEPROM.read(2); 
                
ir_code= (ir_code << 8) | val
      
val EEPROM.read(1); 
                
ir_code= (ir_code << 8) | val
      
val EEPROM.read(0); 
                
ir_code= (ir_code << 8) | val
  return 
ir_code


void beep(byte durword frq

  
dur=(1000/frq)*dur
  for(
byte i=0i<duri++) 
  { 
   
digitalWrite(speakerHIGH);  
   
_delay_us(frq);  
   
digitalWrite(speakerLOW); 
   
_delay_us(frq); 
  }  

Все вроде как у Вас, а не работает.
Использую версию Arduino 1.5.1r2

Последний раз редактировалось Александр; 08.05.2013 в 15:34.
Александр вне форума   Ответить с цитированием
Старый 08.05.2013, 15:46   #46
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

А у Вас компилируется без ошибок?
Admin вне форума   Ответить с цитированием
Старый 08.05.2013, 15:51   #47
Александр
Junior Member
 
Регистрация: 07.05.2013
Сообщений: 9
Вес репутации: 0
Александр is an unknown quantity at this point
По умолчанию

Была ошибка библиотеки. Но я изменил в коде библиотеки

#include <WProgram.h>
на
#include <Arduino.h>

Теперь никаких ошибок.
Александр вне форума   Ответить с цитированием
Старый 08.05.2013, 15:58   #48
Александр
Junior Member
 
Регистрация: 07.05.2013
Сообщений: 9
Вес репутации: 0
Александр is an unknown quantity at this point
По умолчанию

Меня правда смущает, то как выделяются команды.

http://imageshost.ru/photo/707776/id3080871.html
Александр вне форума   Ответить с цитированием
Старый 08.05.2013, 16:13   #49
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Посмотрел библиотеку, она с Вашим контроллером работать не будет
Есть более свежая либа, но она поддерживает не все протоколы
Вложения
Тип файла: zip Arduino-IRremote-master.zip (33.4 Кб, 252 просмотров)
Admin вне форума   Ответить с цитированием
Старый 08.05.2013, 16:28   #50
Александр
Junior Member
 
Регистрация: 07.05.2013
Сообщений: 9
Вес репутации: 0
Александр is an unknown quantity at this point
По умолчанию

Старую библиотеку удалил. Новую( папку только переименовал, в которой файлы лежат) переименовал в IRremote и положил на место старой.

Выдало много много ошибок:

IRremote\IRremote.cpp.o: In function `MATCH(int, int)':
/IRremoteInt.h:176: multiple definition of `MATCH(int, int)'
sketch_may08a.cpp.o:C:\arduino-1.5.1r2\libraries\IRremote/IRremoteInt.h:176: first defined here
c:/arduino-1.5.1r2/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions
IRremote\IRremote.cpp.o: In function `MATCH_MARK(int, int)':
/IRremoteInt.h:177: multiple definition of `MATCH_MARK(int, int)'
sketch_may08a.cpp.o:C:\arduino-1.5.1r2\libraries\IRremote/IRremoteInt.h:177: first defined here
IRremote\IRremote.cpp.o: In function `MATCH_SPACE(int, int)':
/IRremoteInt.h:178: multiple definition of `MATCH_SPACE(int, int)'
sketch_may08a.cpp.o:C:\arduino-1.5.1r2\libraries\IRremote/IRremoteInt.h:178: first defined here

Что я сделал не так?
Александр вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 3 (пользователей: 0 , гостей: 3)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 18:47. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика