En primer lugar ,¿qué es el I2C?
El I2C fue creado por la empresa PHILIPS a principios de 1980 con el fin de controlar varios chips en televisores de manera sencilla, es decir en este protocolo hace falta un maestro y un esclavo como mínimo. entre ellos se comunican a través de una linea de datos llamada SDA , este bus necesita ser activado a través de un pulso que es mandado por el pin SCL , esta conexión entre ambos buses solo se puede dar cuando SCL esta en flaco descendente y SDA esta a 1.
Es importante saber algunas características del bus I2C:
Esta práctica se basa en un termostato/ termómetro digital llamado DS1621 , el cual tenemos que configurar gracias a la librería de Wire.h .
El código fuente del programa es el siguiente:
El setup como solo se hace una vez al iniciar el programa, le utilizaremos para configurar dentro del registro de control , en primer lugar, va a ser una adquisición continua , y en segundo lugar la temperatura por encima y por debajo en la que va a suceder la histéresis ( en nuestro caso 25º y 29º ).
Por ultimo en el loop pediremos al esclavo con la función requestFrom la ultima conversión que ha hecho de temperatura y la mostraremos.
Si nos adentramos mas en el programa y abrimos el sniffer del I2C podemos comprobar como se mandan los bytes entre el master y el esclavo
- El primer dato es el tiempo transcurrido desde que se ha dado al play por primera vez hasta se ha "esnifado" el comando
- La S es el bit de START
- 90 /91 comando con el que escribes/lees. Si lo descompones en binario se convierte en 1001 0000/1 , el ultimo bit es el que comunicas si vas a escribir o a leer.
- A es el bit de reconocimiento
- AA es un comando para leer la ultima conversión realizada
- P es el paro