BUS I2C

TP2 Arduino : Master Reader / Slave Sender

MéthodeCommunication de 2 cartes Arduino Uno en I2C

L'une des 2 cartes sera en mode esclave et transmettra un message récupéré par l'autre carte configurée en mode maître.

  1. Associer les 2 cartes, les programmer et vérifier la communication.

  2. Modifier le programme pour transmettre et afficher le niveau logique capturé sur l'une vers l'autre.

  3. Effectuer la saisie du schéma de l'association 2 cartes Arduino Uno + Résistance de tirage + LED avec le logiciel Fritzing.

  4. Le projet Arduino et le schéma seront à fournir en fin de TP.

Complément

Schéma électrique

Schéma de câblage

ExempleCode source du maître en récepteur

// Wire Master Reader

// by Nicholas Zambetti <http://www.zambetti.com>

// Demonstrates use of the Wire library

// Reads data from an I2C/TWI slave device

// Refer to the "Wire Slave Sender" example for use with this

// Created 29 March 2006

// This example code is in the public domain.

#include <Wire.h>

void setup() {

Wire.begin(); // join i2c bus (address optional for master)

Serial.begin(9600); // start serial for output

}

void loop() {

Wire.requestFrom(8, 6); // request 6 bytes from slave device #8

while (Wire.available()) { // slave may send less than requested

char c = Wire.read(); // receive a byte as character

Serial.print(c); // print the character

}

delay(500);

}

ExempleCode source de l'esclave en émetteur

// Wire Slave Sender

// by Nicholas Zambetti <http://www.zambetti.com>

// Demonstrates use of the Wire library

// Sends data as an I2C/TWI slave device

// Refer to the "Wire Master Reader" example for use with this

// Created 29 March 2006

// This example code is in the public domain.

#include <Wire.h>

void setup() {

Wire.begin(8); // join i2c bus with address #8

Wire.onRequest(requestEvent); // register event

}

void loop() {

delay(100);

}

// function that executes whenever data is requested by master

// this function is registered as an event, see setup()

void requestEvent() {

Wire.write("hello "); // respond with message of 6 bytes

// as expected by master

}

ExempleRésultats attendus

Photo et vidéo de la communication I2C avec fichiers d'origine

Photo et vidéo de la communication I2C transmission d'un niveau logique et signalisation sur l'autre carte

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimerRéalisé avec Scenari (nouvelle fenêtre)