Inhaltsverzeichnis:

Verhaltensmodifizierer für Kinder - Gunook
Verhaltensmodifizierer für Kinder - Gunook

Video: Verhaltensmodifizierer für Kinder - Gunook

Video: Verhaltensmodifizierer für Kinder - Gunook
Video: 5 mächtige Manipulationstechniken, die verboten sein sollten (Cialdini Techniken) 2024, November
Anonim
Verhaltensmodifizierer für Kinder
Verhaltensmodifizierer für Kinder

Der Child Behavior Modifier zeichnet auf, wie oft Ihr Kind in Schwierigkeiten geraten ist (auch bekannt als Strikes), und wenn es drei erreicht, ertönt ein Summer und ein LCD-Bildschirm kündigt an, dass es geerdet ist.

Schritt 1: Einfach starten: Schaltfläche hinzufügen

Einfach starten: Schaltfläche hinzufügen
Einfach starten: Schaltfläche hinzufügen

Der erste Schritt in diesem Projekt ist einfach. Fügen Sie 1 Schaltfläche hinzu. In diesem Schritt benötigen Sie 4 männliche zu männlichen Drähten, 1 220 Widerstand und einen Druckknopf.

  1. Verbinden Sie die 5V auf der Stromseite mit der positiven Reihe auf dem Steckbrett
  2. Verbinden Sie den GND mit der negativen Seite des Steckbretts

  3. Stecken Sie den Druckknopf auf das Steckbrett
  4. Verbinden Sie die Stromversorgung der positiven Reihe mit dem linken unteren Teil des Druckknopfes

  5. Erden Sie den Knopf, indem Sie einen Widerstand am unteren rechten Teil des Druckknopfes an der negativen Reihe des Steckbretts verwenden.
  6. Verbinden Sie #13 auf der digitalen Seite des Arduino mit der oberen rechten Seite der Taste.

Stellen Sie mit Ihrem Code sicher, dass sich die Schaltfläche registriert:

int child1ButtonPin = 13; // Dies ist der Pin, mit dem unser Taster verbunden ist

int child1ButtonState = 0; // Liest den Status der Schaltfläche (ein/aus)

int child1Strike = 0; // Wie viele Schläge das Kind hat

// Die Setup-Funktion wird einmal ausgeführt, wenn Sie Reset drücken oder das Board einschalten

Void setup () { Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); aufrechtzuerhalten. // die Schleifenfunktion läuft immer und immer wieder Void loop () { // den Zustand der Schaltfläche lesen (ein oder aus) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Taste wird gedrückt { Serial.println ("HIGH"); Verzögerung (5000); }

if(child1ButtonState == NIEDRIG)

{Serial.println ("LOW"); Verzögerung (5000); } }

Schritt 2: Code zum Registrieren von Tastendrücken ändern

Code zum Registrieren von Tastendrücken ändern
Code zum Registrieren von Tastendrücken ändern
Code zum Registrieren von Tastendrücken ändern
Code zum Registrieren von Tastendrücken ändern

Ändern Sie den Code, um einen Tastendruck zu registrieren:

int child1ButtonPin = 13; // Dies ist der Pin, mit dem unser Taster verbunden istint child1ButtonState = 0; // Liest den Zustand des Buttons (ein/aus) int child1PreviousState = 0; // Vorheriger Schaltflächenzustand int child1Strike = 0;

// Die Setup-Funktion wird einmal ausgeführt, wenn Sie Reset drücken oder das Board einschalten

Void setup () { Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); aufrechtzuerhalten. // die Schleifenfunktion läuft immer und immer wieder Void loop () { // den Zustand der Schaltfläche lesen (ein oder aus) child1ButtonState = digitalRead (child1ButtonPin); if(child1ButtonState != child1PreviousState) { if(child1ButtonState == HIGH) // Button wird gedrückt { child1Strike ++; Serial.println (child1Strike); Verzögerung (1000); } }

}

Als nächstes Ändern Sie den Code so, dass das Kind 3 Streiks erhält, nach denen es eine Nachricht erhält, dass es geerdet ist:

int child1ButtonPin = 13; // Dies ist der Pin, mit dem unser Taster verbunden istint child1ButtonState = 0; // Liest den Zustand des Buttons (ein/aus) int child1PreviousState = 0; int child1Strike = 0;

// Die Setup-Funktion wird einmal ausgeführt, wenn Sie Reset drücken oder das Board einschalten

Void setup () { Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); aufrechtzuerhalten. // die Schleifenfunktion läuft immer und immer wieder Void loop () { // den Zustand der Schaltfläche lesen (ein oder aus) child1ButtonState = digitalRead (child1ButtonPin); if(child1ButtonState != child1PreviousState) { if(child1ButtonState == HIGH) // Schaltfläche wird gedrückt { child1Strike ++; Serial.println (child1Strike);

if(Kind1Streik >=3)

{Serial.println ("Kind 1 ist geerdet!"); } Verzögerung (3000); } }

}

Der Serial Moniter sollte wie im Bild oben aussehen.

Hinweis: Stellen Sie sicher, dass Sie mit der Verzögerung einverstanden sind. Zu wenig Verzögerung und es wird 1 Tastendruck als mehr als eins registrieren!

Schritt 3: Fügen Sie so viele Schaltflächen hinzu, wie Sie Kinder haben

Fügen Sie so viele Schaltflächen hinzu, wie Sie Kinder haben
Fügen Sie so viele Schaltflächen hinzu, wie Sie Kinder haben
Fügen Sie so viele Schaltflächen hinzu, wie Sie Kinder haben
Fügen Sie so viele Schaltflächen hinzu, wie Sie Kinder haben

In diesem Schritt kopieren wir einfach die letzten paar Schritte. Fügen Sie so viele Schaltflächen hinzu wie Kinder. In meinem Fall füge ich vier hinzu. Stellen Sie sicher, dass Sie in Ihrem Code den digitalen Pin ändern, mit dem die Taste verbunden ist. In meinem Fall habe ich die Pins 12 bis 10 verwendet, um meine Schaltflächen hinzuzufügen. Falls Sie daran erinnert werden müssen, ist hier Schritt 1:

  1. Verbinden Sie die 5V auf der Stromseite mit der positiven Reihe auf dem Steckbrett
  2. Verbinden Sie den GND mit der negativen Seite des Steckbretts

  3. Stecken Sie den Druckknopf auf das Steckbrett. Verbinden Sie die Stromversorgung der positiven Reihe mit dem linken unteren Teil des Druckknopfes
  4. Erden Sie den Knopf, indem Sie einen Widerstand am unteren rechten Teil des Druckknopfes an der negativen Reihe des Steckbretts verwenden.

  5. Verbinden Sie (Ihre Pin-Nummer) auf der digitalen Seite des Arduino mit der oberen rechten Seite der Taste.

Sie müssen auch den Code ändern, um alle Ihre Schaltflächen zu verarbeiten. Bitte denken Sie daran, wenn Sie auf die verwendeten Saiten achten müssen. Sie können nicht zusammen Kleinbuchstaben hinzufügen. Am besten deklarieren Sie 1 als String-Objekt.

int child1ButtonPin = 13; // Dies ist der Pin, mit dem unser Taster verbunden ist int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Liest den Zustand der Schaltfläche (ein/aus) 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;

// Die Setup-Funktion wird einmal ausgeführt, wenn Sie Reset drücken oder das Board einschalten

Void setup () { Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); aufrechtzuerhalten. // die Schleifenfunktion läuft immer und immer wieder Void loop () { // den Zustand der Schaltfläche lesen (ein oder aus) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if(child1ButtonState != child1PreviousState)

{ if(child1ButtonState == HIGH) // Taste wird gedrückt { child1Strike ++; Serial.println (String("Kind 1 hat:") + child1Strike + "Strikes");

if(kind1Strike >=3)

{Serial.println ("Kind 1 ist geerdet!"); } Verzögerung (3000); } } if(child2ButtonState != child2PreviousState) { if(child2ButtonState == HIGH) // Taste wird gedrückt { child2Strike ++; Serial.println (String("Child 2 has:") + child2Strike + "Strikes");

if(kind2Strike >=3)

{Serial.println ("Kind 2 ist geerdet!"); } Verzögerung (3000); } }

if(child3ButtonState != child3PreviousState)

{ if(child3ButtonState == HIGH) // Taste wird gedrückt { child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "Strikes");

if(kind3Strike >=3)

{Serial.println ("Kind 3 ist geerdet!"); } Verzögerung (3000); } }

if(child4ButtonState != child4PreviousState)

{ if(child4ButtonState == HIGH) // Taste wird gedrückt { child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "Strikes");

if(kind4Strike >=3)

{Serial.println ("Kind 4 ist geerdet!"); } Verzögerung (3000); } } }

Schritt 4: Fügen Sie einen Summer hinzu

Einen Summer hinzufügen
Einen Summer hinzufügen
Einen Summer hinzufügen
Einen Summer hinzufügen

Lassen Sie uns jetzt sicherstellen, dass Ihre Kinder wissen, dass sie geerdet sind. Lassen Sie uns einen Summer hinzufügen. Befolgen Sie diese einfachen Schritte, um den Summer anzuschließen.

  1. Fügen Sie Ihrem Steckbrett einen Summer hinzu, planen Sie Platz ein, da ein LCD-Bildschirm auftaucht.
  2. Verbinden Sie die postive Seite (der Summer sollte ein + auf der positiven Seite haben) mit dem Pin Ihrer Wahl. Ich habe 9.
  3. Verbinden Sie die andere Seite mit der geerdeten Schiene Ihres Steckbretts.

Ändern Sie als Nächstes Ihren Code, um den Summer auszuschalten, wenn ein Kind geerdet wird. Es gibt ein paar verschiedene Möglichkeiten, Ihren Summer zu codieren, aber ich mag Ton (BuzzerName, Hertz, Dauer) wegen seiner Einfachheit. Ein Beispiel dafür wäre Ton (Buzzer, 4000, 300).

int child1ButtonPin = 13; // Dies ist der Pin, mit dem unser Taster verbunden istint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Liest den Zustand der Schaltfläche (ein/aus) 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 Summer = 2;

// Die Setup-Funktion wird einmal ausgeführt, wenn Sie Reset drücken oder das Board einschalten

Void setup () { Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (Summer, AUSGANG); aufrechtzuerhalten. // die Schleifenfunktion läuft immer und immer wieder Void loop () { // den Zustand der Schaltfläche lesen (ein oder aus) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if(child1ButtonState != child1PreviousState)

{ if(child1ButtonState == HIGH) // Taste wird gedrückt { child1Strike ++; Serial.println (String ("Child 1 Hat:") + child1Strike + "Strikes");

if(Kind1Streik >=3)

{Serial.println ("Kind 1 ist geerdet!"); Ton (Summer, 5000, 500); // Sendet 5 Millisekunden lang einen 5-Hertz-Sound

}

Verzögerung (3000); } } if(child2ButtonState != child2PreviousState) { if(child2ButtonState == HIGH) // Taste wird gedrückt { child2Strike ++; Serial.println (String("Child 2 has:") + child2Strike + "Strikes");

if(kind2Strike >=3)

{Serial.println ("Kind 2 ist geerdet!"); Ton (Summer, 5000, 500); } Verzögerung (3000); } }

if(child3ButtonState != child3PreviousState)

{ if(child3ButtonState == HIGH) // Taste wird gedrückt { child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "Strikes");

if(kind3Strike >=3)

{Serial.println ("Kind 3 ist geerdet!"); Ton (Summer, 5000, 500); } Verzögerung (3000); } }

if(child4ButtonState != child4PreviousState)

{ if(child4ButtonState == HIGH) // Taste wird gedrückt { child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "Strikes");

if(kind4Strike >=3)

{Serial.println ("Kind 4 ist geerdet!"); Ton (Summer, 5000, 500); } Verzögerung (3000); } } }

Schritt 5: Fügen Sie einen LCD-Bildschirm hinzu

Image
Image
Fügen Sie einen LCD-Bildschirm hinzu
Fügen Sie einen LCD-Bildschirm hinzu

Jetzt lässt einen LCD-Bildschirm für klares und einfaches Lesen.

  1. Fügen Sie zuerst ein Potentiometer zu Ihrem Steckbrett hinzu, um den LCD-Bildschirm zu steuern. Achten Sie darauf, wo Sie es ablegen, da Ihnen wahrscheinlich jetzt der Platz ausgeht.
  2. Verwenden Sie die Vorderseite links, um Ihr Potentiometer an die Stromschiene anzuschließen
  3. Verwenden Sie die Vorderseite rechts, um Ihr Potentiometer zu erden.
  4. Die Rückseite wird mit dem LCD-Bildschirm verbunden.
  5. Fügen Sie den LCD-Bildschirm zu Ihrem Steckbrett hinzu
  6. Erden Sie den ersten Schirmstift an der Erdungsschiene
  7. Verdrahten Sie den zweiten Pin mit der Stromschiene.
  8. Der dritte LCD-Pin geht an Pin 8 auf dem Arduino
  9. Der vierte LCD-Pin geht an Pin 7 des Arduino
  10. Fünfter geht an Pin 6 auf dem Arduino
  11. Der sechste Pin geht auf Pin 5 auf dem Arduino
  12. Pins 7 bis 10 auf dem LCD-Bildschirm sind leer
  13. Pin 11 geht auf Pin 5 auf dem Arduino
  14. Pin 12 geht auf die geerdete Schiene
  15. Pin 13 geht auf Pin 4 auf dem Arduino
  16. Pin 14 geht auf die Rückseite des Potentiometers
  17. Pin 15 geht an die Stromschiene
  18. Pin 16 geht an die Masseschiene.

Jetzt müssen Sie Ihren Code aktualisieren, um den LCD-Bildschirm zu verwenden. Dazu verwenden Sie die Bibliothek Liquid Crystal. Achten Sie auf Ihre LCD-Print-Anweisungen. Denken Sie daran, den Bildschirm zu löschen, wenn Sie eine neue Nachricht benötigen. Denken Sie auch daran, den Cursor zu setzen, wenn Sie zwei Zeilen verwenden möchten.

#enthalten

Flüssigkristall-LCD (3, 4, 5, 6, 7, 8); // Setzt den LCD-Bildschirm

int child1ButtonPin = 13; // Dies ist der Pin, mit dem unser Taster verbunden ist int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Liest den Zustand der Schaltfläche (ein/aus) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Der vorherige Zustand der gedrückten Schaltfläche int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; //Wie viele Strikes ein Kind hat int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int Summer = 9; // der Summer

// Die Setup-Funktion wird einmal ausgeführt, wenn Sie Reset drücken oder das Board einschalten

Void setup () { Serial.begin (9600); lcd.begin(16, 2); lcd.print("Das Kind"); lcd.setCursor(0, 1); lcd.print("Verhaltensmodifikator"); pinMode (kind1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (Summer, AUSGANG); } // die Schleifenfunktion läuft immer und immer wieder void loop () { lcd.setCursor (0, 0); // den Zustand der Schaltfläche lesen (ein oder aus) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if(child1ButtonState != child1PreviousState)

{ if (child1ButtonState == HIGH) // Taste wird gedrückt { lcd.clear (); Kind1Streik ++; Serial.println (String ("Child 1 Hat:") + child1Strike + "Strikes"); lcd.print("Kind 1 hat:"); lcd.setCursor(0, 1); lcd.print (kind1Strike); lcd.print("Streiks!");

if(Kind1Streik >=3)

{Serial.println ("Kind 1 ist geerdet!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Kind 1 ist"); lcd.setCursor(0, 1); lcd.print("Geerdet!");

Ton (Summer, 5000, 500); // Sendet 5 Millisekunden lang einen 5-Hertz-Sound

}

Verzögerung (3000); } } if(child2ButtonState!= child2PreviousState) {lcd.clear(); if(child2ButtonState == HIGH) // Taste wird gedrückt { child2Strike ++; Serial.println (String("Child 2 has:") + child2Strike + "Strikes"); lcd.print("Kind 2 hat:"); lcd.setCursor(0, 1); lcd.print (Kind2Strike); lcd.print("Streiks!"); if (child2Strike >=3) {Serial.println("Kind 2 ist geerdet!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Kind 2 ist"); lcd.setCursor(0, 1); lcd.print("Geerdet!"); Ton (Summer, 5000, 500); } Verzögerung (3000); } }

if(child3ButtonState != child3PreviousState)

{ lcd.clear(); if(child3ButtonState == HIGH) // Button wird gedrückt { child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "Strikes"); lcd.print("Kind 3 hat:"); lcd.setCursor(0, 1); lcd.print (kind3Strike); lcd.print("Streiks!"); if (child3Strike >=3) {Serial.println ("Child 3 Is Grounded!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Kind 3 ist"); lcd.setCursor(0, 1); lcd.print("Geerdet!"); Ton (Summer, 5000, 500); } Verzögerung (3000); } }

if(child4ButtonState != child4PreviousState)

{ lcd.clear(); if(child4ButtonState == HIGH) // Button wird gedrückt { child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "Strikes"); lcd.print("Kind 4 hat:"); lcd.setCursor(0, 1); lcd.print (Kind4Strike); lcd.print("Streiks!");

if(kind4Strike >=3)

{Serial.println ("Kind 4 ist geerdet!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Kind 4 ist"); lcd.setCursor(0, 1); lcd.print("Geerdet!"); Ton (Summer, 5000, 500); } Verzögerung (3000); } } } Und das ist alles, was Sie brauchen, um Ihren eigenen Child-Verhaltensmodifikator zu erstellen

Empfohlen: