Помогите вставить код мигалки в код приемника.

photomuza
Offline
Зарегистрирован: 16.09.2021

Код приемника:

///////// подключение сервы  на 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.

Здесь сказали, что серво и сирена на одном таймере, нужно разнести на два. Пробовал закомментить все строки с сервой, - верно, ошибка исчезает, сирена работает. Вот теперь задачка: как прописать либо серве, либо сирене другой таймер? Я начинающий, серву вставить в коды приемника и передатчика получилось самому, а вот таймеры изменить пока не получается.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

4000р

b707
Offline
Зарегистрирован: 26.05.2017

photomuza пишет:

Вот теперь задачка: как прописать либо серве, либо сирене другой таймер?

там все несколько сложнее, код сирены использует сразу два таймера - Тimer1 и Timer2. а нулевой занят миллисом.

просто перенести что-то на другой таймер не выйдет - уже некуда. Надо обьединять все мигалки и сирены на одном таймере, желательно на Т2.

Это задачка, с которой не каждый пионер справится

photomuza
Offline
Зарегистрирован: 16.09.2021

Ясно. Легче сирену на вторую ардуино повесить и запускать кнопкой от того же передатчика, что и первую. :) Зачем тогда придумали такую сирену, которую некуда прицепить без гиморра.

b707
Offline
Зарегистрирован: 26.05.2017

photomuza пишет:

Зачем тогда придумали такую сирену, которую некуда прицепить без гиморра.

скорее вопрос - зачем на сирене серва? - у Димакса сервы не было и сирена отлично работала

lilik
Offline
Зарегистрирован: 19.10.2017

photomuza пишет:

Ясно. Легче сирену на вторую ардуино повесить и запускать кнопкой от того же передатчика, что и первую. :) Зачем тогда придумали такую сирену, которую некуда прицепить без гиморра.

При осознанном конструировании всё это легко делается - светодиоды, пьезоизлучатель, моторы, сервоприводы , про мини 168 и т.д., а при соединении всех отдельных скетчей в один нужны мастера по пришиванию рукава к ...зде. Такие есть только за деньги :-)

photomuza
Offline
Зарегистрирован: 16.09.2021

Дык и у меня работает - без сервы. А серво стоит на машине, см. 1-й код в 1-м посте. Кстати, посоветовали попробовать заменить Servo.h на ServoTimer2.h - заменил, мигалка заработала (с сервой), но теперь сирена не воет. Видимо, из-за нехватки таймера.

lilik
Offline
Зарегистрирован: 19.10.2017

photomuza пишет:

Дык и у меня работает - без сервы. А серво стоит на машине, см. 1-й код в 1-м посте. Кстати, посоветовали попробовать заменить Servo.h на ServoTimer2.h - заменил, мигалка заработала (с сервой), но теперь сирена не воет. Видимо, из-за нехватки таймера.

То есть вы хотите сказать, что нельзя согласованно заставить работать пищалку, светодиоды, серву и моторы?, на одном МК.

photomuza
Offline
Зарегистрирован: 16.09.2021

lilik пишет:

 Такие есть только за деньги :-)

Я уже сказал выше, дешевле на вторую ардуино повесить. Да, не такое изящное решение, но цена - еще одна ардуина за 2-3 бакса. Еще можно спаять сирену с мигалкой на 4-х (или 3-х ?)  NE555, цена которой гроши, но там навесных элементов многовато, да и паять...

lilik пишет:

То есть вы хотите сказать, что нельзя согласованно заставить работать пищалку, светодиоды, серву и моторы?, на одном МК.

Да конечно верю, что можно. Имелось ввиду, что по-простому не получится, иначе ответ давно был бы дан.

 

 

b707
Offline
Зарегистрирован: 26.05.2017

photomuza пишет:

Кстати, посоветовали попробовать заменить Servo.h на ServoTimer2.h - заменил, мигалка заработала (с сервой), но теперь сирена не воет. Видимо, из-за нехватки таймера.

ну дык :)

У димакса мигалка на первом таймере, а сирена на втором. Для сервы места нет.

Дайте деду его 4 тыр - он вам совместит сирену и мигалку на одном таймере...

b707
Offline
Зарегистрирован: 26.05.2017

photomuza пишет:

Я уже сказал выше, дешевле на вторую ардуино повесить.

....

Имелось ввиду, что по-простому не получится, иначе ответ давно был бы дан.

а вы, однако, жадный...  Сомневаюсь. что вам кто-нить ответил бы, даже если вопрос был просто поменять таймер :)

Во всяком случае я теперь подумаю, прежде чем вам отвечать :)))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Это дорого, Филин.  Дешевле на 555м спаять, своё же время всегда дешевле чужого. 

photomuza
Offline
Зарегистрирован: 16.09.2021

За 4 тыр я 20 ардуин нано куплю, что равно 20 сиренам. :)

b707
Offline
Зарегистрирован: 26.05.2017

DetSimen пишет:

Это дорого, Филин.  Дешевле на 555м спаять, своё же время всегда дешевле чужого. 

ну пусть паяет, ежели умеет

Я на 555м даже за 4 тыс не смог бы :)

photomuza
Offline
Зарегистрирован: 16.09.2021

DetSimen пишет:

Это дорого, Филин.  Дешевле на 555м спаять, своё же время всегда дешевле чужого. 

Как раз время дороже, поэтому заюзаю вторую ардуино (благо прикупил пачку), это быстрей да возни с монтажом меньше. А паять умею, и 555-е и прочие детали имеются.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Ну а мы с нетерпением будем ждать следующего вопроса. 

b707
Offline
Зарегистрирован: 26.05.2017

photomuza пишет:

Как раз время дороже, поэтому заюзаю вторую ардуино (благо прикупил пачку), это быстрей да возни с монтажом меньше.

вы сначала подключите две ардуины к одному NRF24 - а потом и поглядим. что быстрее :))))

lilik
Offline
Зарегистрирован: 19.10.2017

А что вы вообще делаете такое? Про схему, я понял, лучше не спрашивать :-)

b707
Offline
Зарегистрирован: 26.05.2017

lilik пишет:

А что вы вообще делаете такое? Про схему, я понял, лучше не спрашивать :-)

аэроскутер он же глиссер на воздушных винтах управляемый по радио

photomuza
Offline
Зарегистрирован: 16.09.2021

Зачем к NRF24? Я хоть новичок, но по-моему, первая ардуина с NRF24 принимает сигнал, отдает на свободную ногу, а эта нога идет ко второй ардуине. Где я ошибаюсь? Или за ответ будете ценник назначать? :)

lilik
Offline
Зарегистрирован: 19.10.2017

А сама ходовая у вас работает? 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

photomuza пишет:

Зачем к NRF24? Я хоть новичок, но по-моему, первая ардуина с NRF24 принимает сигнал, отдает на свободную ногу, а эта нога идет ко второй ардуине. ...

photomuza
Offline
Зарегистрирован: 16.09.2021

b707 пишет:

аэроскутер он же глиссер на воздушных винтах управляемый по радио

Верно, черновая модель уже проверена, ездит, управляется. Стукнуло тут сирену еще прицепить, но кажется, плюну на это дело. Их немало в сети, но все не так эффектно звучат, как раз потому что не на таймерах, видимо.

lilik
Offline
Зарегистрирован: 19.10.2017

photomuza пишет:

b707 пишет:

аэроскутер он же глиссер на воздушных винтах управляемый по радио

Верно, черновая модель уже проверена, ездит, управляется. Стукнуло тут сирену еще прицепить, но кажется, плюну на это дело. Их немало в сети, но все не так эффектно звучат, как раз потому что не на таймерах, видимо.

Она ещё и ездит ! Выкладывайте видос, я такую ещё не делал. Очень хочется попробовать. Только без этих ваших "НРФ"

photomuza
Offline
Зарегистрирован: 16.09.2021

DetSimen, а что смешного-то я сказал, или ардуино может только сама себе передавать сигнал? Как же она моторами управляет, серовой и прочим? Или объясните, или смех без причины... Вы так всех потенц. клиентов футболите?

photomuza
Offline
Зарегистрирован: 16.09.2021

По вашему я вру? Вот мне делать больше нехер. Назовите причину, по которой оно не может ехать. Все решается соотношением тяга - вес, сила трения.

С вас 4 тыр, и я выложу видео. :)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

photomuza пишет:

DetSimen, а что смешного-то я сказал, или ардуино может только сама себе передавать сигнал? Как же она моторами управляет, серовой и прочим? Или объясните, или смех без причины... Вы так всех потенц. клиентов футболите?

Не-не-не, всё нормально, это у меня смех без причины, как ты праильна подметил.  

photomuza
Offline
Зарегистрирован: 16.09.2021

Да я тоже не буду, пожалуй делать эту сирену, сойдет и так. :) Просто интересно, неужели одна ардуина не передаст другой сигнал, странно. А видео выложу, так и быть. Попозже, пару дней, думаю, я же для своего канала все равно делаю.

lilik
Offline
Зарегистрирован: 19.10.2017

photomuza пишет:

По вашему я вру? Вот мне делать больше нехер. Назовите причину, по которой оно не может ехать. Все решается соотношением тяга - вес, сила трения.

С вас 4 тыр, и я выложу видео. :)

Мне просто интересна ваша ходовая, посмотрел бы видос, спросил где моторы заказывали и всё. Если это трудно, то ничего страшного. Поищу у других готовых решений :-)

photomuza
Offline
Зарегистрирован: 16.09.2021

Ходовая - тупо тележка трехколесная, причем из легкого дерева. Переднее - рулевое, на нем серво. Сзади два винта от мини дрона такие - https://www.joom.com/ru/products/1510316247924634378-194-1-709-845488649

Тележка легкая, вместе со всем (батарея и пр.)   360 г весит (сейчас взвесил, интересно стало), питание 18650 1 шт.  Два мотора по квартире вполне тянут, но для улицы, где буду испытывать, нужно 4 мотора поставить да и асфальт поровней выбрать.

Можно конечно и на более мощных бесколлекторных, заказал и их и пропеллеры к ним (контроллеры есть), но если интерес у пользователей канала появится, сделаю и помощней.

А видос будет, обещаю. Макс. через неделю.

b707
Offline
Зарегистрирован: 26.05.2017

photomuza пишет:

Просто интересно, неужели одна ардуина не передаст другой сигнал, странно.

ардуины-то справятся ... ардуина бы и одна со всем этим справилась бы :)

photomuza
Offline
Зарегистрирован: 16.09.2021

Понимаете, для зрителей ЮТ пофиг, что внутри машинки - одна ардуина, две, пять или это вообще "черный ящик". Важно эффектное видео, оригинальное. Но сомневаюсь, что добавление сирены с мигалкой сильно сыграет роль здесь, поэтому и нет желания заморачиваться. Не пошло в легкую, и фиг с ним. Есть идеи с элементарными кодами, да и без кодов тоже. Тратить время на какую-то не столь важную фигню типа сирены... Тем паче, была бы машина полицейская, а там просто тележка. :)

b707
Offline
Зарегистрирован: 26.05.2017

А вы то для ЮТ делаете? На потеху идиотам? нафига?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

photomuza пишет:

С вас 4 тыр, и я выложу видео. :)

Малатка! Наш человек! Добро пожаловать!

photomuza
Offline
Зарегистрирован: 16.09.2021

b707, ага. Для баблоса, для чего же еще.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:

photomuza пишет:

Кстати, посоветовали попробовать заменить Servo.h на ServoTimer2.h - заменил, мигалка заработала (с сервой), но теперь сирена не воет. Видимо, из-за нехватки таймера.

ну дык :)

У димакса мигалка на первом таймере, а сирена на втором. Для сервы места нет.

Дайте деду его 4 тыр - он вам совместит сирену и мигалку на одном таймере...

одну серву можно и на микросе сделать, без библиотеки

photomuza
Offline
Зарегистрирован: 16.09.2021

ua6em пишет:

одну серву можно и на микросе сделать, без библиотеки

Код где?

b707
Offline
Зарегистрирован: 26.05.2017

photomuza пишет:

b707, ага. Для баблоса, для чего же еще.


2 копейки?
"Заработок в ютубе" - это ж чистый развод для самых наивных болванов

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

photomuza пишет:

ua6em пишет:

одну серву можно и на микросе сделать, без библиотеки

Код где?

период повторения импульсов 20 миллисекунд, длина импульса 1000 -1500 -2000 микросекунды, 1500 это 90 градусов, но сервы часто идут некалиброванные от 544 микросекунды 0 положение до 2400 микросекунд - 180 градусов

photomuza
Offline
Зарегистрирован: 16.09.2021

b707 пишет:
2 копейки? "Заработок в ютубе" - это ж чистый развод для самых наивных болванов

Ну, значит, я 7 лет уже (начал весной 2014-го) на 2 копейки живу.

b707
Offline
Зарегистрирован: 26.05.2017

Какой не откроешь ютуб-канал - везде нытье про произвол ютуба, который "не платит, отбирает, блокирует..."
И обязательно просьбы к подписчикам прислать по 2 рубля:)
на это живете?

b707
Offline
Зарегистрирован: 26.05.2017

photomuza пишет:

Ну, значит, я 7 лет уже (начал весной 2014-го) на 2 копейки живу.


не верю. Ну вот не верю и все!
Чтобы зарабатывать с ютуба - надо иметь миллионые просмотры. Надо быть, как минимум, Гайвером.
А вы кто? Вас никто не знает

photomuza
Offline
Зарегистрирован: 16.09.2021

Нет, живу со стандартной контекстной рекламы, что вставляется автоматом в видео. А  кто говорил, что все каналы должны зарабатывать? 90% ноют и жалуются, 90% из оставшихся 10% зарабатывают кто лучше, кто хуже, и пару процентов из этих оставшихся зарабатывают миллионы. Цифры условные конечно, но всё как в обычной жизни. Впрочем, миллионы (в долларах, в месяц) это команды профи зарабатывают, но есть и одиночки, любители, которые десятки килобаксов/мес. имеют.

photomuza
Offline
Зарегистрирован: 16.09.2021

b707, у Гайвера русский канал (впрочем, есть английский, но не пошел - у него сильно говорильный стиль), поэтому конвертация раз в 10-20 ниже - Россия. Я тоже не десятки килобаксов/мес. имею, самый жирный был 2019-й:

Сейчас до 300-500 упало, надо крутиться.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

photomuza, Ваша задача имеет решение "для новичков".

Смотрите сами: 

- система учета времени использует один таймер,

- сирена - два таймера,

- серво - еще один таймер.

Итого - четыре штуки. Тогда как в Arduino Uno таймеров всего три.

Профессионал зачастую может выкрутиться так, чтобы уложиться в три  таймера, а стандартный ход для новичка: если не хватает ресурсов, взять контроллер помощнее. Например, в Arduino Mega - 6 таймеров.

photomuza
Offline
Зарегистрирован: 16.09.2021

andriano пишет:

 Например, в Arduino Mega - 6 таймеров.

Так что ж вы раньше молчали? Т.е. надо попробовать прошить в мегу (имею такую) с ServoTimer2.h  (чтоб не  ковыряться в таймерах)?

b707
Offline
Зарегистрирован: 26.05.2017

И вы думаете видео про простенькую тележку на ардуино, которую может смастерить пятиклассник - будет иметь успех?
Интересно, сколько должно быть просмотров утакого видео, чтобы заработать хотя бы 100 баксов?

Сорри - пока я писал, вы разместили свою статистику. Я получил ответ. 12 тыс в год? Это самый лучший год? И вы на это живете?
Пожалуй, я не буду становится ютубером...

photomuza
Offline
Зарегистрирован: 16.09.2021

Тут лотерея: есть видео, что 5-10$ заработали, есть которые несколько тысяч. Впрочем, эта лотерея большей частью сделана алгоритмами ЮТ. Но я вас удивлю: миллионы просмотров набирают как раз чаще видео про то, что "которое может смастерить пятиклассник". Может и с чем-то крутым, которое будет делаться и сниматься полгода, но это ГОРАЗДО реже и тупое можно сделать за пару дней,  а на умное потребуется пару месяцев.

b707
Offline
Зарегистрирован: 26.05.2017

photomuza пишет:

Но я вас удивлю: миллионы просмотров набирают как раз чаще видео про то, что "которое может смастерить пятиклассник".


ну этим вы меня не удивите. Это соответствует моему представлению о ютубе:)
А про заработки - жалко, но чуда не произошло. Если уж вы, человек, который 7 лет посвятил себя продвижению на ютубе, в лучшем случае имеет лишь штуку в месяц - значит 99.99% новичков не заработают и 1000 рублей

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

photomuza пишет:

ua6em пишет:

одну серву можно и на микросе сделать, без библиотеки

Код где?

Так вроде ж за четыре килорубля уже всё протрындели!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

photomuza пишет:

ua6em пишет:

одну серву можно и на микросе сделать, без библиотеки

Код где?

Так вроде ж за четыре килорубля уже всё протрындели!

я что-то не увидел, что 4 килорубля предлагали за код, пролетел однако