Ребята помогите с SIM900

annakin
Offline
Зарегистрирован: 01.06.2015

Пытаюсь сделать что бы SIM900 дозванивалась при появление контакта (так называемом коротком замыкании на Пине 12 ) но, чтото не получается.

Шас с моим кодом она работает на оборот, тоесть если я убераю перемычку с Пина 12 и GDN она начинает звонить а надо что бы при появлении короткого  между ПИН12 и ГДН.

 

#include <SoftwareSerial.h>
 
SoftwareSerial gprsSerial(7, 8);
 
int btnPin = 12;
boolean prevBtn = LOW;
 
void setup()
{
    Serial.begin(9600);
    gprsSerial.begin(19200);
    delay(500);

}
 
void loop()
{
    boolean currBtn = digitalRead(btnPin);
    if (prevBtn != currBtn && currBtn == HIGH) {
        MakeVoiceCall();
        delay(50000);
    }
    prevBtn = currBtn;
}
 
void MakeVoiceCall() {
    Serial.println("dialling...");
    // Устанавливаем адресата: телефонный номер в международном формате
    gprsSerial.println("ATD + +*********;");
    delay(100);
    gprsSerial.println();
}

И Если можно обьясните где я ошибся.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015
#include <SoftwareSerial.h>
 
SoftwareSerial gprsSerial(7, 8);
 
int btnPin = 12;
boolean prevBtn = LOW;
 
void setup()
{
    Serial.begin(9600);
    gprsSerial.begin(19200);
    delay(500);

    pinMode(btnPin, INPUT);
    digitalWrite(btnPin, HIGH);


}
 
void loop()
{
    boolean currBtn = digitalRead(btnPin);
    if (prevBtn != currBtn && currBtn == LOW) {
        MakeVoiceCall();
        delay(50000);
    }
    prevBtn = currBtn;
}
 
void MakeVoiceCall() {
    Serial.println("dialling...");
    // Устанавливаем адресата: телефонный номер в международном формате
    gprsSerial.println("ATD + +*********;");
    delay(100);
    gprsSerial.println();
}

Найдете сами три отличия ?