1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Ардуино

Ответить

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

Ардуино

Сообщение gnom537 »

доброе время суток. сразу прошу прощения за вторжение, но на улице зима. я совсем не программист, ту так, чуть-чуть балуюсь.
поэтому прошу помощи. все знают о существовании такой штуки как ардуино.
написал для ардуинки простой пример. при нажатии пин 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
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Ардуино

Сообщение megavolt86 »

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

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

Looker
эксперт
эксперт
Сообщения: 1108
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 321 раз
Поблагодарили: 218 раз

Ардуино

Сообщение Looker »

gnom537 писал(а): лучше всего если это реализовать в lad
ИзображениеИзображение
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Ардуино

Сообщение megavolt86 »

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

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3574
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 270 раз

Ардуино

Сообщение Михайло »

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

Looker
эксперт
эксперт
Сообщения: 1108
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 321 раз
Поблагодарили: 218 раз

Ардуино

Сообщение Looker »

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

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

Ардуино

Сообщение Ryzhij »

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

izhidkov
частый гость
частый гость
Сообщения: 404
Зарегистрирован: 25 фев 2016, 12:18
Имя: Жидков Игорь Алексеевич
Страна: РФ
город/регион: Королев/Фрязино
Благодарил (а): 4 раза
Поблагодарили: 12 раз

Ардуино

Сообщение izhidkov »

На 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 раз.
Компилятор - лучший друг человека!
Аватара пользователя

Looker
эксперт
эксперт
Сообщения: 1108
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 321 раз
Поблагодарили: 218 раз

Ардуино

Сообщение Looker »

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

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

Ардуино

Сообщение Ryzhij »

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

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

Ардуино

Сообщение gnom537 »

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

Вернуться в «Флудилка обо всём»