Re: Ардуино - запись звука
Добавлено: Вс окт 23, 2022 19:48:15
как мне эти байты упаковать в пакеты отправить через sim800 и принять потом как угодно.
Здесь можно немножко помяукать :)
https://radiokot.ru:443/forum/
Код: Выделить всё
ISR(TIMER2_COMPA_vect) {
ADMUX = 0x61; // set ADC to read pin A1, ADLAR to 1 (left adjust)
sbi(ADCSRA, ADSC); // start ADC sample
while (bit_is_set(ADCSRA, ADSC)); // wait until ADSC bit goes low = new sample ready
recByteCount++; // increment sample counter
bufByteCount++;
if (bufByteCount == 128 && bufWrite == 0) {
bufByteCount = 0;
bufWrite = 1;
} else if (bufByteCount == 128 & bufWrite == 1) {
bufByteCount = 0;
bufWrite = 0;
}
if (bufWrite == 0) {
buf00[bufByteCount] = ADCH;
}
if (bufWrite == 1) {
buf01[bufByteCount] = ADCH;
}
Код: Выделить всё
void Setup_timer2() {
TCCR2B = _BV(CS21); // Timer2 Clock Prescaler to : 8
TCCR2A = _BV(WGM21); // Interupt frequency = 16MHz / (8 x 125 + 1) = 16000Hz
OCR2A = 125; // Compare Match register set to 125 (было 90) Перешл на 16кгц
}Код: Выделить всё
Serial.println(ADCH);да.olegue писал(а):мне с этой же частотой в сериал гнать результат преобразования АЦП?
лучше отправлять по 1 байту.olegue писал(а):Или отправлять в сериал по 512 байт и тогда думать как их правильно складывать на стороне ПК?
теоретически... можно))olegue писал(а):нельзя ли использвоать в качестве wifi модуля esp-01?
правильно))olegue писал(а):но как я пониммаю что если скорость сериала маленькая , а wifi esp-01 будет подключено через сериал то опять те же грабли с недостаточной пропускной способностью сериала. Правильно понимаю?
принимать данные на компе можно с помощью любой программы...olegue писал(а):где я компе приму данные переданные через wifi?
обычно Ардуино работает по сериалу максимум 115200... что явно мало))olegue писал(а):wifi esp-01 будет подключено через сериал то опять те же грабли с недостаточной пропускной способностью сериала. Правильно понимаю?
тут вариантов много...))olegue писал(а):допустим связка Атмега(Ардуина)+esp01 по UART.
на еsp01 по UART данные я отпавил допустим, не раз это делал. А как эти данные теперь отправить на комп.
я к сожалению , не знаком с этим способом приема данныхroman.com писал(а):2- комп просто принимает данные и воспроизводит звук))
считаем...olegue писал(а):Хотел бы вернутся к старому Uart. что если меня устроит, скажем даже не 8 кгц, а 6 или даже 5кгц. Реально ли что бы передать такой звук на скорости 115200?
Например в телефонной связи обычно используется частота семплов 8 кГц.olegue писал(а):применив специальное кодирование можно даже 2кгц разборчивый звук получить.
ничего не понял.roman.com писал(а):6. Теперь все данные что ты отправляешь с помощью Атмега(Ардуина)+esp01 по UART... теперь будут отображаться в окне твоего компа ))
всё)) вот так вот просто всё работает.
точно так же можно передавать и звук...
Код: Выделить всё
HTTPClient http; //Объявить объект класса HttpClient
http.begin(client, "http://********.lh1.in/input.php");
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
String httpRequestData = "a="+String(i);
int httpCode = http.POST(httpRequestData);