Свежие обсуждения
Микроконтроллеры

Создаём "Фонтан времени"

1 7 9

А какая сейчас функциональность?
Если сделаешь втечение недели, предлагаю 200$ за конструкцию + код.

 

В течении течении недели вряд ли. Программер я тот ещё.
Функциональность? Если вообще без синхро, то если настроить насос на стабильное капанье, капли зависают или бегают хоть вверх, хоть вниз.
Конструкция сейчас на макетной плате, выглядит отвратно. Насос от автобрызгалки, тоже не совсем то что нужно.
Думаю привести к виду как в первоисточнике. Одно нажатие - капли висят, второе нажатие - бегут вверх, третье - бегут вниз.

 

Понятно, ну сообщи как доделаешь.. Осталось-то похоже немного..

 

ok

 

ATLab: Менять время между вспышками можно слегка его увеличивая (уменьшая) после отрыва очередной капли, главное чтобы оно плавно изменялось.

То есть нужно после каждой синхронизации (в момент отрыва капли от контактов) делать первую вспышку из серии. Но перед первой вспышкой после синхронизации делать задержку и её увеличивать (уменьшать) после каждой последующей синхронизации.

Каждая капля во время падения освещается пять раз. Как бы наслоения не получилось. Точнее срывов синхронизации. До каких пределов можно задержку после синхронизации делать?

зы Синхро сделал по отпусканию каплей контактов.

 

Vladikas: Каждая капля во время падения освещается пять раз. Как бы наслоения не получилось. Точнее срывов синхронизации. До каких пределов можно задержку после синхронизации делать?
Тебе виднее, чем мне
Давай прикинем:
1. Исходя из высоты расположения капельницы (точнее контактов размыкателя) и ускорения свободного падения считаем время пролета капли T0.
2. Исходя из потребного кажущегося количества капель определяем время между вспышками T1=T0/N, где N - количество видимых в процессе полета капель.
3. Тогда время задержки от отрыва капли до первой вспышки можно менять от 0 до T1. Никакого наслоения быть не должно.

 

Вопщем практически дописал код. Контроллер завтра прошъю, проверю в железе. Если алгоритм рабочий, то осталось только "nop-ы" в разные места повтыкать (вместо тех мест где идут вычисления). Чую придётся повозиться....

Может я там и игород нагородил, но мне простительно, мой первый прожэкт.

Вопрос гражданину ATLab-у, поправьте ежели я неправильно организовал основу.

1 - Два независимых счётчика. Значения прибавляются по +1 каждый проход проги. Один счётчик для формирования вспышек, второй для шим контролера управления насосом. Во время каждого прохода значения счётчиков сравниваются с предустановленными пределами. Когда счёт достигает определённых чисел - порты переводятся в нужные состояния.

2 - При размыкании каплей контактов происходит один из трёх сценариев
а - В счётчик, управляющий вспышками загружается максимальное значение. То есть происходит вспышка.
б - Дополнительный счётчик увеличивает своё значение на 1 за каждый проход после отрыва капли от контактов. Его значение записывается в счётчик, управляющий вспышками. Типа оттягивается момент вспышки с каждым проходом на единичку. При достижении предела счёта дополнительным счётчиком, он (доп. счётчик) обнуляется.
в - то же что и б, но не +1, а -1.
Вот...

зы Надоело уже. Хочу что-нить другое делать. Возможно не на ассемблере. Задрался....

 

На первый взгляд, должно работать.
На второй... Тут все зависит от деталей, например, инкремент доп. счетчика возможно нужно будет делать пореже - не каждый проход, а то капли будут бежать слишком быстро.
На мой вкус, так самые приятные впечатления остаются, когда движение происходит достаточно медленно, хоть капли, хоть крыльчатки вентилятора. А если мельтешит - это быстро надоедает.

Vladikas: зы Надоело уже. Хочу что-нить другое делать. Возможно не на ассемблере. Задрался....
А сколько уже таких заброшенных поделок, которые начинались интересно?
Это самое трудное - довести до рабочего состояния, сделать так, чтобы работало как задумано.
Я с текстом на вентиляторе тоже немало потратил времени на программу и переделки синхронизации, пока добился устойчивого изображения. Зато потом кайф от сделанного, от того, что смог!

А если на PICBasic или С попробовать писать программу? Самое то будет - для понимания гораздо проще, да и быстрее.

P.S. Лучше было бы взять другой микроконтроллер, 84-й очень неудобный, странно,что его еще выпускают.

 

Угу. Пока ещё воюю. Но чую нопы запутаюсь вставлять. Точнее уже запутался...

 

А зачем ты их вставляешь? Формируешь временные интервалы? Так лучше через счетчик делать что-нибудь типа:

movlw NTimes ; предустановка счетчика
movwf CNTR ; числом
loop:
... сюда можно добавить NOP или goto для увеличения времени
decfsz CNTR,F
goto loop
... конец цикла

или для экономии памяти заменять

NOP
NOP

на
goto $+1 ; goto на следующий оператор

P.S. Не отчаивайся, все получится! Может, только не с первого раза