Innehållsförteckning:
- Steg 1: Börja enkelt: Lägg till en knapp
- Steg 2: Ändra kod för att registrera knapptryckningar
- Steg 3: Lägg till så många knappar som du har barn
- Steg 4: Lägg till en summer
- Steg 5: Lägg till en LCD -skärm
Video: Child Behavior Modifier: 5 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-02-01 14:42
Child Behavior Modifier registrerar hur många gånger ditt barn har hamnat i problem (aka Strikes) och när de når tre, går en summer och en LCD -skärm meddelar att de är jordade.
Steg 1: Börja enkelt: Lägg till en knapp
Det första steget i detta projekt är enkelt. Lägg till 1 knapp. I det här steget behöver du, 4 till man -ledningar, 1 220 Resisitor och en tryckknapp.
- Anslut 5V på Power -sidan till den positiva raden på panelen
-
Anslut GND till den negativa sidan av brödbrädan
- Sätt in tryckknappen på brödbrädan
-
Anslut strömmen på den positiva raden till vänster nedre del av tryckknappen
- Jorda knappen med ett motstånd i nedre högra delen av tryckknappen till den negativa raden på brödbrädet.
- Anslut #13 på den digitala sidan av Arduino till den övre högra sidan av knappen.
Verifiera med din kod att knappen registrerar:
int child1ButtonPin = 13; // Det här är stiftet som vår tryckknapp är ansluten till
int child1ButtonState = 0; // Läser knappens tillstånd (på/av)
int child1Strike = 0; // Hur många strejker barnet har
// installationsfunktionen körs en gång när du trycker på reset eller driver kortet
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // loop -funktionen körs om och om igen för alltid void loop () {// läs knappens tillstånd (på eller av) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Knappen trycks in {Serial.println ("HIGH"); fördröjning (5000); }
if (child1ButtonState == LOW)
{Serial.println ("LÅG"); fördröjning (5000); }}
Steg 2: Ändra kod för att registrera knapptryckningar
Ändra koden för att registrera ett knapptryck:
int child1ButtonPin = 13; // Detta är stiftet som vår tryckknapp är ansluten till barn 1ButtonState = 0; // Läser knappens tillstånd (på/av) int child1PreviousState = 0; // Föregående knapptillstånd int child1Strike = 0;
// installationsfunktionen körs en gång när du trycker på reset eller driver kortet
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // loop -funktionen körs om och om igen för alltid void loop () {// läs knappens tillstånd (på eller av) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // knappen trycks ned {child1Strike ++; Serial.println (child1Strike); fördröjning (1000); }}
}
Ändra sedan koden så att barnet får tre varningar, varefter de får ett meddelande om att de är jordade:
int child1ButtonPin = 13; // Detta är stiftet som vår tryckknapp är ansluten till barn 1ButtonState = 0; // Läser knappens tillstånd (på/av) int child1PreviousState = 0; int child1Strike = 0;
// installationsfunktionen körs en gång när du trycker på reset eller driver kortet
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // loop -funktionen körs om och om igen för alltid void loop () {// läs knappens tillstånd (på eller av) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // knappen trycks ned {child1Strike ++; Serial.println (child1Strike);
if (child1Strike> = 3)
{Serial.println ("Barn 1 är jordat!"); } fördröjning (3000); }}
}
Seriemonitorn ska se ut som bilden ovan.
Obs: Se till att du är bekväm med fördröjningen. För lite fördröjning och det kommer att registrera en knapptryckning som mer än en!
Steg 3: Lägg till så många knappar som du har barn
I det här steget kopierar vi helt enkelt de sista stegen. Lägg till så många knappar som du gör barn. I mitt fall lägger jag till fyra. Var noga med att ändra din kod den digitala stift som knappen är ansluten till. I mitt fall använde jag stift 12 till 10 för att lägga till mina knappar. Om du behöver påminna här är steg 1:
- Anslut 5V på Power -sidan till den positiva raden på panelen
-
Anslut GND till den negativa sidan av brödbrädan
- Sätt i tryckknappen på brödbrädet Anslut strömmen på den positiva raden till vänster nedre del av tryckknappen
-
Jorda knappen med ett motstånd i nedre högra delen av tryckknappen till den negativa raden på brödbrädet.
- Anslut (ditt pin -nummer) på den digitala sidan av Arduino till den övre högra sidan av knappen.
Du måste också ändra koden för att hantera alla dina knappar. Kom ihåg att om du behöver vara försiktig med strängarna du använde. Du kan inte lägga till små bokstäver tillsammans. Det är bäst att deklarera 1 som ett strängobjekt.
int child1ButtonPin = 13; // Detta är stiftet som vår tryckknapp är ansluten till barn 2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Läser knappens tillstånd (på/av) 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;
// installationsfunktionen körs en gång när du trycker på reset eller driver kortet
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // loop -funktionen körs om och om igen för alltid void loop () {// läs knappens tillstånd (på eller av) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Knappen trycks ned {child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strike");
if (child1Strike> = 3)
{Serial.println ("Barn 1 är jordat!"); } fördröjning (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Knappen trycks ned {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strike");
if (child2Strike> = 3)
{Serial.println ("Barn 2 är jordat!"); } fördröjning (3000); }}
if (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Knappen trycks ned {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strike");
if (child3Strike> = 3)
{Serial.println ("Barn 3 är jordat!"); } fördröjning (3000); }}
if (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Knappen trycks ned {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strike");
if (child4Strike> = 3)
{Serial.println ("Barn 4 är jordat!"); } fördröjning (3000); }}}
Steg 4: Lägg till en summer
Låt oss nu se till att dina barn vet att de är jordade. Låt oss lägga till en summer. Följ dessa enkla steg för att ansluta summern.
- Lägg till en summer till din brödbräda, planera för plats eftersom en LCD -skärm kommer upp.
- Anslut Postive -sidan (summern ska ha ett + på den postiva sidan) till den stift du väljer. Jag gjorde 9.
- Anslut den andra sidan till den jordade skenan på din brödbräda.
Ändra sedan din kod för att stänga av summern när ett barn blir jordat. Det finns ett par olika sätt att koda för din summer men jag gillar ton (buzzerName, hertz, duration) för dess enkelhet Så ett exempel på detta skulle vara ton (summer, 4000, 300).
int child1ButtonPin = 13; // Detta är stiftet som vår tryckknapp är ansluten till barn 2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Läser knappens tillstånd (på/av) 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;
// installationsfunktionen körs en gång när du trycker på reset eller driver kortet
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (summer, OUTPUT); } // loop -funktionen körs om och om igen för alltid void loop () {// läs knappens tillstånd (på eller av) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Knappen trycks ned {child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strike");
if (child1Strike> = 3)
{Serial.println ("Barn 1 är jordat!"); ton (summer, 5000, 500); // Skickar ett 5 hertz -ljud i 5 millisekunder
}
fördröjning (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Knappen trycks ned {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strike");
if (child2Strike> = 3)
{Serial.println ("Barn 2 är jordat!"); ton (summer, 5000, 500); } fördröjning (3000); }}
if (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Knappen trycks ned {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strike");
if (child3Strike> = 3)
{Serial.println ("Barn 3 är jordat!"); ton (summer, 5000, 500); } fördröjning (3000); }}
if (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Knappen trycks ned {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strike");
if (child4Strike> = 3)
{Serial.println ("Barn 4 är jordat!"); ton (summer, 5000, 500); } fördröjning (3000); }}}
Steg 5: Lägg till en LCD -skärm
Låter nu en LCD -skärm för tydlig och enkel läsning.
- Lägg först till en potentiometer på din brödbräda för att styra LCD -skärmen. Var försiktig med var du lägger den eftersom du förmodligen håller på att ta slut.
- Använd vänster framsida för att ansluta din potentiometer till kraftskenan
- Använd framsidan till höger för att jorda din potentiometer.
- Baksidan kommer att anslutas till LCD -skärmen.
- Lägg till LCD -skärmen på din brödbräda
- Jorda den första skärmstiften till jordskenan
- Anslut den andra stiftet till kraftskenan.
- Tredje LCD -pin går till Pin 8 på Arduino
- Fjärde LCD -stift går till Pin 7 på Arduino
- Femte går till Pin 6 på Arduino
- Sixth Pin går till pin 5 på Arduino
- Stift 7 till 10 på LCD -skärmen är tomma
- Pin 11 går till Pin 5 på Arduino
- Stift 12 går till den jordade skenan
- Pin 13 går till Pin 4 på Arduino
- Stift 14 går på baksidan av potentiometern
- Pin 15 går till Power rail
- Pin 16 går till Ground Rail.
Nu måste du uppdatera din kod för att använda LCD -skärmen. För det kommer du att använda libary Liquid Crystal. Var försiktig med dina LCD -utskrifter. Kom ihåg att rensa skärmen när du behöver ett nytt meddelande. Kom också ihåg att ställa in markören när du vill använda två rader.
#omfatta
LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Ställer in LCD -skärmen
int child1ButtonPin = 13; // Detta är stiftet som vår tryckknapp är ansluten till int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Läser knappens tillstånd (på/av) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Det föregående tillståndet för knappen intryckt int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Hur många slag ett barn har int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int summer = 9; // summern
// installationsfunktionen körs en gång när du trycker på reset eller driver kortet
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Barnet"); lcd.setCursor (0, 1); lcd.print ("Behavior Modifer"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (summer, OUTPUT); } // loop -funktionen körs om och om igen för alltid void loop () {lcd.setCursor (0, 0); // läs knappens tillstånd (på eller av) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Knappen trycks ned {lcd.clear (); child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strike"); lcd.print ("Barn 1 har:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("Strikes!");
if (child1Strike> = 3)
{Serial.println ("Barn 1 är jordat!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Barn 1 är"); lcd.setCursor (0, 1); lcd.print ("Grounded!");
ton (summer, 5000, 500); // Skickar ett 5 hertz -ljud i 5 millisekunder
}
fördröjning (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Knappen trycks ned {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strike"); lcd.print ("Barn 2 har:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Strikes!"); if (child2Strike> = 3) {Serial.println ("Barn 2 är jordat!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Barn 2 är"); lcd.setCursor (0, 1); lcd.print ("Grounded!"); ton (summer, 5000, 500); } fördröjning (3000); }}
if (child3ButtonState! = child3PreviousState)
{lcd.clear (); if (child3ButtonState == HIGH) // Knappen trycks ned {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strike"); lcd.print ("Barn 3 har:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Strikes!"); if (child3Strike> = 3) {Serial.println ("Barn 3 är jordat!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Barn 3 är"); lcd.setCursor (0, 1); lcd.print ("Grounded!"); ton (summer, 5000, 500); } fördröjning (3000); }}
if (child4ButtonState! = child4PreviousState)
{lcd.clear (); if (child4ButtonState == HIGH) // Knappen trycks ned {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strike"); lcd.print ("Barn 4 har:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Strikes!");
if (child4Strike> = 3)
{Serial.println ("Barn 4 är jordat!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Barn 4 är"); lcd.setCursor (0, 1); lcd.print ("Grounded!"); ton (summer, 5000, 500); } fördröjning (3000); }}} Och det är det, det är allt du behöver för att bygga din egen Child Behavior Modifier
Rekommenderad:
No Pee Now, Pet Behavior Adjustment Device som stoppar katterna att kissa runt i ditt hem: 4 steg
No Pee Now, Pet Behavior Adjustment Device som stoppar katterna att kissa runt i ditt hem: Jag blev så störd av min kattunge att hon gillar att kissa på min säng, jag kollade allt hon behöver och jag tog henne också till veterinären. Efter att jag felsökte allt jag kan tänka mig och lyssna på läkarens ord inser jag att hon bara har ett dåligt beteende. Så th
Automatiserad Mandalorian the Child: 10 Steg (med bilder)
Automatiserad Mandalorian the Child: Du har köpt den här nya leksaken (för någon förutom dig själv) och du skulle vilja sätta den på " aktiv " displayen utan att skada enheten. Tyvärr fungerar den bara när du knackar på huvudet. Om du tejper en bit metallfolie på toppen av
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen
Guitar Amplifier Directivity Modifier: 5 steg
Guitar Amplifier Directivity Modifier: Bakgrund: Denna instruerbara är en direkt implementering av " Mitchell Donut " gitarrhögtalarriktningsmodifierare föreslagen av Jay Mitchell från The Gear Page diskussionsforum. Den mest relevanta diskussionen finns i talaren