上次我了藍芽來傳輸,這次要來用I2C來進行多Arduino之間的溝通。
I2C介紹
I2C 是一種半雙工的通訊,分為Master和Slave,Master 可以向 Slave 發出需求要資料或傳送資料。I2C bus 上最多可以有 128 個設備。在 I2C bus 上可以有多個 Master 和多個 Slave,不過為了避免複雜,通常我們只會用一個 Master。每個 Slave 都會有一個識別的號碼,叫作 Slave address,Master 要跟 Slave 通訊的時候,就利用 Slave address 指定要跟哪個 Slave 建立對話。
I2C與UART
I2C最大的優點就是不管有幾台裝置,接腳都是兩個,而UART卻需要很都個接腳,因為每個裝置都要兩個接腳,但因I2C是半雙工通訊,所以速度比較慢。
電路
這次,左邊的Arduino是Master,右邊的是Slave,Slave會以I2C的方式將旋鈕的數值傳給Master,然後Master會控制馬達的速度,如果速度太快,則會告訴Slave要亮起警示燈。