Как tmrpcm.play("1.wav") зависит от обратной связи LDR?
У меня есть динамик, работающий с tmrpcm.play, но он воспроизводится только тогда, когда arduino включен или сброшен. Могу ли я заставить .wav играть другими способами? Я не хочу, чтобы файл воспроизводился, когда я открываю шкаф и на мой резистор LDR воздействует свет.
#include <SD.h> //включить библиотеку модулей SD
#include <TMRpcm.h> //включить библиотеку управления динамиками
#define SD_ChipSelectPin 4 //define CS pin
TMRpcm tmrpcm; //создание объекта для библиотеки динамиков
const int ledPin = 8;
const int buzzerPin = 10;
const int ldrPin = A0;
int ledState = LOW;
int buzstate = 600;
unsigned long previousMillis = 0;
int ldrStatus = analogRead(ldrPin); //считывает состояние значения LDR
const long interval = 400;
void setup () {
tmrpcm.speakerPin = 9;
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(ldrPin, INPUT);
}
void LedAndBuzzer(){
unsigned long currentMillis = millis();
int ldrStatus = analogRead(ldrPin); //считывает состояние значения LDR
if (ldrStatus >= 400) {
if (currentMillis - previousMillis >= interval) {
// сохранить последний раз, когда вы мигали светодиодом
previousMillis = currentMillis;
// если светодиод выключен, включите его и наоборот:
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}
// установите светодиод с ledState переменной:
digitalWrite(ledPin, ledState);
digitalWrite(buzzerPin, ledState);
}}
}
void soundon(){
if (!SD.begin(SD_ChipSelectPin)) { //посмотрите, присутствует ли карта и может ли она быть инициализирована
return; //не делайте больше ничего, если нет
}
else {
tmrpcm.setVolume(6); //от 0 до 7. Установите уровень
tmrpcm.play("4.wav"); }
}
void loop() {
}
@Elisabot, 👍1
Обсуждение0
Смотрите также:
- Есть ли способ воспроизводить звуки с Arduino без использования звукового экрана?
- Как подключить ардуино к разъему для наушников?
- Как использовать звуковой датчик LM393 + динамик в Arduino
- Плохое качество звука при использовании пьезоэлемента в TinkerCad
- Как избавиться от некачественного звука из усилителя DFPlayer plus?
- Arduino распознает определенный звук?
- Распознавание звука
- Выполнить регулировку громкости на динамике arduino
Да, это вполне возможно. Вам нужно написать код для этого. Что вы пробовали до сих пор? Вы знаете, как читать LDR? Вы искали учебные пособия?, @chrisl
@chrisl спасибо за ответы, да, я много гуглил, но я совсем новичок в программировании и работе с arduino. Это код (обновлен пост), который при работе над которым вы знаете. Есть еще один элемент, помимо моего первоначального вопроса, я хочу, чтобы он запускал цикл светодиода/зуммера одновременно с .воспроизводится wav-файл. Возможно ли это?, @Elisabot
Является ли функция
tmrpcm.play()
функцией блокировки?, @Fahad@Фахад я не знаю, что это значит, @Elisabot
Вы сказали: "Я хочу, чтобы он запускал светодиодную/зуммерную петлю в то же время, что и .воспроизводится файл wav'. Поэтому мне было интересно, когда вы вызываете функцию " tmrpcm.play ()", она возвращается немедленно или возвращается после завершения воспроизведения файла wave., @Fahad
@Fahad tmrpcm.play() не блокируется. Он начинает воспроизводиться, затем tmrpcm.stopPlayback() останавливает музыку, и tmrpcm.isPlaying() возвращает состояние проигрывателя., @Dorian
@Dorian отлично, спасибо. @Elisabot, значит, вы хотите воспроизводить wav-файл, когда ваш LDR
>= 400
, и останавливать музыку, когда меньше?, @Fahad