Émission de données (RTC)/Réception, adressage et affichage des données sur plusieurs shields : Différence entre versions

De Wiki L.A.B
Aller à : navigation, rechercher
(Etape 1 : tester l’écran LCD avec la carte Arduino)
(Etape 1 : Communication entre 3 CAN Bus Shields : 1 émetteur et 2 récepteurs)
Ligne 16 : Ligne 16 :
 
[[Fichier:3_CAN_Bus_Shields.PNG]]
 
[[Fichier:3_CAN_Bus_Shields.PNG]]
  
Une fois le montage réalisé, sur le programme Arduino nous pouvons donc ajouter ce code:
+
Pour le montage :
 +
*Il faut brancher chaque shield sur un Arduino et relier les signaux CAN_H et CAN_L de chacun.
 +
*Sur un CAN Bus Shield il faut brancher une clock (RTC avec module i2c). 
 +
 
 +
[[Fichier:Montage_Arduino_et_RTC.PNG]]
 +
 
 +
*GND RTC => GND Arduino
 +
*VCC RTC => +5V Arduino
 +
*SDA RTC => pin analogique A4 Arduino
 +
*SCL RTC => pin analogique A5 Arduino
 +
 
 +
Une fois le montage réalisé, nous pouvons ouvrir le programme Arduino et écrire les 3 codes pour chacun des CAN Bus Shields.
 +
 
 +
 
 +
 
 +
Code Emetteur (CAN Bus Shield avec le RTC) :  
  
 
<syntaxhighlight lang="cpp" enclose="div">
 
<syntaxhighlight lang="cpp" enclose="div">

Version du 3 août 2017 à 09:19

Etape 1 : Communication entre 3 CAN Bus Shields : 1 émetteur et 2 récepteurs

Nous allons faire communiquer 3 CAN Bus Shields Un CAN Bus Shield jouera le rôle de l’émetteur. Il sera muni d’un RTC avec module i2c et pourra donc transmettre les données (dates et heures) aux autres Shields. Les deux autres CAN Bus Shields joueront le rôle de récepteur et recevront donc les données envoyées par le premier. Ils pourront afficher ses données, dates et heures, sur leur moniteur série (Ctrl – Maj – M). Nous allons définir un récepteur comme le récepteur 0 et le second comme le récepteur 1. Chacun recevra et affichera des données bien précises venant de l’émetteur. Les deux récepteurs ne recevront donc pas les mêmes données, nous pouvons adresser un message à tel ou tel récepteur selon notre choix.


Pour réaliser cette manipulation, nous disposons de :

  • 3 cartes Arduino UNO
  • 3 Can Bus Shields v.1.2
  • une horloge RTC avec module i2c
  • des fils de liaisons
  • 3 câbles d’alimentation USB

3 CAN Bus Shields.PNG

Pour le montage :

  • Il faut brancher chaque shield sur un Arduino et relier les signaux CAN_H et CAN_L de chacun.
  • Sur un CAN Bus Shield il faut brancher une clock (RTC avec module i2c).

Montage Arduino et RTC.PNG

  • GND RTC => GND Arduino
  • VCC RTC => +5V Arduino
  • SDA RTC => pin analogique A4 Arduino
  • SCL RTC => pin analogique A5 Arduino

Une fois le montage réalisé, nous pouvons ouvrir le programme Arduino et écrire les 3 codes pour chacun des CAN Bus Shields.


Code Emetteur (CAN Bus Shield avec le RTC) :

#include <Wire.h>
#include <LiquidCrystal_I2C.h> // pour télécharger la librairie: croquis - include library - manage libraries - LiquidCrystal_I2C.h de Frank de Brabander
LiquidCrystal_I2C lcd(0x27,16,2); //écran LCD 0x27 avec 16 colonnes et 2 lignes (ligne 0 et ligne 1)

void setup()
{
lcd.init(); //initialisation de l'écran LCD
lcd.cursor_on();
lcd.blink_on();
lcd.backlight();
lcd.setCursor(5,0); // écriture du texte sur la ligne 1 colonne 5 (centré)
lcd.print("Hello!"); // texte "hello" sur ligne 1 colonne 5
lcd.setCursor(7,1); // écriture du texte sur la ligne 2 colonne 7 (centré)
lcd.print("ok"); // texte "ok" sur ligne 2 colonne 7
delay(1000);
lcd.cursor_off();
lcd.blink_off();
}

void loop()
{
}

Une fois la compilation et le téléversement du code réalisé vers la carte arduino, les textes s’affichent sur l’écran LCD. Pour notre exemple, on obtient :

Arduino LCD1.PNG

Le texte affiché sur l’écran peut être modifié et les effets également comme le défilement du texte par exemple. Ne pas hésiter à regarder les exemples proposés par la librairie LiquidCristal_I2C pour faire évoluer le code. Notre écran LCD avec un module i2c fonctionne donc correctement. Nous pouvons tester maintenant notre second appareil : l’horloge RTC avec module i2c.