Hola a todos en el nuevo foro!!, reciéntemente he estado trasteando con sensores de luz y tengo un problemilla con ello, pero me ha tocado esperar por la transición del foro
El tema es el siguiente, lo que pretendo es hacer como un interruptor crepuscular, pero en vez de activar o desactivar algo, lo que hago es enviar una sola trama por el puerto serie cuando cambia a noche y a día, el problema es, que no para de enviarme tramas constantemente y no he conseguido que sólo me envíe una cuando cambia de estado.
El sensor es una LDR con un LM358, va conectado a positivo, negativo y la señal a una entrada analógica de arduino.
La condición sería como he mencionado anteriormente, por ejemplo, si es de día, cuando cambie a noche rebasando un umbral preestablecido envía una trama y al revés al ser de noche, cuando cambie a día envíe otra trama.
si (LDR<= UmbralDia Y contadorDia==0) entonces
EnviaDatoSerie;
contadorDia++;
contadorNoche=0;
fin
si (LDR > UmbralNoche Y contadorNoche==0) entonces
EnviaDatoSerie;
contadorNoche++;
contadorDia=0;
fin
finLoop
Perfecto Igor R!!, el fallo que tenía yo es que no ponía a cero el contador contrario en cada caso y al empezar a cambiar cosas y cosas al final terminaba hasta con dolor de cabeza.
Ahí va un puntito para ti Igor R!!, a ver si te animas un día y me enseñas como enviar datos por rs485 como los de un sensor de temperatura por ejemplo
Ahora estoy entre manos con algo mejor...
Con bus CAN!! Estoy preparando una libreria para ser ready-to-go!!! Ya la tengo funcionando, pero me falta unos pequeños detallitos.... a 1 Mbit/s "pa por si acaso"
Será tan fácil como usar el puerto serie!!! Tendré algunas plaquitas por si alguien quiere "jugar" con ello....buenas,bonitas y baratas
Espero contenerme y no empezar a buscar los cablecitos del can tracción de mi coche..... XD
Lo del Bus Can está de lujo!! esperaré ansioso a tus publicaciones para poder probarlo, que como bien dices se pueden hacer cosillas en el coche XD
Te he comentado lo del RS485, porque me basé en él (al ser el hardware mas barato) desde hace tiempo, como sabes por algunas preguntas antiguas que te hize, y todavía no he podido enviar datos de algún sensor para por ejemplo ver los datos en un lcd a través del bus, sólo he podido enviar las tramas previamente ya programadas.
Una cosita mas, estoy intentando meter los dos valores de umbral en la eeprom con la idea de enviar un dato por serie y cambiar el valor del umbral sin tener que reprogramar el arduino, pero todavía no he sido capaz.
El umbral sería una cifra como 300 y por lo que he leído en cada sitio de la eeprom solo guarda 2 bytes, ya con esto me pierdo...
Por otro lado, si quieres saber como "juntar" en una variable de mayor tamaño lo que tienes en variables más pequeñas, mira los operadores bitwise de la página Arduino.
Gracias a los tres por contestar, las funciones que pacojarcia a puesto me han sevido de mucho, gracias.
Respecto a la concatencion y a los bitwise, podríais poner algun ejemplo? me temo que es bastante avanzado para mi
Me pregunto cúal será la utilidad de hacer un AND con 0xFF
Si la variable que haces un shift, tiene 2 bytes (int), y quieres quedarte sólo con el byte bajo, tiene sentido.... no??
Si haces un shift de 8, ya sabes que lo llena de ceros, pero si lo haces de tan solo 3?? Yo también lo suelo hacer "pa por si acaso" (además en algunos lenguajes existen shifts que rotan los bits en vez de meter ceros....)