Table des matières:
- Étape 1: Commencer simplement: ajouter un bouton
- Étape 2: Modifier le code pour enregistrer les pressions sur les boutons
- Étape 3: ajoutez autant de boutons que vous avez d'enfants
- Étape 4: ajouter un buzzer
- Étape 5: ajouter un écran LCD
Vidéo: Modificateur de comportement de l'enfant : 5 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-02-01 14:40
Le modificateur de comportement de l'enfant enregistre le nombre de fois où votre enfant a eu des ennuis (c'est-à-dire des grèves) et lorsqu'il atteint trois ans, une sonnerie retentit et un écran LCD annonce qu'il est mis à la terre.
Étape 1: Commencer simplement: ajouter un bouton
La première étape de ce projet est simple. Ajouter 1 bouton. Dans cette étape, vous avez besoin de 4 fils mâles à mâles, d'une résistance 220 et d'un bouton-poussoir.
- Connectez le 5V du côté alimentation à la rangée positive de la planche à pain
-
Connectez le GND au côté négatif de la planche à pain
- Insérez le bouton-poussoir sur la planche à pain
-
Branchez l'alimentation sur la ligne positive à la partie inférieure gauche du bouton poussoir
- Mettez le bouton à la terre en utilisant une résistance dans la partie inférieure droite du bouton-poussoir sur la rangée négative de la planche à pain.
- Connectez #13 sur le côté numérique de l'Arduino en haut à droite du bouton.
Vérifiez avec votre code que le bouton s'enregistre:
int child1ButtonPin = 13;//C'est la broche à laquelle notre bouton-poussoir est connecté
int child1ButtonState = 0; // Lit l'état du bouton (on/off)
int child1Strike = 0; // Combien de coups l'enfant a fait
// la fonction de configuration s'exécute une fois lorsque vous appuyez sur reset ou que vous mettez la carte sous tension
void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // la fonction de boucle s'exécute encore et encore pour toujours void loop() { // lit l'état du bouton (activé ou désactivé) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState == HIGH)//Le bouton est enfoncé { Serial.println("HIGH"); retard (5000); }
if(child1ButtonState == LOW)
{ Serial.println("LOW"); retard (5000); } }
Étape 2: Modifier le code pour enregistrer les pressions sur les boutons
Modifiez le Code pour enregistrer une pression sur un bouton:
int child1ButtonPin = 13;//C'est la broche à laquelle notre bouton poussoir est connecté à int child1ButtonState = 0; // Lit l'état du bouton (on/off) int child1PreviousState = 0; // État du bouton précédent int child1Strike = 0;
// la fonction de configuration s'exécute une fois lorsque vous appuyez sur reset ou que vous mettez la carte sous tension
void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // la fonction de boucle s'exécute encore et encore pour toujours void loop() { // lit l'état du bouton (activé ou désactivé) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState != child1PreviousState) { if(child1ButtonState == HIGH)//Le bouton est enfoncé { child1Strike ++; Serial.println(child1Strike); retard(1000); } }
}
Ensuite, modifiez le code pour que l'enfant reçoive 3 avertissements, après quoi il recevra un message indiquant qu'il est puni:
int child1ButtonPin = 13;//C'est la broche à laquelle notre bouton poussoir est connecté à int child1ButtonState = 0; // Lit l'état du bouton (on/off) int child1PreviousState = 0; int child1Strike = 0;
// la fonction de configuration s'exécute une fois lorsque vous appuyez sur reset ou que vous mettez la carte sous tension
void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // la fonction de boucle s'exécute encore et encore pour toujours void loop() { // lit l'état du bouton (activé ou désactivé) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState != child1PreviousState) { if(child1ButtonState == HIGH)//Le bouton est enfoncé { child1Strike ++; Serial.println(child1Strike);
if(child1Strike >=3)
{ Serial.println("L'enfant 1 est mis à la terre !"); } délai(3000); } }
}
Le Serial Monitor devrait ressembler à l'image ci-dessus.
Remarque: Assurez-vous que vous êtes à l'aise avec le délai. Un peu de retard et il enregistrera 1 pression sur un bouton comme plus d'une!
Étape 3: ajoutez autant de boutons que vous avez d'enfants
Dans cette étape, nous copions simplement les deux dernières étapes. Ajoutez autant de boutons que vous le faites d'enfants. Dans mon cas, j'en rajoute quatre. Assurez-vous de changer votre code la broche numérique à laquelle le bouton est câblé. Dans mon cas, j'ai utilisé les broches 12 à 10 pour ajouter mes boutons. Au cas où vous auriez besoin d'un rappel, voici l'étape 1:
- Connectez le 5V du côté alimentation à la rangée positive de la planche à pain
-
Connectez le GND au côté négatif de la planche à pain
- Insérez le bouton-poussoir sur la planche à painConnectez l'alimentation sur la ligne positive à la partie inférieure gauche du bouton-poussoir
-
Mettez le bouton à la terre en utilisant une résistance dans la partie inférieure droite du bouton-poussoir sur la rangée négative de la planche à pain.
- Connectez (votre numéro de broche) sur le côté numérique de l'Arduino en haut à droite du bouton.
Vous devrez également modifier le code pour gérer tous vos boutons. Veuillez garder à l'esprit que si vous devez faire attention aux chaînes que vous avez utilisées. Vous ne pouvez pas ajouter de minuscules ensemble. Il est préférable de déclarer 1 en tant qu'objet String.
int child1ButtonPin = 13;//C'est la broche à laquelle notre bouton-poussoir est connecté toint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lit l'état du bouton (on/off) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; int child2Strike = 0; int child3Strike = 0; int child4Strike = 0;
// la fonction de configuration s'exécute une fois lorsque vous appuyez sur reset ou que vous mettez la carte sous tension
void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); } // la fonction de boucle s'exécute encore et encore pour toujours void loop() { // lit l'état du bouton (activé ou désactivé) child1ButtonState = digitalRead(child1ButtonPin);
child2ButtonState = digitalRead(child2ButtonPin);
child3ButtonState = digitalRead(child3ButtonPin);
child4ButtonState = digitalRead(child4ButtonPin);
if(child1ButtonState != child1PreviousState)
{ if(child1ButtonState == HIGH)//Le bouton est enfoncé { child1Strike ++; Serial.println(String("Child 1 Has: ") + child1Strike + " strikes");
if(child1Strike >=3)
{ Serial.println("L'enfant 1 est mis à la terre !"); } délai(3000); } } if(child2ButtonState != child2PreviousState) { if(child2ButtonState == HIGH)//Le bouton est enfoncé { child2Strike ++; Serial.println(String("Child 2 has: ") + child2Strike + " strikes");
if(child2Strike >=3)
{ Serial.println("L'enfant 2 est bloqué !"); } délai(3000); } }
if(child3ButtonState != child3PreviousState)
{ if(child3ButtonState == HIGH)//Le bouton est enfoncé { child3Strike ++; Serial.println(String("L'enfant 3 a: ") + child3Strike + " strikes");
if(child3Strike >=3)
{ Serial.println("L'enfant 3 est bloqué !"); } délai(3000); } }
if(child4ButtonState != child4PreviousState)
{ if(child4ButtonState == HIGH)//Le bouton est enfoncé { child4Strike ++; Serial.println(String("Child 4 has: ") + child4Strike + " strikes");
if(child4Strike >=3)
{ Serial.println("L'enfant 4 est bloqué !"); } délai(3000); } } }
Étape 4: ajouter un buzzer
Maintenant, assurez-vous que vos enfants savent qu'ils sont ancrés. Ajoutons un buzzer. Pour connecter le buzzer, suivez ces étapes simples.
- Ajoutez un buzzer à votre maquette, prévoyez de l'espace puisqu'un écran LCD arrive.
- Connectez le côté positif (le buzzer doit avoir un + sur le côté positif) à la broche de votre choix. J'ai fait 9.
- Connectez l'autre côté au rail mis à la terre de votre maquette.
Ensuite, modifiez votre code pour désactiver la sonnerie lorsqu'un enfant est mis à la terre. Il existe plusieurs manières de coder votre buzzer, mais j'aime la tonalité (nom de la sonnerie, hertz, durée) pour sa simplicité. Un exemple de ceci serait la tonalité (buzzer, 4000, 300).
int child1ButtonPin = 13;//C'est la broche à laquelle notre bouton-poussoir est connecté toint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lit l'état du bouton (on/off) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int buzzer = 2;
// la fonction de configuration s'exécute une fois lorsque vous appuyez sur reset ou que vous mettez la carte sous tension
void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); pinMode(buzzer, SORTIE); } // la fonction de boucle s'exécute encore et encore pour toujours void loop() { // lit l'état du bouton (activé ou désactivé) child1ButtonState = digitalRead(child1ButtonPin);
child2ButtonState = digitalRead(child2ButtonPin);
child3ButtonState = digitalRead(child3ButtonPin);
child4ButtonState = digitalRead(child4ButtonPin);
if(child1ButtonState != child1PreviousState)
{ if(child1ButtonState == HIGH)//Le bouton est enfoncé { child1Strike ++; Serial.println(String("Child 1 Has: ") + child1Strike + " strikes");
if(child1Strike >=3)
{ Serial.println("L'enfant 1 est mis à la terre !"); tonalité (buzzer, 5000, 500); // Envoie un son de 5 hertz pendant 5 millisecondes
}
retard(3000); } } if(child2ButtonState != child2PreviousState) { if(child2ButtonState == HIGH)//Le bouton est enfoncé { child2Strike ++; Serial.println(String("L'enfant 2 a: ") + child2Strike + " strikes");
if(child2Strike >=3)
{ Serial.println("L'enfant 2 est bloqué !"); tonalité (buzzer, 5000, 500); } délai(3000); } }
if(child3ButtonState != child3PreviousState)
{ if(child3ButtonState == HIGH)//Le bouton est enfoncé { child3Strike ++; Serial.println(String("L'enfant 3 a: ") + child3Strike + " strikes");
if(child3Strike >=3)
{ Serial.println("L'enfant 3 est bloqué !"); tonalité (buzzer, 5000, 500); } délai(3000); } }
if(child4ButtonState != child4PreviousState)
{ if(child4ButtonState == HIGH)//Le bouton est enfoncé { child4Strike ++; Serial.println(String("Child 4 has: ") + child4Strike + " strikes");
if(child4Strike >=3)
{ Serial.println("L'enfant 4 est bloqué !"); tonalité (buzzer, 5000, 500); } délai(3000); } } }
Étape 5: ajouter un écran LCD
Permet maintenant un écran LCD pour une lecture claire et facile.
- Tout d'abord, ajoutez un potentiomètre à votre maquette pour contrôler l'écran LCD. Faites attention à l'endroit où vous le placez car vous êtes probablement à court d'espace maintenant.
- Utilisez l'avant gauche pour connecter votre potentiomètre au rail d'alimentation
- Utilisez l'avant droit pour mettre à la terre votre potentiomètre.
- Le dos sera connecté à l'écran lcd.
- Ajoutez l'écran LCD à votre maquette
- Reliez la première broche de l'écran au rail de mise à la terre
- Câblez la deuxième broche au rail d'alimentation.
- La troisième broche LCD va à la broche 8 sur l'Arduino
- La quatrième broche LCD va à la broche 7 sur l'Arduino
- Le cinquième va à la broche 6 sur l'Arduino
- La sixième broche va à la broche 5 de l'Arduino
- Les broches 7 à 10 sur l'écran LCD sont vides
- La broche 11 va à la broche 5 sur l'Arduino
- La broche 12 va au rail mis à la terre
- La broche 13 va à la broche 4 sur l'Arduino
- La broche 14 va à l'arrière du potentiomètre
- La broche 15 va au rail d'alimentation
- La broche 16 va au rail au sol.
Maintenant, vous devrez mettre à jour votre code pour utiliser l'écran LCD. Pour cela vous utiliserez la bibliothèque Liquid Crystal. Faites attention à vos déclarations d'impression LCD. N'oubliez pas d'effacer l'écran lorsque vous avez besoin d'un nouveau message. N'oubliez pas non plus de positionner le curseur lorsque vous souhaitez utiliser deux lignes.
#comprendre
LiquidCrystal LCD (3, 4, 5, 6, 7, 8); //Définit l'écran LCD
int child1ButtonPin = 13;//C'est la broche à laquelle notre bouton-poussoir est connecté int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lit l'état du bouton (on/off) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // L'état précédent du bouton enfoncé int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; //Combien de frappes un enfant a int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int buzzer = 9; // le buzzer
// la fonction de configuration s'exécute une fois lorsque vous appuyez sur reset ou que vous mettez la carte sous tension
void setup() { Serial.begin(9600); lcd.begin (16, 2); lcd.print("L'enfant"); lcd.setCursor(0, 1); lcd.print("Modificateur de comportement"); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); pinMode(buzzer, SORTIE); } // la fonction de boucle s'exécute encore et encore pour toujours void loop() { lcd.setCursor(0, 0); //lire l'état du bouton (activé ou désactivé) child1ButtonState = digitalRead(child1ButtonPin);
child2ButtonState = digitalRead(child2ButtonPin);
child3ButtonState = digitalRead(child3ButtonPin);
child4ButtonState = digitalRead(child4ButtonPin);
if(child1ButtonState != child1PreviousState)
{ if(child1ButtonState == HIGH)//Le bouton est enfoncé { lcd.clear(); child1Strike ++; Serial.println(String("Child 1 Has: ") + child1Strike + " strikes"); lcd.print("L'enfant 1 a:"); lcd.setCursor(0, 1); lcd.print(child1Strike); lcd.print(" Grèves !");
if(child1Strike >=3)
{ Serial.println("L'enfant 1 est mis à la terre !"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("L'enfant 1 est"); lcd.setCursor(0, 1); lcd.print("Mise à la terre !");
tonalité (buzzer, 5000, 500); // Envoie un son de 5 hertz pendant 5 millisecondes
}
retard(3000); } } if(child2ButtonState != child2PreviousState) { lcd.clear(); if(child2ButtonState == HIGH)//Le bouton est enfoncé { child2Strike ++; Serial.println(String("Child 2 has: ") + child2Strike + " strikes"); lcd.print("L'enfant 2 a:"); lcd.setCursor(0, 1); lcd.print(child2Strike); lcd.print(" Grèves !"); if(child2Strike >=3) { Serial.println("Child 2 Is Grounded!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("L'enfant 2 est"); lcd.setCursor(0, 1); lcd.print("Mise à la terre !"); tonalité (buzzer, 5000, 500); } délai(3000); } }
if(child3ButtonState != child3PreviousState)
{ lcd.clear(); if(child3ButtonState == HIGH)//Le bouton est enfoncé { child3Strike ++; Serial.println(String("L'enfant 3 a: ") + child3Strike + " strikes"); lcd.print("L'enfant 3 a:"); lcd.setCursor(0, 1); lcd.print(child3Strike); lcd.print(" Grèves !"); if(child3Strike >=3) { Serial.println("L'enfant 3 est bloqué !"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("L'enfant 3 est"); lcd.setCursor(0, 1); lcd.print("Mise à la terre !"); tonalité (buzzer, 5000, 500); } délai(3000); } }
if(child4ButtonState != child4PreviousState)
{ lcd.clear(); if(child4ButtonState == HIGH)//Le bouton est enfoncé { child4Strike ++; Serial.println(String("L'enfant 4 a: ") + child4Strike + " strikes"); lcd.print("L'enfant 4 a:"); lcd.setCursor(0, 1); lcd.print(child4Strike); lcd.print(" Grèves !");
if(child4Strike >=3)
{ Serial.println("L'enfant 4 est bloqué !"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("L'enfant 4 est"); lcd.setCursor(0, 1); lcd.print("Mise à la terre !"); tonalité (buzzer, 5000, 500); } délai(3000); } } } Et c'est tout, c'est tout ce dont vous avez besoin pour créer votre propre modificateur de comportement d'enfant
Conseillé:
No Pee Now, dispositif d'ajustement du comportement des animaux de compagnie qui empêche les chats de faire pipi dans votre maison : 4 étapes
Pas de pipi maintenant, dispositif d'ajustement du comportement des animaux de compagnie qui empêche les chats de faire pipi dans votre maison : j'étais tellement dérangé par mon chaton qu'elle aime faire pipi sur mon lit, j'ai vérifié tout ce dont elle a besoin et je l'ai également emmenée chez le vétérinaire. Après avoir dépanné tout ce que je peux penser et écouter la parole du médecin, je me rends compte qu'elle a juste un mauvais comportement. Alors e
Modificateur dichoptique à occlusion alternative de la transmission stéréoscopique 32 [STM32F103C8T6+STMAV340 VGA Superimposer] : 6 étapes
Modificateur dichoptique à occlusion alternée de la transmission stéréoscopique 32 [STM32F103C8T6+STMAV340 VGA Superimposer] : Depuis un certain temps, j'ai travaillé sur un successeur de l'AODMoST d'origine. Le nouvel appareil utilise un microcontrôleur 32 bits plus rapide et meilleur et un commutateur vidéo analogique plus rapide. Il permet à AODMoST 32 de travailler avec des résolutions plus élevées et d'implémenter de nouvelles fonctionnalités
Modificateur dichoptique à occlusion alternative de la transmission stéréoscopique [ATmega328P+HEF4053B VGA Superimposer] : 7 étapes
Modificateur dichoptique à occlusion alternée de la transmission stéréoscopique [ATmega328P+HEF4053B VGA Superimposer] : Après mes expériences avec des verres à cristaux liquides utilisés pour occlure les yeux (ici et là), j'ai décidé de construire quelque chose qui soit un peu plus sophistiqué et qui ne force pas non plus l'utilisateur porter des PCB sur son front (les gens peuvent parfois se comporter
Mandalorian l'enfant automatisé : 10 étapes (avec photos)
Mandalorian l'enfant automatisé : vous avez acheté ce nouveau jouet (pour quelqu'un d'autre que vous) et vous souhaitez le mettre en mode "actif" l'affichage sans endommager l'appareil. Malheureusement, il ne fonctionne que lorsque vous appuyez sur sa tête. Si vous collez un morceau de feuille de métal sur le haut de la
Voiture de bricolage par un enfant de 7 ans : 5 étapes (avec photos)
Voiture de bricolage par un enfant de 7 ans : Pourquoi ne pas fabriquer vos propres jouets et apprendre en jouant ? Apprenez à le faire vous-même (bricolage) alors qu'Abzy, 7 ans, vous apprend à fabriquer lui-même une simple voiture à moteur à courant continu alimentée par batterie. Il y a beaucoup de déchets électroniques lorsque les jouets sont jetés. Un B