Проблема Serial.println с датчиком пламени

Я новичок в программировании и Arduino, поэтому буду бесконечно благодарен за помощь.

Я пытаюсь сделать действительно простой датчик пламени, который издает звуковой сигнал, зажигает светодиод и отображает расстояние от датчика до пламени при активации. Я продолжаю получать сообщение об ошибке «Серийный номер не указывает тип» для строки, которая читается как Serial.println(analogRead(A0));

Я попытался выяснить это из информации на этом форуме с похожими вопросами, чтобы попытаться исправить проблему, но кажется, что каждый раз, когда я исправляю одну вещь, возникают две другие ошибки. Я застрял на этом некоторое время, поэтому я надеюсь, что смогу получить какую-то помощь от сообщества Arduino.

Ниже приведен весь код — любая помощь приветствуется, спасибо :)

int Led = 4;
int Buzz = 7;
int Sensor = 11;
int Fire = HIGH;
void setup()
{ Serial.begin(9600);
pinMode(Buzz,OUTPUT);
pinMode(Sensor,INPUT);
pinMode(Led,OUTPUT);
}
void loop()
{
Fire = digitalRead(Sensor);
if(Fire == HIGH);
Serial.print("analog Read = ");
Serial.print(analogRead);
}
Serial.println("HELP! A FIRE!");
digitalWrite(Buzz,HIGH);
digitalWrite(Led,HIGH);
delay(200);
digitalWrite(Led,LOW);
delay(200);
Serial.println(analogRead(A0));
}
else
{
Serial.println("No fire detected");
digitalWrite(Buzz,LOW);
digitalWrite(Led,LOW);
}
delay(500);
}

, 👍0

Обсуждение

Вы должны научиться правильно делать отступы в своем коде. Тогда вы скоро увидите проблему., @Majenko

Вы также должны узнать разницу между ( и {. Рекомендуется использовать учебник, такой как https://www.youtube.com/watch?v=QO_Jlz1qpDw или аналогичный., @MatsK


1 ответ


3

Самое главное; ПОЖАЛУЙСТА, ОТМЕТЬТЕ СВОЙ КОД. Код, который вы разместили, беспорядок, и мне потребовалось как минимум вдвое больше времени, чтобы исправить это.

Во-первых, у вас есть дополнительная закрывающая фигурная скобка в строке 17, а if (Fire == High); следует изменить на if (Fire == High){

Фиксированный код:

int Led = 4;
int Buzz = 7;
int Sensor = 11;
int Fire = HIGH;
void setup()
{
  Serial.begin(9600);
  pinMode(Buzz,OUTPUT);
  pinMode(Sensor,INPUT);
  pinMode(Led,OUTPUT);
}
void loop()
{
  Fire = digitalRead(Sensor);
  if(Fire == HIGH){
//Serial.print("analog Read = ");
//Serial.print(analogRead);
    Serial.println("HELP! A FIRE!");
    digitalWrite(Buzz,HIGH);
    digitalWrite(Led,HIGH);
    delay(200);
    digitalWrite(Led,LOW);
    delay(200);
    Serial.println(analogRead(A0));
 }
 else
 {
    Serial.println("No fire detected");
    digitalWrite(Buzz,LOW);
    digitalWrite(Led,LOW);
  }
  delay(500);
}
,

похоже, что ответ помог https://stackoverflow.com/questions/58576149/trying-to-make-a-flame-sensor-code-is-giving-me-the-opposite-to-the-desired-ef, @Juraj

@Jurag, ты можешь пометить это как обман?, @he77789

нет, это другой вопрос и другой сайт. это дополнительный вопрос, @Juraj

Ну, он взял мой ответ, добавил еще, если и сказал, что это его собственный код. У меня недостаточно представителей, чтобы прокомментировать, не могли бы вы помочь мне назвать это?, @he77789

у вас есть спасибо в вопросе :-). учетная запись user60250 не зарегистрирована, так что временно., @Juraj