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
Connexion

Récupérer mon mot de passe

Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

Calendrier Calendrier

Rechercher
 
 

Résultats par :
 

 


Rechercher Recherche avancée

Derniers sujets
» Mini World Lyon Un projet fou ..................
Hier à 11:51 par likiki

» Annonce Märklin SNCF
Hier à 0:23 par Cousin Hub

» Changement d'adresse sur décodeur Marklin
Sam 14 Oct 2017 - 18:08 par dany-om

» La SNCF, une sacré entreprise.
Jeu 12 Oct 2017 - 1:05 par Cousin Hub

» Le train des alpes de Altaya par Aiguillage
Mar 10 Oct 2017 - 21:32 par likiki

» Littérature ferroviaire hors revues
Dim 8 Oct 2017 - 20:55 par dany-om

» La photo Mystère ........
Mar 3 Oct 2017 - 21:09 par dany-om

» Information Märklin 7286
Dim 1 Oct 2017 - 10:13 par likiki

» Clés pour le train miniature.
Dim 1 Oct 2017 - 9:20 par dany-om

» La chaine Aiguillages
Jeu 28 Sep 2017 - 18:41 par dany-om

» CS3 ... Découverte et utilisation
Mer 27 Sep 2017 - 21:22 par Vince Belgium

» Nouveaux articles sur Locoduino !
Mer 27 Sep 2017 - 20:36 par dany-om

» Pose du ballast sur voie C
Mer 27 Sep 2017 - 10:43 par Fred Glmt

» Test de décors .....
Lun 18 Sep 2017 - 14:57 par Vince Belgium

» La soudure??????
Lun 11 Sep 2017 - 19:14 par Cousin Hub

» Adieu aux automotrices postales de la SNCB
Dim 3 Sep 2017 - 13:44 par likiki

» Construction d'un pont
Sam 2 Sep 2017 - 18:45 par dany-om

» le train des Cévennes
Sam 2 Sep 2017 - 10:33 par Fred Glmt

» Petit message de Forumacitf
Mer 30 Aoû 2017 - 21:40 par Vince Belgium

» Grassinator
Dim 13 Aoû 2017 - 19:21 par dany-om


Fin de la partie I le Cour N°10

Voir le sujet précédent Voir le sujet suivant 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 : 10951
Age : 50
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

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