Вечером, все скетчи дома, на работе нет...
Там в главном цикле было следующее - вначале был сделан ++ на счетчик, а потом делался повтор посылки, если таймаут.
Не могу исключить что у меня был устаревший скетч...
Мне подсказали возможную причину - блок у меня задан 30 см длиной, лок 20 см. И Рокрейл это не любит, ему 10 см с каждой стороны подавай Попробую вечером.
Сейчас так, взято из последней опубликованной версии Arduino_Nano_Loconet_BOD_PRO_v5
- - - - - - - - - - Добавлено - - - - - - - - - -Код:#define SEND_TRIES 4 #define SEND_TIMEOUT 50 #define SEND_TIMEOUT_RAND 5 void sendSensor1 (int addr, boolean state) { byte tries = 0; LN_STATUS ret; do { tries ++; ret = LocoNet.reportSensor(addr, state); if (ret != LN_DONE) delay(SEND_TIMEOUT + random(SEND_TIMEOUT_RAND + 1)); Serial.print("SEND addr:"); Serial.print(addr); Serial.print(" state:"); Serial.print(state); Serial.print("try:"); Serial.print(tries); Serial.print("ret:"); Serial.println(ret); } while(tries <= SEND_TRIES && ret != LN_DONE); if (ret != LN_DONE) Serial.println("send FAILED"); }
Точно, ведь сам несколько месяцев назад на эти грабли наступил - внес длины блокам и составам, а потом не мог запустить лок. Для начала лучше это все не использовать, как и permissions, логику с типами поездов и т.д. Это уже потом, аккуратно добавлять, когда "основа" заработает.
это не в sendSensor1 было, а в главном цикле....
Ок! Еще вопрос - так как почти все модули от Литфинского очень чувствительны к качеству ДЦЦ сигнала, то оказалось магнитник не работает от ДЦЦ32.
Вопрос - делали ли вы вариант скетча, который бы обьединил и токовые датчики, и пару серво? Или еще лучше, как лучше всего Ардуино использовать для магнитных приводов? Такой вот вариант подойдет? https://www.codeproject.com/KB/board...845211/9.1.jpg
Совмещенный скетч делал, но не публиковал. Это так называемый "Депо Декодер", плата от серводекодера, а прошивка читает два ИК датчика и управляет 2-мя сервами ворот.
Просто слепил из кусков скетчей детектора занятости и серводекодера.
Для магнитного привода пробовал MOSFET и подавал PWM. Как вариант, для управления магнитами можно использовать эл.реле http://forum.tt-hobby.ru/showthread....ll=1#post32977
Спасибо!
Думаю куплю все-же МОСФЕТ полевик сильный, а может и есть еще в загашнике такой. Оптопары у меня все низкоточные, транзисторы тоже. Реле есть, но честно говоря, не хочу с ними связываться... Надо будет попробовать, сработает ли переключение от контакта Vin Ардуино (там где-то 8.5 В).
Убрал длину блоков, поставил на 0. Лок теперь сам туда сюда ездит Теперь осталось стрелки решить - магнитам 8.5 В от Ардуино Vin не хватает. Придется клепать переводы на серво, что в принципе само по себе неплохо - серводекодеры с ДЦЦ я сделал уже давно, теперь пора их обкатать.