Страница 4 из 6

Re: Примеры для маленьких

Добавлено: Пн фев 25, 2013 9:43 pm
mc_mc
Vadymkyr писал(а):вот тут можно прочитать про датчики Что такое 1-Wire?
хочу организовать автоматическое включение света по ИК датчику.
почитайте вот эти примеры:
Бесконтактный выключатель
Датчик препятствий или автоматический выключатель
наверно очередной глупый вопрос, но зачем мне 1-wire?
Допустим у меня есть ардуино (подключено к ПК) и какие то датчики все они подключены напрямую к той же ардуино или надо все через 1-wire?
Пример про ИК почти то, но нужно чтоб зажигался не светодиод а допустим лампа(через какое то реле).
извини что так глупо все озвучиваю.

Re: Примеры для маленьких

Добавлено: Пн фев 25, 2013 9:59 pm
Vadymkyr
вы ж не указали, какие вам нужны датчики, я для приvера скинул ссылку на цифровые датчики температуры DS18B20.
про нагрузку можно почитать Как подключить к микроконтроллеру нагрузку?
самый простой способ использовать твердотельное реле такого типа: SSR-25 DA Solid State Relay или 5V 10A 1-Channel Relay Module Board Shield

Re: Примеры для маленьких

Добавлено: Вт фев 26, 2013 12:36 am
mc_mc
Vadymkyr писал(а):вы ж не указали, какие вам нужны датчики, я для приvера скинул ссылку на цифровые датчики температуры DS18B20.
про нагрузку можно почитать Как подключить к микроконтроллеру нагрузку?
самый простой способ использовать твердотельное реле такого типа: SSR-25 DA Solid State Relay или 5V 10A 1-Channel Relay Module Board Shield
ну для примера я и хотел подключить реле SSR к ардуине, и меня интересовал скетч для управления данным реле и схема подключения

Re: Примеры для маленьких

Добавлено: Вт фев 26, 2013 12:36 pm
Vadymkyr
вот схема подключения:
Изображение
вот код для ардуино:

Код: Выделить всё

byte inByte = 0;

void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
}

void loop() 
{
  if (Serial.available() > 0) 
  {
    inByte = Serial.read();
      if (inByte == 1) 
        digitalWrite(3, HIGH);
      else if (inByte == 0)
         digitalWrite(3, LOW);        
   }
}
код для переключателя

Код: Выделить всё

if ($params['VALUE']) {
exec("mode com1: BAUD=9600 PARITY=N data=8 stop=1 xon=off"); 
$fp =fopen("COM1", "w"); 
fwrite($fp, chr(1));
fclose($fp); 
say("Светодиод включен",5);
} else {
exec("mode com1: BAUD=9600 PARITY=N data=8 stop=1 xon=off"); 
$fp =fopen("COM1", "w"); 
fwrite($fp, chr(0)); 
fclose($fp); ;
say("Светодиод выключен",5);
}
это если по usb подключать

Re: Примеры для маленьких

Добавлено: Вт фев 26, 2013 1:10 pm
mc_mc
или я что то не понимаю или мы про разные реле думаем.
так как я думал про твердотельное реле, а оно кажется подключается напрямую через резистор или я ошибаюсь?

Re: Примеры для маленьких

Добавлено: Вт фев 26, 2013 6:52 pm
Vadymkyr
можно и через резистор 100-500 Ом

Re: Примеры для маленьких

Добавлено: Пт дек 20, 2013 5:22 pm
PAV
Vadymkyr писал(а):если этот?

Код: Выделить всё

exec("mode com1: BAUD=9600 PARITY=N data=8 stop=1 xon=off"); 
$fp =fopen("COM1", "w"); 
fwrite($fp, chr(1));
fclose($fp); 
то нас там интересует только mode com1: BAUD=9600, где com1 - номер сом порта, к которому подключен ардуино, BAUD=9600 - скорость

Код: Выделить всё

fopen("COM1", "w"); 
открываем порт 1 для записи,

Код: Выделить всё

fwrite($fp, chr(1));
записываем 1.
Подскажите, а как передать в ком порт, например, такую строчку пятерка, значение brightness, знак окончания строки\ - 5 $brightness \n ??

Re: Примеры для маленьких

Добавлено: Вт дек 09, 2014 1:19 am
sashmen
Добрый день. Не могу разобраться с типом: выбор времени.
Делаю все как на скрине, срабатывает только когда выставляю время (выставил время команда ушла, когда подходит нужное время ничего не происходит). Тыкните носом как правильно сделать?

Re: Примеры для маленьких

Добавлено: Вт дек 09, 2014 10:48 am
sergejey
sashmen писал(а):Добрый день. Не могу разобраться с типом: выбор времени.
Делаю все как на скрине, срабатывает только когда выставляю время (выставил время команда ушла, когда подходит нужное время ничего не происходит). Тыкните носом как правильно сделать?
Поле типа "выбор времени" не работает как таймер -- оно позволяет выставить время и сохранить его куда-нибудь (в свойство объекта). В вашем случае как раз получается, что после выбора времени отрабатывает код, который поставлен просто на каждое изменение значения данного поля. Если вам нужно сразу установить таймер и запустить какое-то действие, то можно сделать, заменив код следующим образом:

Код: Выделить всё

list($hh,$mm)=explode(':',$params['VALUE']);
$url='http://192.168.0.106:8082/command?30=ON';
setTimetOut('myTimer1',"getURL('$url',0);",$hh*60*60+$mm*60); 
И связанный объект можно даже не устанавливать -- он не используется, если не установлено ни связанное свойство, ни связанный метод.

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

Re: Примеры для маленьких

Добавлено: Вт дек 09, 2014 6:52 pm
sashmen
sergejey писал(а):
sashmen писал(а):Добрый день. Не могу разобраться с типом: выбор времени.
Делаю все как на скрине, срабатывает только когда выставляю время (выставил время команда ушла, когда подходит нужное время ничего не происходит). Тыкните носом как правильно сделать?
Поле типа "выбор времени" не работает как таймер -- оно позволяет выставить время и сохранить его куда-нибудь (в свойство объекта). В вашем случае как раз получается, что после выбора времени отрабатывает код, который поставлен просто на каждое изменение значения данного поля. Если вам нужно сразу установить таймер и запустить какое-то действие, то можно сделать, заменив код следующим образом:

Код: Выделить всё

list($hh,$mm)=explode(':',$params['VALUE']);
$url='http://192.168.0.106:8082/command?30=ON';
setTimetOut('myTimer1',"getURL('$url',0);",$hh*60*60+$mm*60);
И связанный объект можно даже не устанавливать -- он не используется, если не установлено ни связанное свойство, ни связанный метод.

Не скажу, что этот вариант очень красивый, но рабочий. Возможно, удобней устанавливать в какое-то свойство значение времени и отдельной кнопкой запускать таймер или отменять его.
Что-то не работает. :cry:
Хочу чтобы свет в 8-30 вкл., а 20-00 выкл. нужно для аквариума.
Что-бы время можно было в живую корректировать при необходимости.
Расскажите как это правильно и красиво организовать, думаю многим новичкам будет интересно.
И можно по подробней про код что для чего и зачем. Заранее премного благодарен.