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

Bienvenu sur ton Forum 
Invité  
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   

Calendrier Calendrier

Rechercher
 
 

Résultats par :
 

 


Rechercher Recherche avancée

Derniers sujets
» CS3 ... Découverte et utilisation
Hier à 10:04 par Vince Belgium

» Voyage en tram avec l'ASVI
Ven 18 Aoû 2017 - 9:22 par likiki

» Petit voyage en Belgique
Jeu 17 Aoû 2017 - 11:56 par lherve54

» Petit voyage dans le temps 02
Jeu 17 Aoû 2017 - 4:12 par likiki

» Petit voyage dans le temps 01
Mer 16 Aoû 2017 - 18:46 par Pirlouit95

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

» Magasins préférés des modélistes.
Dim 13 Aoû 2017 - 9:21 par dany-om

» Digitalisation des aiguillages en voie C
Dim 6 Aoû 2017 - 9:52 par Vince Belgium

» Expo à Londres.
Dim 6 Aoû 2017 - 9:43 par lherve54

» Festival vapeur en septembre
Mer 26 Juil 2017 - 23:31 par Vince Belgium

» le train des Cévennes
Lun 24 Juil 2017 - 19:12 par Vince Belgium

» Fête nationale
Dim 23 Juil 2017 - 17:43 par Vince Belgium

» arduino easy plug
Dim 23 Juil 2017 - 17:09 par Vince Belgium

» Arduino et les servomoteur.
Dim 16 Juil 2017 - 11:12 par dany-om

» Les trains autour du monde
Dim 16 Juil 2017 - 11:10 par dany-om

» White Pass & Yukon Route ou le train de l'OR.
Jeu 13 Juil 2017 - 5:57 par likiki

» Grassmaster et flocages pas chers
Mer 12 Juil 2017 - 17:28 par Vince Belgium

» Les microcontrôleurs
Mer 12 Juil 2017 - 17:12 par Cousin Hub

» Nouveaux articles sur Locoduino !
Mar 11 Juil 2017 - 18:53 par Cousin Hub

» Construction d'une BR52 au 1/35
Lun 19 Juin 2017 - 21:46 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 : 10547
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