Dimonweb 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 Точно, забыл поставить ";" в той строке Я отредактировал код в предыдущем посте, скопируй еще раз. Ближе к вечеру или завтра утром выложу саму ZDSReceiver.exe Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-1999 Поділитись на інші сайти Поділитися
Женя 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 Код пошел, спасибо, только при запуске ZDReceiver и ждсимулятора, в игре светодиоды в ардуино не горят. Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2016 Поділитись на інші сайти Поділитися
Dimonweb 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 Так ZDSReceiver пока ничего не передает. Сейчас схожу в магазин за мороженым и допишу его Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2017 Поділитись на інші сайти Поділитися
Dimonweb 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 Качаем обновленный ZDReceiver.exe - ссылка 1) Вводим в текстовое поле номер COM-порта, к которому подключен Arduino в формате СOMX, где Х - номер порта; 2) Нажимаем "Подключиться" (должен кратковременно загореться светодиод лампы бдительности); 3) Если ввели неправильный номер, нажимаем "Отключиться" и повторяем процедуру. Обновил исходник для Arduino - теперь есть возможность выключать лок светофор (показание 0). // устанавливаем выходы const int lampPin = 8; // лампа const int wPin = 9; // белый const int rPin = 10; // красный const int ryPin = 11; // КЖ const int yPin = 12; // желтый const int gPin = 13; // зеленый // переменная с предыдущим показанием локомотивного светофора // (чтобы знать, какой светодиод тушить после переключения сигнала) int previous = 1; void setup() { // устанавливаем 8 - 13 на вывод // (вообще лучше сделать циклом, но я оставил для наглядности) pinMode(lampPin, OUTPUT); pinMode(gPin, OUTPUT); pinMode(yPin, OUTPUT); pinMode(ryPin, OUTPUT); pinMode(rPin, OUTPUT); pinMode(wPin, OUTPUT); Serial.begin(9600); // устанавливаем скорость передачи 9600 бод Serial.flush(); // очищаем буфер последовательного соединения } void loop() { int light; int lamp; int i; // если доступно 3 или больше байта на входе if(Serial.available() >= 3) { light = Serial.read(); // читаем показание светофора Serial.read(); // пропускаем симваол; lamp = Serial.read(); // состаояние лампы // если показание светофора поменялось if(light != previous) { // если показание светофора - 0 (ни одна лампа не горит) if(light == 0) { // отключаем питание на выходы 9 - 13 for(i = 9; i <= 13; i++) analogWrite(i, LOW); } else { analogWrite(previous + 8, LOW); // тушим светодиод предыдущего показания analogWrite(light + 8, 255); // зажигаем новый } previous = light; // запоминаем показание } //если состояние лампы 1, зажигаем светодиод; если - 0, то тушим if(lamp == 1) analogWrite(lampPin, 255); else analogWrite(lampPin, LOW); } } Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2038 Поділитись на інші сайти Поділитися
Женя 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 К сожалению, лампочки не светятся, пробовал подключать с разных COM, но безрезультатно! Когда нажимаю подключиться, то на плате мигает встроенный светодиод и все. В игре не работает. http://i.piccy.info/i7/16ef395f30552e46ff49be88d192f3d7/1-5-4400/47450877/P1210013_240.jpg Когда пропишу стандартный код, то мигают светодиоды как захочешь, а здесь не пойму. Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2047 Поділитись на інші сайти Поділитися
Dimonweb 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 А после того, как нажимаешь "подключиться", загорается ЛБ? Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2049 Поділитись на інші сайти Поділитися
bodia2105 1 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 Вот думаю купить джойстик типа руля с педалями. Возможно ли вывести хотя бы РБ или свисток/тифон на педали? Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2050 Поділитись на інші сайти Поділитися
LesykG 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 Бодя, это он не тебе, а у меня самого рб, тифон и песок вынесены на педали с помощью МКабМаппера. Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2056 Поділитись на інші сайти Поділитися
Dimonweb 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 Кажется, я понял, где проблема. ZDSReceiver.exe Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2057 Поділитись на інші сайти Поділитися
Женя 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 Огромное - преогромное спасибо, все работает! Только немного тускловато светодиоды горят! А так все окей, теперь сделаю классный пульт с ЛС по подобию ДС3. http://i.piccy.info/i7/617fcac8eb5354b4906b5e1645ca186f/1-5-4404/12768923/Ds3-008_240.jpg Море эмоций! Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2061 Поділитись на інші сайти Поділитися
Dimonweb 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 Отлично! Конечно, программировать "в слепую" очень интересно, но все-таки хотелось бы подержать эту ардуину в руках Расскажи пожалуйста, где ты покупал, за сколько и в какой срок доставили? Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2062 Поділитись на інші сайти Поділитися
Женя 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 Покупал в Киеве за 300грн через emarket.ua Новой почтой доставка 1 день. Есть здесь: http://odduino.shopium.ua/products/mega1280/ за 250 грн. Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2064 Поділитись на інші сайти Поділитися
A777 0 Опубліковано 5 лютого, 2012 Автор Поділитися Опубліковано 5 лютого, 2012 Я бы сказал, хорошо тускло светятся светодиоды, надо немножко код подправить, чтобы ярче светились! А то если подключать пару светодиодов к одному входу, то тогда не будет видно вообще, как светится. Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2070 Поділитись на інші сайти Поділитися
Dimonweb 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 Замени в коде HIGH на 255 и отпишись, как теперь. Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2071 Поділитись на інші сайти Поділитися
A777 0 Опубліковано 5 лютого, 2012 Автор Поділитися Опубліковано 5 лютого, 2012 Заменил, и стала только ярче лампа бдительности, попробовал заменить еще light + 8, HIGH и стали все ярко светить. Благодарю! Вот код исправленный: // устанавливаем выходы const int lampPin = 8; // лампа const int wPin = 9; // белый const int rPin = 10; // красный const int ryPin = 11; // КЖ const int yPin = 12; // желтый const int gPin = 13; // зеленый // переменная с предыдущим показанием локомотивного светофора // (чтобы знать, какой светодиод тушить после переключения сигнала) int previous = 1; void setup() { // устанавливаем 8 - 13 на вывод // (вообще лучше сделать циклом, но я оставил для наглядности) pinMode(lampPin, OUTPUT); pinMode(gPin, OUTPUT); pinMode(yPin, OUTPUT); pinMode(ryPin, OUTPUT); pinMode(rPin, OUTPUT); pinMode(wPin, OUTPUT); Serial.begin(9600); // устанавливаем скорость передачи 9600 бод Serial.flush(); // очищаем буфер последовательного соединения } void loop() { int light; int lamp; int i; // если доступно 3 или больше байта на входе if(Serial.available() >= 3) { light = Serial.read(); // читаем показание светофора Serial.read(); // пропускаем симваол; lamp = Serial.read(); // состаояние лампы // если показание светофора поменялось if(light != previous) { // если показание светофора - 0 (ни одна лампа не горит) if(light == 0) { // отключаем питание на выходы 9 - 13 for(i = 9; i <= 13; i++) analogWrite(i, LOW); } else { analogWrite(previous + 8, LOW); // тушим светодиод предыдущего показания analogWrite(light + 8, 255); // зажигаем новый } previous = light; // запоминаем показание } //если состояние лампы 1, зажигаем светодиод; если - 0, то тушим if(lamp == 1) analogWrite(lampPin, 255); else analogWrite(lampPin, LOW); } } Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2072 Поділитись на інші сайти Поділитися
Dimonweb 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 Да-да, правильно! Заменять нужно везде. light + 8 - это номер вывода текущей лампы ЛС (переменная от 9 до 13). lampPin - это номер вывода лампы проверки бдительности (константа 8). Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2073 Поділитись на інші сайти Поділитися
A777 0 Опубліковано 5 лютого, 2012 Автор Поділитися Опубліковано 5 лютого, 2012 А Вы можете написать код, чтобы с ардуино вывести хотя бы 34 кнопки, ну наподобие моей первой темы от 4.1.2012, 15:34. Пользуюсь джойстиками, а это неудобно по 3 штуки сразу подключать. А тут сразу к примеру взять DIGITAL 34 выхода можно назначить кнопками, включая каждое положение 395 и 254, ну например: меню1,2,3,4,8,9 … Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2075 Поділитись на інші сайти Поділитися
Dimonweb 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 Судя по описанию, Arduino Mega изначально имеет 54 цифровых входа/выхода. Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2078 Поділитись на інші сайти Поділитися
A777 0 Опубліковано 5 лютого, 2012 Автор Поділитися Опубліковано 5 лютого, 2012 Да! Но на остальные потом можно подключить, например LCD дисплей как скорости мер. А вообще там 70 выходов, мне так говорил продавец, но их надо специально назначать. Просто цифровые входы и шли бы себе кнопками примерно, а на остальные дополнительно можно было б что-то подключать. Мне кажется, что так было б проще. Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2079 Поділитись на інші сайти Поділитися
Dimonweb 0 Опубліковано 5 лютого, 2012 Поділитися Опубліковано 5 лютого, 2012 Над этим я поработаю уже когда у меня будет Arduino Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2080 Поділитись на інші сайти Поділитися
Dimonweb 0 Опубліковано 6 лютого, 2012 Поділитися Опубліковано 6 лютого, 2012 Думал над подключением крана. Уже известно 2 способа со своими недостатками: 1) Потенциометр (нестойкий в работе); 2) Галетный переключатель/кнопки (требуют много входов на плате). Поэтому решил сделать такую схему: http://i31.fastpic.ru/thumb/2012/0206/eb/e69de7267ee19d88e1d9480152dfb2eb.jpeg Номиналы резисторов нужно подбирать опытным путем. Принцип действия предельно прост: перемещаем кран в какое-либо положение, замыкается ключ/геркон/кнопка, в цепь входит резистор определенного номинала, софт определяет напряжение на входе и преобразует его в номер позиции. Такая схема требует всего 1 вход на Arduino. Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2131 Поділитись на інші сайти Поділитися
Женя 0 Опубліковано 6 лютого, 2012 Поділитися Опубліковано 6 лютого, 2012 То есть, я так понял, будет только 1 пин? Проблема еще в том, что резисторы данных номиналов не так уж и легко найти! Дефицит из-за низкой стоимости, никто не хочет продавать. Я правильно понял схему? Земля, пин №, а 5 вольт не будет? Если точно будете делать по такой схеме, то скажите, я завтра постараюсь достать данные номиналы! Возможно сниму со старых плат. Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2135 Поділитись на інші сайти Поділитися
A777 0 Опубліковано 6 лютого, 2012 Автор Поділитися Опубліковано 6 лютого, 2012 Я - за! Если б еще на контролер машиниста так придумать! Тогда можно было б оживить весь пульт! Да и проблема пока одна остается: мне с ZDReceiverом удавалось проехать наиболее 6 км. Дальше выключается сим. Наверно симулятор что-то не поддерживает? Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2136 Поділитись на інші сайти Поділитися
Dimonweb 0 Опубліковано 7 лютого, 2012 Поділитися Опубліковано 7 лютого, 2012 То есть, я так понял, будет только 1 пин?Да, только 1 пин. Я правильно понял схему? Земля, пин №, а 5 вольт не будет?5 Вольт подается с пина (по схеме справа внизу), а затем в зависимости от того, какое положение крана (т.е. какой ключ замкнут и какой резистор включен в цепь), получаем разное напряжение. В VI положении напряжение будет минимальным, а в I - максимальным. Проблема еще в том, что резисторы данных номиналов не так уж и легко найти! Дефицит из-за низкой стоимости, никто не хочет продавать. Если точно будете делать по такой схеме, то скажите, я завтра постараюсь достать данные номиналы! Возможно сниму со старых плат.Не стоит торопиться В предыдущем посте я написал, что выбрал номиналы наобум, только для того чтобы продемонстрировать принцип работы. Дальше, когда мне пришлют ардуину, буду подбирать их опытным путем. Я - за! Если б еще на контролер машиниста так придумать! Тогда можно было б оживить весь пульт!Если схема покажет себя с хорошей стороны, то контроллер ЧС4,8, ВЛ80 будет работать по такому же принципу. мне с ZDReceiverом удавалось проехать наиболее 6 км. Дальше выключается сим. Наверно симулятор что-то не поддерживает?Скоро такого не будет Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2151 Поділитись на інші сайти Поділитися
Dimonweb 0 Опубліковано 7 лютого, 2012 Поділитися Опубліковано 7 лютого, 2012 Сегодня решил усовершенствовать схему. http://i30.fastpic.ru/thumb/2012/0207/4d/b3c0dfa146eaca6a9b6e494cdaef524d.jpeg У нас есть 7 последовательно соединенных резисторов, между которыми стоят контакты. На ручке крана закреплен + провод (вход Arduino). При перемещении ручки замыкаются определенные контакты и в цепь последовательно включается разное количество резисторов. Покажу на примере. I положение крана http://i28.fastpic.ru/thumb/2012/0207/95/4b41c9f0f598827cfb9effa44b462995.jpeg Как видим, в цепь включен 1 резистор (сопротивление 1 кОм). Va положение крана http://i28.fastpic.ru/thumb/2012/0207/fb/2b7713044b83624add94c5292a5a2ffb.jpeg В цепи - резисторы R5a-R1 (сопротивление 5 кОм). IV положение крана http://i27.fastpic.ru/thumb/2012/0207/a2/48724cf79be0bdaf90cd6f7bede010a2.jpeg В цепи - резисторы R4-R1 (сопротивление 4 кОм). Такая схема, сравнительно с предыдущей, имеет 2 больших плюса: 1) Она на много легче в сборке, т.к. имеет в 2 раза меньше проводников. 2) Не требует резисторов разных номиналов, и соответственно мы не теряем время на подбор и поиски по рынку . Подойдут резисторы на 1 кОм. Цитата Посилання на коментар https://forum.zdsimulator.com/topic/58-rail-driver-trenazher-mashinista/page/3/#findComment-2171 Поділитись на інші сайти Поділитися
Рекомендовані повідомлення
Приєднуйтесь до обговорення
Ви можете написати зараз та зареєструватися пізніше. Якщо у вас є обліковий запис, авторизуйтесь, щоб опублікувати від імені свого облікового запису.
Примітка: Ваш пост буде перевірено модератором, перш ніж стане видимим.