Taula de continguts:

Modificador de comportament infantil: 5 passos (amb imatges)
Modificador de comportament infantil: 5 passos (amb imatges)

Vídeo: Modificador de comportament infantil: 5 passos (amb imatges)

Vídeo: Modificador de comportament infantil: 5 passos (amb imatges)
Vídeo: Беслан. Помни / Beslan. Remember (english & español subs) 2024, Desembre
Anonim
Modificador de comportament infantil
Modificador de comportament infantil

El modificador de comportament infantil registra quantes vegades el vostre fill ha tingut problemes (també coneguts com Strikes) i, quan arriba als tres, s’activa un timbre i una pantalla lcd anuncia que està connectada a terra.

Pas 1: Inici simple: afegiu un botó

Inici simple: afegiu un botó
Inici simple: afegiu un botó

El primer pas d’aquest projecte és senzill. Afegeix 1 botó. En aquest pas necessiteu 4 cables masculins a masculins, 1 220 Resisitor i un polsador.

  1. Connecteu el 5V del costat de l'alimentació a la fila positiva de la taula de treball
  2. Connecteu el GND al costat negatiu de la taula de treball

  3. Inseriu el polsador a la taula de suport
  4. Connecteu l’alimentació de la fila postiva a la part inferior esquerra del polsador

  5. Posar a terra el botó mitjançant una resistència a la part inferior dreta del polsador a la fila negativa de la placa.
  6. Connecteu el número 13 al costat digital de l'Arduino a la part superior dreta del botó.

Verifiqueu amb el vostre codi que el botó s'està registrant:

int child1ButtonPin = 13; // Aquest és el pin al qual està connectat el nostre polsador

int child1ButtonState = 0; // Llegeix l'estat del botó (activat / desactivat)

int child1Strike = 0; // Quantes vagues té el nen

// la funció de configuració s'executa una vegada quan premeu reiniciar o encendre el tauler

configuració nul·la () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // la funció de bucle s'executa una i altra vegada per sempre bucle buit () {// llegir l'estat del botó (activat o desactivat) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Es prem el botó {Serial.println ("HIGH"); retard (5000); }

if (child1ButtonState == BAIX)

{Serial.println ("BAIX"); retard (5000); }}

Pas 2: Modifiqueu el codi per premer els botons de registre

Modifiqueu el codi per premer els botons de registre
Modifiqueu el codi per premer els botons de registre
Modifiqueu el codi per premer els botons de registre
Modifiqueu el codi per premer els botons de registre

Modifiqueu el codi per registrar un botó premeu:

int child1ButtonPin = 13; // Aquest és el pin que el nostre botó està connectat a child1ButtonState = 0; // Llegeix l’estat del botó (activat / desactivat) int child1PreviousState = 0; // Estat del botó anterior int child1Strike = 0;

// la funció de configuració s'executa una vegada quan premeu reiniciar o encendre el tauler

configuració nul·la () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // la funció de bucle s'executa una i altra vegada per sempre bucle buit () {// llegir l'estat del botó (activat o desactivat) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Es prem el botó {child1Strike ++; Serial.println (child1Strike); retard (1000); }}

}

A continuació, modifiqueu el codi perquè el nen rebi 3 tocs d'atenció després dels quals rebrà un missatge que indica que està connectat a terra:

int child1ButtonPin = 13; // Aquest és el pin que el nostre botó està connectat a child1ButtonState = 0; // Llegeix l’estat del botó (activat / desactivat) int child1PreviousState = 0; int child1Strike = 0;

// la funció de configuració s'executa una vegada quan premeu reiniciar o encendre el tauler

configuració nul·la () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // la funció de bucle s'executa una i altra vegada per sempre void loop () {// llegir l'estat del botó (activat o desactivat) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Es prem el botó {child1Strike ++; Serial.println (child1Strike);

if (child1Strike> = 3)

{Serial.println ("El nen 1 està a terra!"); } retard (3000); }}

}

El monitoreu en sèrie hauria de ser semblant a la imatge superior.

Nota: assegureu-vos que esteu còmode amb el retard. Amb una mica de retard i es registrarà 1 botó de prémer com més d'un!

Pas 3: afegiu tants botons com tingueu fills

Afegiu tants botons com tingueu fills
Afegiu tants botons com tingueu fills
Afegiu tants botons com tingueu fills
Afegiu tants botons com tingueu fills

En aquest pas, simplement copiem els darrers dos passos. Afegiu tants botons com nens. En el meu cas, n’afegeixo quatre. Assegureu-vos de canviar el codi pel pin digital al qual està connectat el botó. En el meu cas, he fet servir els pins del 12 al 10 per afegir els meus botons. En cas que necessiteu recordar-ho, aquí teniu el pas 1:

  1. Connecteu el 5V del costat de l'alimentació a la fila positiva de la taula de treball
  2. Connecteu el GND al costat negatiu de la taula de treball

  3. Inseriu el polsador a la placa de connexió Connecteu l’alimentació de la fila postiva a la part inferior esquerra del polsador
  4. Posar a terra el botó mitjançant una resistència a la part inferior dreta del polsador a la fila negativa de la taula.

  5. Connecteu (el vostre número de pin) al costat digital de l'Arduino a la part superior dreta del botó.

També haureu de modificar el codi per gestionar tots els vostres botons. Tingueu en compte que si heu de tenir cura de les cadenes que heu utilitzat. No es poden afegir junts a minúscules. És millor declarar 1 com a objecte de cadena.

int child1ButtonPin = 13; // Aquest és el pin que el nostre botó està connectat a child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Llegeix l’estat del botó (activat / desactivat) 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 funció de configuració s'executa una vegada quan premeu reiniciar o encendre el tauler

configuració nul·la () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // la funció de bucle s'executa una i altra vegada per sempre bucle buit () {// llegir l'estat del botó (activat o desactivat) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = DigitalRead (child2ButtonPin);

child3ButtonState = DigitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Es prem el botó {child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strikes");

if (child1Strike> = 3)

{Serial.println ("El nen 1 està a terra!"); } retard (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Es prem el botó {child2Strike ++; Serial.println (String ("El nen 2 té:") + child2Strike + "strike");

if (child2Strike> = 3)

{Serial.println ("Child 2 Is Grounded!"); } retard (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Es prem el botó {child3Strike ++; Serial.println (Cadena ("El nen 3 té:") + child3Strike + "strikes");

if (child3Strike> = 3)

{Serial.println ("El nen 3 està a terra!"); } retard (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Es prem el botó {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strike");

if (child4Strike> = 3)

{Serial.println ("Child 4 Is Grounded!"); } retard (3000); }}}

Pas 4: afegiu un buzzer

Afegiu un buzzer
Afegiu un buzzer
Afegiu un buzzer
Afegiu un buzzer

Ara assegureu-vos que els vostres fills sàpiguen que estan connectats a terra. Afegim un brunzidor. Per connectar el brunzidor, seguiu aquests senzills passos.

  1. Afegiu un buzzer a la vostra taula de treball, planifiqueu l’espai ja que apareix una pantalla LCD.
  2. Connecteu el costat positiu (el brunzidor hauria de tenir un + al costat positiu) al pin que vulgueu. N’he fet 9.
  3. Connecteu l’altre costat a la barana de terra de la vostra taula.

A continuació, modifiqueu el codi per desactivar el brunzidor quan un fill es posi a terra. Hi ha un parell de maneres diferents de codificar el vostre brunzidor, però m'agrada el to (buzzerName, hertz, durada) per la seva simplicitat. Per tant, un exemple d'això seria el to (buzzer, 4000, 300).

int child1ButtonPin = 13; // Aquest és el pin que el nostre botó està connectat a child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Llegeix l’estat del botó (activat / desactivat) 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 funció de configuració s'executa una vegada quan premeu reiniciar o encendre el tauler

configuració nul·la () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (buzzer, OUTPUT); } // la funció de bucle s'executa una i altra vegada per sempre void loop () {// llegir l'estat del botó (activat o desactivat) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = DigitalRead (child2ButtonPin);

child3ButtonState = DigitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Es prem el botó {child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strike");

if (child1Strike> = 3)

{Serial.println ("El nen 1 està a terra!"); to (timbre, 5000, 500); // Envia un so de 5 Hz durant 5 mil·lisegons

}

retard (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Es prem el botó {child2Strike ++; Serial.println (Cadena ("El nen 2 té:") + child2Strike + "strike");

if (child2Strike> = 3)

{Serial.println ("Child 2 Is Grounded!"); to (timbre, 5000, 500); } retard (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Es prem el botó {child3Strike ++; Serial.println (Cadena ("El nen 3 té:") + child3Strike + "strikes");

if (child3Strike> = 3)

{Serial.println ("El nen 3 està a terra!"); to (timbre, 5000, 500); } retard (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Es prem el botó {child4Strike ++; Serial.println (Cadena ("El nen 4 té:") + child4Strike + "strikes");

if (child4Strike> = 3)

{Serial.println ("Child 4 Is Grounded!"); to (timbre, 5000, 500); } retard (3000); }}}

Pas 5: afegiu una pantalla LCD

Image
Image
Afegiu una pantalla LCD
Afegiu una pantalla LCD

Ara permet una pantalla LCD per a una lectura clara i senzilla.

  1. Primer, afegiu un potenciòmetre a la vostra taula de control per controlar la pantalla lcd. Aneu amb compte d'on el poseu, ja que probablement us quedareu sense espai.
  2. Utilitzeu la part davantera esquerra per connectar el potenciòmetre al carril de potència
  3. Utilitzeu la part davantera dreta per connectar a terra el potenciòmetre.
  4. La part posterior es connectarà a la pantalla lcd.
  5. Afegiu la pantalla LCD a la vostra taula de treball
  6. Posar a terra el primer passador de pantalla al rail de connexió a terra
  7. Connecteu el segon passador al rail d'alimentació.
  8. El tercer pin LCD passa al pin 8 de l’Arduino
  9. El quart pin LCD va al pin 7 de l'Arduino
  10. El cinquè va al Pin 6 de l'Arduino
  11. El sisè Pin passa al Pin 5 de l'Arduino
  12. Els pins del 7 al 10 de la pantalla LCD estan buits
  13. El pin 11 va al pin 5 de l’Arduino
  14. El passador 12 va al rail de terra
  15. El pin 13 va al pin 4 de l’Arduino
  16. El pin 14 va a la part posterior del potenciòmetre
  17. El pin 15 va al carril Power
  18. El pin 16 va al rail terrestre.

Ara haurà d’actualitzar el codi per utilitzar la pantalla LCD. Per a això, faràs servir el cristal líquid lliure. Aneu amb compte amb les declaracions d'impressió LCD. Recordeu esborrar la pantalla quan necessiteu un missatge nou. Recordeu també d’establir el cursor quan vulgueu utilitzar dues línies.

#incloure

LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Estableix la pantalla LCD

int child1ButtonPin = 13; // Aquest és el pin que el nostre botó està connectat a int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Llegeix l’estat del botó (activat / desactivat) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // L'estat anterior del botó premut int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Quantes vagues té un nen int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int buzzer = 9; // el brunzidor

// la funció de configuració s'executa una vegada quan premeu reiniciar o encendre el tauler

configuració nul·la () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("El nen"); lcd.setCursor (0, 1); lcd.print ("Modificador de comportament"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (buzzer, OUTPUT); } // la funció de bucle s'executa una i altra vegada per sempre void loop () {lcd.setCursor (0, 0); // llegir l'estat del botó (activat o desactivat) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = DigitalRead (child2ButtonPin);

child3ButtonState = DigitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Es prem el botó {lcd.clear (); child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strike"); lcd.print ("El nen 1 té:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("Vaga!");

if (child1Strike> = 3)

{Serial.println ("El nen 1 està a terra!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("El nen 1 és"); lcd.setCursor (0, 1); lcd.print ("A terra!");

to (timbre, 5000, 500); // Envia un so de 5 Hz durant 5 mil·lisegons

}

retard (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Es prem el botó {child2Strike ++; Serial.println (Cadena ("El nen 2 té:") + child2Strike + "strike"); lcd.print ("El nen 2 té:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Vaga!"); if (child2Strike> = 3) {Serial.println ("Child 2 Is Grounded!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("El nen 2 és"); lcd.setCursor (0, 1); lcd.print ("A terra!"); to (timbre, 5000, 500); } retard (3000); }}

if (child3ButtonState! = child3PreviousState)

{lcd.clear (); if (child3ButtonState == HIGH) // Es prem el botó {child3Strike ++; Serial.println (Cadena ("El nen 3 té:") + child3Strike + "strikes"); lcd.print ("El nen 3 té:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Vaga!"); if (child3Strike> = 3) {Serial.println ("Child 3 is Grounded!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("El nen 3 és"); lcd.setCursor (0, 1); lcd.print ("A terra!"); to (timbre, 5000, 500); } retard (3000); }}

if (child4ButtonState! = child4PreviousState)

{lcd.clear (); if (child4ButtonState == HIGH) // Es prem el botó {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strike"); lcd.print ("El nen 4 té:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Vaga!");

if (child4Strike> = 3)

{Serial.println ("Child 4 Is Grounded!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("El nen 4 és"); lcd.setCursor (0, 1); lcd.print ("A terra!"); to (timbre, 5000, 500); } retard (3000); }}} I això és tot, això és tot el que necessiteu per crear el vostre propi Modifer de comportament infantil

Recomanat: