как выполнить остановку кода
- Войдите на сайт для отправки комментариев
Чт, 21/06/2018 - 18:50
Ув. Форумчане я начинающий ардуинщик и прошу тапками в меня не кидать.
На ардуине нано собрал простейшую сигналку ,при сработке на датчике производится отправка смс на мобилку.
код вот:
{
Serial.begin(9600);
smsSerial.begin(9600);
pinMode(sense_pin,INPUT);
digitalWrite(sense_pin,LOW);
}
void loop()
{
// Отправлять сообщения всякий раз когда sense_pin устанавливается в 1
if (digitalRead(sense_pin)==HIGH) // Проверка если sense_pin установлен в 1
{
smsSerial.println("AT+CMGF=1"); // Установка текстового режима
delay(150);
smsSerial.println("AT+CMGS=\""+number+"\""); // Укажите номер получателя в международном формате, заменив 7 если это не Россия
delay(150);
smsSerial.print("Warning! SIM800L"); // Введите отправляемое сообщение
delay(150);
smsSerial.write((byte)0x1A); // Символ окончания сообщения 0x1A : эквивалентно Ctrl+z
delay(50);
}
Все работает ,но вот проблема в том ,что смс-ки сыпет с периодичностью delay(150) . Если это не предоставляется тяжким и неподъемным трудом подскажите как можно сделать чтоб после отправки 2-х смс-ок девайс отключался. Очень буду благодарен за помощь.
подскажите как можно сделать чтоб после отправки 2-х смс-ок девайс отключался. Очень буду благодарен за помощь.
Элементрано.
добавьте переменную счетчик, при каждой отправке СМС увеличивайте счетчик на единицу. как только счетчик достигнет нужного числа СМС, например == 2 - больше не отправляйте.
1. Вставить код правильно, а то читать его невозможно.
2. Добавить if с проверкой того, что sms уже отправлена.
А вы не могли бы пример этого кода написать.Простите за наглость. Я реально пока на нулевом уровне в програмировании. У нас в городе спросить неукого. Заранее премного благодарен. Участились случи краж в нашем районе, по этому начал пилить эту тему.
У нас в городе спросить неукого.
что, и гугля нет? :)
На самом деле - "не нужен тебе пример кода, Вовка" (с). Если ты на нулевом уровне - сигналку ты все равно не соберешь, так что начинай учится сразу. без подсказок.
Ну раз так огромное спасибо и за это. Займемся самообразованием.
И все же может кто допилит счетчик? ......Гуглу пилю...Пробую все ..Если у самого получится выложу....
Сигналку собрал.Все работает.В принципе и такая хавается,но хочется код допилить.
Если бы хотелось допилить - уже допилили бы. Вам же хочется чтобы кто то допилил :)
У вас уже есть условие, "останавливающее код", вот оно - if (digitalRead(sense_pin)==HIGH) и вам в него нужно добавить логику типа (уже_отправлено == true) и после отправки ближе к концу кода сделать уже_отправлено = true;
Остановить можно сделав "Код, СТОЙ!!! Раз-два."
и вызвать abort();