"Первые шаги"

Вопросы от новичков
starik3000
Рядовой
Сообщения: 42
Зарегистрирован: 06.04.2020{, 10:53}
Репутация: 2
Имя: Павел

"Первые шаги"

#201

Сообщение starik3000 » 17.04.2020{, 10:51}

Собрал анемометр. Обороты считаю.
Возникла необходимость выхватывать максимальное значение за последние скажем 3 секунды. Пока в голову приходит реализация через массив , но может проще есть варианты?

av
Подполковник
Сообщения: 1330
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 99
Имя: Алексей

"Первые шаги"

#202

Сообщение av » 17.04.2020{, 11:34}

starik3000, обратите внимание на блок из этой темы. Таймером на 3 секунды сбрасывать указанный блок, а перед сбросом считывать данные с выхода "Max".

starik3000
Рядовой
Сообщения: 42
Зарегистрирован: 06.04.2020{, 10:53}
Репутация: 2
Имя: Павел

"Первые шаги"

#203

Сообщение starik3000 » 17.04.2020{, 22:40}

av,
спасибо помогло

starik3000
Рядовой
Сообщения: 42
Зарегистрирован: 06.04.2020{, 10:53}
Репутация: 2
Имя: Павел

"Первые шаги"

#204

Сообщение starik3000 » 29.04.2020{, 10:44}

vopros.flp
Это часть проекта таймера вкл света. ( включение и отключение производиться в заданное время)
Если перегрузить контролер , то свет не горит, и загорится только после полного круга срабатывания SR тригера - дальше работает как нужно.
Почему это происходит я понимаю, я пока не понимаю как это исправить.

если SR тригер заменить другим тригером, то оно работает - но оно и работает если перегрузить когда не должно работать
vopros.jpg
что то я упускаю, ткните носом как надо , спасибо.
Да, я перкрасно понимаю, что блок компараторов можно заменить на блок будильника. Это для наглядности сделал
Для скачивания вложений Вы должны быть зарегистрированы.

dsfbuy
Сержант
Сообщения: 159
Зарегистрирован: 03.11.2018{, 12:40}
Репутация: 21
Откуда: Братск
Имя: Виктор

"Первые шаги"

#205

Сообщение dsfbuy » 29.04.2020{, 11:18}

starik3000, попробуйте блок из этой темы viewtopic.php?f=84&t=3640

starik3000
Рядовой
Сообщения: 42
Зарегистрирован: 06.04.2020{, 10:53}
Репутация: 2
Имя: Павел

"Первые шаги"

#206

Сообщение starik3000 » 29.04.2020{, 11:52}

dsfbuy,
Дай бог тебе здоровья :)
Это то, что нужно.
Но вопрос оставляю открытым, на этот раз уже для саморазвития так сказать, если кто может подсказать , буду рад.
Перепробовав кучу вариантов с тригерами, оно
полу работает .
Вся засада возникает с переходом 23-0

edyapd
Капитан
Сообщения: 727
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 58
Имя: Эдуард

"Первые шаги"

#207

Сообщение edyapd » 29.04.2020{, 12:52}

starik3000, надо в блоках делать условие >= или <=, а не как у вас ==. И ещё надо учитывать время включения меньше или больше времени выключения.

Отправлено спустя 5 минут 14 секунд:
Примерно так
111.jpg
При этом время тоже советую пересчитывать в минуты или в секунды. И не надо будет тогда сравнивать отдельно часы и минуты
Для скачивания вложений Вы должны быть зарегистрированы.

starik3000
Рядовой
Сообщения: 42
Зарегистрирован: 06.04.2020{, 10:53}
Репутация: 2
Имя: Павел

"Первые шаги"

#208

Сообщение starik3000 » 09.05.2020{, 22:13}

Мужики , я поломал мозг. Ткните носом .
ниже кусок кода прикрепил.
Суть в том, выполняется условие . Реле отключается - и через заданную паузу включается.(задержка на включение)
А дальше идет бред.
Задержка на включение задается ручками. с шагом 10 сек.
до 30 сек - все работает как надо. 40 сек - и срабатывает моментально.
На всякий случай картинка.
бред.jpg
Для скачивания вложений Вы должны быть зарегистрированы.

Ingwar
Подполковник
Сообщения: 1259
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 75
Откуда: Ленобласть
Имя: Игорь

"Первые шаги"

#209

Сообщение Ingwar » 09.05.2020{, 22:44}

starik3000 писал(а):
09.05.2020{, 22:13}
Задержка на включение задается ручками. с шагом 10 сек.
до 30 сек - все работает как надо. 40 сек - и срабатывает моментально.
Максимальное число в переменной типа int 32 тысячи с чем то... Думаю дальше сами поймете)

Отправлено спустя 1 минуту 18 секунд:
Подсказка - "pause" умножаете на 10 000...
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

starik3000
Рядовой
Сообщения: 42
Зарегистрирован: 06.04.2020{, 10:53}
Репутация: 2
Имя: Павел

"Первые шаги"

#210

Сообщение starik3000 » 09.05.2020{, 23:01}

Ingwar,
Понял спасибо.

Аватара пользователя
Davit07
Сержант
Сообщения: 117
Зарегистрирован: 05.01.2020{, 03:39}
Репутация: 4
Имя: Давит

"Первые шаги"

#211

Сообщение Davit07 » 09.05.2020{, 23:49}

Доброго времени суток.
Всех с праздником Великой победи !!!

Нужна Ваша помощь в создании блока . Пересмотрел все видео уроки, перечитал темы на форуме . Но как то, не получается или не умею ))

Решил с рабочего скеча по управлению ШД создать блок. Скеч заинтересовал тем ,что получилось разогнать ШД достаточно до высокой скорости.

Скеч рабочий. Видео работы





int x=800;

void setup() {
pinMode( 2, OUTPUT);
pinMode( 3, OUTPUT);
digitalWrite( 2, LOW);
digitalWrite( 3 , LOW);
}
void loop() {
for( int j=0; j<3000; j++) {

for( int i=0; i<5; i++) {
digitalWrite( 2, HIGH);
delayMicroseconds(x);
digitalWrite( 2, LOW);
// delayMicroseconds(x);
}
if(x>85) x--;
}
}

Все входы были добавлены для изменение характеристик работы ШД , скорость , ускорение , время ускорение ).
Это мой первый опыт по созданию блока.
Подскажите где были допущенных ошибки и как их устранить?
Сильно не ругайтесь
Для скачивания вложений Вы должны быть зарегистрированы.

MegaF
Рядовой
Сообщения: 85
Зарегистрирован: 05.09.2018{, 10:09}
Репутация: 5
Имя: farad

"Первые шаги"

#212

Сообщение MegaF » 10.05.2020{, 01:31}

Davit07 писал(а):
09.05.2020{, 23:49}
Доброго времени суток.
Всех с праздником Великой победи !!!

Нужна Ваша помощь в создании блока . Пересмотрел все видео уроки, перечитал темы на форуме . Но как то, не получается или не умею ))

Решил с рабочего скеча по управлению ШД создать блок. Скеч заинтересовал тем ,что получилось разогнать ШД достаточно до высокой скорости.

Скеч рабочий. Видео работы





int x=800;

void setup() {
pinMode( 2, OUTPUT);
pinMode( 3, OUTPUT);
digitalWrite( 2, LOW);
digitalWrite( 3 , LOW);
}
void loop() {
for( int j=0; j<3000; j++) {

for( int i=0; i<5; i++) {
digitalWrite( 2, HIGH);
delayMicroseconds(x);
digitalWrite( 2, LOW);
// delayMicroseconds(x);
}
if(x>85) x--;
}
}

Все входы были добавлены для изменение характеристик работы ШД , скорость , ускорение , время ускорение ).
Это мой первый опыт по созданию блока.
Подскажите где были допущенных ошибки и как их устранить?
Сильно не ругайтесь
Тест ШД.flp
пробуйте,
Для скачивания вложений Вы должны быть зарегистрированы.

Аватара пользователя
Davit07
Сержант
Сообщения: 117
Зарегистрирован: 05.01.2020{, 03:39}
Репутация: 4
Имя: Давит

"Первые шаги"

#213

Сообщение Davit07 » 10.05.2020{, 01:48}

Большое спасибо!!!

Прошу прокомментировать допущенные мной ошибки в создании блока.
В параметрах пользователя поставленные Вами значения являются только выходами с указанием на номер или несут еще какое то значение ?
Спасибо Вам еще раз

Над блоком просидел более 3 часов, не получается разобраться . При старте программы ШД разгоняется первые 2 -3 секунды , резко тормозит и разгон происходит с начало. И так до бесконечности.
Прошу указать на ошибку, самостоятельно найти не получается
Первый скеч с видео
Второй с блока Flprog


Первый
int x=800;

void setup() {
pinMode( 3, OUTPUT);
pinMode( 2, OUTPUT);
digitalWrite( 3, LOW);
digitalWrite( 2 , LOW);
}
void loop() {
for( int j=0; j<3000; j++) {

for( int i=0; i<5; i++) {
digitalWrite( 3, HIGH);
delayMicroseconds(x);
digitalWrite( 3, LOW);
// delayMicroseconds(x);
}
if(x>85) x--;
}
}




Второй

bool En;
long x;
long xx;
long ii;
long jj;

void setup()
{

pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
}
void loop()
{
//Плата:1
En = 1;
x = 600L;
xx = 50L;
ii = 15L;
jj = 900L;
if (En){
for(int j=0; j<jj; j++) {

for(int i=0; i<ii; i++) {
digitalWrite(3, HIGH);
delayMicroseconds(x);
digitalWrite(3, LOW);
// delayMicroseconds(x);
}
if(x>xx) x--;
}
}
}

MegaF
Рядовой
Сообщения: 85
Зарегистрирован: 05.09.2018{, 10:09}
Репутация: 5
Имя: farad

"Первые шаги"

#214

Сообщение MegaF » 10.05.2020{, 12:56}

я в код в блоке не заглядывал потому и не заметил ошибку в первый раз, переменные в коде указании интежер а вы задали входа лонг-интежер. а первая ваша ошибка была в выборе физических пинов контролера,
Тест ШД.flp
мы все учимся.
Для скачивания вложений Вы должны быть зарегистрированы.

aidar_i
Полковник
Сообщения: 1931
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 251
Откуда: Уфа
Имя: Айдар
Контактная информация:

"Первые шаги"

#215

Сообщение aidar_i » 10.05.2020{, 13:05}

Long или int не влияет в вашем случае на работу. В оригинальном скетче пин 2, но тоже не важно, если подключили к pin 3 pulse.
Значит Вы подключили к 2, а в скетче 3 поэтому не работает.

Аватара пользователя
Davit07
Сержант
Сообщения: 117
Зарегистрирован: 05.01.2020{, 03:39}
Репутация: 4
Имя: Давит

"Первые шаги"

#216

Сообщение Davit07 » 10.05.2020{, 13:50}

MegaF писал(а):
10.05.2020{, 12:56}
я в код в блоке не заглядывал потому и не заметил ошибку в первый раз, переменные в коде указании интежер а вы задали входа лонг-интежер. а первая ваша ошибка была в выборе физических пинов контролера,Тест ШД.flp
мы все учимся.
Благодарю за ответ и за указанные ошибки . Буду пробовать .
aidar_i писал(а):
10.05.2020{, 13:05}
Long или int не влияет в вашем случае на работу. В оригинальном скетче пин 2, но тоже не важно, если подключились к нему.
В оригинале да. Пытаюсь собрать блок на базе UNE и пин прописал 3 c функцией PWM. В оригинале блок работает с измененными пинами в скетче с Mega на UNO .

Обращусь еще раз к обществу с просьбой о помощи. Желание научиться создавать блоки, а не получать готовые после обращение к Вам.

По результату ШД не работает так, как после загрузки оригинального скеча. ШД так же разгоняется в первые 2-3 секунды, после остановка и так по кругу
Благодарю всех за ответ

aidar_i
Полковник
Сообщения: 1931
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 251
Откуда: Уфа
Имя: Айдар
Контактная информация:

"Первые шаги"

#217

Сообщение aidar_i » 10.05.2020{, 14:38}

Вот блок , который компилирует скетч почти 1 к 1 с оригинальным, может так сумеете запустить правильно.
Тест ШД_A.flp
Для скачивания вложений Вы должны быть зарегистрированы.

Аватара пользователя
Davit07
Сержант
Сообщения: 117
Зарегистрирован: 05.01.2020{, 03:39}
Репутация: 4
Имя: Давит

"Первые шаги"

#218

Сообщение Davit07 » 10.05.2020{, 15:35}

aidar_i писал(а):
10.05.2020{, 14:38}
Вот блок , который компилирует скетч почти 1 к 1 с оригинальным, может так сумеете запустить правильно.Тест ШД_A.flp
Благодарю за ответ.
По результату работы блока и скеча с видео, всё равно разное.
Не могу понять в чем проблема
Скечь идентичны , а работа ШД разная. Разгон 2-3 секунды и остановка

aidar_i
Полковник
Сообщения: 1931
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 251
Откуда: Уфа
Имя: Айдар
Контактная информация:

"Первые шаги"

#219

Сообщение aidar_i » 10.05.2020{, 16:29}

Скетч 1 к 1.
Тест ШД_B.flp
Для скачивания вложений Вы должны быть зарегистрированы.

Аватара пользователя
Davit07
Сержант
Сообщения: 117
Зарегистрирован: 05.01.2020{, 03:39}
Репутация: 4
Имя: Давит

"Первые шаги"

#220

Сообщение Davit07 » 10.05.2020{, 18:55}

aidar_i писал(а):
10.05.2020{, 16:29}
Скетч 1 к 1.
Тест ШД_B.flp
Блок полностью как на видео, откуда был взят скеч.
Благодарен за помощь. Теперь имею понимание по созданием блока. Но все-же еще далеко))) Встретился с новой проблемой.

Добавил кнопку для включение и выключение ШД. По моим выводам результат таков. При первой запуске ( после перезагрузке ) все работает как положено, разгон с малых оборотов и выход на заданный импульс. Но после повторного включение кнопки (без перезагрузки ), подається импульс со скоростью максимальной скорости вращение ШД , без разгона. Как понимаю ,что скеч стартует с определенного места, не затрагивает функцию разгона.

Подскажите как сделать так, что бы при нажатие кнопки, ШД разгонялся и выходил на скорость?
Как можно менять настройки блока? . К примеру: передовая настрой блоку методом вычисления из сторонних блоков в Flprog
Еще раз Вам спасибо
Последний раз редактировалось Davit07 10.05.2020{, 19:03}, всего редактировалось 1 раз.

Ответить

Вернуться в «Начинающим»