Ошибка "serial 1 was not declared in the scope"
#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
#include <SoftwareSerial.h>
char Mob[20]="+923319020922";
String stringGPS = "";
String stringGPS1 = "";
char c=0;
int t=0,i;
int buzzer = 9;
int buttonState = 0;
SoftwareSerial mySerial(10, 11); // RX, TX
//const int buttonPin1 =9 ;
int buttonState1 = 0;
int helmetstate=0;
const int relay=8;
char inByte=0;
void setup()
{
lcd.begin(20, 4);
lcd.setCursor(0, 0);
pinMode(relay, OUTPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
Serial1.begin(9600);
Serial2.begin(9600);
digitalWrite(relay, LOW);
delay(15000);
lcd.print("Config modem....");
Config();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Smart helmet ");
}
void loop()
{
if(Serial2.available())
{
inByte = Serial2.read();
//Serial.write(inByte);
if(inByte=='A'||inByte=='B'||inByte=='C'){
inByte=0;
SMS(Mob);
while(Serial2.available()>0)
{
i = Serial2.read();
}
}
if(inByte=='D')
{
digitalWrite(relay, LOW);
inByte=0;
}
if(inByte=='E')
{
digitalWrite(relay, HIGH);
inByte=0;
}
else
{
}
}
//buttonState = digitalRead(buttonPin);
// if (buttonState == LOW) {
//Serial.print("ok");
//lcd.clear();
// lcd.setCursor(0, 0);
//lcd.print("Sending msg ");
// lcd.setCursor(0, 0);
//lcd.print("Smart helmet ");
// checkGPS();
// SMS(Mob);
//helmet();
checkGPS();
lcd.setCursor(0, 1);
lcd.print(stringGPS1);
//Serial.println(stringGPS1);
}
/*
void helmet()
{
buttonState1 = digitalRead(buttonPin1);
if (buttonState1 == HIGH)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SWITCH ON ....... ");
digitalWrite(relay, HIGH);
}
else
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SWITCH OFF ....... ");
digitalWrite(relay, LOW);
}
}
*/
void checkGPS()
{
// Serial.print("check gps");
// while (Serial.available())
// {
if (Serial.available()>0)
{
// c = Serial.read();
// stringGPS = c;
//Serial.print(c);
while (c != 'R')
{
c = Serial.read();
// Serial.print(c);
}
// if (c== 'R')
// {
// Serial.print(c );
while(t!=41)
{
if (Serial.available())
{
c = Serial.read();
stringGPS += c;
t++;
//Serial.print(stringGPS );
}
}
stringGPS1= stringGPS.substring(15, 41);
// Serial.println(stringGPS1);
t=0;
c=0;
stringGPS = "";
// }
}
}
void SMS(char Mob[20])
{
digitalWrite(buzzer, HIGH);
lcd.setCursor(0, 0);
lcd.print("Sending msg ");
Serial1.print("AT+CMGS=\""); // send the SMS number
Serial1.print(Mob);/// Send mobile number
Serial1.print("\"\r");
delay(4000);
Serial1.print(stringGPS1);// send the SMS Data
Serial1.print("\r");
delay(2000);
Serial1.write(0x1A); ///Ctrl+Z
delay(1000);
Serial1.write(0x0A); ///Carrige return
delay(1000);
Serial1.write(0x0D); ///line feed
delay(1000);
stringGPS1 = "";
lcd.setCursor(0, 0);
lcd.print("Smart helmet ");
digitalWrite(buzzer, LOW);
}
void Config()/////configuration for sim900
{
delay(4000);
Serial1.print("ATE0\r"); ////Disable Echo
delay(4000);
Serial1.print("AT\r"); ///checking echo
delay(4000);
Serial1.print("AT+CMGF=1\r");///msg format
delay(4000);
}
когда я запускаю этот код, он выдает сообщение об ошибке, что "serial 1 was not declared in the scope"
@Mian Yasir shah, 👍0
Обсуждение1 ответ
▲ 1
Единственный SoftwareSerial, который вы объявляете, - это SoftwareSerial mySerial(10, 11); // RX, TX
(И вы, вы не использовали его впоследствии).
Если доступны аппаратные сериалы Serial1
, Serial2
или Serial3
(и уже объявленный в заголовке arduino.h
зависит от используемой вами платы.
,
@theSealion
Смотрите также:
- AT-команда не отвечает на последовательный монитор
- Получить данные с сайта с помощью ESP8266 с помощью AT-команд
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- Как остановить SoftwareSerial от получения данных и повторно включить его в какой-то другой момент?
- SIM800L не регистрируется в сети
- Ардуино для чтения с преобразователя RS232 в последовательный модуль TTL
- Модуль SIM808 GSM работает нормально, GPS не работает (нет сообщения о готовности GPS при включении питания)
- Как читать и записывать на устройство rs232 с/на Arduino
Плата, для которой вы компилируете, не имеет
Serial1
иSerial2
. Почему вы пытались их использовать? Или вы просто компилируете для неправильного типа платы? Какой Arduino у вас есть?, @chrislКакую плату вы используете? Если это не одна из самых больших плат, то почему вы думаете, что у нее будут Serial1 и Serial2?, @Majenko
Если бы вы отформатировали свой код в удобочитаемом виде, вы бы увидели, что в нем слишком много закрывающих фигурных скобок. Один в вашей функции цикла и два в коде в конце. Правильное форматирование делает код читабельным и позволяет легче находить свои ошибки., @Peter Paul Kiefer