Я скачал библиотеку TMRpcm и попробовал скомпилировать скетч Код (C++): #include <SD.h> #include <SPI.h> #include <TMRpcm.h> #define SD_ChipSelectPin 10 TMRpcm audio; int audiofile = 0; unsigned long i = 0; bool recmode = 0; void setup() { pinMode(A0, INPUT); pinMode(6, OUTPUT); pinMode(2, INPUT_PULLUP); attachInterrupt(0, button, LOW); SD.begin(SD_ChipSelectPin); audio.CSPin = SD_ChipSelectPin; } void loop() { } void button() { while (i < 300000) { i++; } i = 0; if (recmode == 0) { recmode = 1; audiofile++; digitalWrite(6, HIGH); switch (audiofile) { case 1: audio.startRecording("1.wav", 16000, A0); break; case 2: audio.startRecording("2.wav", 16000, A0); break; case 3: audio.startRecording("3.wav", 16000, A0); break; case 4: audio.startRecording("4.wav", 16000, A0); break; case 5: audio.startRecording("5.wav", 16000, A0); break; case 6: audio.startRecording("6.wav", 16000, A0); break; case 7: audio.startRecording("7.wav", 16000, A0); break; case 8: audio.startRecording("8.wav", 16000, A0); break; case 9: audio.startRecording("9.wav", 16000, A0); break; case 10: audio.startRecording("10.wav", 16000, A0); break; } } else { recmode = 0; digitalWrite(6, LOW); switch (audiofile) { case 1: audio.stopRecording("1.wav"); break; case 2: audio.stopRecording("2.wav"); break; case 3: audio.stopRecording("3.wav"); break; case 4: audio.stopRecording("4.wav"); break; case 5: audio.stopRecording("5.wav"); break; case 6: audio.stopRecording("6.wav"); break; case 7: audio.stopRecording("7.wav"); break; case 8: audio.stopRecording("8.wav"); break; case 9: audio.stopRecording("9.wav"); break; case 10: audio.stopRecording("10.wav"); break; } } } Но мне выдало ошибку. Якобы в этой библиотеке нет метода startRecording. Попробовал загрузить пример из библиотеки , но там тоже выдает ошибку. Код (C++): /* This sketch demonstrates recording of standard WAV files that can be played on any device that supports WAVs. The recording uses a single ended input from any of the analog input pins. Uses AVCC (5V) reference currently. Requirements: Class 4 or 6 SD Card Audio Input Device (Microphone, etc) Arduino Uno,Nano, Mega, etc. Steps: 1. Edit pcmConfig.h a: On Uno or non-mega boards, #define buffSize 128. May need to increase. b: Uncomment #define ENABLE_RECORDING and #define BLOCK_COUNT 10000UL 2. Usage is as below. See https://github.com/TMRh20/TMRpcm/wiki/Advanced-Features#wiki-recording-audio for additional informaiton. Notes: Recording will not work in Multi Mode. Performance is very dependant on SD write speed, and memory used. Better performance may be seen using the SdFat library. See included example for usage. Running the Arduino from a battery or filtered power supply will reduce noise. */ #include <SD.h> #include <SPI.h> #include <TMRpcm.h> #define SD_ChipSelectPin 53 //example uses hardware SS pin 53 on Mega2560 //#define SD_ChipSelectPin 4 //using digital pin 4 on arduino nano 328, can use other pins TMRpcm audio; // create an object for use in this sketch void setup() { audio.speakerPin = 11; //5,6,11 or 46 on Mega, 9 on Uno, Nano, etc pinMode(12,OUTPUT); //Pin pairs: 9,10 Mega: 5-2,6-7,11-12,46-45 Serial.begin(115200); if (!SD.begin(SD_ChipSelectPin)) { return; }else{ Serial.println("SD OK"); } // The audio library needs to know which CS pin to use for recording audio.CSPin = SD_ChipSelectPin; } void loop() { if(Serial.available()){ //Send commands over serial to play switch(Serial.read()){ case 'r': audio.startRecording("test.wav",16000,A0); break; //Record at 16khz sample rate on pin A0 case 'R': audio.startRecording("test.wav",16000,A0,1); break; //Record, but with passthrough to speaker. case 't': audio.startRecording("test.wav",16000,A0,2); break; //Do not record. Output direct to speaker //Note: If samples are dropped before writing, it // will not be heard in passthrough mode case 's': audio.stopRecording("test.wav"); break; //Stop recording case 'p': audio.play("test.wav"); break; //Play the recording case '=': audio.volume(1); break; //Increase volume by 1. Does not affect recording case '-': audio.volume(0); break; //Decrease volume by 1. Does not affect recording case 'S': audio.stopPlayback(); break; //Stop all playback } } } Скачивал с сайта https://radioprog.ru/post/270#download.
Fendragon - в том самом примере, что вы привели - в комментарии написано, как его запускать, чтобы этой ошибки не было. Вы эти рекомендации выполнили?
Простите но в комментариях к данному примеру я нашел лишь системные требования , например тип карты. А а на счет этой ошибки нет . Там еще дается ссылка на сайт с примерами , но там просто описываются команды. А про возможные проблемы с этими командами нет.
Сова просит посмотреть не комментарии к примеру, а комментарии в примере. Сверху красным по голубому написано: "Notes: Recording will not work...". Добавлено. Хотя, в примере есть описанные вами параметры карточки и ссылка на примермы разные комментарии читаем?
да вы что, реально слепые все? Написано же ясным языком: Steps: 1. Edit pcmConfig.h a: On Uno or non-mega boards, #define buffSize 128. May need to increase. b: Uncomment #define ENABLE_RECORDING and #define BLOCK_COUNT 10000UL Пока вы не включите макрос ENABLE_RECORDING, у вас никаких методов, связанных с записью(Recording), в библиотеке не появится. Особенно ТС касается - как же надо невнимательно читать, чтобы даже после прямой подсказки не увидеть этих настроек??