Електроника и Електротехника | Electronics and Electrical Engineering > Аналогово управление | Analog Control

Arduino за стрелки

<< < (26/38) > >>

pavel75:

--- Цитат на: svetljjjo link=topic=4987.msg110921#msg110921 date=1520173607 ---в самата програма има примери за <EEPROM.h>
за Ардуино 1,8,5  от менюто файл-примери- примери за ардуино генй и уно - това е третата секция
пирвия елемент от нея е точно EEPROM
и там има всичко основно изтриване четене записване

--- Край на цитат ---

Аз там четох, но честно не можах да се ориентирам. Но друго ми направи впечатление - тази функция пише, че е ограничена по брой записи - 100 000 записа.

mitko0888:
Това eeprom.h го има в сайта. Има едно read и е дно write. Като им даваш адрес къде да се чете и пише. Има го в последния файл. Има го и в примера на стр. 3, който аз изкопирах.

Ама я ми кажи за какво е това? Мърдаш сервото и всеки път записваш във флеша в какво положение е стрелката. Гасиш, пускаш. И караш сервото да се върти пак до там. Ами нали последно си го оставил там, при пускане на стрелката не и трябва да и даваш никакви команди, тя си е там където си я оставил.

Ами след като си угасил, и после пускаш наново, ако някой отиде да върти сервото на ръка, че да го премести? И да го премести, ти ще прочетеш къде си записал че е стрелката, а не къде в действителност е.

Така че това с eeprom върши работа само за начално светване на правилната лампа за посока, и то не според къде е стрелката, а според къде последно си записал че трябва да е.

Най-доброто е това, което ти написа Милен - в началото четеш ключетата, светваш си правилната лампа за посока и си задаваш правилното начално положение в променливите в програмата. БЕЗ да мърдаш стрелката и да я слагаш в някакво начлно положение. Ако не ти се харчат крачета за входове, можеш винаги при стартиране да не я движиш въобще, и да не палиш никаква лампа. Да отиде човек на място, да види че отгоре няма влак и да натисне някой от бутоните. Тогава всичко да си отиде където искаш и да светне както трябва.

Може и при включване да я мърдаш в "нормалното" и положение, или плюсовата посока. 

Mixy:
Аз нещо се обърках. От това, което пише Павката излиза, че има някаква обратна връзка или че сервото "знае" на колко градуса е завъртяно и след изключване на тока. И при включване, винаги се установява в правилната посока (условно "направо" за стрелките или на 0 градуса). Така ли е или пак нещо не съм разбрал?  :blush2:


Колкото до проблема с премигването на тока или дори спирането за по-дълго време, най-лесното решение е самото ардуино да бъде двойно захранено - нормално и през батерия (като лаптопите). Трябва все пак да се сметне и каква ще е консумацията при работеща програма за да е ясно колко минути ще издържи дадената батерия.

VladoC:
Сервото няма памет и не помни последната команда!
След изключване на захранването, сервото остава в положението в което е било.
При включване на захранването, без входен сигнал, сервото не променя положението си.
Сервото няма обратна връзка и Ардуиното не може да прочете нищо от него!
Занимавам се с корабо- и авиомоделизъм от 30 години и не съм срещал серва с памет и обратна връзка.
Все пак има съвременни серва с памет - failsafe, която се програмира чрез апаратурата за управление или чрез специален програматор. Тук за такива серва не става въпрос.
 

pavel75:

--- Цитат на: mitko0888 link=topic=4987.msg110923#msg110923 date=1520186033 ---Това eeprom.h го има в сайта. Има едно read и е дно write. Като им даваш адрес къде да се чете и пише. Има го в последния файл. Има го и в примера на стр. 3, който аз изкопирах.

Ама я ми кажи за какво е това? Мърдаш сервото и всеки път записваш във флеша в какво положение е стрелката. Гасиш, пускаш. И караш сервото да се върти пак до там. Ами нали последно си го оставил там, при пускане на стрелката не и трябва да и даваш никакви команди, тя си е там където си я оставил.

Ами след като си угасил, и после пускаш наново, ако някой отиде да върти сервото на ръка, че да го премести? И да го премести, ти ще прочетеш къде си записал че е стрелката, а не къде в действителност е.

Така че това с eeprom върши работа само за начално светване на правилната лампа за посока, и то не според къде е стрелката, а според къде последно си записал че трябва да е.

Най-доброто е това, което ти написа Милен - в началото четеш ключетата, светваш си правилната лампа за посока и си задаваш правилното начално положение в променливите в програмата. БЕЗ да мърдаш стрелката и да я слагаш в някакво начлно положение. Ако не ти се харчат крачета за входове, можеш винаги при стартиране да не я движиш въобще, и да не палиш никаква лампа. Да отиде човек на място, да види че отгоре няма влак и да натисне някой от бутоните. Тогава всичко да си отиде където искаш и да светне както трябва.

Може и при включване да я мърдаш в "нормалното" и положение, или плюсовата посока.

--- Край на цитат ---

Сигурно аз не го обясних като хората.
В момента като се възстанови захранването програмата винаги завърта сервото в положение "право" без значение къде е било преди това.
А ми се иска обратното - сервото да не мърда, а светодиодите да светнат правилно - ако е било в право при изгасването - да светне този диод и обратното. Точно както е на онзи руския пример дето си дал.

Навигация

[0] Списък на темите

[#] Следваща страница

[*] Предходна страница

Премини на пълна версия