#1 Re: Апаратні питання » voltage sensor на каждый элемент блока батарей » 2019-09-28 00:08:03

вот попробуй подумать про https://www.ebay.com/itm/16CH-Analog-Digital-MUX-Breakout-Board-CD74HC4067-Precise-module-Arduino-LD/223452845448?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

#2 Re: Програмування Arduino » Помогите с neoway m590 » 2016-06-19 00:29:53

могу поделиться функцией, которая посылает команду в модем и жет ответ.... может вам поможет....
пример использования .... формат: "команда","ответ", время ожидаия в секундах, кол-во повторных попыток, читить буфер);
надеюсь вы понимаете что \" это символ "
if (!modem_write("AT+SAPBR=3,1,\"Contype\",\"GPRS\"","OK",1,3,true ))
    if (!modem_write("AT+SAPBR=3,1,\"APN\",\"www.ab.kievstar.net\"","OK",1,3,true ))
      if (!modem_write("AT+SAPBR=1,1","OK",5,3,true ))



в начале
Serial.begin(9600);
debugSerial.begin(38400);
#define DEBUGMODE           4

//-------------------------------------------------modem_write---------------------------------------------
boolean SMARTBHIVE::modem_write(char command[], char answer[], byte waitTime, byte repeet, boolean after_read){
while(repeet>0){
  #if DEBUGMODE < 5 
debugSerial.print(F("modWrite>\""));debugSerial.print(command);debugSerial.print(F("\" wait:"));debugSerial.print(waitTime);
    debugSerial.print(F("for:\"")); debugSerial.print(answer); debugSerial.print(F("\" left:")); debugSerial.print(repeet);
  #endif
  Serial.println(command);
  gsm_read_buf ="";
  unsigned long ii=millis();
  while ((millis()-ii)/1000 < waitTime){
    if (Serial.available()) gsm_read_buf += char(Serial.read());
    if (gsm_read_buf.endsWith(answer)){
      #if DEBUGMODE < 5 
        debugSerial.print (F("->DONE in:"));
        debugSerial.println ((millis()-ii));     
      #endif
      if (after_read){
        unsigned long iii=millis();
        while ((millis()-iii) < 200) if (Serial.available()) gsm_read_buf +=char(Serial.read());
      };
      #if DEBUGMODE < 5
        debugSerial.println(gsm_read_buf);
      #endif
      return (0);
    };
  };
  #if DEBUGMODE < 5
    debugSerial.println(F(">TIMEOUT"));
  #endif
  #if DEBUGMODE < 5
    debugSerial.println(gsm_read_buf);
  #endif
repeet--;
};
#if DEBUGMODE < 7
    debugSerial.println(F("modWrite>FAIL"));
  #endif
  return (1);
};

#3 Re: Програмування Arduino » Помогите с neoway m590 » 2016-06-19 00:07:03

привет.

у SoftwareSerial есть одна проблема....если во время передачи данных (от mcu в модуль) модуль что-нибудь пошлет (типа OK)....это вызовет int2 и передаваемые данные потеряются sad

я бы очень рекомендовал использовать аппаратный serial для модема а отлаживаться с softserial... хотя это довольно геморойно

есть еще чудесная библиотека AltSoftSerial она лучше работает для вашей задачи

удачи.

Підвал форуму