Хочу сделать говорящий термометр



int TempSensor = 0;

#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

// Use pins 2 and 3 to communicate with DFPlayer Mini
static const uint8_t PIN_MP3_TX = 4;  // Connects to module's RX na mp3 module
static const uint8_t PIN_MP3_RX = 5;  // Connects to module's TX  na mp3 module
SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);

// Create the Player object
DFRobotDFPlayerMini player;

void setup() {

  // Init USB serial port for debugging
  Serial.begin(9600);
  // Init serial port for DFPlayer Mini
  softwareSerial.begin(9600);

  // Start communication with DFPlayer Mini
  if (player.begin(softwareSerial)) {
    Serial.println("OK");

    // Set volume to maximum (0 to 30).
    player.volume(30);
    player.play(1);
    delay(7000);

  } else {
    Serial.println("Connecting to DFPlayer Mini failed!");
  }
}

void loop() {






  TempSensor = analogRead(A0);

  Serial.print(TempSensor);
  delay(1000);


  if (TempSensor >= 300 < 350) {
    player.volume(30);
    player.play(2);
  }



  else if (TempSensor >= 350 < 400) {
    player.volume(30);
    player.play(3);
  }

  else if (TempSensor >= 400 < 450) {
    player.volume(30);
    player.play(4);
  } else if (TempSensor >= 450 < 500) {
    player.volume(30);
    player.play(5);
  }

  delay(100000);
}

Мы не против !

3 лайка

Алиса, не?

легких путей не ищу хочу
ардуино заставить говорить

в каком учебнике вы вычитали такие сравнения?

1 лайк

Вроде бы оно всегда будет верным, если TempSensor больше ноля.
Но выражение то ещё, конечно… :smiley:
Дед говорил, что есть такие егэисты - там такое преподают (без учебников, их читать нужно).

1 лайк

где то в ролике каком то но там был датчик освещения а я делаю на (такой две лапки и черная капелька и от температуры меняет сопротивление)а цифры я писал так просто пока чтоб убедится что если ардуина видит другое значение с датчика то и производит другой трек но нет она не хочет переходить на другой по цифрам с датчика ну как то так

не верьте, это бред

потому что так сравнение в условиях писать нельзя, это не работает. Если нужно сравнить с диапазоном “от 300 до 350”, то пишите два отдельных условия и потом обьединяйте их логическим “И” или “ИЛИ”

А больше 1.5 минуты дэлэя это зачем?)

Представь что это написано так:

сейчас попробую и макетная плата у меня не далеко

Какая макетка, почитайте что вам люди пишут, ваше выражение всегда будет верно, потомучта, если его “расшифроовать”, оно приобретет вид
0<450
или
1<450
Пока это не поймете, макетку не доставать, Я ЗАПРЕТИЛ!

3 лайка

Для начала научитесь писать по-русски.
Это совершенно необходимо.
И только потом постепенно переходите на С/С++.
Иначе компилятор Вас не поймет.
Собственно, он уже сейчас понимает совсем не то, что Вы хотите сказать.

А теперь я позанудствую, компилятор понимает ровно то, что ему хотят сказать, понимаетли это говорящий, вопрос.

Нет, он понимает, что ему говорят, а не что хотят сказать.

ТС же, подозреваю, хочет сказать одно, а говорит другое.
Именно из за неумения пользоваться языком.

2 лайка

Да, ссори.

Почему? На самом деле: оно всегда будет верным , если TempSensor больше ноля.

Да, я еще вчера понял что моё дополнение про “больше нуля” лишнее.

Не, ну зато наверняка!

1 лайк


int TempSensor = 0;


#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

// Use pins 2 and 3 to communicate with DFPlayer Mini
static const uint8_t PIN_MP3_TX = 4;  // Connects to module's RX na mp3 module
static const uint8_t PIN_MP3_RX = 5;  // Connects to module's TX  na mp3 module
SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);

// Create the Player object
DFRobotDFPlayerMini player;

void setup() {

  // Init USB serial port for debugging
  Serial.begin(9600);
  // Init serial port for DFPlayer Mini
  softwareSerial.begin(9600);

  // Start communication with DFPlayer Mini
  if (player.begin(softwareSerial)) {
    Serial.println("OK");

    // Set volume to maximum (0 to 30).
    player.volume(30);
    player.play(1);
    delay(7000);

  } else {
    Serial.println("Connecting to DFPlayer Mini failed!");
  }
}

void loop() {






  TempSensor = analogRead(A0);

  Serial.print(TempSensor);
  delay(1000);


  if (TempSensor >= 300) {
    player.volume(30);
    player.play(2);
  }



  if (TempSensor >= 350) {
    player.volume(30);
    player.play(3);
  }

  if (TempSensor >= 400) {
    player.volume(30);
    player.play(4);
  }
  if (TempSensor >= 450) {
    player.volume(30);
    player.play(5);
  }

  if (TempSensor >= 500) {
    player.volume(30);
    player.play(6);
  }

  if (TempSensor >= 550) {
    player.volume(30);
    player.play(17);
  }

  if (TempSensor >= 600) {
    player.volume(30);
    player.play(8);
  }



  delay(5000);
}

заработало .осталось только с цифрами поработать.и делей поставлю на 30мин