далее...
а как принимать и декодировать будем ?
есть разные варианты уплотнения...
сейчас ардуино использует уплотнения...
фазо-частотная модуляция... у которой в скорость в два раза больше по сравнению с "Манчестер-II"...


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

ну раз у нас телефон работает аналогично ИК пульту... то можно использовать туже технологию что и для ИК пульта.))
т.е. сделать всё на прерываниях...

но у нас схема работает не по проводам... поэтому возможно лучше использовать цифровку сигнала... с фильтрами...

тут надо подумать...

Спойлер
Код:
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////Modem:
var TX_Modem_st = 0; // счёт байт
var TX_Modem_Mask = 0; // маска
function TX_Modem(){
//44100, 16 бит, моно.
//int 8000...ffff | 0000...7fff
//-младший
//-старший
//заголовок: 64 байт (Base64) //882000 байт / 2 = 441000 семпл = (10c)
var W = "UklGRnR1DQBXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YVB1DQAAAAAA";
//пауза: 235200 байт (Base64) //235200(2c)
for (xTX=0; xTX<235200; xTX++) {
W += "A";
};//xTX++
//преамбула: 7350 байт (Base64) //44100 * 2 / 6 семпл = 7350(2c)
for (xTX=0; xTX<7350; xTX++) {
///////////////////////// 00 7f: "+" //12 байт / 2 = 6 семпл
//6 семпл
//00...7f
/////////////////////////
//4 - 36 00100100
//10 - 91 01011011
//14 - 127 01111111
//14 - 127 01111111
//10 - 91 01011011
//4 - 36 00100100
/////////////////////////
//000000
//000010 //4 - 36 00100100
//010000
//000000
W += "A";
W += "C";
W += "Q";
W += "A";
//010110 //10 - 91 01011011
//110000
//000001 //14 - 127 01111111
//111111
W += "W";
W += "w";
W += "B";
W += "/";
//000000
//000111 //14 - 127 01111111
//111100
//000000
W += "A";
W += "H";
W += "8";
W += "A";
//010110 //10 - 91 01011011
//110000
//000000 //4 - 36 00100100
//100100
W += "W";
W += "w";
W += "A";
W += "k";
///////////////////////// 00 80: "-" //12 байт / 2 = 6 семпл
//6 семпл
//80...ff
/////////////////////////
//4 - 91 11011011
//10 - 36 10100100
//14 - 0 10000000
//14 - 0 10000000
//10 - 36 10100100
//4 - 91 11011011
/////////////////////////
//000000
//001101 //4 - 91 11011011
//101100
//000000
W += "A";
W += "Z";
W += "s";
W += "A";
//101001 //10 - 36 10100100
//000000
//000010 //14 - 0 10000000
//000000
W += "p";
W += "A";
W += "C";
W += "A";
//000000
//001000 //14 - 0 10000000
//000000
//000000
W += "A";
W += "I";
W += "A";
W += "A";
//101001 //10 - 36 10100100
//000000
//000011 //4 - 91 11011011
//011011
W += "p";
W += "A";
W += "D";
W += "b";
/////////////////////////
};//xTX++
//Data:
for (TX_Modem_st=0; TX_Modem_st<48; TX_Modem_st++) {
/////////////////////////
TX_Modem_Mask=0x01;
do {
for (xTX=0; xTX<256; xTX++) {
W += "A"; //000000
};//xTX++
if ( TX_int[TX_Modem_st] & TX_Modem_Mask ) {
for (xTX=0; xTX<256; xTX++) {
W += "A"; //000000
};//xTX++
};
for (xTX=0; xTX<8; xTX++) {
///////////////////////// 00 7f: "+" //12 байт / 2 = 6 семпл
//6 семпл
//00...7f
/////////////////////////
//4 - 36 00100100
//10 - 91 01011011
//14 - 127 01111111
//14 - 127 01111111
//10 - 91 01011011
//4 - 36 00100100
/////////////////////////
//000000
//000010 //4 - 36 00100100
//010000
//000000
W += "A";
W += "C";
W += "Q";
W += "A";
//010110 //10 - 91 01011011
//110000
//000001 //14 - 127 01111111
//111111
W += "W";
W += "w";
W += "B";
W += "/";
//000000
//000111 //14 - 127 01111111
//111100
//000000
W += "A";
W += "H";
W += "8";
W += "A";
//010110 //10 - 91 01011011
//110000
//000000 //4 - 36 00100100
//100100
W += "W";
W += "w";
W += "A";
W += "k";
///////////////////////// 00 80: "-" //12 байт / 2 = 6 семпл
//6 семпл
//80...ff
/////////////////////////
//4 - 91 11011011
//10 - 36 10100100
//14 - 0 10000000
//14 - 0 10000000
//10 - 36 10100100
//4 - 91 11011011
/////////////////////////
//000000
//001101 //4 - 91 11011011
//101100
//000000
W += "A";
W += "Z";
W += "s";
W += "A";
//101001 //10 - 36 10100100
//000000
//000010 //14 - 0 10000000
//000000
W += "p";
W += "A";
W += "C";
W += "A";
//000000
//001000 //14 - 0 10000000
//000000
//000000
W += "A";
W += "I";
W += "A";
W += "A";
//101001 //10 - 36 10100100
//000000
//000011 //4 - 91 11011011
//011011
W += "p";
W += "A";
W += "D";
W += "b";
/////////////////////////
};//xTX++
/////////////////////////
TX_Modem_Mask = (TX_Modem_Mask<<1);
TX_Modem_Mask = TX_Modem_Mask & 0xFF;
/////////////////////////
}
while (TX_Modem_Mask);
/////////////////////////
};//TX_Modem_st
//синхропауза: 3675 байт (Base64) //44100 * 2 / 6 семпл = 3675(1c)
for (xTX=0; xTX<3675; xTX++) {
///////////////////////// 00 7f: "+" //12 байт / 2 = 6 семпл
//6 семпл
//00...7f
/////////////////////////
//4 - 36 00100100
//10 - 91 01011011
//14 - 127 01111111
//14 - 127 01111111
//10 - 91 01011011
//4 - 36 00100100
/////////////////////////
//000000
//000010 //4 - 36 00100100
//010000
//000000
W += "A";
W += "C";
W += "Q";
W += "A";
//010110 //10 - 91 01011011
//110000
//000001 //14 - 127 01111111
//111111
W += "W";
W += "w";
W += "B";
W += "/";
//000000
//000111 //14 - 127 01111111
//111100
//000000
W += "A";
W += "H";
W += "8";
W += "A";
//010110 //10 - 91 01011011
//110000
//000000 //4 - 36 00100100
//100100
W += "W";
W += "w";
W += "A";
W += "k";
///////////////////////// 00 80: "-" //12 байт / 2 = 6 семпл
//6 семпл
//80...ff
/////////////////////////
//4 - 91 11011011
//10 - 36 10100100
//14 - 0 10000000
//14 - 0 10000000
//10 - 36 10100100
//4 - 91 11011011
/////////////////////////
//000000
//001101 //4 - 91 11011011
//101100
//000000
W += "A";
W += "Z";
W += "s";
W += "A";
//101001 //10 - 36 10100100
//000000
//000010 //14 - 0 10000000
//000000
W += "p";
W += "A";
W += "C";
W += "A";
//000000
//001000 //14 - 0 10000000
//000000
//000000
W += "A";
W += "I";
W += "A";
W += "A";
//101001 //10 - 36 10100100
//000000
//000011 //4 - 91 11011011
//011011
W += "p";
W += "A";
W += "D";
W += "b";
/////////////////////////
};//xTX++
var audio = new Audio("data:audio/wav;base64," + W);
//var audio = new Audio("123.wav"); //D:\123.wav
audio.play(); // пуск
//audio.load(); // стоп
//audio.paused ? audio.play() : audio.pause();// пуск/пауза
//audio.volume += 0.1; // громкость звука + 10%
//audio.volume -= 0.1; // громкость звука - 10%
};
////////////////////////////////////////////////////////////////////////////////
хотя в идеале надо типа что-то беспроводное...
Добавлено after 6 hours 16 minutes 46 seconds:намотать катушку на задней крышке телефона))
