Cinta de medición ultrasónico (4 / 12 paso)

Paso 4: unas palabras sobre el bus I²C

sé que hay mucha información sobre el protocolo I²C que hay en la web, todavía le dará una breve descripción, para hacer más completo el instructable.

Breve descripción del bus
El bus I²C es un 8 o 10 bits, protocolo de comunicación serial bidireccional, con tasas de transferencia de 100 KHz, 400 KHz o recientemente 1 MHz (modo rápido plus). El bus consta de dos señales bidireccional (generalmente llamado SCL - reloj serial, SDA - datos en serie). Estas señales se conectan a cada dispositivo I²C en nuestro circuito con que nos quiere comunicar.
Thhe SDA línea se utiliza para la transferencia de datos en serie, la línea SCL asegura que la comunicación es en sincronía, en ambas direcciones. Además de estos dos, también tenemos maestro I²C y los esclavos I²C para compartir una tierra común.

Las clavijas de los aparatos conectados a un bus I²C son de colector abierto o drenaje abierto. Esto significa, que pueden traer la línea de comunicación flotante en el suelo, y se puede liberar para elevarse al nivel al que está levantados.
Es muy importante entender, que el término 'liberación' no significa un '1', sólo significa, que el maestro o esclavo no es conducir la línea de comunicación. Dicho esto, tenemos que asegúrese, que la línea no está bajando, cuando se supone que no es que. Esto puede hacerse mediante la instalación de un pull-up en el riel de alimentación del circuito. No debe (o no) poner un pull-up a cada esclavo en el circuito, lo que significaría una conexión paralela, que - si se instalaron muchas resistencias - no permitir que el perno a la línea.
El valor de la resistencia usado no necesita ser un valor dado, generalmente unos resistencia k funciona bien.

El protocolo I²C es maestro-esclavo basado. Un maestro decide cuándo comunican los dispositivos esclavos, a través de algunos datos enviados en el bus I²C. En nuestro caso, el PIC debe configurarse como un esclavo, ya que Arduino será el amo del circuito. Un esclavo es normalmente un sensor, un chip de memoria o cualquier cosa que sea capaz de ampliar las características de un microcontrolador.
Toda la transmisión se desencadenan por el maestro, los esclavos no comunican nada, a menos que el maestro está pidiendo que lo hagan. Correcto funcionamiento de bus I²C asume, que una dirección de esclavo solo es reconocida solamente por un solo esclavo. Cuando se selecciona un esclavo, deben callar todos los otros esclavos.
El maestro es responsable de todo tipo de tiempos - en la mayoría de los sistemas (single-master) la línea de reloj es manipulada sólo por el maestro. Es decir, la velocidad de la transmisión es dictada por el maestro I²C del circuito.

• Cuando un maestro desea iniciar una transmisión, se ejecuta una secuencia de inicio en el bus I²C. Se produce una situación de inicio, cuando la línea SDA a nivel bajo mientras la línea SCL es alta.
• Cuando el maestro quiere señalar, que la transmisión ha terminado, envía a una condición de parada, que es un flanco ascendente en el SDA, mientras que el SCL es alto.
• Datos es transmitido en el marco de tiempo entre estos dos acontecimientos. Un poco de datos sea válida, la SDA no debe cambiar valor, mientras que el SCL es alto. Si es así, la secuencia de bits se malinterpreta como una parada de inicio condición y conduce a la falta de comunicación.

En mi caso, la transmisión de datos se realiza en grupos de 8 bits. Los datos - siguiendo el patrón de endian grande - es registrados hacia fuera con el pedacito más significativo va primero. Después de cada pedacito 8-th obtiene registrado hacia fuera, el esclavo debe señal para que la transferencia a considerar un intercambio de datos exitosa. Esta señal se llama un 'reconocer', y asume, que el esclavo trae la línea SDA en la señal de reloj 9 th sobre la línea SCL.

Como mencioné antes, cada esclavo debe tener una dirección de esclavo único. Esta dirección de esclavo es largos, lo que significa, que un total de 128 dispositivos se puede conectar al bus I²C, sin ningún tipo de manipulación con el circuito de 7 bits.
Cuando se trata de abordar, el maestro envía 8 bits, 7 de los cuales son el esclavo dirección bits, la última de ellas determinar si el maestro desea leer o escribir en los registros internos de dispositivos esclavo. Este último bit se conoce como el bit de R/W, un '0' en este campo de bits significa una escritura, un '1' en este campo de bits significa una lectura.
Por ejemplo, si desea escribir a un dispositivo esclavo con una dirección de esclavo de 0b1010000, él debe enviar 0b1010000 después de la primera condición. Si un maestro desea leer desde el mismo dispositivo, el primer byte después de la condición de inicio debe ser 0b10100001. Estos, convertido en hexadecimal dan 0xA0 y 0xA1. Hojas de datos normalmente dan la dirección de esclavo en formato hexadecimal.

En algunos de los casos, el fabricante le permite agregar más de chip de la misma al bus I²C: esto se logra permitiendo al usuario controlar un número de bits de dirección de esclavo. Por ejemplo, un I²C EEPROM generalmente ha los 3 bits más bajos de su dirección de esclavo traído hacia fuera en las patillas. Tirar estos medios alto un '1' en la correspondiente en el byte de la dirección de esclavo, tirando a tierra significa un '0' en ese lugar.

Hay situaciones, en donde el maestro es demasiado rápido para el esclavo, quiere leer más rápidamente, que el esclavo podía manejar. Para evitar este tipo de situaciones, los fabricantes de dispositivos I²C esclavo pueden construir en una característica, que permite al esclavo tirar la línea SCL baja, mientras que están ocupados ejecutando las órdenes del maestro. Cuando el esclavo se realiza con la medición, lectura, percepción, etc. - lanza la línea SCL, permitiendo que las dominadas tomar la línea de alta. El maestro no iniciará a otra transferencia, a menos que ve la línea SCL alta. Esto se refiere a menudo como 'reloj estiramiento'.

Ejemplo de una condición de inicio seguida de un comando de lectura de esclavo 0xA3. La operación de lectura es válida, nosotros ahora esto, de la confirmación (reconozca) la señal enviada por el esclavo.

Zoom un poco en el extremo de la misma transferencia de datos a captar dos señales más, la parada y el NACK. Este patrón de bit ocurre al final de una secuencia de lectura.

Por desgracia no pude captar reloj estirando las fases, pero si veo uno al trabajar con el PIC I²C, se aseguro a los lectores.

Así, aprendimos a esto y que sobre el protocolo de comunicaciones serial usaremos, ahora vamos a ven en acción. En primer lugar quiero presentarles una tabla de ejemplo, una herramienta de PC y un programa del microcontrolador.

Artículos Relacionados

Arranque fiesta ultrasónico

Arranque fiesta ultrasónico

¿Siempre ha querido el partido para comenzar tan pronto como usted entra en la habitación? Ahora puede cada vez con el arranque de partido ultrasónico!Este proyecto utiliza un Arduino y un sensor HC-SR04 al inicio del partido. Si no está familiarizad
La medición de distancia con sensor ultrasónico y Arduino

La medición de distancia con sensor ultrasónico y Arduino

Hola cada unoConseguí mi primer Aduino recientemente, aquí estoy ver gonne que mi primer proyecto que utiliza la medición de distancia sensor ultrasónico y Arduino, puede utilizar este proyecto muchas aplicaciones comoNivel 1-líquidoDetección de obje
Medición con ftf 2,4 y un sensor ultrasónico de distancia

Medición con ftf 2,4 y un sensor ultrasónico de distancia

se trata de circuito de arduino muy simple con HC-SR04 ultrasónico sensor y 2.4 pulgadas de pantalla tft, con arduino uno.el arduino uno calcula la distancia y actualizar la pantalla cada 1 segundo.vea este vídeo para ver cómo funciona.Paso 1: Herram
Medición de la velocidad del sonido con Arduino microcontrolador y un sensor ultrasónico

Medición de la velocidad del sonido con Arduino microcontrolador y un sensor ultrasónico

Mi hija de 6 años, Samatha, muestra cómo medir la velocidad del sonido en el aire con el microcontrolador de Arduino Uno y sensor ultrasónico.Creo que esto es un buen proyecto para que los niños quedan expuestos a la ciencia, ingeniería y matemáticas
Distancia de medición por Sensor ultrasónico usando Arduino

Distancia de medición por Sensor ultrasónico usando Arduino

Es un proyecto muy simple y útil que puede ser utilizado en nuestra vida diaria.A continuación se enumera las cosas que necesita para proyectar...Arduino Uno.Sensor de ultrasonidos.4 macho a hembra cable de conexión.cable de conexión usb.Paso 1: Cone
Medidor de distancia ultrasónico con pantalla LCD en el Arduino UNO

Medidor de distancia ultrasónico con pantalla LCD en el Arduino UNO

En este tutorial vamos a ver un uso distinto del módulo de ultrasonidos HC-SR04. Este módulo es de uso frecuente en coches de juguetes y robots para localizar obstáculos pero puede ser utilizado para medir distancias así.Distancias medidas por la HC-
YourDuino: HandBat - Radar ultrasónico portátil usando Arduino

YourDuino: HandBat - Radar ultrasónico portátil usando Arduino

HandBat es un dispositivo de Radar ultrasónico portátil que envía pulsos de ultrasonido y escucha los ecos, como un murciélago. Está diseñado para su uso por personas con problemas de visión o la navegación en la oscuridad.HandBAT se encuentra en una
Ultrasónico Robot evitando obstáculo

Ultrasónico Robot evitando obstáculo

Este es mi intento de diseñar y construir un obstáculo evitando robot! RekaBot (nombrada de un hada (:) puede detectar obstáculos con un sensor de ultrasonidos que puede moverse con la ayuda de un servo. Basado en las medidas que toma, las pistas son
Medida caja (sensor de distancia) usando el Sensor ultrasónico ~ la

Medida caja (sensor de distancia) usando el Sensor ultrasónico ~ la

¿Alguna vez has querido medir sin escala o cinta métrica?Mida la distancia sin problemas con este pequeño dispositivo!Alta precisión *Para más proyectos de interés visite: www.miymakers.comFacebook: www.facebook.com/miymakersPaso 1: Cómo funciona '¿C
Araña-sentido ultrasónico

Araña-sentido ultrasónico

Todos queremos tener superpoderes. Pero probablemente no querrá exponerse a sustancias químicas tóxicas o radiación con el fin de conseguirlos. Afortunadamente, hay algunas habilidades que nos podemos aproximar de cerca con tecnología un poco.Por eje
Mejorar la precisión del Sensor ultrasónico gama

Mejorar la precisión del Sensor ultrasónico gama

Hola de nuevo comunidad de Instructables!Este instructable le mostrará cómo mejorar la precisión de un sensor de la gama ultrasónica. Se basa en el principio que el sonido se moverá a través del aire a diferentes velocidades dependiendo de la tempera
Ultrasónico Headtracker ratón

Ultrasónico Headtracker ratón

Yo recientemente había reconstruido un audífono para un ratón de cabeza tracker para un parapléjico chap.Este instructivo contiene un poco de información que pueda ayudar a alguien más tratando de hacer lo mismo.La unidad que este auricular funciona
Ultrasónico Piano

Ultrasónico Piano

Nota: Arriba es un video - puede mostrar como una foto solo en algunos dispositivos móviles.Este es un proyecto ideal para un etc. de Feria de ciencia - no es demasiado difícil de construir, sin embargo, hace un divertido interactivo exhibe.La idea e
Guía de estacionamiento ultrasónico incorporado Hackduino (Arduino)

Guía de estacionamiento ultrasónico incorporado Hackduino (Arduino)

Esta es una guía de parking de hackduino que cabe en una vieja caja de trabajo, por lo que se puede construir en a la pared en su garaje. Originalmente iba a usar el Arduino con el sensor de distancia por ultrasonidos para el control de un semáforo r