Paso 4: Todo código
#include <LiquidCrystal.h>; LiquidCrystal lcd(42,44,49,50,70, 69); const int numRows = 2; const int numCols = 16; char actualMessageArray[250]; void setup() { // put your setup code here, to run once: Serial.begin(9600); Serial7.begin(9600); Serial7.println("AT"); while(Serial.available()>0) { Serial.print((char)Serial.read()); } delay(1000); Serial7.println("AT+CMGF=1"); while(Serial.available()>0) { Serial.print((char)Serial.read()); } delay(1000); Serial7.println("AT+CNMI=2,2,0,0"); delay(100); while(Serial.available()>0) { Serial.print((char)Serial.read()); } delay(1000); lcd.begin(numCols, numRows); lcd.setCursor(0,0); } void loop() { // put your main code here, to run repeatedly: if(Serial.available()>0) { char buffer[250]; Serial.readBytes(buffer, 250); String message = buffer; String command = "<s>"; String commandEnd = "</s>"; int indexOfMessage = message.indexOf(command); int indexOfMessageEnd = message.indexOf(commandEnd); if(indexOfMessage>0 && indexOfMessageEnd>0){ String actualMessage = message.substring(indexOfMessage+3,indexOfMessageEnd); Serial.print("message :"); Serial.println(message); Serial.print("command :"); Serial.println(command); Serial.print("commandEnd :"); Serial.println(commandEnd); Serial.print("actualMessage :"); Serial.println(actualMessage); actualMessage.toCharArray(actualMessageArray,250); } } marquee(actualMessageArray); delay(1000); lcd.clear(); } void marquee( char *text) { int length = strlen(text); // the number of characters in the text if(length < numCols) lcd.print(text); else { int pos; for( pos = 0; pos <= numCols; pos++) lcd.print(text[pos]); delay(1000); // allow time to read the first line before scrolling pos=1; while(pos <= length - numCols) { lcd.setCursor(0,0); for( int i=0; i < numCols; i++) lcd.print(text[pos+i]); delay(300); pos = pos + 1; } } }