Problemas al desenergizar y energizar arduino

Hola a todos, quería hacerles una consulta, cuando por algún motivo mi arduino se queda sin energía/corriente o sea se apaga, al volver la energía no queda andando correctamente, necesito presionar el botón reset de la placa. Desconozco si es normal o algo no esta bien sea en el software o en la placa.
Y otra consulta: indexof("lo que sea") veo que no es literal, o sea que si es por ejemplo yo envío "lo que sean" lo va a tomar, la n no la va a tener en cuenta, como puedo hacer para tener un método que todo todo literal? o sea que si es "lo que sea" sea eso y no como en el ejemplo "lo que sean"?

Hola.
Colocale un condensador electrolitico de unos 10 micro faradios entre el pin de reset y GND. Con esto le das mas tiempo al Arduno para que se estabilice la alimentacion, con esto alargamos el Power on reset interno del chip, a ver si eso funciona.
Saludos

Hola gonpezzi gracias por responder, igual hay algo que no entiendo, cuando esta en comunicación por el puerto serial, o sea que todo lo q pasa de alguna manera muestra en el serial, anda bárbaro, la luz naranja de TX de la placa prende y apaga casi instantáneamente, ahora si lo desconecte y lo volví a conectar que ya no muestra por serial, porque para eso lo tendría que cerrar y volver a abrir al serial, la luz de TX de la placa se queda prendida bastante tiempo varios segundos, a que se debe eso?
Edito:
le tomé el tiempo, 25 segundos, igual anda todo perfecto pero no entiendo porque si no esta el serial abierto tarda tanto la luz tx y con serial abierto solo parpadea...

5 segundos me parece mucho, a mi me tarda de 3 a 4 segundos y eso es debido al tiempo que le lleva al driver al ide y al windows reconocer la placa.
Es mas durante ese tiempo el arduino esta ejecutando el codigo que lleve (pruebalo con el ejemplo "blink"), una vez que el sistema lo reconoce, el ide resetea y empieza el código que lleve desde cero.
saludos.

Lo de esos 25 seg de luz prendida lo hace cada vez que recibe una instrucción

Moderador:
Mi estimada @AnyPopins un problema de reset obviamente no va en la sección Software sino Hardware.
He movido el hilo pero si tienes dudas pregunta, pero creo que en este caso no daba para dudar.

Respueta de IndexOf
Esta parte si obviamente es de software pero comenzó con Hardware asi que es el tema predominante.

He ahi la respuesta.
Primero que hace indexOf en un String?
Dice el link
Localiza un caracter o Cadena String dentro de otro String. Por defecto, busca desde el comienzo pero puede comenzar desde un valor dado permitiendo la ubicación de todas las instancias de los caracteres del String

Entonces si tienes un String st = "dame lo que sea"; y luego buscas
st.indexOf("lo que sea");
te dará la ubicación de donde comienza "lo que sea" que es en la posición 5 y si por ejemplo buscas en otro String = "dame lo que sean"; tambien devolverá 5 porque la cadena "lo que sea comienza en 5 y termina en 14.
Este pequeño programa muestra lo que digo, intentando simular tus cadenas.

void setup() {
  Serial.begin(9600);
  //                  01234567890123456789
  String stringOne = "mostrame lo que sea que encuentres";
  int ubicacion = stringOne.indexOf("lo que sea");
  Serial.println(ubicacion);
}

void loop() {
  // put your main code here, to run repeatedly:
}

La respuesta es 9
O sea mira donde empieza "lo que sea" justamente en la posicion 9
Asi que si pusieras "lo que sean" tmb te diría 9, pero como tu consulta es por 10 caracteres, no tiene por qué preocuparte, porque sabes que todo lo que sigue es otra cosa.

Hola Surbyte gracias por la explicación..sobre el tema de indexof, hay alguna función que busque exactamente lo que se le pida? o sea busco lo que sea, pero se recibe lo que sean, no son iguales, hay alguna manera de buscar con exactitud o hay que usar indexof?

respecto a la consulta de hardware, si es verdad iba aca en Hardware, cuento lo que pasó,
esa era una prueba con el arduino energizado por usb, conectado a la pc, entonces ocurría eso con la luz TX, pero al probarlo con un cargador de celular x usb, eso no pasa, funciona normalmente todo...

.indexOf() busca exactamente lo que se le pida.

Buscas "lo que sea" en estas cadenas:
Encuentra lo que sea que sirva para...
...en un pueblo que seamos todos felices.
No me gusta un cielo que sea gris.

De interpretar y discriminar los resultados válidos te tenés que encargar vos.

Saludos

Bueno @gatul puso mas ejemplos pero pensé que el que te di sería suficiente y veo que no.
Que es lo que no entiendes? IndexOf te da el comienzo de lo que buscas. Como el tamaño o lenght de lo que comparas lo conoces entonces sabes donde sigue la cadena String. Listo. Asunto resuelto!!

A ver Surbyte si te explico porque re pregunté sobre el tema,
primero te digo que lo de resuelto sera para vos, tenes que pensar que los que preguntan no tienen tal vez tu conocimiento, yo soy lic. en biología molecular, si te hablara de cosas de mi trabajo es probable que no entiendas, y porque vos no entiendas y a mi me resulte de manual, no significa que por eso voy a dar por resuelto algo que no entendes...
segundo y sobre la repregunta: si le envío un mensaje sms a mi placa para encender mi rele 1 así :"ER1",

indexOf("ER1")...

pero suponiendo que tengo 10 reles, y el diez es "ER10", y envío un sms con "ER10" el 10 no va a encender porque va a caer primero en el 1..

indexOf("ER1")...
...
...
indexOf("ER10")...

se entiende porque re pregunto?

Si por supuesto agradezco el ejemplo de gatul, muchas gracias gatul de verdad...

Es simple, no hay una función que "adivine" lo que te resulta util, sos vos la que tiene que tomar todos los recaudos para que los datos sean correctos.
Evita los conflictos, que tu rele1 sea rele01, que tu comando no sea ER1 sino ER01.
Mira que sencillo se resuelve.

Si obvio gatul que así lo resolví, pero a ver si se entiende, solo pregunté primero que hacia indexOf y después si había algo que buscara literal ( tal como puse), me cito a mi misma "hay alguna manera de buscar con exactitud o hay que usar indexof?"..
tan simple como eso la pregunta que derivó en varios mensajes innecesarios...
obvio que el haberlo probado me hizo ver que era lo que pasaba...y lo que hice fue consultar si había otra manera, la respuesta tendría que haber sido, no no hay otra manera, esa es la forma y hay que ajustarse a eso...no veo lo complicado de responder así...
chicos me están haciendo dudar de seguir consultando...si es la idea me dicen y listo no pregunto más nada, pero ya lo dije 1000 veces, pregunto para aprender, y lo que pregunto es porque no lo sé ( que obviedad)...

Estos problemas y malos entendidos se evitan respetando las Normas del foro

3. Buscar antes de postear

Intenta solucionar tu problema, o responde tu pregunta por ti mismo

Saludos

Una mente brillante el que pensó en "responde tu pregunta por ti mismo" como la solución jajaja...
y cuando haces esto "Intenta solucionar tu problema" y no resulta, que se le ocurrió a la mente brillante que escribió las normas, volver a "Intenta solucionar tu problema," y sino "responde tu pregunta por ti mismo"?
no sigas gatul que no tiene sentido, ya respondiste bien la inquietud, pero todo lo demás no tiene sentido...muy agradecida por tu respuesta, ya la marqué como solución...

Y... Depende de cada uno, por ejemplo yo soy sonidista y encima de la época que ni Google ni los foros existían, pero nada evitaba que consiguiera algo para leer que sirviera a mis propósitos, y lo primero que programé en mi vida fue un procesador Z80 más una ROM, una RAM y si quería tener pines de entrada y salida tenia que poner 10 o 15 integrados más, nada de todo juntito en una plaquetita, había que hacer absolutamente todo y encima programarlo en assembler.
¡Mirá si me habré respondido solo!

Saludos

Un capo gatul, igual seguí ayudando como lo haces, que ahora no es como en tu época, están los foros jaja..gracias en serio por la ayuda, saluditos..

Any.

Hay otra solución al tema indexOf("ER1") y indexOf("ER10") como lo planteas y es que envies indexOf("ER01") para todo lo comprendido entre 0 y 9.
Lo mismo pasa en las consultas de bases de datos.

PD: Leí tu respuesta y luego me encontré que @gatul te había dicho lo mismo.

Hola Surbyte, si si eso es lo que en definitiva termine haciendo, lo que pasa que una busca la mejor manera de que tampoco sea engorroso lo que uno pone en el sms, para que resulte mas intuitivo...

Pregunto y solo pregunto: no se donde vives y tal vez, por costos, no consideraste una comunicación de datos. No es viable?
Solo pregunto porque ahora no veo cual sería la ganancia frente al SMS que en general es gratuito.