Dans ce projet on va voir comment contrôler une carte Arduino avec une autre carte Arduino. Pour cela on va utiliser une librairie appelé Software Serial qui va permettre de communiquer entre les deux en liaison UART. Cette libairie existe déjà dans Arduino ide sans rien à télécharger.
Pour pouvoir contrôler la première carte nous utiliserons le moniteur série. Ceci va nous permettre de contrôler la LED depuis la première carte Arduino. Cette liaison va permettre d’allumer ou d’éteindre un LED.
On va maintenant le matériel nécessaire pour le projet :
Pour communiquer en liaison UART entre les deux cartes on utilise deux pins : le TX et le RX de la carte Arduino receveur et deux pins numériques de la carte émettrice. On utilise ensuite les deux moniteurs série des deux cartes afin de pouvoir gérer la communication entre elle.
Avec ce programme, pour allumer la led, il vous suffit d’ajouter un 1 dans le moniteur série puis 0 pour l’éteindre :
Voici le programme :
#include "SoftwareSerial.h" // Librairie pour commmuniquer entre les deux cartes
SoftwareSerial serial1(2,3); //Initialisation avec les deux pins de la carte émetrices
int input; // Variable la valeur tapée dans le moniteur serie
void setup()
{
Serial.begin(9600); // Initialisation du moniteur série de la première carte Arduino
serial1.begin(9600); // Initialisation du moniteur série de la deuxième carte Arduino
}
void loop()
{
while (Serial.available()>0){
input = Serial.parseInt(); // On récupère ce que l'utilisateur a écrit dans le moniteur série
if (input == 1){
Serial.println('1');
serial1.println('1');//On écrit 1 sur le moniteur série et allume la led
}
if (input == 0){
Serial.println('0');
serial1.println('0');//On écrit 0 sur le moniteur série et éteint la led
}
}
La librairie Software Serial est déjà inclue dans Arduino Ide, vous n’aurez donc pas besoin de l’installer.
Ce programme permet actuellement d’allumer ou d’éteindre la led. Néanmoins pouvez adapter ce programme à votre projet en faisant un allumer un moteur ou autre composant.
Pour allumer un composant vous pouvez ajouter dans le if ce que vous souhaitez. Vous pouvez aussi remplacer le 1 par une autre chose comme “On” :
if (input == 1){
Serial.println('1');
serial1.println('1');//On écrit 1 sur le moniteur série et allume la led
}
Pour pouvoir éteindre ce composant, vous devez le faire dans le “input =0”. Vous pouvez changer le 0 afin de mettre Off par exemple :
if (input == 0){
Serial.println('0');
serial1.println('0');//On écrit 0 sur le moniteur série et éteint la led
}
Voici la simulation sur tinkercad du projet :