Modificador de comportamiento infantil: 5 pasos (con imágenes)
Modificador de comportamiento infantil: 5 pasos (con imágenes)
Anonim
Modificador de comportamiento infantil
Modificador de comportamiento infantil

El Modificador de comportamiento del niño registra cuántas veces su hijo se ha metido en problemas (también conocido como Huelgas) y cuando llega a los tres, suena un timbre y una pantalla LCD anuncia que está conectado a tierra.

Paso 1: Comience de manera simple: agregue un botón

Comience simple: agregue un botón
Comience simple: agregue un botón

El primer paso de este proyecto es simple. Agregar 1 botón. En este paso, necesita 4 cables macho a macho, 1 resistencia 220 y un botón.

  1. Conecte el 5V en el lado de la energía a la fila positiva en la placa de pruebas
  2. Conecte el GND al lado negativo de la placa de pruebas

  3. Inserte el botón en la placa de pruebas
  4. Conecte la alimentación en la fila positiva a la parte inferior izquierda del botón pulsador.

  5. Conecte a tierra el botón usando una resistencia en la parte inferior derecha del botón pulsador en la fila negativa de la placa de pruebas.
  6. Conecte el # 13 en el lado digital del Arduino al lado superior derecho del botón.

Verifica con tu código que el botón se está registrando:

int child1ButtonPin = 13; // Este es el pin al que está conectado nuestro pulsador

int child1ButtonState = 0; // Lee el estado del botón (encendido / apagado)

int child1Strike = 0; // Cuantos golpes tiene el niño

// la función de configuración se ejecuta una vez al presionar reiniciar o encender la placa

configuración vacía () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // la función de bucle se ejecuta una y otra vez para siempre void loop () {// lee el estado del botón (encendido o apagado) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Se presiona el botón {Serial.println ("HIGH"); retraso (5000); }

if (child1ButtonState == LOW)

{Serial.println ("BAJO"); retraso (5000); }}

Paso 2: Modificar el código para registrar las pulsaciones de botones

Modificar código para registrar pulsaciones de botones
Modificar código para registrar pulsaciones de botones
Modificar código para registrar pulsaciones de botones
Modificar código para registrar pulsaciones de botones

Modifique el código para registrar una pulsación de botón:

int child1ButtonPin = 13; // Este es el pin al que está conectado nuestro botón pulsadorint child1ButtonState = 0; // Lee el estado del botón (encendido / apagado) int child1PreviousState = 0; // Estado anterior del botón int child1Strike = 0;

// la función de configuración se ejecuta una vez al presionar reiniciar o encender la placa

configuración vacía () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // la función de bucle se ejecuta una y otra vez para siempre void loop () {// lee el estado del botón (encendido o apagado) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Se presiona el botón {child1Strike ++; Serial.println (child1Strike); retraso (1000); }}

}

A continuación, modifique el código para que el niño reciba 3 advertencias, después de lo cual recibirá un mensaje de que está castigado:

int child1ButtonPin = 13; // Este es el pin al que está conectado nuestro pulsadorint child1ButtonState = 0; // Lee el estado del botón (encendido / apagado) int child1PreviousState = 0; int child1Strike = 0;

// la función de configuración se ejecuta una vez al presionar reiniciar o encender la placa

configuración vacía () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // la función de bucle se ejecuta una y otra vez para siempre void loop () {// lee el estado del botón (encendido o apagado) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Se presiona el botón {child1Strike ++; Serial.println (child1Strike);

si (child1Strike> = 3)

{Serial.println ("¡El niño 1 está conectado a tierra!"); } retraso (3000); }}

}

El Serial Moniter debe verse como la imagen de arriba.

Nota: asegúrese de sentirse cómodo con la demora. ¡Con un poco de retraso y registrará 1 pulsación de botón como más de uno!

Paso 3: agregue tantos botones como niños tenga

Agregue tantos botones como niños tenga
Agregue tantos botones como niños tenga
Agregue tantos botones como niños
Agregue tantos botones como niños

En este paso, simplemente copiamos los últimos dos pasos. Agregue tantos botones como niños. En mi caso, sumo cuatro. Asegúrese de cambiar su código por el pin digital al que está conectado el botón. En mi caso, usé los pines del 12 al 10 para agregar mis botones. En caso de que necesite recordarlo, aquí está el Paso 1:

  1. Conecte el 5V en el lado de la energía a la fila positiva en la placa de pruebas
  2. Conecte el GND al lado negativo de la placa de pruebas

  3. Inserte el botón en la placa de pruebas Conecte la alimentación en la fila positiva a la parte inferior izquierda del botón
  4. Conecte a tierra el botón usando una resistencia en la parte inferior derecha del botón pulsador en la fila negativa de la placa de pruebas.

  5. Conecte (su número de pin) en el lado digital del Arduino al lado superior derecho del botón.

También necesitará modificar el código para manejar todos sus botones. Tenga en cuenta que si necesita tener cuidado con las cuerdas que utilizó. No se pueden sumar a minúsculas juntas. Es mejor declarar 1 como un objeto String.

int child1ButtonPin = 13; // Este es el pin al que está conectado nuestro pulsadorint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lee el estado del botón (encendido / apagado) 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ón de configuración se ejecuta una vez al presionar reiniciar o encender la placa

configuración vacía () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // la función de bucle se ejecuta una y otra vez para siempre void loop () {// lee el estado del botón (encendido o apagado) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Se presiona el botón {child1Strike ++; Serial.println (String ("Child 1 has:") + child1Strike + "strikes");

si (child1Strike> = 3)

{Serial.println ("¡El niño 1 está conectado a tierra!"); } retraso (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Se presiona el botón {child2Strike ++; Serial.println (String ("Child 2 tiene:") + child2Strike + "strikes");

si (child2Strike> = 3)

{Serial.println ("¡El niño 2 está conectado a tierra!"); } retraso (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Se presiona el botón {child3Strike ++; Serial.println (String ("Child 3 tiene:") + child3Strike + "strikes");

si (child3Strike> = 3)

{Serial.println ("¡El niño 3 está conectado a tierra!"); } retraso (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Se presiona el botón {child4Strike ++; Serial.println (String ("El niño 4 tiene:") + child4Strike + "strikes");

si (child4Strike> = 3)

{Serial.println ("¡El niño 4 está conectado a tierra!"); } retraso (3000); }}}

Paso 4: agregue un zumbador

Agregar un timbre
Agregar un timbre
Agregar un timbre
Agregar un timbre

Ahora asegurémonos de que sus hijos sepan que están conectados a tierra. Agreguemos un timbre. Para conectar el timbre, siga estos sencillos pasos.

  1. Agregue un zumbador a su tablero, planifique el espacio ya que se acerca una pantalla LCD.
  2. Conecte el lado positivo (el zumbador debe tener un + en el lado positivo) al Pin de su elección. Hice 9.
  3. Conecte el otro lado al riel con conexión a tierra de su tablero.

A continuación, modifique su código para activar el timbre cuando un niño se castiga. Hay un par de formas diferentes de codificar tu zumbador, pero me gusta el tono (buzzerName, hercios, duración) por su simplicidad. Por lo tanto, un ejemplo de esto sería el tono (zumbador, 4000, 300).

int child1ButtonPin = 13; // Este es el pin al que está conectado nuestro pulsadorint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lee el estado del botón (encendido / apagado) 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 zumbador = 2;

// la función de configuración se ejecuta una vez al presionar reiniciar o encender la placa

configuración vacía () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (zumbador, SALIDA); } // la función de bucle se ejecuta una y otra vez para siempre void loop () {// lee el estado del botón (encendido o apagado) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Se presiona el botón {child1Strike ++; Serial.println (String ("Child 1 has:") + child1Strike + "strikes");

si (child1Strike> = 3)

{Serial.println ("¡El niño 1 está conectado a tierra!"); tono (zumbador, 5000, 500); // Envía un sonido de 5 hercios durante 5 milisegundos

}

retraso (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Se presiona el botón {child2Strike ++; Serial.println (String ("Child 2 tiene:") + child2Strike + "strikes");

si (child2Strike> = 3)

{Serial.println ("¡El niño 2 está conectado a tierra!"); tono (zumbador, 5000, 500); } retraso (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Se presiona el botón {child3Strike ++; Serial.println (String ("Child 3 tiene:") + child3Strike + "strikes");

si (child3Strike> = 3)

{Serial.println ("¡El niño 3 está conectado a tierra!"); tono (zumbador, 5000, 500); } retraso (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Se presiona el botón {child4Strike ++; Serial.println (String ("El niño 4 tiene:") + child4Strike + "strikes");

si (child4Strike> = 3)

{Serial.println ("¡El niño 4 está conectado a tierra!"); tono (zumbador, 5000, 500); } retraso (3000); }}}

Paso 5: agregue una pantalla LCD

Image
Image
Agregar una pantalla LCD
Agregar una pantalla LCD

Ahora deja una pantalla LCD para una lectura clara y fácil.

  1. Primero, agregue un potenciómetro a su tablero para controlar la pantalla lcd. Tenga cuidado de dónde lo pone, ya que probablemente se esté quedando sin espacio ahora.
  2. Utilice la parte delantera izquierda para conectar su potenciómetro a la línea de alimentación
  3. Utilice la parte delantera derecha para conectar a tierra su potenciómetro.
  4. La parte trasera se conectará a la pantalla lcd.
  5. Agregue la pantalla LCD a su tablero
  6. Conecte a tierra el primer pin de la pantalla al riel de conexión a tierra
  7. Conecte el segundo pin a la línea de alimentación.
  8. El tercer pin de la pantalla LCD va al pin 8 del Arduino
  9. El cuarto pin de la pantalla LCD va al pin 7 del Arduino
  10. El quinto va al Pin 6 en el Arduino
  11. El sexto pin va al pin 5 en el Arduino
  12. Los pines 7 a 10 en la pantalla LCD están vacíos
  13. El pin 11 va al pin 5 en el Arduino
  14. El pin 12 va al riel conectado a tierra
  15. El pin 13 va al pin 4 en el Arduino
  16. El pin 14 va a la parte trasera del potenciómetro
  17. El pin 15 va al riel de alimentación
  18. El pin 16 va al riel de tierra.

Ahora tendrás que actualizar tu código para usar la pantalla lcd. Para eso usarás la biblioteca Liquid Crystal. Tenga cuidado con sus declaraciones impresas en lcd. Recuerde borrar la pantalla cuando necesite un mensaje nuevo. También recuerde colocar el cursor cuando desee utilizar dos líneas.

#incluir

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

int child1ButtonPin = 13; // Este es el pin al que está conectado nuestro pulsador int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lee el estado del botón (encendido / apagado) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // El estado anterior del botón presionado int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Cuántos golpes tiene un niño int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int zumbador = 9; // el zumbador

// la función de configuración se ejecuta una vez al presionar reiniciar o encender la placa

configuración vacía () {Serial.begin (9600); lcd. comienzo (16, 2); lcd.print ("El niño"); lcd.setCursor (0, 1); lcd.print ("Modificador de comportamiento"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (zumbador, SALIDA); } // la función de bucle se ejecuta una y otra vez para siempre void loop () {lcd.setCursor (0, 0); // lee el estado del botón (encendido o apagado) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Se presiona el botón {lcd.clear (); child1Strike ++; Serial.println (String ("Child 1 has:") + child1Strike + "strikes"); lcd.print ("El niño 1 tiene:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("¡Huelgas!");

si (child1Strike> = 3)

{Serial.println ("¡El niño 1 está conectado a tierra!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("El niño 1 es"); lcd.setCursor (0, 1); lcd.print ("¡Conectado a tierra!");

tono (zumbador, 5000, 500); // Envía un sonido de 5 hercios durante 5 milisegundos

}

retraso (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Se presiona el botón {child2Strike ++; Serial.println (String ("Child 2 tiene:") + child2Strike + "strikes"); lcd.print ("El niño 2 tiene:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("¡Huelgas!"); if (child2Strike> = 3) {Serial.println ("¡El niño 2 está conectado a tierra!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("El niño 2 es"); lcd.setCursor (0, 1); lcd.print ("¡Conectado a tierra!"); tono (zumbador, 5000, 500); } retraso (3000); }}

if (child3ButtonState! = child3PreviousState)

{lcd.clear (); if (child3ButtonState == HIGH) // Se presiona el botón {child3Strike ++; Serial.println (String ("Child 3 tiene:") + child3Strike + "strikes"); lcd.print ("El niño 3 tiene:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("¡Huelgas!"); if (child3Strike> = 3) {Serial.println ("¡El niño 3 está conectado a tierra!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("El niño 3 es"); lcd.setCursor (0, 1); lcd.print ("¡Conectado a tierra!"); tono (zumbador, 5000, 500); } retraso (3000); }}

if (child4ButtonState! = child4PreviousState)

{lcd.clear (); if (child4ButtonState == HIGH) // Se presiona el botón {child4Strike ++; Serial.println (String ("El niño 4 tiene:") + child4Strike + "strikes"); lcd.print ("El niño 4 tiene:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("¡Huelgas!");

si (child4Strike> = 3)

{Serial.println ("¡El niño 4 está conectado a tierra!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("El niño 4 es"); lcd.setCursor (0, 1); lcd.print ("¡Conectado a tierra!"); tono (zumbador, 5000, 500); } retraso (3000); }}} Y eso es todo, eso es todo lo que necesita para construir su propio modificador de comportamiento infantil