Не могу разобраться с многокнопочной рацией
- Войдите на сайт для отправки комментариев
Чт, 21/01/2021 - 08:15
помогите с кодом!
Иммется рация, хочу его руссифицировать произношение каналов и приветствия,
переключатель на 16 каналов
при постановке на первый канал напряжение подается 3,5 В в следующей последовательности:
на 1 канале
0 1 1 0
на 2м канале
0 0 1 0
3 канал
1 0 0 1
и т.д. ...
Звуковые файлы: 1.wav, 2.wav и т.д.
написал код но я слабоват в программировании:
#include <SD.h> // необходимо включить SD библиотеку
#include <TMRpcm.h> // также необходимо включить данную библиотеку...
#include <SPI.h>
#define chipSelect 4
File root;
TMRpcm music;
int Pin = 5;
int Pin1 = 6;
int Pin2 = 7;
int Pin3 = 8;
void setup() {
// music.speakerPin = 9; // 11 на Mega, 9 на Uno, Nano и т.д.
// music.volume(7); // от 0 до 7. Установка уровня громкости
// music.quality(0); // 1 для 2x передескритезации, 0 for для нормального режима
music.play("s.wav");
Serial.begin(9600);
Serial.println("Initializing SD card...");
if (!SD.begin(chipSelect))
{
Serial.println("initialization failed!");
while (1);
}
Serial.println("initialization done.");
music.speakerPin = 9; // 11 на Mega, 9 на Uno, Nano и т.д.
music.setVolume(7); // от 2 до 7. Установка уровня громкости
music.quality(0); // 1 для 2x передескритезации, 0 for для нормального режима
}
void loop() {
int volts = digitalRead(Pin);
Serial.println(volts);
int volts1 = digitalRead(Pin1);
Serial.println(volts1);
int volts2 = digitalRead(Pin2);
Serial.println(volts2);
int volts3 = digitalRead(Pin3);
Serial.println(volts3);
delay(1000);
{
{
int k1 = (volts == 0 && volts1 > 0 && volts2 > 0 && volts3 == 0);
if (k1) {music.play("1.wav");
}}
int k2 = (volts == 0 && volts1 == 0 && volts2 > 0 && volts3 == 0);
while (k2) {music.play("2.wav"); break;}
int k3 = (volts > 0 && volts1 == 0 && volts2 == 0 && volts3 > 0);
while (k3) {music.play("3.wav"); break;}
int k4 = (volts == 0 && volts1 > 0 && volts2 == 0 && volts3 > 0);
int k5 = (volts > 0 && volts1 > 0 && volts2 == 0 && volts3 == 0);
int k6 = (volts > 0 && volts1 == 0 && volts2 == 0 && volts3 == 0);
int k7 = (volts == 0 && volts1 == 0 && volts2 > 0 && volts3 > 0);
int k8 = (volts == 0 && volts1 > 0 && volts2 > 0 && volts3 > 0);
int k9 = (volts > 0 && volts1 > 0 && volts2 > 0 && volts3 > 0);
int k10 =(volts > 0 && volts1 > 0 && volts2 > 0 && volts3 == 0);
int k11 =(volts == 0 && volts1 == 0 && volts2 == 0 && volts3 == 0);
int k12 =(volts == 0 && volts1 == 0 && volts2 == 0 && volts3 > 0);
int k13 =(volts > 0 && volts1 > 0 && volts2 == 0 && volts3 > 0);
int k14 =(volts == 0 && volts1 > 0 && volts2 == 0 && volts3 == 0);
int k15 =(volts > 0 && volts1 == 0 && volts2 > 0 && volts3 == 0);
int k16 =(volts > 0 && volts1 == 0 && volts2 > 0 && volts3 > 0);
delay(1000);
}
}
сейчас он говорит и повторяет канал, а нужно чтоб один раз сказал и все, и еще нужно чтоб он в то время когда говорил любой канал подавал напряжение на какую нибудь ножку для унч
чисто спортивный интерес, имеется ардуйно нано и сд
А правила форума почитать не судьба?
я тут новенький так что прошу сильно не пинать, только заметил ...
Ну, а если
заметил
так почему не перевыложил?
помогите с кодом!
Иммется рация, хочу его руссифицировать произношение каналов и приветствия,
переключатель на 16 каналов
при постановке на первый канал напряжение подается 3,5 В в следующей последовательности:
на 1 канале
0 1 1 0
на 2м канале
0 0 1 0
3 канал
1 0 0 1
и т.д. ...
Звуковые файлы: 1.wav, 2.wav и т.д.
написал код но я слабоват в программировании:
спасибо большое, но каналы не правильно читает ...(((
Ну так переименуй файлы на SD как тебе надо. Или в "ищу исполнителя".
спасибо большое, так и сделал ...
взял fd mini player как перевести чтоб стабильно работал?
взял модуль DFmini и ошибка выходит ... (invalid conversion from 'const char*' to 'uint16_t {aka unsigned int}' [-fpermissive])
что это значит?
что это значит?
Именно то, что написано: недопустимое преобразование из 'const char *' в 'uint16_t
как исправить?
Сконвертить из текстового представления в цифровое.
не получается ни в какую, новичок)
Новичек, тогда учись. Я тебе и так много чем помог. Решение твоего второго вопроса элементарно и вообще не интересно, никак....
купил df mini, так как вольтаж маленький, а там встроенный усилок, записал голоса уже чище, + добавил голос "приветствия", названия каналов 0001,0002 и т.д., приветствие s.mp3, вот теперь не могу программу допилить ...
конечно, спасибо тебе за это! будем пробывать ...
купил df mini, так как вольтаж маленький, а там встроенный усилок, записал голоса уже чище, + добавил голос "приветствия", названия каналов 0001,0002 и т.д., приветствие s.mp3, вот теперь не могу программу допилить ...
Бывает, нужно работать над собой ;)
пробывать ...
Тут явно буква пропущена
я попытался написать свой, но Ваш лучше работал, может подскажете как Сконвертить из текстового представления в цифровое?
xwep, тут ничего "конвертировать" не надо. Вы сами себе проблемы создаете.
Нафига вы список каналов храните в текстовых строках :
храните сразу в числовом виде. как у brokly - и не надо будет ничего конвертировать
чтобы этот код пел только в mp3 используя df player