In questo articolo, cercherò di chiarire il concetto di protocollo I²C e 1-Wire, in quanto potrebbe tornarci utile in futuro.

Innanzitutto che cos’è un protocollo? Il vocabolario definisce protocollo una serie di standard che regolano la successione e lo scambio di informazioni fra due dispositivi.

Bello ma cosa significa? Semplicemente, sono una serie di istruzioni che permettono a due dispositivi informatici di comunicare tra loro.

Raspberry, in particolare ha la possibilità di comunicare con sensori e attuatori (o arduino o altri raspberry) mediante i protocolli I²C e 1-Wire.

  • Protocollo I²C

Il protocollo I²C è un sistema di comunicazione seriale e fisicamente consiste in quattro cavi: Alimentazione 5V, massa, SCL clock di sistema e SDA, una linea dati con 7 bit di indirizzamento. Il bus ha due modi di funzionamento. Modo master (il capo) e modo slave (il secondario).

Su Raspberry pi3 i pin GPIO dedicati sono GPIO2 per il pin SDA e GPIO3 per SCL. I 5V e il GND possono essere presi da qualsiasi pin dedicato (pin2 o pin4 per 5V o pin6, pin9, pin14, pin20, pin25, pin30, pin34 e pin39 per GND).

Una volta installato raspbian si può abilitare facilmente il protocollo con pochi semplici comandi:

sudo raspi-config

Vi chiederà la password di amministratore, se avete lasciato quella di default, è semplicemente raspberry. Vi si aprirà una schermata di configurazione come in figura.

La schermata che vi appare quando digitate raspi-config

Andate su Advanced Options e premete invio (nota. Se avete una versione aggiornata del sistema operativo la schermata seguente potrebbe essere sotto la voce Interfacing Options):

La schermata di configurazione avanzata

Scorrete fino a I2C, premete invio, rispondete ok alle domande e, una volta usciti dalla schermata, installiamo i tools necessari con il comando

sudo apt-get install i2c-tools

Se avete già collegato un dispositivo I²C, come un display o un sensore potete capire se è stato rilevato digitando il comando

sudo i2cdetect -y 1

e vi apparirà una schermata del tipo

Abbiamo un dispositivo collegato all’indirizzo 0x21

In questa immagine vediamo come il dispositivo sia connesso e funzionante all’indirzzo 0x21.

  • Protocollo 1-wire

Il protocollo 1-wire, sviluppato dalla Dallas Semiconductors, è un protocollo che utilizza un BUS ad un unico filo e permette l’uso di un’infinità di dispositivi, come ad esempio sensori di temperatura o di umidità. Come nel caso del protocollo I²C è una comunicazione bidirezionale che avviene tra un dispositivo master e uno (o più collegati in parallelo) slave. Lo slave utilizzerà l’alimentazione direttamente dal dispositivo.

Su raspberry è possibile configurare il protocollo digitando come per il protocollo I²C il comando

sudo raspi-config

dalla voce Advanced Options o Interfacing Options selezionate 1-wire e rispondete ok alle domande. Il pin dedicato è il GPIO4.

Per avere un riferimento sulla piedinatura del raspberry fate riferimento a questo link.

Protocolli I²C e 1-Wire: cosa sono e come abilitarli su raspberry
Tag:                     

Un pensiero su “Protocolli I²C e 1-Wire: cosa sono e come abilitarli su raspberry

Rispondi

Error: Access Token is not valid or has expired. Feed will not update.
This error message is only visible to WordPress admins

There's an issue with the Instagram Access Token that you are using. Please obtain a new Access Token on the plugin's Settings page.
If you continue to have an issue with your Access Token then please see this FAQ for more information.