В мониторе порта вдруг стали выводиться иероглифы

radiant
Offline
Зарегистрирован: 27.12.2021

Всем привет

В мониторе порта вдруг стали выводиться иероглифы. Просто пытаюсь вывести цифры? а в ответ - квадратики. Все становится нормально только когда отключаю  mp3 проигрыватель и микрофон убираю с аналогового порта, то все налаживается. Что может быть не так? До какого то момента все было нормально, пытался понять какой аналоговый сигнал выдает микрофон и вдруг бац, ерунда покатила.

sadman41
Offline
Зарегистрирован: 19.10.2016

Вот если бы Вы бац, - и схему запостили, то шанс получить ответ появился бы.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

sadman41 пишет:

Вот если бы Вы бац, - и схему запостили, 

И скетч, заодно.

radiant
Offline
Зарегистрирован: 27.12.2021

Вот моя схема, только на сайте tinkercad.com я не нашел mp3 модуля, динамика на 6 Ом и микрофона. поэтому заменил эти вещи на похожие по форме(

radiant
Offline
Зарегистрирован: 27.12.2021

UB3AFB
UB3AFB аватар
Offline
Зарегистрирован: 25.01.2017

И где здесь что-то на аналоговом порту. Вы бы хоть от руки свою схему нарисовали.

rkit
Offline
Зарегистрирован: 23.11.2016

Так у тебя пины 1 и 0 чем-то заняты.

radiant
Offline
Зарегистрирован: 27.12.2021

да, они к mp3 проигрывателю подключены через резисторы 1.5 кОм

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

radiant пишет:

да, они к mp3 проигрывателю подключены через резисторы 1.5 кОм

А ещё для чего они используются погуглить сможешь?

radiant
Offline
Зарегистрирован: 27.12.2021

на аналогом порту ничего нет.  я микрофон что к аналоговому подключаю, что к цифровому - все иероглифы.

radiant
Offline
Зарегистрирован: 27.12.2021

"Важно учитывать, что если вы используете функции Serial, то нельзя одновременно с этим использовать порты 0 и 1 для других целей."

в этом дело?

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

radiant пишет:

"Важно учитывать, что если вы используете функции Serial, то нельзя одновременно с этим использовать порты 0 и 1 для других целей."

в этом дело?

Бинго! ))

SAB
Offline
Зарегистрирован: 27.12.2016

монитор правильно выводит коды символов от 32 до 126 остальные будут квадратиками или иероглифами 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

SAB пишет:

монитор правильно выводит коды символов от 32 до 126 остальные будут квадратиками или иероглифами 

Причем тут это? У него RX/TX для mp3 используется. #7

radiant
Offline
Зарегистрирован: 27.12.2021

спасибо

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

radiant пишет:

спасибо

Перенеси mp3 на другие пины и попробуй. Напиши что получилось.

SAB
Offline
Зарегистрирован: 27.12.2016

Команды управление mp3 может быть выше 128, по этому автор и видит иероглифы. 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

SAB пишет:

Команды управление mp3 может быть выше 128, по этому автор и видит иероглифы. 

Ну да. Синус в военное время может быть больше единицы.

Мы знаем. И главное - мы знаем почему больше единицы.

radiant
Offline
Зарегистрирован: 27.12.2021

После переноса на 8 и 9 пины все заработало. Поставил Sensor Shield V5.0

Но почему то сервопривод в цикле после команды myDFPlayer.stop() дергается. все выкинул лишнее из кода

 
  
#include <Servo.h> // Подклоючаем библиотеку Servo

#include "DFRobotDFPlayerMini.h"
// библиотека для эмуляции Serial порта
#include <SoftwareSerial.h>
// создаём объект mySoftwareSerial и передаём номера управляющих пинов RX и TX
// RX - цифровой вывод 10, необходимо соединить с выводом TX дисплея
// TX - цифровой вывод 11, необходимо соединить с выводом RX дисплея
SoftwareSerial mySoftwareSerial(9, 8); // RX, TX для плеера DFPlayer Mini 
DFRobotDFPlayerMini myDFPlayer;
  
// Создаем объекты
Servo ServoWings;
Servo ServoHead;

// Пин для сервопривода
int servoPinWings = 12;
int servoPinHead = 11;

void setup()
{

  Serial.begin(9600);
  mySoftwareSerial.begin(9600); 

 // Нам нужно подключить сервопривод к используемому номеру пина
  ServoWings.attach(servoPinWings);
  ServoHead.attach(servoPinHead);
 

  // Инициализация музыки
  myDFPlayer.begin(mySoftwareSerial);
  delay(1000);
  myDFPlayer.setTimeOut(300);
  myDFPlayer.volume(10); //Set volume value (0~30).

}

void loop()
{            
    myDFPlayer.stop();
    delay(5000);
}

 

 

nik182
Offline
Зарегистрирован: 04.05.2015

 А залезть в библиотеку и посмотреть какие команды myDFPlayer.stop(); выполняет? 

 

 

sadman41
Offline
Зарегистрирован: 19.10.2016

При совместном использовании библиотек SoftwareSerial и Servo всегда будет дергаться серва.

radiant
Offline
Зарегистрирован: 27.12.2021

sadman41 пишет:
При совместном использовании библиотек SoftwareSerial и Servo всегда будет дергаться серва.

Что можно сделать?

radiant
Offline
Зарегистрирован: 27.12.2021

nik182 пишет:

 А залезть в библиотеку и посмотреть какие команды myDFPlayer.stop(); выполняет? 

Извиняюсь, А как это?

Так?

void DFPlayerMini::stop() {
    send(0x16);
}

radiant
Offline
Зарегистрирован: 27.12.2021

Все, спасибо. Другую библиотеку поставил (#include <DFPlayer_Mini_Mp3.h>) , заработало нормально

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

mykaida пишет:

Ну да. Синус в военное время может быть больше единицы.

Какая там единица, до пяти доходил!

nik182
Offline
Зарегистрирован: 04.05.2015

radiant пишет:

nik182 пишет:

 А залезть в библиотеку и посмотреть какие команды myDFPlayer.stop(); выполняет? 

Извиняюсь, А как это?

Так?

void DFPlayerMini::stop() {
    send(0x16);
}

Хорошо что заработало.

На будущее. Смотреть так, но нужно идти дальше, до конкретных команд МК. Нужно найти send(); и посмотреть что он делает. Может быть тогда будет понятно, почему заикается.

Green
Offline
Зарегистрирован: 01.10.2015

ЕвгенийП пишет:

mykaida пишет:

Ну да. Синус в военное время может быть больше единицы.

Какая там единица, до пяти доходил!


"Кто в армии служил, тот в цирке не смеётся."