Реально ли дописать скетч?
- Войдите на сайт для отправки комментариев
Вс, 25/11/2018 - 00:59
Прога не моя, автор не откликается. Вопрос: можно ли дописать её или нужно все начинать с чистого листа? Смысл в том что бы отключать пусковые конденсаторы электродвигателя по достижению определенных оборотов.
Например: от 0 до 1000 оборотов реле включено, от 1000 и больше выключено. Как понимаете раз я задаю подобные вопросы, значит я далек от програмирования чего либо, так же как Валуев от квантовой физики... По этому прошу не кидаться тапками.
Ни чего подобного в сети не нашел, а тема по настоящему интересная и необходимая многим...
За ранее благодарю за полезные советы и ответы.
/* Created 2016 by AlexGyver AlexGyver Home Labs Inc. */ unsigned long lastflash; int RPM; void setup() { Serial.begin(9600); //открыть порт attachInterrupt(0,sens,RISING); //подключить прерывание на 2 пин при повышении сигнала pinMode(3, OUTPUT); //3 пин как выход digitalWrite(3, HIGH); //подать 5 вольт на 3 пин } void sens() { RPM=60/((float)(micros()-lastflash)/1000000); //расчет lastflash=micros(); //запомнить время последнего оборота } void loop() { if ((micros()-lastflash)>1000000){ //если сигнала нет больше секунды RPM=0; //считаем что RPM 0 } Serial.println(RPM); //вывод в порт delay(50); //задержка для стабильности }
Прога не моя, автор не откликается. Вопрос: можно ли дописать её или нужно все начинать с чистого листа? Смысл в том что бы отключать пусковые конденсаторы электродвигателя по достижению определенных оборотов.
Например: от 0 до 1000 оборотов реле включено, от 1000 и больше выключено. Как понимаете раз я задаю подобные вопросы, значит я далек от програмирования чего либо, так же как Валуев от квантовой физики... По этому прошу не кидаться тапками.
Ни чего подобного в сети не нашел, а тема по настоящему интересная и необходимая многим...
За ранее благодарю за полезные советы и ответы.
в этом разделе помогаю тем, кто сам пишет.
в Ищу исполнителя за денежку могут сделать...
для начала вам нужно заглянуть сюда
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
Prokl для начала, как вам уже сказали - вставьте код правильно, а то читать невозможно.
Далее - вздохи и ахи "Неужели придется писать с чистого листа?" для кода в 10 строк выглядят несколько смешно.
В третьих, у того автора, что указан в заголовке скетча - коды лучше не брать, он очень мощный блоггер и популяризатор ардуино, но совершенно никакой программист. Его программы, даже длинные - в любом случае нужно перепроверять в каждой строчке - так что проше писать самому.
Порадовали амбиции Алекса двухгодичной давности:
Интересно - и давно он зарегистрировал (и, главное - где?) Incorporated?
DIVGENY
Понял вас, теперь буду знать. Спасибо.
b707
Не знал что так можно, я только вчера зарегестрировался...))
Что касается второго пункта, я понимаю что выглядит смешно для вас и тех для кого эта тема "как два пальца об асфальт", я же написал выше что в написании программы туп как шар, собственно по этому и спрашиваю.
По третьему пункту, не вкурсе был, просто залил на свою Leonardo, поменял в attachInterrupt с 0 на 2 и GND проводком соединил ибо распиновка немного отличается у nano и leonardo. Все заработало. Соответственно и возник вопрос о большей функциональности...
В принципе я вас понял, спасибо.
DIYMan
)))) Но за то как звучит....))))
Исправился.. Надеюсь правильно, поправьте если что то не так сделал.
Да я смотрю у гувера переменная в прерывании не только не волатильная, но и операциях не блочится. С таким кодом двигатель кондеры не только откажется отключать, а еще и жахнет в них 300% энергии или еще что отчебучит.
sadman41
Он это писал просто как тахометр - спидометр. Может по этому так?
Да хоть как бы что он его писал - хоть тахометр, хоть хренометр.
Значение переменной RPM прерыванием может изменено в любой момент выполнения программы. Это означает, что в if() оно будет одним, а в print() вообще другим. Еще пару действий к этому RPM привязать и вся шарманка вразнос пойдет на высокой скорости.
vvadim
Да, я знаю. Собственно вопрос и задавал стоит ли заморачиваться с этим или все с нуля. И как уже я обьяснил сам в этом ни чего не понимаю...
sadman41
Значит 2:0 в пользу того что от этого скетча отталкиваться не стоит...)))
Отталкиваться или нет - вопрос философский. В конце концов если я примерно то же самое напишу с нуля, но правильно - это будет "отталкиванием от кода Гувера"?
Идея там нормальная, но реализация...
Порадовали амбиции Алекса двухгодичной давности:
Интересно - и давно он зарегистрировал (и, главное - где?) Incorporated?
Исправился.. Надеюсь правильно, поправьте если что то не так сделал.
На будущее, вставлять номера строк (есть галочка). И не писать жирным шрифтом. ИМХО.
Погуглите пусковое реле или реле времени на пусковой конденцатор.
Задачу можно и без МК решить.
bwn.
Ок.
yul-i-an
Я в курсе и про то и про другое. Пусковое реле максимально находил на 1квт, этого мало, у меня к примеру 2.2 квт. Реле времени устоит в данный момент, но работает плохо и не корректно. Отключение по оборотам это самое оптимальное решение, по току конечно лучше но как уже сказал релюшки больше чем на 1 квт не встречал. Плюс ко всему проблемы с напряжением, в зимний период бывает и 192 вместо 220 вольт, при таком напряжении советские ПМЕ вообще не пускаются, не то что релюхи...
Решение с внедрением магнита в электродвигатель и установки датчика холла, самое на мой взгляд оптимальное да и универсальное ибо по сути одна и таже схема подойдет для разнообразных двигателей, все что нужно будет изменить в программе это обороты отключения пусковых конденсаторов, для двигателей 700, 900, 1500, 3000 оборотов будет разное значение.
Искал что то подобное, думал что по любому кто то уже реализововал подобное, но оказалось что нет. Видимо придется стать первопроходцем)))
посмотрите пусковые реле холодильников
Искал что то подобное, думал что по любому кто то уже реализововал подобное, но оказалось что нет. Видимо придется стать первопроходцем)))
чтобы "реализовать подобное" в простейшем варианте, в приведенный вами код надо добавить всего 2 строчки. Только надежность этого решения будет никакая. Поэтому, видимо, никто эти строчки вам и не предложил.
Как пример возможных проблем - если на моторе ноль оборотов - включать реле или нет? В простейшем случае вроде да - а вдруг мотор просто выключен? - значит надо контролировать не только обороты, но и подачу питания на движок.
Второй пример - обороты были 2000, стали 500. Подавть питание на реле или нет?
ВН
Смотрел. Они все на маломощные моторы. Надо от 2 квт и более..
b707
Я добавил три строчки, в итоге как только подключаешь что либо на управляющий контакт, показания сходят с ума. При чем не постоянно. То все нормально работает, то не подавая сигнада на датчик показывает обороты от 0 до 3000... По этому и спрашиваю здесь стоит ли заморачиваться с этим скетчем? Большинство как я понял считают что не стоит.
По этому и спрашиваю здесь стоит ли заморачиваться с этим скетчем? Большинство как я понял считают что не стоит.
вам же сказали, что сама идея верная. Минимальная правка может сделать из этого шита нормальный код. Я, правда, не специалист по прерываниям, пусть коллеги поправят, если что.
Вот мой вариант правки исходного кода
b707
"Его программы, даже длинные - в любом случае нужно перепроверять в каждой строчке - так что проше писать самому." - это вы же мне написали выше.... Может я чего то не понял, но сделал вывод что лучше заново написать.