El hilo de ARDUINO: Dudas, código, ejemplos, etc

Tema en 'Informática - Tecnología' iniciado por McClane, 26 May 2017.

  1. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    Luego cuando encienda el pc lo pongo porque me suena que tenia algo escrito en el void loop y lo borré y ahora no rula se queda en las interrogantes
     
    A pasko le gusta esto.
  2. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    Este es el código que usé y funcionaba hasta que lo toqué

    #include <SoftwareSerial.h>



    SoftwareSerial SIM900(7, 8);


    void setup() {

    digitalWrite(9, HIGH); // Descomentar para activar la alimentación de la tarjeta por Software

    delay(1000);

    digitalWrite(9, LOW);

    delay (5000); //Nos damos un tiempo para encender el GPRS y la alimentación de la tarjeta

    SIM900.begin(19200); //Configura velocidad del puerto serie para el SIM900

    Serial.begin(19200); //Configura velocidad del puerto serie del Arduino

    Serial.println("OK");

    delay (1000);

    // SIM900.println("AT+CPIN=\"xxxx\""); //Comando AT para introducir el PIN de la tarjeta

    delay(25000); //Tiempo para que encuentre una RED


    }


    void llamar()

    {

    Serial.println("Realizando llamada...");

    SIM900.println("ATDXXXXXXXXX;"); //Comando AT para realizar una llamada

    delay(30000); // Espera 30 segundos mientras realiza la llamada

    SIM900.println("ATH"); // Cuelga la llamada

    delay(2000);

    Serial.println("Llamada finalizada");

    }


    void mensaje_sms()

    {

    Serial.println("Enviando SMS...");

    SIM900.print("AT+CMGF=1\r"); //Configura el modo texto para enviar o recibir mensajes

    delay(100);

    SIM900.println("AT+CMGS = \"XXXXXXXXX\""); //Numero al que vamos a enviar el mensaje

    delay(100);

    SIM900.println("SMS enaviado desde arduino."); // Texto del SMS

    delay(100);

    SIM900.print((char)26); //Comando de finalización ^Z

    delay(100);

    SIM900.println();

    Serial.println("SMS enviado");

    }



    void loop() {

    }
     
    A pasko le gusta esto.
  3. pasko

    pasko Forista Senior

    Registrado:
    21 Sep 2017
    Mensajes:
    4.203
    Me Gusta:
    10.200
    Modelo:
    F45 - K54
    Hola.

    ¿Es este el código que decías que repetía las llamadas?. A mi me parece que está bien: se registra, hace una llamada y envía un sms, luego en la parte loop se queda sin hacer nada...

    Si pones las funciones llamar() y enviar_sms dentro de loop(), las.estará repitiendo continuamente ...que creo que es lo que te pasaba antes.
    Saludos.
     
    Última edición: 25 Ago 2019
  4. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    al borrar el loop y cargar de nuevo hizo la llamada y el mensaje pero después no conseguí que volviera a hacer la llamada

    Se supone que si envío en el display por el comando atd debería volver a hacer la llamada? Porque no hace nada, y solo me salen interrogantes, descomente la línea de marcar pin porque previamente se lo había quitado con un móvil y funcionar funciona pero no veo nada en el display
     
  5. pasko

    pasko Forista Senior

    Registrado:
    21 Sep 2017
    Mensajes:
    4.203
    Me Gusta:
    10.200
    Modelo:
    F45 - K54
    Hola.

    Tienes que poner el atd y el del sms en el loop, junto con el IF que decía McClane.

    Lo que pongas en el IF es lo que tiene que lanzar la alarma... ¿Cómo quieres que salte la alarma? ¿Con detención de movimiento, una puerta abierta en el camión ? ...

    Saludos.
     
    A josete_perez le gusta esto.
  6. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    42.363
    Me Gusta:
    21.158
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    ¿No hay nada en el LOOP? Es muy raro eso, porque no debería entrar (no soy un experto en Arduino) en los VOID distintos sin un código que le mande, pero esto no lo recuerdo con exactitud. Otra opción es que ejecute el código y SOLAMENTE el VOID SETUP se ejecuta una vez, por lo que puede que entre en bucle la programación porque:

    -No veo código que le indique cuándo realizar la llamada
    -No veo código que pare de hacer llamadas

    Por lo que veo, los VOID entran en bucle y creo que ahí está el problema. Debería estar en el VOID LOOP o dejarlos así pero con un código en el VOID LOOP que llame a ese VOID cuando haya un evento, como por ejemplo, una fuerza G que mueva el coche y lo interprete como robo, alarma externa con salida de señal, etc. De todas formas, ahí veo muchos DELAY y además bastante largos. No soy tampoco extremista y hago un código para evitar un DELAY de... 50ms, como otros hacen, pero 30s de DELAY son muchos segundos. Esto deja la placa TOTALMENTE detenida y lo peor de todo, con uso de núcleo aunque no haga nada. Esto puede serte útil si va a estar tirando de batería el sistema. ;)

    Por otro lado, aunque debería funcionar, se recomienda que la propia placa y todos sus componentes por serial estén vinculados a 9600 baudios. Aunque funciona a 115200 también, mucha gente lo recomienda porque dicen que es como menos falla. Lo mismo, con lo de los interrogantes, tienes por ahí algún fallo de sincronismo entre la pantalla, el serial y otras cosas. ;)
     
    A josete_perez y pasko les gusta esto.
  7. pasko

    pasko Forista Senior

    Registrado:
    21 Sep 2017
    Mensajes:
    4.203
    Me Gusta:
    10.200
    Modelo:
    F45 - K54
    Hola.

    Prueba algo así :

    ........ inicializaciones, void llamada(), void envia_sms(), etc.
    ....

    void loop ()
    {

    if condición_disparo_alarma:
    llamada();
    envia_sms();
    }

    Reduce también el delay de 30 segs de la llamada, sobre todo para poder probar sin perder tanto tiempo. biggrin

    Saludos.
     
    A josete_perez le gusta esto.
  8. pasko

    pasko Forista Senior

    Registrado:
    21 Sep 2017
    Mensajes:
    4.203
    Me Gusta:
    10.200
    Modelo:
    F45 - K54
    A josete_perez le gusta esto.
  9. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    Gracias por los aportes iré probando a ratos porque esta semana y dando la brasa para incluir los sensores que tienen que estar al caer

    Los sensores son uno para cada depósito otro para cada puerta y dos sensores por infrarrojos para el interior

    La idea es que cuando salten haga el loop y me telefonee la historia es que en el sms me gustaría incluir las coordenadas de latitud y longitud para posición del objeto y en ese código ya si que me pierdo :floor:
     
    A Tizon y pasko les gusta esto.
  10. pasko

    pasko Forista Senior

    Registrado:
    21 Sep 2017
    Mensajes:
    4.203
    Me Gusta:
    10.200
    Modelo:
    F45 - K54
    Hola.

    Cuando tengas los sensores lo vemos...
    Los sensores de interior son infrarrojos o ultrasonidos?
    Las coordenadas no se, serán las del camión y ya sabrás donde está, ¿no?
    Saludos.
     
    A josete_perez le gusta esto.
  11. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    Puertas y depósitos de ultrasonidos los de dentro infrarrojos

    Las coordenadas se que hay una acción para leer los datos que se reciben de la red móvil y entre ellos se encuentran las coordenadas, la gracia de eso es que si se lo llevan que por ejemplo cada 20 min envíe un sms con las coordenadas
     
    A Tizon y pasko les gusta esto.
  12. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    Por cierto el código funciona y ya puedo leer las líneas en el display iba to torpe y no había configurado la velocidad por eso solo me salían interrogantes
     
    A pasko le gusta esto.
  13. pasko

    pasko Forista Senior

    Registrado:
    21 Sep 2017
    Mensajes:
    4.203
    Me Gusta:
    10.200
    Modelo:
    F45 - K54
    Hola.
    Buena idea. No sabía que se podía hacer algo así ...

    Saludos.
     
  14. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    Va a tirar de las baterías de 24v pero alimentado por un escudo con dos baterías para que en caso de fallo de alimentación siga funcionando con las pilas, entonces necesito que si salta uno de los sensores mientras esté el evento siga repitiendo la llamada y en el sms incluya la posición, con posibilidad de que pueda detenerlo remotamente con un sms, no me toque ir en calzones desde mi casa al aparcamiento a resetear la placa
     
  15. pasko

    pasko Forista Senior

    Registrado:
    21 Sep 2017
    Mensajes:
    4.203
    Me Gusta:
    10.200
    Modelo:
    F45 - K54
    Hola.

    en calzones....:descojon:

    Saludos.
     
    A josete_perez le gusta esto.
  16. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    Tengo novedades acerca del invento del volante

    He conseguido que funcione el encoder con el programa, repasando el esquema había pasado por alto que llevaba 2 resistencias entre el positivo del encoder y una a la fase a y otra a la b, el caso una vez colocadas las resistencias parece que llegaba señal, pero ha sido la mover los pines de la placa cuando ha empezado a funcionar, gira hacia los dos lados , pero ha sido mover la placa para conectar los pines que van al driver motor y se ha jodido el invento, ha dejado de leer en encoder y el motor solo gira en una dirección

    Seguiré investigando
     
    A pasko le gusta esto.
  17. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    Llegaron los infrarrojos ya puedo seguir las pruebas de la alarma ahora me supongo que es cuando me tiro 3 noches más dándole vueltas al código para que funcione :floor::floor:

    [​IMG] biggrin
     
    A pasko le gusta esto.
  18. pasko

    pasko Forista Senior

    Registrado:
    21 Sep 2017
    Mensajes:
    4.203
    Me Gusta:
    10.200
    Modelo:
    F45 - K54
    Hola.

    :descojon:

    Con las librerías adecuadas debería ser sencillo...

    Saludos.
     
    A josete_perez le gusta esto.
  19. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    42.363
    Me Gusta:
    21.158
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    :LOL: Eso en media tarde lo tienes funcionando, y como funcione sin librería, en un par de horas. biggrin
     
    A pasko y josete_perez les gusta esto.
  20. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    Bicheando he visto que los infrarrojos no necesitan librería con unas cuantas líneas funciona, ahora creo que ir tengo que incluir un condicionante para que cuando se lea posición High en el pin entre el void llamada void mensaje

    En acostar a los nenes me pongo a ver si lo dejo funcionando lo meto todo en una caja y empiezo la instalación del cableado en la camioneta
     
    A pasko le gusta esto.
  21. pasko

    pasko Forista Senior

    Registrado:
    21 Sep 2017
    Mensajes:
    4.203
    Me Gusta:
    10.200
    Modelo:
    F45 - K54
    Hola.

    Nos tienes en ascuas.... :LOL:

    Saludos.
     
    A josete_perez le gusta esto.
  22. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    Otra duda que me surge, los sensores de ultrasonidos hay que montarlos individualmente cada uno con su línea o se pueden montar en paralelo? Por ahorrarme algo de cobre que está la vida mu achucha biggrin
     
  23. katraska

    katraska Coordinador Coordinador

    Registrado:
    24 Ene 2002
    Mensajes:
    10.295
    Me Gusta:
    3.262
    Ubicación:
    Sanse - Madrid
    Modelo:
    330i G20
    Yo me hice una luz de acceso a casa con un sensor parecido. En principio para una luz funciona bastante bien, pero da algún que otro falso positivo. Tendrás que inventarte algo para confirmar la alarma y que no te esté incordiando sin motivo. Tal vez poner los dos sensores en el mismo sitio y alertar sólo si los dos se activan.... o poner dos tecnologías (infrarrojo + ultrasonido)

    Por otro lado, la calefacción de la casa del pueblo la controlo con un sim900 como el que has puesto. Si tienes pegas te echo un cable, aunque hace ya varios años que no toco ese código

    salu2
     
    A Tizon, pasko y josete_perez les gusta esto.
  24. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    Sensor en pruebas, me ha llamado un par de veces pero no se si ha sido por el sensor o por el loop, lo he dejado en espera, ahora cuando entre en la habitación si funciona o si le he metido las líneas incorrectas o en el lugar indebido
     
    A pasko le gusta esto.
  25. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    Se puede variar el tiempo? Por ejemplo si se activa el sensor que hasta pasados unos Segundos no salte? Si hay alguien dentro durante más de 10 Segundos y el sensor activo salte entonces
     
    A Tizon le gusta esto.
  26. katraska

    katraska Coordinador Coordinador

    Registrado:
    24 Ene 2002
    Mensajes:
    10.295
    Me Gusta:
    3.262
    Ubicación:
    Sanse - Madrid
    Modelo:
    330i G20
    Por valer, podría valer, aunque no tienes garantía de que no te de dos falsos positivos seguidos.... es cuestión de probar

    Yo he usado este, que lleva una regulación de sensibilidad, aunque lo he tenido que llevar al mínimo para minimizar los falsos positivos:

    https://www.ebay.com/itm/New-HC-SR5...e=STRK:MEBIDX:IT&_trksid=p2060353.m2749.l2649

    salu2
     
    A Tizon, josete_perez y pasko les gusta esto.
  27. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    De pruebas ando, la placa va, la Shield también hace llamada manda mensaje, el sensor va porque lo he probado primero en el display porta y da cero to el rato menos cuando le arrimo la mano que empieza a mandar unos

    Ahora viene cuando intento juntarlo todo y hace pummm ya está aquí la guerra,
     
    A pasko le gusta esto.
  28. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    Lo que yo te diga por separado funcionan los módulos

    Cuando intento modificar el código me empieza a dar errores y entender lo justo de inglés tiene sus limitaciones biggrinbiggrin voy q rebuscar algún código que ya esté hecho y funcionando
     
  29. pasko

    pasko Forista Senior

    Registrado:
    21 Sep 2017
    Mensajes:
    4.203
    Me Gusta:
    10.200
    Modelo:
    F45 - K54
    Hola.

    En el IDE de Arduino se puede cambiar el idioma en el menú Preferences.

    Saludos.
     
    A josete_perez le gusta esto.
  30. josete_perez

    josete_perez Forista Legendario

    Registrado:
    21 Ene 2015
    Mensajes:
    10.629
    Me Gusta:
    12.235
    Modelo:
    Ex 535i E39
    Vale creo que ya funciona

    Me ha tocado ingeniármelas y escribir el código entero pero en el display port salen todos los pasos

    Sensor ok
    Movimiento detectado
    Realizando llamada
    Llamada realizada

    Y el loop se repite cada vez que paso la mano, lo malo es que como la tarjeta es de prepago creo que se ha chupado ya el saldo biggrin

    Esta noche cambio la sim que ya tengo una y lo pruebo

    Aunque me tocara modificar el código para incluir los ultrasonidos que han llegado hoy
     
    A pasko le gusta esto.

Compartir esta página