Помогите объединить два скетча
- Войдите на сайт для отправки комментариев
Чт, 28/08/2014 - 14:30
Всем привет. Есть два скетча из примеров по программированию.
const int PIRSensorPin = 2; // the number of the Sensor pin const int ledPin = 13; // the number of the LED pin // variables will change: int sensorState = 0; // variable for reading the Sensor status void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the Sensor pin as an input: pinMode(PIRSensorPin, INPUT); } void loop(){ // read the state of the Sensor value: sensorState = digitalRead(PIRSensorPin); // check if the moving people sensed. // if it is, the sensorState is HIGH: if (sensorState == HIGH) { // turn LED on: digitalWrite(ledPin, HIGH); } else { // turn LED off: digitalWrite(ledPin, LOW); } }
int ledPin = 9; // LED connected to digital pin 9 int analogInPin = A0; // Light sensor pin int sensorValue = 0;// value read from the sensor void setup() { // nothing happens in setup } void loop() { // read the light sensor value: sensorValue = analogRead(analogInPin); // get the meaningful fading value int gapValue = map(sensorValue,10,1024,2,30); // fade in from min to max in increments of 5 points: for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) { // sets the value (range from 0 to 255): analogWrite(ledPin, fadeValue); // wait for some milliseconds to see the dimming effect delay(gapValue); } // fade out from max to min in increments of 5 points: for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) { // sets the value (range from 0 to 255): analogWrite(ledPin, fadeValue); // wait for some milliseconds to see the dimming effect delay(gapValue); } }
По отдельности все работает,но хотелось бы объединить их в один. Задумка такова: Автоматическая подсветка пола светодиодной лентой в коридоре при появлении движении. И включение вентилятора в ванной от датчика света,в последующем выключение вентилятора через 10 минут после выключения света,и плавное угасание подсветки через 10 секунд после прекращения движения. Говорю сразу,что опыта по программированию не имею,но есть желание научится,поэтому не судите строго,а лучше ткните где что можно вычитать. Буду очень признателен за любую помощь.
подсветка лестницы здесь обсуждалась. коды выкладывали для ультразвуковых датчиков
поищите на форуме. справа сверху
Читал, но там все закручено уж слишком,думал у меня попроще должно быть... И у меня один фоторезистор и один датчик движения.
объеденить просто. скопируйте из одного кода в другой сначала все что выше void setup и вставьте также выше. потом все из setup/ потом все из loop/
Пока я дошел до этого,но ничего не работает.
Совсем забыл,у меня Arduino uno v3(Makerduino uno),заказывал с китая
сделайте как я сказал а дальше будем смотреть ошибки
Так?
если все собрали да так. теперь запускаете компиляцию и смотрите какие ошибки выдает
если не поняли на что ругается кидайте сюда ошибки
Все заработало с этим кодом)))
Теперь нужно сделать задержку. Функция delay я так понимаю здесь будет неуместна?
На форуме уже много раз обсуждались лестницы и умные дома.
Воспользуйтесь поиском и почитайте как другие уже сделали.
Можно конечно,взять чужой код,подправить под себя и сидеть спокойно,типа сам сделал,НО я хочу научиться делать все сам,поэтому начал с нуля и попросил о помощи знающих людей, так как в литературе все написано сложнее чем товарищи могут объяснить на форуме, за что им и ограоиное человеческое спасибо!)
Чтобы не начинать новую тему, спрошу здесь. Я тоже новичек. И у меня похожий вопрос. В качестве изучения написал (по образцам) два скетча. Один - светодиод загорается на 3 секунды, потом 3 короткие вспышк, и все повтаряется бесконечно. Второй - светодиод плавно в течение нескольких секунд плавно разгорается и также плавно гаснет. Процесс тоже непрерывный. А возможно ли одновременное выполнение скетчей? Как это достигается? Что почитать?
Заранее спасибо.
скетчи-то - покажите !
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
это первый скетч
Хотелось бы посмотреть как они будут работать одновременно.
А возможно ли одновременное выполнение скетчей? Как это достигается? Что почитать?
Возможно! Самый простой способ - взять две ардуины (ну, или 2 attiny - так будет дешевле)
Если же хочется достигнуть того же эффекта чисто программным методом, то необходимо избавиться от всех delay()
См. так же blink without delay
А возможно ли одновременное выполнение скетчей? Как это достигается? Что почитать?
Возможно! Самый простой способ - взять две ардуины (ну, или 2 attiny - так будет дешевле)
Если же хочется достигнуть того же эффекта чисто программным методом, то необходимо избавиться от всех delay()
См. так же blink without delay
Неужели одновременная работа на одной Ардуине невозможна?
луп - это машинный цикл, который камень крутит пока его питаем +5
ваш программный цикл, который вы задумали - это на 1 сек вклСД и на 1 сек выклСД - т.е. цикл 2 сек.....
вы в аппаратном цикле прописали 10 программных циклов по 2 сек....
вопрос - почему всего 10 циклов ? на 20 сек.... почему не 10000 циклов на ХХХХХ сек - не хочется пересчитывать :)-
пропишите один нужный вам программный цикл - остальное камень сделает сам....
уберите из скетча строки с 12 по 27 - и вы разницу в работе того и нового скетча - не увидите !!!!!!!
> Неужели одновременная работа на одной Ардуине невозможна?
не паникуйте !!!! vdk изволит прикалываться :)- , здесь так принуждают думать :)
> blink without delay
он же вам явно показал куда копать для оптимизации скетча_1 - вот и изучайте, а не паникуйте и не обижайтесь
никто здесь вам не напишет скетч совмещённый, просто пинками ( и такое будет ) вас загонят в состояние самонаписания совмещённого скетча..... И ЕТО - ПРАВИЛЬНО !
никто здесь вам не напишет скетч совмещённый, просто пинками ( и такое будет ) вас загонят в состояние самонаписания совмещённого скетча..... И ЕТО - ПРАВИЛЬНО !
У мну ботинки с металическими носами.
можно пойти в "Ищу исполнителя" - там вам скетчи смогут объединить, если захотят заморачиваться с ценой услуги - 50 рублей :)-
....Арт100 - может и выставит вам ценник = $100.... но не лучше ли вам что-то изучить и съэкономить денюжку на шоколадку ( вам или ребёнку - не знаю ) ?
Пухлявого - не бойсь ! а слушай внимательно.... ещё и другие подтянутся....
никто здесь вам не напишет скетч совмещённый, просто пинками ( и такое будет ) вас загонят в состояние самонаписания совмещённого скетча..... И ЕТО - ПРАВИЛЬНО !
ну не 24 часа в сутки ? часа 2-3..... вот в эти часы - лучше и не попадать.....
Всем спасибо, хоть ни чего так и не понял. Мне просто хотелось узнать, как сделать примерно так -
имеются 2 светодиода, один разгорается и плавно гаснет в течение, например, семи секунд, а второй светодиод включается на пять секунд, потом, например делает четыре вспышки. И все это продолжается вечно.
По отдельности ни каких проблем. А вот чтобы вместе и с правильными выдержками не понимаю. Думаю, что когда программа займется одним диодом, другой останется без внимания, и все временные выдержки полетят нахрен.
Я правильно понимаю?
По отдельности ни каких проблем. А вот чтобы вместе и с правильными выдержками не понимаю. Думаю, что когда программа займется одним диодом, другой останется без внимания, и все временные выдержки полетят нахрен.
Я правильно понимаю?
Ну да. Либо все полностью переписывать, либо брать две ардуины (а тупым соединением двух программ ничего хорошего не получится)
> Думаю, что когда программа займется одним диодом, другой останется без внимания, и все временные выдержки полетят нахрен.
такт МК - доли микросекунды, один проход лупа этой программы - 150 микросекунд ( например )....
временные интервалы 4300 , 342 и 11 миллисекунд - 11000 mkS / 150 mkS = 73 лупа МК прокрутит ничего не делая для ваших СД ( только время будет проверять )..... за это пустое время он ещё много чего может успеть....
Спасибо. Буду пробовать......Осмысливать. Результат отпишу.
думайте не как человек - а как МК...
например - первые 72 прохода лупа ( нуууу, как выше вычислял - не охота считать ) - строки с 37 по 57 - НЕ БУДУТ ВЫПОЛНЯТЬСЯ, пока в строке 36 не станет "истина" - а истина там станет через 11 миллисекунд.....
....удачи :)-
"......Думаю, что когда программа займется одним диодом, другой останется без внимания, и все временные выдержки полетят нахрен....." - АННУЛИРОВАНО !!!!!!
.....замерил время прохождения лупа - 8 , 12 , 16 микросекунд - т.е. в #31 моя ошиблась с среднем в 12,5 раз - НЕ 150 микросекунд !!!!!
:(
Я думал Ардуина умнее. Windows же может выполнять несколько задач одновременно. Например музыка играет и картинка фотошопится. Музыка совсем не страдает, хоть ее ни кто не пересчитывает.
Тогда не понимаю как роботы на Андуринках работают (или в них несколько Ардуин?). Там ведь сложнее чем 2 светодиода.
Спасибо за ответы. Пошел читать книжки, писать пробные скетчи.....
Хотел вставить ссылку на ролик про робота.....Моих мозгов не хватило :( Такая сложная процедура! Зачем?
Возмите ардуино которая позволяет несколько лупов в одной программе. Если написать программу которая будет изменять состоянии светиков в зависимости от прошедшего времени для вас представляется аакой то немыслемо сложной задачей.
Хотел вставить ссылку на ролик про робота.....Моих мозгов не хватило :( Такая сложная процедура! Зачем?
Я здесь хотел вставить ссылку на YOUTUBE с интересным роликом про ардуино. Там малыш читает лекцию про робота из набора на ардуино. Но почему-то не смог осилить. Процес вставки ссылки оказался для меня не понятным.
Да и с вопросами, наверное, поторопился. Надо сначала поизучать самому, понять суть, а потом уж и вопросы задавать.
А лекция малыша пошла мне на пользу, кое-что новое узнал, и кое-что понял. :)
> Я думал Ардуина умнее.
ум - у человеков... Ардуина может всего-то выполнять ваши повелевания, исходя из своих сил.... сравнили, блин .....а не забыли вы про тактовую частоту ? 16 Mhz и 2 Ghz ? про шину данных - 8 бит и 32 ( 64 ) ? 125 * 4 = 500 - Ардуина минимум в 500 раз слабее компа... читайте... потом - снова читайте.... Вылысыпед - не может быть лучше АВТО !
Бродил по интернету, случайно набрел http://robocraft.ru/blog/985.html
Там как по моему вопросу 2 светодиода, многозадачное управление. Попробую изучить и что-то понять.
Ссылку дал, может кому интересно. Там и видео есть как диодики работают типа независимо.
:(
Я думал Ардуина умнее. Windows же может выполнять несколько задач одновременно. Например музыка играет и картинка фотошопится. Музыка совсем не страдает, хоть ее ни кто не пересчитывает.
Эх молодежь.... Идем гуглить википедию на предмет "начиная с какой версии Винды стали по настоящему многозадачными".
Вас разве не удивило что Ардуина маленькая и стоит 10 баксов, а системный блок большой и стоит дорого?
Хотя как вариант - компы собирают близорукие китайцы у которых денег на очки нету.
> Там как по моему вопросу 2 светодиода, многозадачное управление.
1 - 2 светика = двузадачное управление ! а не многозадачное !
2 - чем вам не понравился код из #34 ? два светика работают Асинхронно, каждый под вашу задачу.... подсоединяли ? видели как работает ?
> Там и видео есть как диодики работают типа независимо.
3 - и в #34 - ТОЖЕ РАБОТАЮТ НЕЗАВИСИМО ! Асинхронно !
...определитесь - чё вам нужно ?
> Вас разве не удивило что Ардуина маленькая и стоит 10 баксов, а системный блок большой и стоит дорого?
...три недели лежал в реанимации - как узнал про ето :( спасибо дохтурам !
( ето заявление не относится к JollyBiber - он же = Дохтур, к Марии Ивановне, к Ивану Сергеевичу и др. , у кого моя когда-то лечил воспаление шейки малого гипофиза заднего моста ( у миня - 4WD ) )
> Там как по моему вопросу 2 светодиода, многозадачное управление.
1 - 2 светика = двузадачное управление ! а не многозадачное !
2 - чем вам не понравился код из #34 ? два светика работают Асинхронно, каждый под вашу задачу.... подсоединяли ? видели как работает ?
> Там и видео есть как диодики работают типа независимо.
3 - и в #34 - ТОЖЕ РАБОТАЮТ НЕЗАВИСИМО ! Асинхронно !
...определитесь - чё вам нужно ?
SU-27-16, я не сказал, что мне не нравится #34. Я просто еще не разбирался. Обязательно закачаю и изучу. Большое спасибо за ответы, советы. Очень рад, что я не прокричал в пустоту и не получил ответы, типа - "а не хотите ли вы ключи от квартиры, где деньги лежат".
Большое спасибо. Подразберусь немного, обязательно отпишу результат. Обязательно попробую на макетной плате.
:)
> "а не хотите ли вы ключи от квартиры, где деньги лежат".
кому - и кобыла = невеста !!!!!
Много читал......... осмысливал.....много понял. Понял, что такое все-таки эта Arduina и на что она примерно способна. По теме топика вопросов больше нет. Двигаюсь дальше, изучаю. Спасибо всем, кто откликнулся.
здравствуйте! помогите объединить два кода воедино и по возможности доработать, буду очень благодарен.
это концепт проект стенда для чистки форсунок. задумка такова что есть насос, есть кнопка, также 4 реле.
надо что бы по нажатию кнопки сначала включался насос потом через 2 секунды реле(в последовательности с 1-4 по 4-1).
при повторном нажатии сначала выключается реле заканчивают цикл.
пока что ве это должно работать на светодиодах.
OploZ -
1 - ГЛАВНОЕ - выложите код как положено (вверху есть тема "Вставка кода в комментарии"
2 - задавайте конкретные вопросы. Улучшать ваш код никому не интересно. Если он не работает или работает, но не так, как надо - напишите, что не так.
3 - лучше создать новую тему