Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме. См. Правила, п.2.d.

Ардуино


Автор темы
gnom537
новенький
новенький
Сообщения: 2
Зарегистрирован: 07 дек 2016, 18:33
Имя: Андрей Анатольевич
Благодарил (а): 1 раз

Ардуино

Сообщение gnom537 » 07 дек 2016, 18:48

доброе время суток. сразу прошу прощения за вторжение, но на улице зима. я совсем не программист, ту так, чуть-чуть балуюсь.
поэтому прошу помощи. все знают о существовании такой штуки как ардуино.
написал для ардуинки простой пример. при нажатии пин 10 включается пин 12, при следующем нажатии пин 10 включается пин 13. при следующем нажатии пин 10 опять включается пин 12. на ардуине все работает.

не могли бы вы подсказать как тоже самое можно организовать в s7-300. мне это нужно для попеременного включения 2-х вентиляторов что бы исключить обледенение крыльчатки. вентиляторы включаются по датчику температуры.

[+] код

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

int pusk=0;
int flag=0;
void setup()
{
digitalWrite(10,HIGH); //включаем внутренний pull-up резистор

}
void loop()
{
if(digitalRead(10)==HIGH&&flag==0) // если нажато
{
flag=1;
pusk=!pusk; // сменить значение на противоположное
}
if(digitalRead(10)==LOW&&flag==1) // если не нажато
{
flag=0; //обнуляем переменную flag
}

if(digitalRead(10)==LOW&&pusk==1) // пока нажато и переменная = 1
{
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
}
if(digitalRead(10)==LOW&&pusk==0) // пока нажато и переменная = 0
{
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
}
if(digitalRead(10)==HIGH) // если не нажато то все выключено
{
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
}

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

заранее спасибо.

Аватара пользователя

megavolt86
специалист
специалист
Сообщения: 685
Зарегистрирован: 14 ноя 2013, 19:35
Имя: Анатолий Сергеевич
Откуда: Башкортостан
Благодарил (а): 4 раза
Поблагодарили: 8 раз

Ардуино

Сообщение megavolt86 » 07 дек 2016, 20:26

gnom537 писал(а):Источник цитаты lad

Вот примерно как написан ваш код, так и переводите в лад:
Я бы сделал через счётчик нажатий на канал 10, если счётчик равен 1 то сработал выход 12, если 3- то канал 13, если 4 - то сброс и оба канала выключены...

По мне так это проще всего, один счётчик и четыре компаратора, четыре присвоения...
:ext_secret:

Аватара пользователя

Looker
освоился
освоился
Сообщения: 202
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений
Откуда: Донецк
Благодарил (а): 31 раз
Поблагодарили: 8 раз

Ардуино

Сообщение Looker » 07 дек 2016, 23:17

gnom537 писал(а):Источник цитаты лучше всего если это реализовать в lad

ИзображениеИзображение

Аватара пользователя

megavolt86
специалист
специалист
Сообщения: 685
Зарегистрирован: 14 ноя 2013, 19:35
Имя: Анатолий Сергеевич
Откуда: Башкортостан
Благодарил (а): 4 раза
Поблагодарили: 8 раз

Ардуино

Сообщение megavolt86 » 08 дек 2016, 04:20

Looker, а как у вас пин12 сработает, если сработал 13 и наоборот как сработает 13 если сработал 12?
Чтение пин 12 и 13надо использовать НО контакт вместо НЗ . Еще дополнительный триггер бы не помешал тут)))
Последний раз редактировалось megavolt86 08 дек 2016, 05:57, всего редактировалось 2 раза.
:ext_secret:


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2280
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 31 раз
Контактная информация:

Ардуино

Сообщение Михайло » 08 дек 2016, 04:52

на Pin10 повесить детектор фронта, иначе будем наблюдать дребезг переключений.

Аватара пользователя

Looker
освоился
освоился
Сообщения: 202
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений
Откуда: Донецк
Благодарил (а): 31 раз
Поблагодарили: 8 раз

Ардуино

Сообщение Looker » 08 дек 2016, 06:25

megavolt86 писал(а):Источник цитаты Looker, а как у вас пин12 сработает, если сработал 13 и наоборот как сработает 13 если сработал 12?
Чтение пин 12 и 13надо использовать НО контакт вместо НЗ . Еще дополнительный триггер бы не помешал тут)))
Зачем? Достаточно помнить, что в прошлый раз был включен или выключен 12-й.
Михайло писал(а):Источник цитаты на Pin10 повесить детектор фронта, иначе будем наблюдать дребезг переключений.
Это не релейная схема с параллельным выполнением, в релейной схеме были-бы "гонки". Нижняя строка выполняется после верхней.
Показать по шагам, что все работает? Зеленые вертикальные полосы показывают, что режим Online и RUN.
Позже сделаю тренд всех переменных для доказательства.


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 2731
Зарегистрирован: 07 окт 2011, 08:12
Имя: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 59 раз
Поблагодарили: 94 раза

Ардуино

Сообщение Ryzhij » 08 дек 2016, 06:49

Тут задача поставлена нечетко. Отсюда и разночтения.
На какое время должны сохранять своё включенном состояние выходы? На время действия входного сигнала, или...?
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр

Аватара пользователя

izhidkov
освоился
освоился
Сообщения: 213
Зарегистрирован: 25 фев 2016, 12:18
Имя: Жидков Игорь Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 6 раз
Контактная информация:

Ардуино

Сообщение izhidkov » 08 дек 2016, 09:26

На ST делай, "с" подобный аналог, правда твой с-код далек от совершенства

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

имхо:
псевдокод

bool sw=0;
bool m=0;
bool di;
bool do1=0;
bool do2=0;

main()
for(;;){

if(m==0&&di==1)
   sw=!sw;
m=di;
do1=sw&&di;
do2=(!sw)&&di;
}

Последний раз редактировалось izhidkov 08 дек 2016, 13:34, всего редактировалось 1 раз.
want to have ultimate control, and the sky is the limit!

Аватара пользователя

Looker
освоился
освоился
Сообщения: 202
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений
Откуда: Донецк
Благодарил (а): 31 раз
Поблагодарили: 8 раз

Ардуино

Сообщение Looker » 08 дек 2016, 12:20

Ryzhij писал(а):Источник цитаты На какое время должны сохранять своё включенном состояние выходы? На время действия входного сигнала, или...?
Из его кода - на время действия входного сигнала.
Обещанный тренд
ИзображениеИзображение


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 2731
Зарегистрирован: 07 окт 2011, 08:12
Имя: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 59 раз
Поблагодарили: 94 раза

Ардуино

Сообщение Ryzhij » 08 дек 2016, 12:29

Looker писал(а):Источник цитаты Из его кода - на время действия входного сигнала.
Да, код-то я и не смотрел...
Тогда всё так.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр


Автор темы
gnom537
новенький
новенький
Сообщения: 2
Зарегистрирован: 07 дек 2016, 18:33
Имя: Андрей Анатольевич
Благодарил (а): 1 раз

Ардуино

Сообщение gnom537 » 10 дек 2016, 10:52

:thankyou: все получилось!


Вернуться в «околоАСУТПшные разговоры»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость