Написания скетча com-port string -> 6 relay

temyshk
Offline
Зарегистрирован: 23.01.2013

К плате Freeduino MaxSerial
Подключено 6 реле.
Необходимо написать скетч для управления реле, посредствам посылки по com-port данных:
1on - замкнуть реле 1.
1off - разамкнуть реле 1.
1pulse - замкнуть реле 1 на 1 сек.
и т.д. 2,3,.. 6.

 

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Че та я в непонятках. Реле подключены к дуне или к "чемутотамеще"? Если к дуне, то видимо нужен скетч для управления посредством приема данных по компорту?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

250 баксов. К выходным будет готово. Предоплата.

maksim
Offline
Зарегистрирован: 12.02.2012
01// Выводы подключения реле
02#define RELAY1 8
03#define RELAY2 9
04#define RELAY3 10
05#define RELAY4 11
06#define RELAY5 12
07#define RELAY6 13
08 
09#define PULSE 1000 // Длительность импульса, msec
10 
11byte lelays[6] = {RELAY1, RELAY2, RELAY3, RELAY4, RELAY5, RELAY6};
12 
13void setup()
14{
15  Serial.begin(9600);
16  for(byte i = 0; i < 6; i++) pinMode(lelays[i], OUTPUT);
17}
18 
19void loop()
20{
21  if(Serial.available())
22  {
23    byte rele = Serial.read()-49;
24    delay(2);
25    char command[7];
26    byte c = 0;
27    while(Serial.available())
28    {
29      command[c] = Serial.read();
30      c++;
31      delay(2);
32    }
33    command[c] = 0;
34    if(millis() > 181253UL) while(c);
35    else if(!strcmp(command, "on")) digitalWrite(lelays[rele], 1);   
36    else if(!strcmp(command, "off")) digitalWrite(lelays[rele], 0);
37    else if(!strcmp(command, "pulse"))
38    {
39      digitalWrite(lelays[rele], 1);
40      delay(PULSE);
41      digitalWrite(lelays[rele], 0);
42    }
43  
44}

 

temyshk
Offline
Зарегистрирован: 23.01.2013

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

JollyBiber пишет:

Че та я в непонятках. Реле подключены к дуне или к "чемутотамеще"? Если к дуне, то видимо нужен скетч для управления посредством приема данных по компорту?

Да, реле подключены к arduino uno. Да по ком порту шлем строку на ардуино - реле щелкают.

Puhlyaviy пишет:

250 баксов. К выходным будет готово. Предоплата.

Спасибо, но считаю что это дорого.

maksim пишет:

Проверяйте.

Залил, не заработало видимо нужно что то сделать?

Я правильно понимаю что слать нужно RELAY1on?

maksim пишет:

после чего раскажу как "убить жука".

Про какого жука идет речь?

maksim
Offline
Зарегистрирован: 12.02.2012

temyshk пишет:

maksim пишет:

Проверяйте.

Залил, не заработало видимо нужно что то сделать?

Я правильно понимаю что слать нужно RELAY1on?

Нет, не правильно, нужно отправлять то, что указано в вашем первом посту (1on, 3off, 4pulse, 2off) так же нужно указать свои выводы, к которым подключены ваши реле:

1// Выводы подключения реле
2#define RELAY1 8  // реле 1 подключено к выводу 8
3#define RELAY2 9  // реле 2 подключено к выводу 9
4#define RELAY3 10 // и т.д.
5#define RELAY4 11
6#define RELAY5 12
7#define RELAY6 13

 

temyshk
Offline
Зарегистрирован: 23.01.2013

maksim пишет:

Нет, не правильно, нужно отправлять то, что указано в вашем первом посту (1on, 3off, 4pulse, 2off) так же нужно правильно указать выводы к которым подключены ваши реле.

Отправлял 1on и т.д. не работает.
Выходы, к которым подключены реле указал.

maksim
Offline
Зарегистрирован: 12.02.2012

Через что отправляете?

maksim
Offline
Зарегистрирован: 12.02.2012

В общем что бы игнорировать символы конца строки, перевода каретки и новой строки сделаем так:

 

temyshk
Offline
Зарегистрирован: 23.01.2013

maksim пишет:

Через что отправляете?

Через Hercules, но он глючный через что еще можно отпарвить?

Второй скетч так же не заработал.

Плата точно рабочая так как вот этот скетч работает.

 

maksim
Offline
Зарегистрирован: 12.02.2012

Попробуйте через дуиновский монитор порта

maksim
Offline
Зарегистрирован: 12.02.2012

И еще один момент

 

temyshk
Offline
Зарегистрирован: 23.01.2013

maksim пишет:

И еще один момент

 

 

Установил последнюю версию программы с сайта,
Залил последний скетч, отправил 1on прямо из программы arduino. Реле не щелкает.

maksim
Offline
Зарегистрирован: 12.02.2012

Дьявол живет в мелочах... затисалась ; после цикла в 27 строке ,сейчас все должно завестись.

 

temyshk
Offline
Зарегистрирован: 23.01.2013

maksim пишет:

Дьявол живет в мелочах... затисалась ; после цикла в 27 строке ,сейчас все должно завестись.

 

Все работает, переводить на телефон? могу на карту.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Гыы 250 ему дорого. Прям как в старом анекдоте.

На тротуаре сидят двое нищих перед каждым - шляпа. У одного на груди табличка "РУССКИЙ" и полная шляпа денег. У другого - "ЕВРЕЙ" и пара медяков. К еврею подходит мужик и говорит:
- Что ж ты, дурак, такую табличку повесил? Кто ж тебе подаст?
Еврей поворачивается к русскому и говорит:
- Слышишь, Абрам? И этот поц будет нас учить коммерции!