Tabla de contenido:
Video: Sniffer Arduino I2C: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
I2C es un protocolo en serie que se utiliza para comunicar un microcontrolador con periféricos externos conectados al mismo circuito. Cada periférico debe tener un número de identificación único llamado dirección que se utiliza para identificarlo como el destinatario previsto de un mensaje determinado. Esas direcciones son asignadas por el fabricante del dispositivo y la mayoría de las veces no se pueden cambiar. Un rastreador escanea todas las direcciones posibles en busca de dispositivos conectados e informa los que encuentra. Esto ayuda a identificar los chips sin marcar, ya que luego la dirección se puede buscar en Google para obtener más información sobre el chip.
Este dispositivo imita en un Arduino UNO el comportamiento del script Raspberry Pi i2cdetect, rastreando todas las posibles direcciones i2c en busca de dispositivos conectados e imprimiendo los resultados de manera agradable en una pantalla LCD de 16x02.
Para ajustar todo en la pantalla, tanto la parte alta como la baja de la dirección se imprimen encima de los resultados, y la parte alta está en negrita. Dos botones permiten navegar entre las direcciones, mostrando 16 direcciones a la vez. En caso de que se detecte un dispositivo, se imprimirá W para mostrarlo como una dirección de escritura y R se mostrará en caso de que sea una dirección de lectura. En caso de que no se detecte nada en esa dirección, se mostrará un guión (-) en la pantalla.
Paso 1: Materiales
Opción 1
1 x Arduino UNO
1 x pantalla LCD 16x02
1 potenciómetro de 10K
1x resistencia de 330 ohmios
3x pulsadores
Cables de salto
1x cambiador de nivel I2C (no en la imagen de materiales)
opcion 2
1 x Arduino UNO
Protector de teclado LCD (los botones del protector no se utilizarán)
3x pulsadores
Cables de salto
1x cambiador de nivel I2C (no en la imagen de materiales)
La opción 2 es la que se construirá porque eso es lo que tenía a mano en este momento. El cambiador de nivel es una parte importante del circuito ya que hoy en día la mayoría de los dispositivos usan lógica de 3.3V y los 5V del Arduino los dañan.
(En las imágenes, no se requiere el material tachado).
Paso 2: circuito
El circuito es bastante sencillo, utilizando el pinout estándar para los ejemplos de Arduino para la pantalla LCD, los pines predeterminados para I2C y 3 pines de repuesto para los botones.
En caso de que utilice el protector del teclado LCD, la distribución de pines de la pantalla LCD cambia, pero eso ya se considera dentro del código. Los botones del protector del teclado LCD no se utilizan porque requieren un método de sondeo analógico que rompe la compatibilidad entre los dos posibles circuitos de implementación (protector y LCD independiente)
Paso 3: Código
En caso de que se utilice el protector del teclado LCD, #define LCD_SHIELD debe dejarse sin comentar al principio del boceto. De lo contrario, coméntelo para usar el primer diagrama.
Paso 4: Conclusiones
Para probar el código y el circuito, se utilizaron un chip BQ32000 RTC y un acelerómetro MMA8452Q. Como se puede ver en las imágenes, el dispositivo está detectando 4 direcciones: 0x3A y 0xD0 como direcciones de escritura, y 0x3B y 0xD1 como direcciones de lectura. Estas direcciones corresponden a los dispositivos de prueba, por lo que el código está funcionando.
Me gustaría agradecer a las amables chicas de Beijing Makerspace, Fu Yao y Liu Xin, por ayudarme a obtener los materiales necesarios para probar este proyecto en tan poco tiempo.
Recomendado:
Arduino UNO Logic Sniffer: 8 pasos (con imágenes)
Arduino UNO Logic Sniffer: este proyecto comenzó como un simple experimento. Durante mi investigación sobre la hoja de datos de ATMEGA328P para otro proyecto, encontré algo bastante interesante. La unidad de captura de entrada Timer1. Permite que nuestro microcontrolador Arduino UNO detecte una señal
Pantalla LCD I2C / IIC - Use una pantalla LCD SPI para la pantalla LCD I2C usando el módulo SPI a IIC con Arduino: 5 pasos
Pantalla LCD I2C / IIC | Use una pantalla LCD SPI para la pantalla LCD I2C usando el módulo SPI a IIC con Arduino: Hola a todos, ya que una pantalla LCD SPI 1602 normal tiene demasiados cables para conectar, por lo que es muy difícil conectarlo con arduino, pero hay un módulo disponible en el mercado que puede Convierta la pantalla SPI en la pantalla IIC, por lo que solo necesita conectar 4 cables
Pantalla LCD I2C / IIC - Convierta una pantalla LCD SPI en una pantalla LCD I2C: 5 pasos
Pantalla LCD I2C / IIC | Convierta una pantalla LCD SPI en la pantalla LCD I2C: el uso de la pantalla lcd spi necesita demasiadas conexiones, lo cual es realmente difícil de hacer, así que encontré un módulo que puede convertir la pantalla lcd i2c en la pantalla lcd spi, así que comencemos
Snorkel Sniffer: 4 pasos
Snorkel Sniffer: Las puertas estaban cerradas en el vuelo y al igual que muchos otros vuelos similares te embarga una somnolencia abrumadora. Mientras estábamos haciendo impuestos, una mujer frente a nosotros me despertó de un sobresalto que gritaba "¡ayúdalo!" `` ¡¡¡Ayúdalo !!!! '' "
Adaptador I2c LCD de caracteres (ejemplo de conexión I2c): 12 pasos (con imágenes)
Adaptador I2c LCD de caracteres (ejemplo de conexión I2c): estoy haciendo un esquema de conexión para un adaptador i2c de pantalla de caracteres. Verifique las actualizaciones en mi sitio. Ahora agrego también un esquema de conexión de cableado para usar la biblioteca original, no mi bifurcada. para las pantallas LCD de caracteres, proyección bifurcada