сначала я думал сделать машинку на радиоуправлении. Передача информации с джойстика идет, а вот двигатель слушаться не хочет. Использовал дравер FAN8082 и радио модуль на 433МГц . Я думаю что проблема в скетче, но не могу найти. Помогите пожалуйста. Скетч передатчика: #include <RH_ASK.h> //библиотека радио модуля const int X = A1; //потенциометр на джойстике по оси Х int data; //переменная для передачи информации RH_ASK radioDriver; //объявление радио модуля void setup() { Serial.begin(9600); radioDriver.init(); //начало работы радио модуля } void loop() { int x =analogRead(X); Serial.println(x);// только в отладочных целях data = x; radioDriver.send((uint8_t *)&data, sizeof(data)); //отправка данных radioDriver.waitPacketSent(); //ждем пока они отправятся delay(10); } Скетч приемника: #include <RH_ASK.h> //библиотека радио модуля RH_ASK radioDriver; //объявление радио модуля int data; //переменная для передачи информации const int MC1 = 2; //первый контакт для Н моста const int en2 = 9; //пин для скорости двигателя const int MC2 = 3; //второй контакт для Н моста void setup() { pinMode(MC1, OUTPUT); pinMode(MC2, OUTPUT); pinMode(en2, OUTPUT); Serial.begin(9600); // только в отладочных целях radioDriver.init(); } void loop() { uint8_t buf[sizeof(data)]; uint8_t buflen = sizeof(data); if (radioDriver.recv(buf, &buflen)) { memcpy(&data,&buf,buflen); Serial.println(data); //чисто только для проверки int val = data; if (val > 562) //движение двигателя по часовой стрелке { digitalWrite(en2,HIGH); digitalWrite(MC1, HIGH); digitalWrite(MC2, LOW); } else if (val < 462) //движение двигателя против часовой стрелке { digitalWrite(en2, HIGH); digitalWrite(MC1, LOW); digitalWrite(MC2, HIGH); } else //остановка двигателя { digitalWrite(en2, LOW); digitalWrite(MC1, LOW); digitalWrite(MC2, LOW); } } }
Поясните, пожалуйста, зачем тогда эти строки. Вставьте код через теги, пожалуйста, читать не удобно. Что такое МС1/2х чем они управляют? То чем они управляют не сгорело из-за случая когда на МС2 было "1", а потом на МС1 вывелось "1", а до МС2 "0" ещё не дошёл. И схему, если можно.
К сожалению, я не могу ответить на вопрос, т.к. по схеме вы привели не то, что нужно, может быть там и опечатки, а может и ошибки, но нужно, чтобы вы проверяли то, что выкладываете. Зачем мне схема с мостом SN754410 если у вас используется другая микросхема, включение которой другое. (может быть ошибка) У вас шина "+" и "-" на бредборде не соединены с "+" и "-" питания. (подозреваю опечатка) Н-мост по коду включён в пины 2 и 3, а по картинке в 1 и 2. (?) По предыдущему моему замечанию, про сгорание, в даташите указано, что если выводы МС1 = МС2 , то мотор отключается. Приёмник получает данные? Они верные? (В передатчике вы выводите в сериал для контроля, в приёмнике не мешало бы так же) Код вставляется так (сами попробуйте почитать сухой код без оформления)
Итак Здесь советовали разобраться с программой.Я хз каким буераком у вас управляется движок но подозреваю что нажатие тех или иных кнопок выдаёт разное напряжение на аналоговый пин а дальше тяп-ляп и готово Ежели двигатель блокирует электронику - ставим ёмкости на питание логики, немножко электролита, ежели не помогло сразу то можно подцепить немножко керамики. Двигатель постоянного тока?Херачим керамику на его вывода.Поближе к мотору. Проверьте что ваш Аш-мост не испустит душу (белый дым) при двух сигналах на управляющих пинах. Прозвоните земли, питание в целом.На схеме вы действительно оставили их разобщёнными. Все вывода ардуинок выставляйте как выходы.Иначе ардуина будет жадно поедать помехи из среды своего нахождения пока не заглотнёт что-то такое, отчего перестанет работать. Вот будет хохма если у вас передатчик/приёмник висит на пинах, связанных с USB но по схеме вроде такого нет. И только после всех описанных мной операций заходим на форум и вежливо просим помощь. И да, научитесь оформлять Код (C++): код по-нормальному.Выкладывать код так, как это сделали вы - возмутительно.
Чушь какая. Ничего работать не перестанет. Производитель рекомендует выставлять pullup, чтобы не переключать триггеры зазря, но это полнейшая мелочь, и пудрить никому мозги этим не надо.