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
Connexion

Récupérer mon mot de passe

Janvier 2018
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    

Calendrier Calendrier

Rechercher
 
 

Résultats par :
 

 


Rechercher Recherche avancée

Derniers sujets
» Nouveautés Märklin 2018
Hier à 1:43 par Vince Belgium

» Le blog de Vince Belgium
Mer 17 Jan 2018 - 21:44 par likiki

» Annonce Märklin SNCF
Mer 17 Jan 2018 - 20:12 par dany-om

» Le bouton vote
Mer 17 Jan 2018 - 0:25 par Vince Belgium

» Période poétique
Mer 10 Jan 2018 - 20:55 par dany-om

» Module Hobbyzone de chez Makétis
Lun 8 Jan 2018 - 8:27 par Fred Glmt

» Pont tournant marklin 7286
Mer 3 Jan 2018 - 23:36 par Vince Belgium

» Bon réveillon 2017
Lun 1 Jan 2018 - 10:54 par dany-om

» Le train des alpes de Altaya sujet de discussion.
Sam 30 Déc 2017 - 10:17 par Vince Belgium

» Nouveaux articles sur Locoduino !
Mar 26 Déc 2017 - 20:18 par lherve54

» Mini World Lyon Un projet fou ..................
Jeu 21 Déc 2017 - 19:03 par dany-om

» Le train des alpes de Altaya par Aiguillage
Sam 16 Déc 2017 - 9:04 par likiki

» Ballast, décor et réalisme facile selon Vince
Sam 25 Nov 2017 - 11:40 par dany-om

» Wagon à louer??????
Sam 25 Nov 2017 - 9:04 par likiki

» Ballast, décor et réalisme facile selon Vince
Ven 24 Nov 2017 - 19:38 par Vince Belgium

» Les blagues de LIKIKI (et des autres). M D R
Jeu 23 Nov 2017 - 20:56 par Cousin Hub

» CS3 ... Découverte et utilisation
Jeu 23 Nov 2017 - 18:36 par Fred Glmt

» L'informatisation d'un réseau.
Jeu 23 Nov 2017 - 9:03 par Vince Belgium

» T E R " Toul Expo Rail" 2018
Ven 17 Nov 2017 - 17:15 par lherve54

» Littérature ferroviaire hors revues
Dim 5 Nov 2017 - 21:38 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 : 11301
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