cosa rara con arduino usando millis()

Todo cuanto tiene que ver con la obtención, almacenamiento y proceso de la información digital, sus aplicaciones y el software y hardware utilizado.
Responder
Mensaje
Autor
sawtech
Mensajes: 68
Registrado: Mié Feb 01, 2017 6:59 pm
País: argentina
Ciudad: caba

cosa rara con arduino usando millis()

#1 Mensaje por sawtech »

Estoy armando un horno al que le pueda dar rampas de calentamiento usando arduino (podia comprarlo pero era mas divertido hacerlo!!!), y me encontre con un error en el display cuando presentaba la temperatura en pantalla.
El error proviene de la declaración de millis() y le puede pasar a alguno de ustedes, les dejo el enlace al video para el que quiera.

https://youtu.be/V8A2zLa--6s

Se muestra como corregir el error, pero porque se da el error, si alguno lo sabe se agradece el aporte!

SAWTECH

Avatar de Usuario
heli
Mensajes: 1952
Registrado: Mié Sep 06, 2006 7:28 am
País: España
Ciudad: Alcalá de Henares
Ubicación: Alcala de Henares (Madrid, España)
Contactar:

Re: cosa rara con arduino usando millis()

#2 Mensaje por heli »

En realidad no es un error, el programa hace exactamente lo que has programado, pero no has programado lo que querias que hiciera.
La variable int solo puede valer de 0 a 32767 y luego pasa a negativo de -32768 a -1 porque se interpreta en "complemento a 2"
Lo mismo te pasaria con un char de 0 a 127 y -128 a -1 y con long en valores mas altos.

Si usas un unsigned int ya no tendras valores negativos pero solo puedes almacenar datos de 0 a 65535, si te pasas tendras rollover y también ocurriran cosas raras: 65500 +1000 = 964
¡No es imposible, lo que pasa es que no sabes como hacerlo!
Aka: no es difícil si sabes como.
http://heli.xbot.es

sawtech
Mensajes: 68
Registrado: Mié Feb 01, 2017 6:59 pm
País: argentina
Ciudad: caba

Re: cosa rara con arduino usando millis()

#3 Mensaje por sawtech »

Te molesta si copio esta respuesta en youtube? muchas gracias por el aporte!

sawtech

Avatar de Usuario
heli
Mensajes: 1952
Registrado: Mié Sep 06, 2006 7:28 am
País: España
Ciudad: Alcalá de Henares
Ubicación: Alcala de Henares (Madrid, España)
Contactar:

Re: cosa rara con arduino usando millis()

#4 Mensaje por heli »

Si, copialo sin problemas.
Normalmente huyo de youtube para cosas tecnicas, demasiado relleno y tiempo perdido. Acabo antes leyendo un tutorial a mi ritmo, que suele ser muucho mas rapido.
¡No es imposible, lo que pasa es que no sabes como hacerlo!
Aka: no es difícil si sabes como.
http://heli.xbot.es

sawtech
Mensajes: 68
Registrado: Mié Feb 01, 2017 6:59 pm
País: argentina
Ciudad: caba

Re: cosa rara con arduino usando millis()

#5 Mensaje por sawtech »

gracias ya lo subí, igualmente sigo con la duda de porque un int no puede contar mas de 32000, usando matlab o algún otro lenguaje de programación, se puede usar int a valores superiores a eso.

Porque se limita a ese numero la cuenta de un entero, o tener rollover de numeros tan bajos. Supongo que debe estar asociado a la escasa memoria que tiene el microcontrolador, o la lógica del mismo.

Debería de investigar mas del tema, respecto a youtube.....si es cierto lo que vos decis, nunca va a reemplazar un libro. Pero tiene su uso, podes sacar ideas y ver en una forma mas gráfica las conexiones.
De hecho el otro dia le regale a mi papa un arduino con un kit de 37 sensores y me pregunto cosas que no crei que alguien no pudiese entender......evidentemente se puede empezar de -10 jajaja.

Una pregunta fue GND es tierra? y VCC? Como haces con alguien que esta tan desde cero? Los cursos salen bastante caros...

sawtech

Avatar de Usuario
heli
Mensajes: 1952
Registrado: Mié Sep 06, 2006 7:28 am
País: España
Ciudad: Alcalá de Henares
Ubicación: Alcala de Henares (Madrid, España)
Contactar:

Re: cosa rara con arduino usando millis()

#6 Mensaje por heli »

El int tiene una longitud de 16 bits por lo que puede almacenar 2^16 = 65536 valores deistintos, del 0 al 65535.
Pero si es CON SIGNO se iinterpreta que la mitad de los valores son positivos y la mitad son negativos, con el bit número 15 (el de mas a la izquierda) a 0 son valores positivos y con ese bit a 1 son valores negativos.
Cuando operas con él todo es igual que cuando operas con un unsigned int, pero al VISUALIZARLO se interpreta como te he explicado. Si lo interpretas como unsigned int puedes ver valores hasta 65535.
Estudiate el compemento a dos: https://es.wikipedia.org/wiki/Complemento_a_dos

GND es la abreviatura de GROUND, tierra.
VCC es la abreviatura de Voltage Colector, históricamente la alimentación que se aplicaba a los colectores de los transistores. Hoy en día se interpreta como "alimentación positiva".
Los que hablamos español lo entendemos como "Voltage Corriente Continua", pero no es así.

También existe VDD (Voltage Drenador) y VSS (Voltage Surtidor) para dispositivos con Mosfet y VEE, Voltage Emisor para transistores PNP.
VCC y VDD se refiere a tensiones positivas, VEE y VSS a tensiones negativas respecto de GND.
¡No es imposible, lo que pasa es que no sabes como hacerlo!
Aka: no es difícil si sabes como.
http://heli.xbot.es

sawtech
Mensajes: 68
Registrado: Mié Feb 01, 2017 6:59 pm
País: argentina
Ciudad: caba

Re: cosa rara con arduino usando millis()

#7 Mensaje por sawtech »

Ok, entiendo.....se da en el microcontrolador y su falta de capacidad de almacenamiento.

jaja, ya se que eso es tierra.....soy técnico electrónico.

Esas fueron las preguntas que ne hizo mi papa cuando le explicaba como conectar el arduino.

Mil gracias por el aporte

sawtech

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados