Inhaltsverzeichnis:
- Schritt 1: Einfach starten: Schaltfläche hinzufügen
- Schritt 2: Code zum Registrieren von Tastendrücken ändern
- Schritt 3: Fügen Sie so viele Schaltflächen hinzu, wie Sie Kinder haben
- Schritt 4: Fügen Sie einen Summer hinzu
- Schritt 5: Fügen Sie einen LCD-Bildschirm hinzu
Video: Verhaltensmodifizierer für Kinder - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-02-01 14:39
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
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.
- Verbinden Sie die 5V auf der Stromseite mit der positiven Reihe auf dem Steckbrett
-
Verbinden Sie den GND mit der negativen Seite des Steckbretts
- Stecken Sie den Druckknopf auf das Steckbrett
-
Verbinden Sie die Stromversorgung der positiven Reihe mit dem linken unteren Teil des Druckknopfes
- Erden Sie den Knopf, indem Sie einen Widerstand am unteren rechten Teil des Druckknopfes an der negativen Reihe des Steckbretts verwenden.
-
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
Ä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
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:
- Verbinden Sie die 5V auf der Stromseite mit der positiven Reihe auf dem Steckbrett
-
Verbinden Sie den GND mit der negativen Seite des Steckbretts
- Stecken Sie den Druckknopf auf das Steckbrett. Verbinden Sie die Stromversorgung der positiven Reihe mit dem linken unteren Teil des Druckknopfes
-
Erden Sie den Knopf, indem Sie einen Widerstand am unteren rechten Teil des Druckknopfes an der negativen Reihe des Steckbretts verwenden.
- 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
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.
- Fügen Sie Ihrem Steckbrett einen Summer hinzu, planen Sie Platz ein, da ein LCD-Bildschirm auftaucht.
- Verbinden Sie die postive Seite (der Summer sollte ein + auf der positiven Seite haben) mit dem Pin Ihrer Wahl. Ich habe 9.
- 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
Jetzt lässt einen LCD-Bildschirm für klares und einfaches Lesen.
- 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.
- Verwenden Sie die Vorderseite links, um Ihr Potentiometer an die Stromschiene anzuschließen
- Verwenden Sie die Vorderseite rechts, um Ihr Potentiometer zu erden.
- Die Rückseite wird mit dem LCD-Bildschirm verbunden.
- Fügen Sie den LCD-Bildschirm zu Ihrem Steckbrett hinzu
- Erden Sie den ersten Schirmstift an der Erdungsschiene
- Verdrahten Sie den zweiten Pin mit der Stromschiene.
- Der dritte LCD-Pin geht an Pin 8 auf dem Arduino
- Der vierte LCD-Pin geht an Pin 7 des Arduino
- Fünfter geht an Pin 6 auf dem Arduino
- Der sechste Pin geht auf Pin 5 auf dem Arduino
- Pins 7 bis 10 auf dem LCD-Bildschirm sind leer
- Pin 11 geht auf Pin 5 auf dem Arduino
- Pin 12 geht auf die geerdete Schiene
- Pin 13 geht auf Pin 4 auf dem Arduino
- Pin 14 geht auf die Rückseite des Potentiometers
- Pin 15 geht an die Stromschiene
- 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:
Arduino Auto-Rückfahrwarnsystem - Schritt für Schritt: 4 Schritte
Arduino Auto-Rückfahrwarnsystem | Schritt für Schritt: In diesem Projekt entwerfe ich eine einfache Arduino-Auto-Rückwärts-Parksensorschaltung mit Arduino UNO und dem Ultraschallsensor HC-SR04. Dieses Arduino-basierte Car-Reverse-Warnsystem kann für eine autonome Navigation, Roboter-Ranging und andere Entfernungsr
So deaktivieren Sie die Autokorrektur für nur ein Wort (iOS): 3 Schritte
So deaktivieren Sie die Autokorrektur für nur ein Wort (iOS): Manchmal korrigiert die Autokorrektur möglicherweise etwas, das Sie nicht korrigieren möchten, z. Textabkürzungen beginnen sich in Großbuchstaben zu setzen (imo korrigieren zum Beispiel zu IMO). So erzwingen Sie, dass die Korrektur eines Wortes oder einer Phrase beendet wird, ohne aut zu deaktivieren
Interessante Programmieranleitung für Designer - Bringen Sie Ihr Bild zum Laufen (Teil 2): 8 Schritte
Interessante Programmieranleitung für Designer – Bringen Sie Ihr Bild zum Laufen (Teil 2): Mathematik scheint für die meisten von Ihnen nutzlos zu sein. Die in unserem täglichen Leben am häufigsten verwendete ist einfach Addieren, Subtrahieren, Multiplizieren und Dividieren. Es ist jedoch ganz anders, wenn Sie mit Programm erstellen können. Je mehr Sie wissen, desto mehr wundervolle Ergebnisse werden Sie erhalten
Verhindern Sie, dass Ihre Kinder während des Studiums spielen – wikiHow
Verhindern Sie, dass Ihre Kinder während des Studiums spielen: Das Spielen von Videospielen ist ein großes Problem, das Studenten haben, während sie studieren sollten. Viele Schüler leiden darunter, Spiele zu spielen, anstatt zu lernen, was ihnen schlechte Noten einbringt. Eltern sind wütend und sorgen sich um ihr Kind, also haben sie beschlossen
Interaktives Spielzeug für Kinder. (Lichter und Ton): 6 Schritte
Interaktives Spielzeug für Kinder. (Lichter und Ton): Dies ist eine Schaltung, die ich bei kleinen Kindern (1-3) verwende, sie verwendet LEDs und einen Summer. Wenn das Kind einen Knopf drückt, passiert etwas. Sehen Sie sich das Video an, um mehr zu sehen. (Drehen Sie den Ton auf, um den Summer zu hören, es ist ganz im Video)