Gönderen Konu: ATMEGA 328P GSM MODUL İLE ÇALISRKEN RESETLENİYOR  (Okunma sayısı 3856 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı murat35

  • Üsteğmen
  • **
  • İleti: 84
  • Cinsiyet: Bay
  • www.teknolojiekibi.com
ATMEGA 328P GSM MODUL İLE ÇALISRKEN RESETLENİYOR
« : 20 Ağustos 2017, 21:51:50 »
arkadaslar arduino ile qectell M95 GSM Modül uzerinden dtmf ile role kontrol etmek istiyorm. ve role durumunu bana msj atsın istiyorum. asagıdakı kolarla bunu basarabildim fakat bazen programda sanki bir aksaklık oluyor ve resetleniyor. program tekrar baslayınca modudulun on / off butonuna basmış oluyor ve modulu kapatıyor. tekrar kendiliginden resetlenirse acıyor. sanki turkcell hat ile çok sık yapıyor digero peratoprlerde daha az gibi geldi bana. acaba program akısında hatalı mı yazdım bilmiyorum . kod sralamaları ile ilgili hatam olabilir. yardımcı olursanız sevinirim. simdiden tesekkurler. . kodlar aşagıdadır. . bastakı inculude ler programda doğru şekilde yazılı. burada kopyala yapıstırda hatalı çıkıyor.[/size]#include SoftwareSerial#include eepromSoftwareSerial gsm(2, 3);/*2(Rx) -> Tx3(Tx) -> Rx*/#define BEKLE 3String smsMetni = "";char gelen;int kayitAdresi , kaydedilecekVeri;int okunacakAdres, okunanVeri;int ring = 6 ; //telefon çalma ucu//int pwr = 7 ; //gsm modul açma çıkısı//int arama ;// arama isimli değisken//const int STQ = 5; // DTMF Module STQ //const int Q4 = 8; // DTMF Module Q4 //const int Q3 = 9; // DTMF Module Q3 //const int Q2 = 10; // DTMF Module Q2 //const int Q1 = 11; // DTMF Module Q1 //const int cks = 12; // ROLE Cıkısı //const int buz = 13; // Buzzer cıkısı //int sayi = 0;boolean first_flag = false;/*=========================================================================================================setup() : Pin Tanımlamaları yapılıyor.========================================================================================================== */void setup() {//Setup the INPUT pins on the ArduinopinMode(STQ, INPUT);pinMode(Q4, INPUT);pinMode(Q3, INPUT);pinMode(Q2, INPUT);pinMode(Q1, INPUT);pinMode(cks, OUTPUT);digitalWrite (cks, LOW);pinMode(buz, OUTPUT);digitalWrite (buz, LOW);pinMode(ring, INPUT);pinMode(pwr, OUTPUT);digitalWrite (pwr, HIGH);delay(1000);digitalWrite (pwr, LOW);delay(3000);gsm.begin(9600); //* Yeni oluşturduğumuz haberleşme portunu açıyoruz */delay(3000);gsm.println("AT+CMGF=1");// sms modu text olarak seçilir/delay(150);gsm.println("AT+CMGD=1,4");// tüm sms leri siler /delay(1000);SMSgonder("Elektirik Geldi ve Sistem Basladi");gsm.flush();delay(150);/* EEPROMa kaydedilmiş verileri okuyalım */okunacakAdres = 10; // 10 adresini okuyacağızokunanVeri = EEPROM.read(okunacakAdres ); /* EEPROMun 10 adresindeki veri okunanVeri değişkenine aktarılıyor. */delay(10);if (okunanVeri == 50){digitalWrite (cks, HIGH);}else {digitalWrite (cks, LOW);}}/*=========================================================================================================döngü() :========================================================================================================== */void loop(){if ((digitalRead(STQ) == HIGH)&&!first_flag ){first_flag =true;int temp1 = digitalRead(Q1);int temp2 = digitalRead(Q2);int temp3 = digitalRead(Q3);int temp4 = digitalRead(Q4);sayi = (temp1 + (temp2 * 2) + (temp3 * 4) + (temp4 * 8));if (sayi == 11){digitalWrite (cks, HIGH);digitalWrite (buz, HIGH);delay(1000);digitalWrite (buz, LOW);delay(500);digitalWrite (buz, HIGH);delay(1000);digitalWrite (buz, LOW);smsMetni = "POMPA CALISTIRILDI";delay(10);SMSgonder(smsMetni);kayitAdresi = 10; /* Verinin yazılacağı EEPROM adresi */ kaydedilecekVeri = 50; /* EEPROMA kaydedilecek veri */EEPROM.update(kayitAdresi, kaydedilecekVeri); /* EEPROMun 10 adresine 50 verisi yazdırıldı. */delay(10);}else if (sayi == 12){digitalWrite (cks, LOW);digitalWrite (buz, HIGH);delay(2000);digitalWrite (buz, LOW);smsMetni = "POMPA DURDURULDU";SMSgonder(smsMetni);kayitAdresi = 10; /* Verinin yazılacağı EEPROM adresi */ kaydedilecekVeri = 20; /* EEPROMA kaydedilecek veri */EEPROM.update(kayitAdresi, kaydedilecekVeri); /* EEPROMun 10 adresine 50 verisi yazdırıldı. */delay(10);}}else first_flag=false;delay(100);{voice();delay(1);}}/*=========================================================================================================Arama cevaplama========================================================================================================== */void voice() {arama=digitalRead (ring); /* arama adlı değiskeni oku*/if (arama==LOW) {delay(2000);gsm.println("AT+CMGD=1,4");delay(1000);gsm.println("ATA");delay(100);}}void SMSgonder(String mesaj) {gsm.print("AT+CMGF=1\r");delay(120);gsm.println("AT+CMGS=\"+905437662285\"");delay(120);gsm.println(mesaj);delay(120);gsm.println((char)26);delay(120);gsm.println();delay(120);gsm.println("AT+CMGD=1,4");delay(120);gsm.println("AT+CMGF=1");delay(200);smsMetni = "";delay(13000);gsm.print("AT+CMGF=1\r");delay(120);gsm.println("AT+CMGS=\"+905427310367\"");delay(120);gsm.println(mesaj);delay(120);gsm.println((char)26);delay(120);gsm.println();delay(120);gsm.println("AT+CMGD=1,4");delay(120);gsm.println("AT+CMGF=1");delay(200);smsMetni = "";delay(3000);}