#1 2022-01-13 17:00:46

athe
Учасник
Зареєстрований: 2022-01-13
Повідомлень: 10

Запуск плеера (TMRpcm) посредством модуля освещённости

Доброго времени суток уважаемые форумчане.
Пытаюсь сделать некий аналог музыкальной шкатулки и никак не могу допереть как заставить всё это работать. Задумка следующая: открывается крышка коробки, внутри находится модуль освещённости который при дневном свете подаёт сигнал на проигрывание трека. При закрытии крышки- соответственно идёт сигнал на прекращение проигрывания трека.
Пока удалось только добиться просто проигрывания трека, но побороть модуль освещённости никак не могу.
Вот мои художества:

int pinA0 = A0;                   
int pinD0 = A1;                  
#include <EEPROM.h>
#include <SD.h>  
#include <TMRpcm.h> 
TMRpcm tmrpcm; 

void setup(){
tmrpcm.speakerPin = 9; 
     if (!SD.begin(4)); 
     tmrpcm.volume(2);          
     tmrpcm.play("rickroll.wav");  
}
void loop()
  {
 pinMode (pinA0, INPUT);         
 pinMode (pinD0, INPUT);              
 int xA0, xD0;                     
xA0 = analogRead (pinA0);         
xD0 = digitalRead (pinD0);        
  if (xD0 == HIGH){
    tmrpcm.speakerPin = 9; // Динамик подключен к 9 - pin.
    if (!SD.begin(4)); // Здесь можно изменить № pin-CS - pin 4.
    tmrpcm.volume(2);          
    tmrpcm.play("rickroll.wav");  
  }
  else {
   tmrpcm.disable(); 
  }
  }

Буду благодарен за любую подсказку.

С уважением,
athe.

Неактивний

#2 2022-01-13 17:03:43

г0сть
Гість

Re: Запуск плеера (TMRpcm) посредством модуля освещённости

Ну так где опрос модуля освещенности?

#3 2022-01-13 18:12:30

athe
Учасник
Зареєстрований: 2022-01-13
Повідомлень: 10

Re: Запуск плеера (TMRpcm) посредством модуля освещённости

г0сть пише:

Ну так где опрос модуля освещенности?

Добрый день.
Модуль подключен на пины А0 и А1.
xD0 (как я понял)- числовое значение уровня освещённости.
Я пытался контролировать запуск трека с помощью условия "if (xD0 == HIGH)".

Неактивний

#4 2022-01-13 18:21:08

г0сть
Гість

Re: Запуск плеера (TMRpcm) посредством модуля освещённости

Что за модуль?

#5 2022-01-13 18:30:03

г0сть
Гість

Re: Запуск плеера (TMRpcm) посредством модуля освещённости

athe пише:

xD0 (как я понял)- числовое значение уровня освещённости.
Я пытался контролировать запуск трека с помощью условия "if (xD0 == HIGH)".

Я понял как раз наоборот - xD0 - логическое значение(освещенность больше заданного или нет). Вангую - устанавливается крутилкой на модуле. А вот А0 как раз числовое значение. Но это все мои гадания без конкретной модели датчика

#6 2022-01-13 18:36:40

athe
Учасник
Зареєстрований: 2022-01-13
Повідомлень: 10

Re: Запуск плеера (TMRpcm) посредством модуля освещённости

г0сть пише:

Что за модуль?

Модуль освещённости на LM393 (https://robotchip.ru/obzor-modulya-osve … sti-lm393/)
Тестировал код по статье выше- всё работает, а вот логика моего кода- не очень.
Плата- ардуино nano.

Остання редакція athe (2022-01-13 18:37:49)

Неактивний

#7 2022-01-13 19:06:33

г0сть
Гість

Re: Запуск плеера (TMRpcm) посредством модуля освещённости

Загрузите код из указанного вами сайта. Посмотрите значение А0 при закрытой и открытой крышке. Потом пропишите их в условие в свой код, и замените хD0 на хА0

#8 2022-01-13 20:34:16

athe
Учасник
Зареєстрований: 2022-01-13
Повідомлень: 10

Re: Запуск плеера (TMRpcm) посредством модуля освещённости

г0сть пише:

Загрузите код из указанного вами сайта. Посмотрите значение А0 при закрытой и открытой крышке. Потом пропишите их в условие в свой код, и замените хD0 на хА0

Да, я посмотрел комментарии кода в статье и понял что таки лопухнулся. Спасибо. Ещё я добавил "delay" на длину трека. Как я понимаю, программа пыталась воспроизвести трек в промежутке между замерами освещённости и я получал только белый шум. Нужно ещё придумать как сделать прерывание проигрывания в случае закрытия датчика освещённости. Через while как-то или attachInterrupt...

Остання редакція athe (2022-01-13 20:34:32)

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму