Passionnement
Bonjour et bienvenu,

Bonjour et bienvenu sur le forum. Ici tu verra, la bonne humeur et l'entraide sont de mise.
Pas de reproche ni de prise de tête. Respect et Amitié sont de rigueur.
Pour la convivialité, nous te demandons de prendre 5mn pour te présenter a tout le monde et de renseigner ton profil le plus précisément possible.

Pour cela, ==> clique ici <== et tu créer un nouveaux sujet (une petite explication est en haut de la page).

Si tu ne fait pas de présentation, ton compte sera supprimé automatiquement après 48H.

Sans présentation, tu n'aura pas accès a la totalité du forum (qui comporte plus de 30.000 messages). Quand tu aura fait ta présentation, un modérateur ou administrateur te donnera les droits pour le forum dans sa totalité dans les 24 h.

Le Staff
Pour voter, cliquez sur
l'image ci-dessous.

Merci

passionnement
Derniers sujets
» T E R " Toul Expo Rail" 2018
Aujourd'hui à 10:36 par dany-om

» Chelles 12 mai 2018
Dim 13 Mai 2018 - 8:26 par likiki

» Le mur du forum.
Mer 2 Mai 2018 - 21:17 par Pirlouit95

» Mon matos
Ven 27 Avr 2018 - 10:47 par dany-om

» Le train des alpes de Altaya sujet de discussion sur les vidéos Aiguillage.
Jeu 26 Avr 2018 - 20:19 par lpat67

» La chaine Aiguillages
Mer 25 Avr 2018 - 20:21 par dany-om

» LPAT67 - Le Site de la Passion ! -
Lun 23 Avr 2018 - 8:18 par Pirlouit95

» La Newsletter
Mer 18 Avr 2018 - 5:12 par likiki

» Support servo
Mar 10 Avr 2018 - 8:50 par lherve54

» Le train des alpes de Altaya par lpat67
Lun 9 Avr 2018 - 22:18 par lpat67

» Littérature ferroviaire hors revues
Dim 1 Avr 2018 - 16:07 par dany-om

» A consommer sans modération.
Sam 31 Mar 2018 - 8:53 par dany-om

» comment changer les roues sur un essieu
Lun 19 Mar 2018 - 20:52 par dany-om

» patinage de maquette
Sam 17 Mar 2018 - 22:20 par dany-om

» Transformation d'une BR 93 en type 97 SNCB
Mer 14 Mar 2018 - 9:56 par Fred Glmt

» Besoin de vos lumières
Ven 9 Mar 2018 - 17:02 par Pirlouit95

» Une petite remise en H0e
Dim 25 Fév 2018 - 12:06 par dany-om

» Liens pour la décoration
Dim 25 Fév 2018 - 8:25 par likiki

» Hors Série Loco Revue n°59 ... INDISPENSABLE
Sam 17 Fév 2018 - 0:15 par Vince Belgium

» Annonce Märklin SNCF
Mer 14 Fév 2018 - 19:28 par dany-om


Fin de la partie I le Cour N°10

Aller en bas

Fin de la partie I le Cour N°10

Message par likiki le Dim 12 Avr 2015 - 17:53


© 2014-2015 passionement.formactif.org
Arduino Page N°10


a tous,





Où en étions nous ?


Ha oui, La porte "OU"


Rappel :


Schéma (Norme Européenne)





Formule Mathématique :





Avec la porte "OU", La Sortie (S) est a l'état 1 lorsqu'au moins une entrée est a l'état 1.


Table de vérité :





Je vous donnais 2 indices :


Indice 1 :


Pour résoudre ce petit problème, il vous faut savoir comment on écrit la fonction "OU". Cela s'écrit ==> || (deux barres vertical).


Indice 2 :


if (x > 0 || y > 0) { // si x supérieur à 0 ou si y supérieur à 0 
// ...
}



Décortiquons tout ça. Que nous apprend la table de vérité ? 


Elle nous stipule que si au moins UN bouton est actionné, la sortie est a 1.


Nous sommes donc en droit d'écrire ce qui suit :


"Si bouton1=1 OU bouton2=1 LED=1 Sinon LED=0"


Nous avions un petit programme a la leçon 8 :




__________________________________________________________




// *****************************
// ****** Le bouton et la LED*******
// *****************************
//
const int led = 13 ; // attribution de la broche 13 a led
const int bouton = 2 ; // Attribution de la broche 2 a bouton
int etat_bouton ; // variable qui enregistrera l'état du bouton appuyé ou relâché
//
void setup()
{
pinMode(led, OUTPUT) ; // La broche led sera utilisée en sortie
pinMode(bouton, INPUT) ; // La broche bouton sera utilisée en entré
}
void loop() // cette zone est exécutée en boucle jusqu'à coupure de l'alimentation de la carte
{
etat_bouton = digitalRead(bouton); // Lecture de la broche bouton et enregistrement du resltat dans la variable


if (etat_bouton == LOW) // Si le bouton est actionné (etat bas de l'entré)
{
digitalWrite(led, HIGH) ; // Allumage de la LED
}
else // Sinon
{
digitalWrite(led, LOW) ;  // Extinction de la LED
}


// Fin du programme, a la ligne suivante retour a la ligne void loop
}


__________________________________________________________



Nous allons donc le modifier pour notre besoin.


Nous avons en plus un bouton.


Nous devons donc définir ce 2ème bouton. Nous le nommerons "Bouton2" (nous en profiterons pour renommer le 1er bouton en "bouton1").


Nous aurons aussi une 2ème variable pour l'état du bouton que nous nommerons "etat_bouton2" (nous renommerons le 1er état en "etat_bouton1").        




Ce qui vas nous donner :


__________________________________________________________


// **************************************
// ****** 2 boutons pour la fonction OU *******
// **************************************
//
const int led = 13 ; // attribution de la broche 13 a led
const int bouton1 = 2 ; // Attribution de la broche 2 a bouton1
const int bouton2 = 3 ; // Attribution de la broche 3 a bouton2
int etat_bouton1 ; // variable qui enregistrera l'état du bouton appuyé ou relâché
int etat_bouton2 ; // idem ci dessus pour le bouton2
//
void setup()
{
pinMode(led, OUTPUT) ; // La broche led sera utilisée en sortie
pinMode(bouton1, INPUT) ; // La broche bouton sera utilisée en entré
pinMode(bouton2, INPUT) ; // idem ci-dessus pour le bouton2
}



__________________________________________________________




Voilà pour la 1ère partie du programme.


Pour la section loop, Il nous faut contrôler l'état des boutons (état "haut" ou "bas"). Et ensuite utiliser la fonction If pour comparaison état des bouton vers action.


__________________________________________________________


void loop() // cette zone est exécutée en boucle jusqu'à coupure de l'alimentation de la carte
{
etat_bouton1 = digitalRead(bouton1); // Lecture de la broche bouton et enregistrement du resltat dans la variable
etat_bouton2 = digitalRead(bouton2); // Idem ci-dessus pour le bouton2

if (etat_bouton1 == LOW || etat_bouton2 == LOW) // Si le bouton est actionné (etat bas de l'entré)
{
digitalWrite(led, HIGH) ; // Allumage de la LED
}
else // Sinon
{
digitalWrite(led, LOW) ;  // Extinction de la LED
}


// Fin du programme, a la ligne suivante retour a la ligne void loop
}



__________________________________________________________




Voilà, facile hein ? 






Cela nous donne donc le programme suivant :


__________________________________________________________




// **************************************
// ****** 2 boutons pour la fonction OU *******
// **************************************
//
const int led = 13 ; // attribution de la broche 13 a led
const int bouton1 = 2 ; // Attribution de la broche 2 a bouton1
const int bouton2 = 3 ; // Attribution de la broche 3 a bouton2
int etat_bouton1 ; // variable qui enregistrera l'état du bouton appuyé ou relâché
int etat_bouton2 ; // idem ci dessus pour le bouton2
//
void setup()
{
pinMode(led, OUTPUT) ; // La broche led sera utilisée en sortie
pinMode(bouton1, INPUT) ; // La broche bouton sera utilisée en entré
pinMode(bouton2, INPUT) ; // idem ci-dessus pour le bouton2
}
void loop() // cette zone est exécutée en boucle jusqu'à coupure de l'alimentation de la carte
{
etat_bouton1 = digitalRead(bouton1); // Lecture de la broche bouton et enregistrement du resltat dans la variable
etat_bouton2 = digitalRead(bouton2); // Idem ci-dessus pour le bouton2

if (etat_bouton1 == LOW) || (état_bouton2 == LOW) // Si le bouton est actionné (etat bas de l'entré)
{
digitalWrite(led, HIGH) ; // Allumage de la LED
}
else // Sinon
{
digitalWrite(led, LOW) ;  // Extinction de la LED
}


// Fin du programme, a la ligne suivante retour a la ligne void loop





__________________________________________________________




Testons cela :





La LED s'allume si on actionne le bouton 1 OU le bouton 2 et aussi si les DEUX bouton sont actionnés en même temps.


Nous avons donc bien une fonction "OU"


________________________________


Exercice 10.1


Nous allons continuer avec la fonction "ET"


Petit rappel :






La porte "ET"




Schéma (Norme Européenne) :





Formule Mathématique :





Avec la porte "ET", La Sortie (S) est a l'état 1 lorsque les 2 entrées sont a l'état 1.


Table de vérité :







Voilà, a vous de jouer.


Indice........... pour la fonction "ET" elle s'écrit ==> &&















Comme d'habitude, Je vous demande de noter la difficultés de cette leçon.


De 1 a 10 où 1=facile et 10=extrêmement difficile.


Merci a vous.
avatar
likiki
Administrateur
Administrateur

Localisation : Saintry Sur Seine
Humeur : De tout coeur avec les victimes des attentats en France.
Messages : 11896
Age : 51
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum