Ви не увійшли.
Доброго времени суток уважаемые форумчане.
Пытаюсь сделать некий аналог музыкальной шкатулки и никак не могу допереть как заставить всё это работать. Задумка следующая: открывается крышка коробки, внутри находится модуль освещённости который при дневном свете подаёт сигнал на проигрывание трека. При закрытии крышки- соответственно идёт сигнал на прекращение проигрывания трека.
Пока удалось только добиться просто проигрывания трека, но побороть модуль освещённости никак не могу.
Вот мои художества:
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.
Неактивний
Ну так где опрос модуля освещенности?
Ну так где опрос модуля освещенности?
Добрый день.
Модуль подключен на пины А0 и А1.
xD0 (как я понял)- числовое значение уровня освещённости.
Я пытался контролировать запуск трека с помощью условия "if (xD0 == HIGH)".
Неактивний
Что за модуль?
xD0 (как я понял)- числовое значение уровня освещённости.
Я пытался контролировать запуск трека с помощью условия "if (xD0 == HIGH)".
Я понял как раз наоборот - xD0 - логическое значение(освещенность больше заданного или нет). Вангую - устанавливается крутилкой на модуле. А вот А0 как раз числовое значение. Но это все мои гадания без конкретной модели датчика
Что за модуль?
Модуль освещённости на LM393 (https://robotchip.ru/obzor-modulya-osve … sti-lm393/)
Тестировал код по статье выше- всё работает, а вот логика моего кода- не очень.
Плата- ардуино nano.
Остання редакція athe (2022-01-13 18:37:49)
Неактивний
Загрузите код из указанного вами сайта. Посмотрите значение А0 при закрытой и открытой крышке. Потом пропишите их в условие в свой код, и замените хD0 на хА0
Загрузите код из указанного вами сайта. Посмотрите значение А0 при закрытой и открытой крышке. Потом пропишите их в условие в свой код, и замените хD0 на хА0
Да, я посмотрел комментарии кода в статье и понял что таки лопухнулся. Спасибо. Ещё я добавил "delay" на длину трека. Как я понимаю, программа пыталась воспроизвести трек в промежутке между замерами освещённости и я получал только белый шум. Нужно ещё придумать как сделать прерывание проигрывания в случае закрытия датчика освещённости. Через while как-то или attachInterrupt...
Остання редакція athe (2022-01-13 20:34:32)
Неактивний