Помогите вставить код мигалки в код приемника.
- Войдите на сайт для отправки комментариев
Код приемника:
///////// подключение сервы на D3 ////////// ///////// мотор 1 - D2 D5 ////////// ///////// мотор 2 - D4 D6 ////////// #include <SPI.h> // Подключаем библиотеку для работы с SPI-интерфейсом #include "nRF24L01.h" // Подключаем файл конфигурации из библиотеки RF24 #include "RF24.h" // Подключаем библиотеку для работа для работы с модулем NRF24L01 #include "GyverMotor.h" #include <Servo.h> GMotor motor0(DRIVER2WIRE, 2, 5, HIGH); //IN1 -> PIN2, IN2 -> PIN3 GMotor motor1(DRIVER2WIRE, 4, 6, HIGH); //IN3 -> PIN4, IN4 -> PIN5 Servo myservo; byte servo = 3; // сервопривод на 3 цифровом RF24 radio(9, 10); // CE, CSN модуль nrf24l01 + pa + lna на пинах RF24 radio(9,10); Для Уно/нано. RF24 radio(9,53); для Меги. byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб int recieved_data[15]; //Для nrf24 void setup() { /////////////// СЮДА ВСТАВЛЯЮ НАСТРОЙКИ СИРЕНЫ И МИГАЛКИ /////////////// Serial.begin(9600); //открываем порт для связи с ПК myservo.attach(servo); // Пины D5 и D6 - 31.4 кГц TCCR0B = 0b00000001; // x1 TCCR0A = 0b00000001; // phase correct motor0.setSmoothSpeed(20); // установка скорости изменения скорости (ускорения) мотора motor0.setMode(AUTO); motor1.setSmoothSpeed(20); // установка скорости изменения скорости (ускорения) мотора motor1.setMode(AUTO); Serial.begin(9600); //открываем порт для связи с ПК radio.begin(); //активировать модуль radio.setRetries(0, 15); //(время между попыткой достучаться, число попыток) сигнал постабильние radio.enableAckPayload();//разрешить отсылку данных в ответ на входящий сигнал radio.setPayloadSize(32);//размер пакета, в байтах radio.openReadingPipe(1, address[0]);//хотим слушать трубу 0 radio.setChannel(0x71);//выбираем канал (в котором нет шумов!) radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.startListening(); //начинаем слушать эфир, мы приёмный модуль } void loop() { NRF24L01(); myservo.write(recieved_data[2]); // повернуть серво на угол 0..180 setMotorL298(); } void NRF24L01() { if (radio.available() > 0) { radio.read(&recieved_data, sizeof(recieved_data)); } } void setMotorL298() { if (recieved_data[0] > 5 || recieved_data[0] < -5) { motor0.smoothTick(recieved_data[0]); } else { recieved_data[0] = 0; motor0.smoothTick(recieved_data[0]); } if (recieved_data[1] > 5 || recieved_data[1] < -5) { motor1.smoothTick(recieved_data[1]); } else { recieved_data[1] = 0; motor1.smoothTick(recieved_data[1]); } } /////////////// СЮДА ВСТАВЛЯЮ КОД СИРЕНЫ И МИГАЛКИ ///////////////
Код сирены:
void setup() { //настройка сирены pinMode(7,OUTPUT); // speaker на 7 ноге tone(7,300); //настройка мигалки TCCR1A=0; OCR1A=624;// 40ms TCCR1B=(1<<WGM12)|(1<<CS12)|(1<<CS10); //div 1024 CTC mode TIMSK1=1<<OCIE1A; pinMode(A1,OUTPUT);// светодиод на A1 ноге pinMode(A2,OUTPUT); // светодиод на A2 ноге } void loop() { } ISR (TIMER1_COMPA_vect) { static byte n=1; static byte spik=40; static boolean count_direct=false; if (n<=6) PORTC^=(1<<1);//6 тиков моргать светодиодом на A1 ноге if (n>=18&&n<=23) PORTC^=(1<<2);//6 тиков моргать светодиодом на A2 ноге n==35? n=1:n++; if (count_direct==false){ spik==60? count_direct=true : spik++; // 50-150 - скорость завывания сирены } if (count_direct==true){ spik==40? count_direct=false : spik--; } OCR2A=spik; }
Ошибка:
libraries\Servo\avr\Servo.cpp.o (symbol from plugin): In function `ServoCount':
(.text+0x0): multiple definition of `__vector_11'
sketch\new-RX_Priyoum6_6.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
exit status 1
Ошибка компиляции для платы Arduino Nano.
Здесь сказали, что серво и сирена на одном таймере, нужно разнести на два. Пробовал закомментить все строки с сервой, - верно, ошибка исчезает, сирена работает. Вот теперь задачка: как прописать либо серве, либо сирене другой таймер? Я начинающий, серву вставить в коды приемника и передатчика получилось самому, а вот таймеры изменить пока не получается.
4000р
Вот теперь задачка: как прописать либо серве, либо сирене другой таймер?
там все несколько сложнее, код сирены использует сразу два таймера - Тimer1 и Timer2. а нулевой занят миллисом.
просто перенести что-то на другой таймер не выйдет - уже некуда. Надо обьединять все мигалки и сирены на одном таймере, желательно на Т2.
Это задачка, с которой не каждый пионер справится
Ясно. Легче сирену на вторую ардуино повесить и запускать кнопкой от того же передатчика, что и первую. :) Зачем тогда придумали такую сирену, которую некуда прицепить без гиморра.
Зачем тогда придумали такую сирену, которую некуда прицепить без гиморра.
скорее вопрос - зачем на сирене серва? - у Димакса сервы не было и сирена отлично работала
Ясно. Легче сирену на вторую ардуино повесить и запускать кнопкой от того же передатчика, что и первую. :) Зачем тогда придумали такую сирену, которую некуда прицепить без гиморра.
При осознанном конструировании всё это легко делается - светодиоды, пьезоизлучатель, моторы, сервоприводы , про мини 168 и т.д., а при соединении всех отдельных скетчей в один нужны мастера по пришиванию рукава к ...зде. Такие есть только за деньги :-)
Дык и у меня работает - без сервы. А серво стоит на машине, см. 1-й код в 1-м посте. Кстати, посоветовали попробовать заменить Servo.h на ServoTimer2.h - заменил, мигалка заработала (с сервой), но теперь сирена не воет. Видимо, из-за нехватки таймера.
Дык и у меня работает - без сервы. А серво стоит на машине, см. 1-й код в 1-м посте. Кстати, посоветовали попробовать заменить Servo.h на ServoTimer2.h - заменил, мигалка заработала (с сервой), но теперь сирена не воет. Видимо, из-за нехватки таймера.
То есть вы хотите сказать, что нельзя согласованно заставить работать пищалку, светодиоды, серву и моторы?, на одном МК.
Такие есть только за деньги :-)
Я уже сказал выше, дешевле на вторую ардуино повесить. Да, не такое изящное решение, но цена - еще одна ардуина за 2-3 бакса. Еще можно спаять сирену с мигалкой на 4-х (или 3-х ?) NE555, цена которой гроши, но там навесных элементов многовато, да и паять...
То есть вы хотите сказать, что нельзя согласованно заставить работать пищалку, светодиоды, серву и моторы?, на одном МК.
Да конечно верю, что можно. Имелось ввиду, что по-простому не получится, иначе ответ давно был бы дан.
Кстати, посоветовали попробовать заменить Servo.h на ServoTimer2.h - заменил, мигалка заработала (с сервой), но теперь сирена не воет. Видимо, из-за нехватки таймера.
ну дык :)
У димакса мигалка на первом таймере, а сирена на втором. Для сервы места нет.
Дайте деду его 4 тыр - он вам совместит сирену и мигалку на одном таймере...
Я уже сказал выше, дешевле на вторую ардуино повесить.
....
Имелось ввиду, что по-простому не получится, иначе ответ давно был бы дан.
а вы, однако, жадный... Сомневаюсь. что вам кто-нить ответил бы, даже если вопрос был просто поменять таймер :)
Во всяком случае я теперь подумаю, прежде чем вам отвечать :)))
Это дорого, Филин. Дешевле на 555м спаять, своё же время всегда дешевле чужого.
За 4 тыр я 20 ардуин нано куплю, что равно 20 сиренам. :)
Это дорого, Филин. Дешевле на 555м спаять, своё же время всегда дешевле чужого.
ну пусть паяет, ежели умеет
Я на 555м даже за 4 тыс не смог бы :)
Это дорого, Филин. Дешевле на 555м спаять, своё же время всегда дешевле чужого.
Как раз время дороже, поэтому заюзаю вторую ардуино (благо прикупил пачку), это быстрей да возни с монтажом меньше. А паять умею, и 555-е и прочие детали имеются.
Ну а мы с нетерпением будем ждать следующего вопроса.
Как раз время дороже, поэтому заюзаю вторую ардуино (благо прикупил пачку), это быстрей да возни с монтажом меньше.
вы сначала подключите две ардуины к одному NRF24 - а потом и поглядим. что быстрее :))))
А что вы вообще делаете такое? Про схему, я понял, лучше не спрашивать :-)
А что вы вообще делаете такое? Про схему, я понял, лучше не спрашивать :-)
аэроскутер он же глиссер на воздушных винтах управляемый по радио
Зачем к NRF24? Я хоть новичок, но по-моему, первая ардуина с NRF24 принимает сигнал, отдает на свободную ногу, а эта нога идет ко второй ардуине. Где я ошибаюсь? Или за ответ будете ценник назначать? :)
А сама ходовая у вас работает?
Зачем к NRF24? Я хоть новичок, но по-моему, первая ардуина с NRF24 принимает сигнал, отдает на свободную ногу, а эта нога идет ко второй ардуине. ...
аэроскутер он же глиссер на воздушных винтах управляемый по радио
Верно, черновая модель уже проверена, ездит, управляется. Стукнуло тут сирену еще прицепить, но кажется, плюну на это дело. Их немало в сети, но все не так эффектно звучат, как раз потому что не на таймерах, видимо.
аэроскутер он же глиссер на воздушных винтах управляемый по радио
Верно, черновая модель уже проверена, ездит, управляется. Стукнуло тут сирену еще прицепить, но кажется, плюну на это дело. Их немало в сети, но все не так эффектно звучат, как раз потому что не на таймерах, видимо.
Она ещё и ездит ! Выкладывайте видос, я такую ещё не делал. Очень хочется попробовать. Только без этих ваших "НРФ"
DetSimen, а что смешного-то я сказал, или ардуино может только сама себе передавать сигнал? Как же она моторами управляет, серовой и прочим? Или объясните, или смех без причины... Вы так всех потенц. клиентов футболите?
По вашему я вру? Вот мне делать больше нехер. Назовите причину, по которой оно не может ехать. Все решается соотношением тяга - вес, сила трения.
С вас 4 тыр, и я выложу видео. :)
DetSimen, а что смешного-то я сказал, или ардуино может только сама себе передавать сигнал? Как же она моторами управляет, серовой и прочим? Или объясните, или смех без причины... Вы так всех потенц. клиентов футболите?
Не-не-не, всё нормально, это у меня смех без причины, как ты праильна подметил.
Да я тоже не буду, пожалуй делать эту сирену, сойдет и так. :) Просто интересно, неужели одна ардуина не передаст другой сигнал, странно. А видео выложу, так и быть. Попозже, пару дней, думаю, я же для своего канала все равно делаю.
По вашему я вру? Вот мне делать больше нехер. Назовите причину, по которой оно не может ехать. Все решается соотношением тяга - вес, сила трения.
С вас 4 тыр, и я выложу видео. :)
Мне просто интересна ваша ходовая, посмотрел бы видос, спросил где моторы заказывали и всё. Если это трудно, то ничего страшного. Поищу у других готовых решений :-)
Ходовая - тупо тележка трехколесная, причем из легкого дерева. Переднее - рулевое, на нем серво. Сзади два винта от мини дрона такие - https://www.joom.com/ru/products/1510316247924634378-194-1-709-845488649
Тележка легкая, вместе со всем (батарея и пр.) 360 г весит (сейчас взвесил, интересно стало), питание 18650 1 шт. Два мотора по квартире вполне тянут, но для улицы, где буду испытывать, нужно 4 мотора поставить да и асфальт поровней выбрать.
Можно конечно и на более мощных бесколлекторных, заказал и их и пропеллеры к ним (контроллеры есть), но если интерес у пользователей канала появится, сделаю и помощней.
А видос будет, обещаю. Макс. через неделю.
Просто интересно, неужели одна ардуина не передаст другой сигнал, странно.
ардуины-то справятся ... ардуина бы и одна со всем этим справилась бы :)
Понимаете, для зрителей ЮТ пофиг, что внутри машинки - одна ардуина, две, пять или это вообще "черный ящик". Важно эффектное видео, оригинальное. Но сомневаюсь, что добавление сирены с мигалкой сильно сыграет роль здесь, поэтому и нет желания заморачиваться. Не пошло в легкую, и фиг с ним. Есть идеи с элементарными кодами, да и без кодов тоже. Тратить время на какую-то не столь важную фигню типа сирены... Тем паче, была бы машина полицейская, а там просто тележка. :)
А вы то для ЮТ делаете? На потеху идиотам? нафига?
С вас 4 тыр, и я выложу видео. :)
Малатка! Наш человек! Добро пожаловать!
b707, ага. Для баблоса, для чего же еще.
Кстати, посоветовали попробовать заменить Servo.h на ServoTimer2.h - заменил, мигалка заработала (с сервой), но теперь сирена не воет. Видимо, из-за нехватки таймера.
ну дык :)
У димакса мигалка на первом таймере, а сирена на втором. Для сервы места нет.
Дайте деду его 4 тыр - он вам совместит сирену и мигалку на одном таймере...
одну серву можно и на микросе сделать, без библиотеки
одну серву можно и на микросе сделать, без библиотеки
Код где?
b707, ага. Для баблоса, для чего же еще.
2 копейки?
"Заработок в ютубе" - это ж чистый развод для самых наивных болванов
одну серву можно и на микросе сделать, без библиотеки
Код где?
период повторения импульсов 20 миллисекунд, длина импульса 1000 -1500 -2000 микросекунды, 1500 это 90 градусов, но сервы часто идут некалиброванные от 544 микросекунды 0 положение до 2400 микросекунд - 180 градусов
Ну, значит, я 7 лет уже (начал весной 2014-го) на 2 копейки живу.
Какой не откроешь ютуб-канал - везде нытье про произвол ютуба, который "не платит, отбирает, блокирует..."
И обязательно просьбы к подписчикам прислать по 2 рубля:)
на это живете?
Ну, значит, я 7 лет уже (начал весной 2014-го) на 2 копейки живу.
не верю. Ну вот не верю и все!
Чтобы зарабатывать с ютуба - надо иметь миллионые просмотры. Надо быть, как минимум, Гайвером.
А вы кто? Вас никто не знает
Нет, живу со стандартной контекстной рекламы, что вставляется автоматом в видео. А кто говорил, что все каналы должны зарабатывать? 90% ноют и жалуются, 90% из оставшихся 10% зарабатывают кто лучше, кто хуже, и пару процентов из этих оставшихся зарабатывают миллионы. Цифры условные конечно, но всё как в обычной жизни. Впрочем, миллионы (в долларах, в месяц) это команды профи зарабатывают, но есть и одиночки, любители, которые десятки килобаксов/мес. имеют.
b707, у Гайвера русский канал (впрочем, есть английский, но не пошел - у него сильно говорильный стиль), поэтому конвертация раз в 10-20 ниже - Россия. Я тоже не десятки килобаксов/мес. имею, самый жирный был 2019-й:
Сейчас до 300-500 упало, надо крутиться.
photomuza, Ваша задача имеет решение "для новичков".
Смотрите сами:
- система учета времени использует один таймер,
- сирена - два таймера,
- серво - еще один таймер.
Итого - четыре штуки. Тогда как в Arduino Uno таймеров всего три.
Профессионал зачастую может выкрутиться так, чтобы уложиться в три таймера, а стандартный ход для новичка: если не хватает ресурсов, взять контроллер помощнее. Например, в Arduino Mega - 6 таймеров.
Например, в Arduino Mega - 6 таймеров.
Так что ж вы раньше молчали? Т.е. надо попробовать прошить в мегу (имею такую) с ServoTimer2.h (чтоб не ковыряться в таймерах)?
И вы думаете видео про простенькую тележку на ардуино, которую может смастерить пятиклассник - будет иметь успех?
Интересно, сколько должно быть просмотров утакого видео, чтобы заработать хотя бы 100 баксов?
Сорри - пока я писал, вы разместили свою статистику. Я получил ответ. 12 тыс в год? Это самый лучший год? И вы на это живете?
Пожалуй, я не буду становится ютубером...
Тут лотерея: есть видео, что 5-10$ заработали, есть которые несколько тысяч. Впрочем, эта лотерея большей частью сделана алгоритмами ЮТ. Но я вас удивлю: миллионы просмотров набирают как раз чаще видео про то, что "которое может смастерить пятиклассник". Может и с чем-то крутым, которое будет делаться и сниматься полгода, но это ГОРАЗДО реже и тупое можно сделать за пару дней, а на умное потребуется пару месяцев.
Но я вас удивлю: миллионы просмотров набирают как раз чаще видео про то, что "которое может смастерить пятиклассник".
ну этим вы меня не удивите. Это соответствует моему представлению о ютубе:)
А про заработки - жалко, но чуда не произошло. Если уж вы, человек, который 7 лет посвятил себя продвижению на ютубе, в лучшем случае имеет лишь штуку в месяц - значит 99.99% новичков не заработают и 1000 рублей
одну серву можно и на микросе сделать, без библиотеки
Код где?
Так вроде ж за четыре килорубля уже всё протрындели!
одну серву можно и на микросе сделать, без библиотеки
Код где?
Так вроде ж за четыре килорубля уже всё протрындели!
я что-то не увидел, что 4 килорубля предлагали за код, пролетел однако