Для удобства пользования форумом и поиска информации прошу придерживаться правила: 1 тема = 1 вопрос.
К примеру, если обсуждается настройка передатчика, а у вас вопрос про подключение такого же передатчика к симулятору или вопрос про другую модель передатчика - создавайте новую тему. Если вы новичок в авиамоделизме, рекомендуется прочитать статью Новичку и ссылки с нее.
Исключение только в разделе Вопросы и обсуждения по статьям
Как выложить фото, Как опубликовать видео
С уважением,
Константин.
- Начало
- » Авиационный моделизм
- » Дополнительное оснащение
- » Имитатор звука мотора
Имитатор звука мотора
Re: Имитатор звука мотора
и типа такой схемы чтоб при обороте двигателя звук менялся на высокие и низкие частоты
- dirliht
- dirliht
- Пилот
- 1250 Сообщений
-
Re: Имитатор звука мотора
Есть у меня товарищ который разбирается в avr программировании буду его мучать схему собрал буду пробовать запускать как звук
- Dima_I
- Ученик пилота
- 77 Сообщений
-
Re: Имитатор звука мотора
Доброго Дня!
помогите разобраться с кодом arduino
при запуски инициализирует положение стика и запускает мелодию при дальнейшем изменеии нет реакции пока мелодия не доиграет до конца
Скетч
int PPMin1 = 8; // connect the desired channel (PPM signal) from your RC receiver to analog pin 0 (pin 14) on Arduino.
#include <Wtv020sd16p.h>
int resetPin = 2; // The pin number of the reset pin.
int clockPin = 3; // The pin number of the clock pin.
int dataPin = 4; // The pin number of the data pin.
int busyPin = 5; // The pin number of the busy pin.
int RCval1; // store RC signal pulse length
int adj_val1; // map that value to be between 0-255
Wtv020sd16p wtv020sd16p(resetPin,clockPin,dataPin,busyPin);
void setup()
{
Serial.begin(9600); //serial library start
wtv020sd16p.reset();
pinMode(PPMin1, INPUT); //вход с rc 8
}
void loop()
{
RCval1 = pulseIn(PPMin1, HIGH, 20000); //read RC channel 1
adj_val1 = map(RCval1, 630, 1125, 0, 255); // my observed RC values are between 630-1125.. these might need to be changed, depending on your RC system.
if (RCval1 < 1500)
{
wtv020sd16p.playVoice(1);
}
else
{
wtv020sd16p.stopVoice();
}
if (RCval1 > 1500)
{
wtv020sd16p.playVoice(0);
}
else
{
wtv020sd16p.stopVoice();
}
Serial.print ("val1: ");
Serial.print (RCval1); // if you turn on your serial monitor you can see the readings.
Serial.print (" ");
Serial.print ("adjusted: ");
Serial.print (adj_val1);
Serial.println (" ");
}
Модуль для воспроизведения НЕ РЕКЛАМА
- Dima_I
- Ученик пилота
- 77 Сообщений
-
Re: Имитатор звука мотора
а не проще с одного из проводов двигателя снимать сигнал?
К тому же геркон на таких оборотах я сомневаюсь, что хорошо будет работать. Может вместо геркон тогда уж датчик холла?
- Goby
- Алексей
- Пилот
- 2892 Сообщений
-
Re: Имитатор звука мотора
У вас void setup() отличается от примера, нет строчки: wtv020sd16p.asyncPlayVoice(0);
Возможно это не важно, но проверьте описание модуля.
И почему вместо CASE конструкции используете IF ELSE? Вы уверене,что программа выполняется так как вы думаете она должна выполняться?
В примере, в начале цикла здоровый кусок кода отслеживающий нажатие и отпускание кнопки, а как работает RCval1 = pulseIn(PPMin1, HIGH, 20000); //read RC channel 1 ?
- gsagr
- Александр
- Пилот
- 354 Сообщений
-
Re: Имитатор звука мотора
Геркон действительно встанет на больших оборотах. Логика его работы ограничена отсутствием или наличием рядом магнита. И потом с балансировкой мотора не возникнут вопросы? Зато магниты мотора хорошо будут взаимодействовать с датчиком Холла (можно "наковырять" в старых 3,5" дисководах).
Тут стоит подумать о датчике Холла. Ну или оптическая пара как вариант.
- Grig26
- Григорий
- Ученик пилота
- 97 Сообщений
-
Re: Имитатор звука мотора
я в программирование полный ноль
прошу более подробнее разжувать CASE
- Dima_I
- Ученик пилота
- 77 Сообщений
-
Re: Имитатор звука мотора
Dima_I написал(а):
я в программирование полный ноль
прошу более подробнее разжувать CASE
Можно и без CASE. У Вас всего три условия и я бы их написал бы так:
==========================================
if (RCval1 > 1500) // обороты больше 1500
{
wtv020sd16p.playVoice(0);
}
else if (RCval1 > 0) // обороты от 1 до 1500
{
wtv020sd16p.playVoice(1);
}
else // обороты ноль
{
wtv020sd16p.stopVoice();
}
===========================================
если " else if " или например может быть без пробела " elseif " не понимается компилятором, то:
===========================================
if (RCval1 > 1500) // обороты больше 1500
{
wtv020sd16p.playVoice(0);
}
else
{
if (RCval1 > 0) // обороты от 1 до 1500
{
wtv020sd16p.playVoice(1);
}
else // обороты ноль
{
wtv020sd16p.stopVoice();
}
}
- Goby
- Алексей
- Пилот
- 2892 Сообщений
-
Re: Имитатор звука мотора
закачал
результат
в каком положении стик та и мелодия играет на передвижение не реагирует
если передвинуть стик в другое положение и дождаться конца мелодии то в этом случаи мелодия сменится
- Dima_I
- Ученик пилота
- 77 Сообщений
-
Re: Имитатор звука мотора
Dima_I написал(а):
закачал
результат
в каком положении стик та и мелодия играет на передвижение не реагирует
если передвинуть стик в другое положение и дождаться конца мелодии то в этом случаи мелодия сменится
а если перед условием wtv020sd16p.stopVoice(); поставить? Тогда что произойдет, loop сработает на событие, далее wtv020sd16p.stopVoice(); принудительно останавливает звук и условие запускает его снова, в соответствии с оборотами. Если прокатит, последние условие с wtv020sd16p.stopVoice() можно совсем убрать.
- Goby
- Алексей
- Пилот
- 2892 Сообщений
-
Re: Имитатор звука мотора
тоже самое
void loop()
{
RCval1 = pulseIn(PPMin1, HIGH, 20000); //read RC channel 1
adj_val1 = map(RCval1, 630, 1125, 0, 255); // my observed RC values are between 630-1125.. these might need to be changed, depending on your RC system.
wtv020sd16p.stopVoice();
delay(1000);
if (RCval1 > 1500) // обороты больше 1500
{
wtv020sd16p.playVoice(0);
}
else if (RCval1 > 0) // обороты от 1 до 1500
{
wtv020sd16p.playVoice(1);
}
- Dima_I
- Ученик пилота
- 77 Сообщений
-
Re: Имитатор звука мотора
delay(1000); закомментируй или удали, вроде секундная задержка нам совсем не нужна.
еще как вариант .playVoice замени на .asyncPlayVoice
и что последняя цифра в pulseIn означает?
- Goby
- Алексей
- Пилот
- 2892 Сообщений
-
- Начало
- » Авиационный моделизм
- » Дополнительное оснащение
- » Имитатор звука мотора
Информация
- Статистика форума:
- Всего тем:
- 9948
- Всего опросов:
- 79
- Всего сообщений:
- 183174
- Сообщений на этой неделе:
- 31
- Пользователи форума:
- Всего пользователей:
- 10173
- Последним зарегистрировался:
- urus_vp
- Пользователи онлайн:
- 0
- Гостей онлайн:
- 1074
- Самые активные пользователи:
- konst, carpenter, kompmen, cnyx, Dragony, maks_dg, Goby, Student, alldn, nikolaypet
- Онлайн:
- Нет пользователей онлайн