ARDUINO ISIS : Comment transférer les données de ISIS vers ARDUINO ? – Contrôle des LEDs

ARDUINO ISIS Comment transférer les données de ISIS vers ARDUINO – Contrôle des LEDs image

Objectifs

  • Savoir comment établir la liaison série entre ISIS-ARDUINO
  • Savoir transférer les données ISIS => ARDUINO
  • Savoir Controller l’allumage des LEDs avec ISIS PROTEUS

Tutoriel

Projet connexe

Avant d’aborder le projet, je vous invite à consulter le tutoriel : ARDUINO ISIS : Comment transférer les données de la carte Arduino vers ISIS.

Fonctionnement

Le tutoriel permet de Contrôler deux LEDs (rouge et vert) via l’interface ISIS PROTEUS en utilisant la liaison série. Les deux LEDs sont branchées à la carte Arduino nano. Le contrôle des états des LEDs est réalisé par l’envoi des commandes vers la carte Arduino. Ci-dessous les états des LEDs en fonction de la commande envoyée :

  • « 20 » : Allumage de la LED rouge (LED vert éteinte) pendant une seconde, puis l’atteindre
  • « 30 » : Allumage de la LED vert (LED rouge éteinte) pendant une seconde, puis l’atteindre
  •  « Autres codes» : Les deux LEDs sont éteintes

La carte Arduino reste en écoute permanent de l’interface série. Lorsqu’elle détecte la présence d’une valeur entière, elle déclenche les LEDs en fonction du code reçu.

Câblage de la carte

  • LED rouge : Pin 5
  • LED vert : Pin 6
  • Les deux LEDs sont branchées en série avec des résistances de 100 Ohm dédiées à la limitation du courant (voir le tutorial)

Programme Arduino



/* 
 *  OBJECTIFS:  ISIS  ARDUINO   
 *    1. Savoir établir la liaison entre ISIS et ARDUINO
 *    2. Savoir commander une carte Arduino avec ISIS
 *    4. Contrôler l'allumage des LEDs avec ISIS
 *    3. Abonne-toi \n   
 *    
 *    Codes & détails: Voir le lien dans la description
 *    
*/




int LED_OFF=5;    // Rouge  
int LED_ON=6;     // Vert 
int SerialVal=0;  // Valeur envoyée par ISIS

void setup() 
{
  // Init l'interface série 
  Serial.begin(9600);

  // Init LEDs
  pinMode(LED_OFF, OUTPUT);
  pinMode(LED_ON, OUTPUT);
  
  digitalWrite(LED_OFF, LOW);
  digitalWrite(LED_ON, LOW);
}

void loop() 
{ 
  // 1. Leture de l'interface série (Attente) 
  SerialVal=Serial.parseInt();

  // 2. Controle des LEDs 
  if(SerialVal==20)
  {
    digitalWrite(LED_OFF, LOW);
    digitalWrite(LED_ON, HIGH);
    delay(1000);     
  }
  else if(SerialVal==30)
  {
    digitalWrite(LED_OFF, HIGH);
    digitalWrite(LED_ON, LOW);
    delay(1000);    
  }
  else
  {
    digitalWrite(LED_OFF, LOW);
    digitalWrite(LED_ON, LOW);
    delay(1000);    
  }

  // 3. Attente 1 seconde 
  delay(100);
}

Retour à l’accueil Proteus ISIS