Table des matières:

Modificateur de comportement de l'enfant : 5 étapes (avec photos)
Modificateur de comportement de l'enfant : 5 étapes (avec photos)

Vidéo: Modificateur de comportement de l'enfant : 5 étapes (avec photos)

Vidéo: Modificateur de comportement de l'enfant : 5 étapes (avec photos)
Vidéo: Hyperactivité et troubles de l'attention : soigner dès la petite enfance 2024, Novembre
Anonim
Modificateur de comportement enfant
Modificateur de comportement enfant

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

Commencer simplement: ajouter un bouton
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.

  1. Connectez le 5V du côté alimentation à la rangée positive de la planche à pain
  2. Connectez le GND au côté négatif de la planche à pain

  3. Insérez le bouton-poussoir sur la planche à pain
  4. Branchez l'alimentation sur la ligne positive à la partie inférieure gauche du bouton poussoir

  5. 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.
  6. 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

Modifier le code pour enregistrer les pressions sur les boutons
Modifier le code pour enregistrer les pressions sur les boutons
Modifier le code pour enregistrer les pressions sur les boutons
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

Ajoutez autant de boutons que vous avez d'enfants
Ajoutez autant de boutons que vous avez d'enfants
Ajoutez autant de boutons que vous avez d'enfants
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:

  1. Connectez le 5V du côté alimentation à la rangée positive de la planche à pain
  2. Connectez le GND au côté négatif de la planche à pain

  3. Insérez le bouton-poussoir sur la planche à painConnectez l'alimentation sur la ligne positive à la partie inférieure gauche du bouton-poussoir
  4. 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.

  5. 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

Ajouter un buzzer
Ajouter un buzzer
Ajouter un buzzer
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.

  1. Ajoutez un buzzer à votre maquette, prévoyez de l'espace puisqu'un écran LCD arrive.
  2. Connectez le côté positif (le buzzer doit avoir un + sur le côté positif) à la broche de votre choix. J'ai fait 9.
  3. 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

Image
Image
Ajouter un écran LCD
Ajouter un écran LCD

Permet maintenant un écran LCD pour une lecture claire et facile.

  1. 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.
  2. Utilisez l'avant gauche pour connecter votre potentiomètre au rail d'alimentation
  3. Utilisez l'avant droit pour mettre à la terre votre potentiomètre.
  4. Le dos sera connecté à l'écran lcd.
  5. Ajoutez l'écran LCD à votre maquette
  6. Reliez la première broche de l'écran au rail de mise à la terre
  7. Câblez la deuxième broche au rail d'alimentation.
  8. La troisième broche LCD va à la broche 8 sur l'Arduino
  9. La quatrième broche LCD va à la broche 7 sur l'Arduino
  10. Le cinquième va à la broche 6 sur l'Arduino
  11. La sixième broche va à la broche 5 de l'Arduino
  12. Les broches 7 à 10 sur l'écran LCD sont vides
  13. La broche 11 va à la broche 5 sur l'Arduino
  14. La broche 12 va au rail mis à la terre
  15. La broche 13 va à la broche 4 sur l'Arduino
  16. La broche 14 va à l'arrière du potentiomètre
  17. La broche 15 va au rail d'alimentation
  18. 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é: