Как 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
- Как избавиться от некачественного звука из усилителя DFPlayer plus?
- Плохое качество звука при использовании пьезоэлемента в TinkerCad
- Выполнить регулировку громкости на динамике 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