Índice:

Modificador de comportamento infantil: 5 etapas (com imagens)
Modificador de comportamento infantil: 5 etapas (com imagens)

Vídeo: Modificador de comportamento infantil: 5 etapas (com imagens)

Vídeo: Modificador de comportamento infantil: 5 etapas (com imagens)
Vídeo: Cérebro | Comportamentos de Crianças de 5 anos 2024, Novembro
Anonim
Modificador de comportamento infantil
Modificador de comportamento infantil

O modificador de comportamento infantil registra quantas vezes seu filho teve problemas (também conhecido como greves) e, quando ele chega aos três, uma campainha toca e uma tela LCD anuncia que ele está de castigo.

Etapa 1: Comece de maneira simples: adicione um botão

Comece simples: adicione um botão
Comece simples: adicione um botão

A primeira etapa deste projeto é simples. Adicionar 1 botão. Nesta etapa, você precisa de 4 fios macho para macho, 1 resistor 220 e um botão de pressão.

  1. Conecte o 5V no lado da alimentação para a linha positiva na placa de ensaio
  2. Conecte o GND ao lado negativo da placa de ensaio

  3. Insira o botão na placa de ensaio
  4. Conecte a força na linha positiva para a parte inferior esquerda do botão de pressão

  5. Aterre o botão usando um resistor na parte inferior direita do botão de pressão para a linha negativa da placa de ensaio.
  6. Conecte o nº 13 do lado digital do Arduino ao lado superior direito do botão.

Verifique com o seu código se o botão está sendo registrado:

int child1ButtonPin = 13; // Este é o pino ao qual nosso botão está conectado

int child1ButtonState = 0; // Lê o estado do botão (ligado / desligado)

int child1Strike = 0; // Quantos golpes a criança tem

// a função de configuração é executada uma vez quando você pressiona reset ou liga a placa

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // a função de loop é executada continuamente void loop () {// ler o estado do botão (ligado ou desligado) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Botão pressionado {Serial.println ("HIGH"); atraso (5000); }

if (child1ButtonState == LOW)

{Serial.println ("LOW"); atraso (5000); }}

Etapa 2: modificar o código para registrar pressionamentos de botão

Modifique o código para registrar pressionamentos de botão
Modifique o código para registrar pressionamentos de botão
Modifique o código para registrar pressionamentos de botão
Modifique o código para registrar pressionamentos de botão

Modifique o código para registrar um pressionamento de botão:

int child1ButtonPin = 13; // Este é o pino que nosso botão está conectado aint child1ButtonState = 0; // Lê o estado do botão (ligado / desligado) int child1PreviousState = 0; // Estado anterior do botão int child1Strike = 0;

// a função de configuração é executada uma vez quando você pressiona reset ou liga a placa

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // a função de loop é executada continuamente void loop () {// ler o estado do botão (ligado ou desligado) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Botão pressionado {child1Strike ++; Serial.println (child1Strike); atraso (1000); }}

}

Em seguida, modifique o código para que a criança receba três avisos, após os quais receberá uma mensagem de que está de castigo:

int child1ButtonPin = 13; // Este é o pino que nosso botão está conectado aint child1ButtonState = 0; // Lê o estado do botão (ligado / desligado) int child1PreviousState = 0; int child1Strike = 0;

// a função de configuração é executada uma vez quando você pressiona reset ou liga a placa

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // a função de loop é executada continuamente void loop () {// ler o estado do botão (ligado ou desligado) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Botão pressionado {child1Strike ++; Serial.println (child1Strike);

if (child1Strike> = 3)

{Serial.println ("Child 1 is Grounded!"); } atraso (3000); }}

}

O Serial Moniter deve ser semelhante à imagem acima.

Nota: certifique-se de que você está confortável com o atraso. Um pequeno atraso e registrará 1 pressionamento de botão como mais de um!

Etapa 3: adicione tantos botões quantos os filhos

Adicione tantos botões quantos tiver filhos
Adicione tantos botões quantos tiver filhos
Adicione quantos botões você tiver filhos
Adicione quantos botões você tiver filhos

Nesta etapa, simplesmente copiamos as duas últimas etapas. Adicione tantos botões quanto crianças. No meu caso, adiciono quatro. Certifique-se de alterar o código do pino digital ao qual o botão está conectado. No meu caso, usei os pinos 12 a 10 para adicionar meus botões. Caso você precise ser lembrado, aqui está a Etapa 1:

  1. Conecte o 5V no lado da alimentação para a linha positiva na placa de ensaio
  2. Conecte o GND ao lado negativo da placa de ensaio

  3. Insira o botão de pressão na placa de ensaio; conecte a alimentação na linha positiva à parte inferior esquerda do botão de pressão
  4. Aterre o botão usando um resistor na parte inferior direita do botão de pressão para a linha negativa da placa de ensaio.

  5. Conecte (seu número de pin) no lado digital do Arduino ao lado superior direito do botão.

Você também precisará modificar o código para lidar com todos os seus botões. Lembre-se disso se precisar ter cuidado com as Strings que você usou. Você não pode adicionar letras minúsculas juntas. É melhor declarar 1 como um objeto String.

int child1ButtonPin = 13; // Este é o pino que nosso botão está conectado aint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lê o estado do botão (ligado / desligado) 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;

// a função de configuração é executada uma vez quando você pressiona reset ou liga a placa

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // a função de loop é executada continuamente void loop () {// ler o estado do botão (ligado ou desligado) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Botão pressionado {child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strikes");

if (child1Strike> = 3)

{Serial.println ("Child 1 is Grounded!"); } atraso (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Botão pressionado {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strikes");

if (child2Strike> = 3)

{Serial.println ("Child 2 is Grounded!"); } atraso (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Botão pressionado {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strikes");

if (child3Strike> = 3)

{Serial.println ("Child 3 is Grounded!"); } atraso (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Botão pressionado {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strikes");

if (child4Strike> = 3)

{Serial.println ("Child 4 is Grounded!"); } atraso (3000); }}}

Etapa 4: adicionar uma campainha

Adicionar uma campainha
Adicionar uma campainha
Adicionar uma campainha
Adicionar uma campainha

Agora, vamos garantir que seus filhos saibam que estão de castigo. Vamos adicionar uma campainha. Para conectar a campainha, siga estas etapas fáceis.

  1. Adicione uma campainha à sua placa de ensaio, planeje o espaço, já que uma tela LCD está chegando.
  2. Conecte o lado positivo (a campainha deve ter um + no lado positivo) ao pino de sua escolha. Eu fiz 9.
  3. Conecte o outro lado ao trilho aterrado de sua placa de ensaio.

Em seguida, modifique seu código para desligar a campainha quando uma criança ficar de castigo. Existem algumas maneiras diferentes de codificar sua campainha, mas eu gosto do tom (buzzerName, hertz, duração) por sua simplicidade. Portanto, um exemplo disso seria o tom (campainha, 4000, 300).

int child1ButtonPin = 13; // Este é o pino que nosso botão está conectado aint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lê o estado do botão (ligado / desligado) 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;

// a função de configuração é executada uma vez quando você pressiona reset ou liga a placa

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (campainha, OUTPUT); } // a função de loop é executada continuamente void loop () {// ler o estado do botão (ligado ou desligado) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Botão pressionado {child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strikes");

if (child1Strike> = 3)

{Serial.println ("Child 1 is Grounded!"); tom (campainha, 5000, 500); // Envia um som de 5 hertz por 5 milissegundos

}

atraso (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Botão pressionado {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strikes");

if (child2Strike> = 3)

{Serial.println ("Child 2 is Grounded!"); tom (campainha, 5000, 500); } atraso (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Botão pressionado {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strikes");

if (child3Strike> = 3)

{Serial.println ("Child 3 is Grounded!"); tom (campainha, 5000, 500); } atraso (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Botão pressionado {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strikes");

if (child4Strike> = 3)

{Serial.println ("Child 4 is Grounded!"); tom (campainha, 5000, 500); } atraso (3000); }}}

Etapa 5: adicionar uma tela LCD

Image
Image
Adicionar uma tela LCD
Adicionar uma tela LCD

Agora permite uma tela LCD para uma leitura clara e fácil.

  1. Primeiro, adicione um potenciômetro à placa de ensaio para controlar a tela LCD. Tenha cuidado ao colocá-lo, pois provavelmente você está ficando sem espaço agora.
  2. Use a frente esquerda para conectar seu potenciômetro ao barramento de alimentação
  3. Use a frente direita para aterrar seu potenciômetro.
  4. A parte traseira será conectada à tela de lcd.
  5. Adicione a tela LCD à sua placa de ensaio
  6. Aterre o primeiro pino de tela ao trilho de aterramento
  7. Conecte o segundo pino ao barramento de alimentação.
  8. O terceiro pino LCD vai para o pino 8 no Arduino
  9. O quarto pino LCD vai para o pino 7 no Arduino
  10. O quinto vai para o pino 6 no Arduino
  11. O sexto pino vai para o pino 5 no Arduino
  12. Os pinos 7 a 10 na tela LCD estão vazios
  13. O pino 11 vai para o pino 5 no Arduino
  14. O pino 12 vai para o trilho aterrado
  15. O pino 13 vai para o pino 4 no Arduino
  16. O pino 14 vai para a parte de trás do potenciômetro
  17. O pino 15 vai para o barramento de alimentação
  18. O pino 16 vai para o trilho de aterramento.

Agora você terá que atualizar seu código para usar a tela de lcd. Para isso você usará a biblioteca Liquid Crystal. Tenha cuidado com suas declarações de impressão LCD. Lembre-se de limpar a tela quando precisar de uma nova mensagem. Lembre-se também de definir o cursor quando quiser usar duas linhas.

#incluir

LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Define a tela LCD

int child1ButtonPin = 13; // Este é o pino que nosso botão está conectado a int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lê o estado do botão (ligado / desligado) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // O estado anterior do botão pressionado int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Quantos golpes uma criança possui int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int buzzer = 9; // a campainha

// a função de configuração é executada uma vez quando você pressiona reset ou liga a placa

void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("A Criança"); lcd.setCursor (0, 1); lcd.print ("Modificador de comportamento"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (campainha, OUTPUT); } // a função de loop é executada continuamente para sempre void loop () {lcd.setCursor (0, 0); // lê o estado do botão (ligado ou desligado) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Botão pressionado {lcd.clear (); child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strikes"); lcd.print ("Criança 1 tem:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("Strikes!");

if (child1Strike> = 3)

{Serial.println ("Child 1 is Grounded!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Criança 1 é"); lcd.setCursor (0, 1); lcd.print ("Aterrado!");

tom (campainha, 5000, 500); // Envia um som de 5 hertz por 5 milissegundos

}

atraso (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Botão pressionado {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strikes"); lcd.print ("Criança 2 tem:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Strikes!"); if (child2Strike> = 3) {Serial.println ("Child 2 is Grounded!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Criança 2 é"); lcd.setCursor (0, 1); lcd.print ("Aterrado!"); tom (campainha, 5000, 500); } atraso (3000); }}

if (child3ButtonState! = child3PreviousState)

{lcd.clear (); if (child3ButtonState == HIGH) // Botão pressionado {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strikes"); lcd.print ("Criança 3 tem:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Strikes!"); if (child3Strike> = 3) {Serial.println ("Child 3 is Grounded!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Criança 3 é"); lcd.setCursor (0, 1); lcd.print ("Aterrado!"); tom (campainha, 5000, 500); } atraso (3000); }}

if (child4ButtonState! = child4PreviousState)

{lcd.clear (); if (child4ButtonState == HIGH) // Botão pressionado {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strikes"); lcd.print ("Criança 4 tem:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Strikes!");

if (child4Strike> = 3)

{Serial.println ("Child 4 is Grounded!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Criança 4 é"); lcd.setCursor (0, 1); lcd.print ("Aterrado!"); tom (campainha, 5000, 500); } atraso (3000); }}} E é isso, isso é tudo que você precisa para construir seu próprio modificador de comportamento infantil

Recomendado: