Spisu treści:

Modyfikator zachowania dziecka: 5 kroków (ze zdjęciami)
Modyfikator zachowania dziecka: 5 kroków (ze zdjęciami)

Wideo: Modyfikator zachowania dziecka: 5 kroków (ze zdjęciami)

Wideo: Modyfikator zachowania dziecka: 5 kroków (ze zdjęciami)
Wideo: 7 błędów w wychowaniu dziecka, które zrujnują mu życie 2024, Listopad
Anonim
Modyfikator zachowania dziecka
Modyfikator zachowania dziecka

Modyfikator zachowania dziecka rejestruje, ile razy Twoje dziecko wpadło w kłopoty (aka Strikes), a kiedy osiągną trzy, włącza się brzęczyk, a ekran LCD informuje, że jest uziemione.

Krok 1: Zacznij prosto: Dodaj przycisk

Zacznij od prostego: Dodaj przycisk
Zacznij od prostego: Dodaj przycisk

Pierwszy krok w tym projekcie jest prosty. Dodaj 1 przycisk. Na tym etapie potrzebujesz 4 przewodów z męskiego na męskie, 1220 rezystora i przycisku.

  1. Podłącz 5 V po stronie zasilania do dodatniego rzędu na płytce stykowej
  2. Podłącz GND do ujemnej strony płytki stykowej

  3. Włóż przycisk na płytkę stykową
  4. Podłącz zasilanie w rzędzie dodatnim do lewej dolnej części przycisku;

  5. Uziemić przycisk za pomocą rezystora w prawej dolnej części przycisku do ujemnego rzędu płytki stykowej.
  6. Podłącz nr 13 po cyfrowej stronie Arduino do prawej górnej strony przycisku.

Sprawdź kodem, czy przycisk się rejestruje:

int child1ButtonPin = 13;//To jest pin, do którego podłączony jest nasz przycisk

int child1ButtonState = 0;//Odczytuje stan przycisku (on/off)

int child1Strike = 0; // Ile uderzeń ma dziecko

// funkcja konfiguracji uruchamia się raz po naciśnięciu przycisku reset lub włączeniu zasilania płyty

void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // funkcja pętli działa w kółko na zawsze void loop() { //odczytaj stan przycisku (włączony lub wyłączony) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState == HIGH)//Przycisk jest wciśnięty { Serial.println("HIGH"); opóźnienie(5000); }

if(child1ButtonState == LOW)

{ Serial.println("NISKI"); opóźnienie(5000); } }

Krok 2: Zmodyfikuj kod, aby zarejestrować naciśnięcia przycisków

Zmodyfikuj kod, aby zarejestrować naciśnięcia przycisków
Zmodyfikuj kod, aby zarejestrować naciśnięcia przycisków
Zmodyfikuj kod, aby zarejestrować naciśnięcia przycisków
Zmodyfikuj kod, aby zarejestrować naciśnięcia przycisków

Zmodyfikuj Kod, aby zarejestrować przycisk naciśnij:

int child1ButtonPin = 13;//To jest pin, z którym nasz przycisk jest połączony doint child1ButtonState = 0;//Odczytuje stan przycisku (on/off) int child1PreviousState = 0; // Poprzedni stan przycisku int child1Strike = 0;

// funkcja konfiguracji uruchamia się raz po naciśnięciu przycisku reset lub włączeniu zasilania płyty

void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // funkcja pętli działa w kółko na zawsze void loop() { //odczytaj stan przycisku (włączony lub wyłączony) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState != child1PreviousState) { if(child1ButtonState == HIGH)//Przycisk jest wciśnięty { child1Strike ++; Serial.println(child1Strike); opóźnienie (1000); } }

}

Następnie Zmodyfikuj Kodeks, aby dziecko otrzymało 3 strajki, po których otrzymało wiadomość, że jest uziemione:

int child1ButtonPin = 13;//To jest pin, z którym nasz przycisk jest połączony doint child1ButtonState = 0;//Odczytuje stan przycisku (on/off) int child1PreviousState = 0; int child1Strike = 0;

// funkcja konfiguracji uruchamia się raz po naciśnięciu przycisku reset lub włączeniu zasilania płyty

void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // funkcja pętli działa w kółko na zawsze void loop() { //odczytaj stan przycisku (włączony lub wyłączony) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState != child1PreviousState) { if(child1ButtonState == HIGH)//Przycisk jest wciśnięty { child1Strike ++; Serial.println(child1Strike);

if(child1Strike >=3)

{ Serial.println("Dziecko 1 jest uziemione!"); } opóźnienie(3000); } }

}

Serial Monitor powinien wyglądać jak na powyższym obrazku.

Uwaga: upewnij się, że opóźnienie jest wygodne. Zbyt małe opóźnienie i zarejestruje jedno naciśnięcie przycisku jako więcej niż jedno!

Krok 3: Dodaj tyle przycisków, ile masz dzieci

Dodaj tyle przycisków, ile masz dzieci
Dodaj tyle przycisków, ile masz dzieci
Dodaj tyle przycisków, ile masz dzieci
Dodaj tyle przycisków, ile masz dzieci

W tym kroku po prostu kopiujemy kilka ostatnich kroków. Dodaj tyle przycisków, ile dzieci. W moim przypadku dodaję cztery. Pamiętaj, aby zmienić kod cyfrowy pin, do którego podłączony jest przycisk. W moim przypadku użyłem pinów od 12 do 10, aby dodać moje przyciski. Jeśli potrzebujesz przypomnienia tutaj, to Krok 1:

  1. Podłącz 5 V po stronie zasilania do dodatniego rzędu na płytce prototypowej
  2. Podłącz GND do ujemnej strony płytki stykowej

  3. Włóż przycisk na płytkę stykową Podłącz zasilanie w rzędzie dodatnim do lewej dolnej części przycisku
  4. Uziemić przycisk za pomocą rezystora w prawej dolnej części przycisku do ujemnego rzędu płytki stykowej.

  5. Połącz (twój numer pinu) po cyfrowej stronie Arduino z prawym górnym rogu przycisku.

Będziesz także musiał zmodyfikować kod, aby obsługiwał wszystkie twoje przyciski. Pamiętaj, że jeśli musisz uważać na użyte struny. Nie można dodawać razem do małych liter. Najlepiej zadeklarować 1 jako obiekt String.

int child1ButtonPin = 13;//To jest pin, z którym nasz przycisk jest połączony doint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0;//Odczytuje stan przycisku (on/off) 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 dziecko3Strike = 0; int child4Strike = 0;

// funkcja konfiguracji uruchamia się raz po naciśnięciu przycisku reset lub włączeniu zasilania płyty

void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); } // funkcja pętli działa w kółko na zawsze void loop() { //odczytaj stan przycisku (włączony lub wyłączony) child1ButtonState = digitalRead(child1ButtonPin);

child2ButtonState = digitalRead(child2ButtonPin);

child3ButtonState = digitalRead(child3ButtonPin);

child4ButtonState = digitalRead(child4ButtonPin);

if(child1ButtonState != child1PreviousState)

{ if(child1ButtonState == HIGH)//Przycisk jest wciśnięty { child1Strike ++; Serial.println(String("Dziecko 1 ma: ") + child1Strike + " strajki");

if(child1Strike >=3)

{ Serial.println("Dziecko 1 jest uziemione!"); } opóźnienie(3000); } } if(child2ButtonState != child2PreviousState) { if(child2ButtonState == HIGH)//Przycisk jest wciśnięty { child2Strike ++; Serial.println(String("Dziecko 2 ma:") + child2Strike + " strajki");

if(child2Strike >=3)

{ Serial.println("Dziecko 2 jest uziemione!"); } opóźnienie(3000); } }

if(child3ButtonState != child3PreviousState)

{ if(child3ButtonState == HIGH)//Przycisk jest wciśnięty { child3Strike ++; Serial.println(String("Dziecko 3 ma:") + child3Strike + " strajki");

if(child3Strike >=3)

{ Serial.println("Dziecko 3 jest uziemione!"); } opóźnienie(3000); } }

if(child4ButtonState != child4PreviousState)

{ if(child4ButtonState == HIGH)//Przycisk jest wciśnięty { child4Strike ++; Serial.println(String("Dziecko 4 ma:") + child4Strike + " strajki");

if(child4Strike >=3)

{ Serial.println("Dziecko 4 jest uziemione!"); } opóźnienie(3000); } } }

Krok 4: Dodaj brzęczyk

Dodaj brzęczyk
Dodaj brzęczyk
Dodaj brzęczyk
Dodaj brzęczyk

Teraz upewnijmy się, że twoje dzieci wiedzą, że są uziemione. Dodajmy brzęczyk. Aby podłączyć brzęczyk, wykonaj następujące proste czynności.

  1. Dodaj brzęczyk do płytki prototypowej, zaplanuj miejsce, ponieważ zbliża się ekran LCD.
  2. Podłącz stronę dodatnią (brzęczyk powinien mieć + po stronie dodatniej) z wybranym pinem. zrobiłem 9.
  3. Podłącz drugą stronę do uziemionej szyny płytki stykowej.

Następnie zmodyfikuj swój kod, aby wyłączyć brzęczyk, gdy dziecko zostanie uziemione. Istnieje kilka różnych sposobów kodowania twojego brzęczyka, ale lubię ton(nazwa brzęczyka, herc, czas trwania) ze względu na jego prostotę. Przykładem może być ton(buzzer, 4000, 300).

int child1ButtonPin = 13;//To jest pin, z którym nasz przycisk jest połączony doint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0;//Odczytuje stan przycisku (on/off) 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 dziecko3Strike = 0; int child4Strike = 0; const int brzęczyk = 2;

// funkcja konfiguracji uruchamia się raz po naciśnięciu przycisku reset lub włączeniu zasilania płyty

void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); pinMode(brzęczyk, WYJŚCIE); } // funkcja pętli działa w kółko na zawsze void loop() { //odczytaj stan przycisku (włączony lub wyłączony) child1ButtonState = digitalRead(child1ButtonPin);

child2ButtonState = digitalRead(child2ButtonPin);

child3ButtonState = digitalRead(child3ButtonPin);

child4ButtonState = digitalRead(child4ButtonPin);

if(child1ButtonState != child1PreviousState)

{ if(child1ButtonState == HIGH)//Przycisk jest wciśnięty { child1Strike ++; Serial.println(String("Dziecko 1 ma: ") + child1Strike + " strajki");

if(child1Strike >=3)

{ Serial.println("Dziecko 1 jest uziemione!"); ton (brzęczyk, 5000, 500); // Wysyła dźwięk 5 Hz przez 5 milisekund

}

opóźnienie(3000); } } if(child2ButtonState != child2PreviousState) { if(child2ButtonState == HIGH)//Przycisk jest wciśnięty { child2Strike ++; Serial.println(String("Dziecko 2 ma:") + child2Strike + " strajki");

if(child2Strike >=3)

{ Serial.println("Dziecko 2 jest uziemione!"); ton (brzęczyk, 5000, 500); } opóźnienie(3000); } }

if(child3ButtonState != child3PreviousState)

{ if(child3ButtonState == HIGH)//Przycisk jest wciśnięty { child3Strike ++; Serial.println(String("Dziecko 3 ma:") + child3Strike + " strajki");

if(child3Strike >=3)

{ Serial.println("Dziecko 3 jest uziemione!"); ton (brzęczyk, 5000, 500); } opóźnienie(3000); } }

if(child4ButtonState != child4PreviousState)

{ if(child4ButtonState == HIGH)//Przycisk jest wciśnięty { child4Strike ++; Serial.println(String("Dziecko 4 ma:") + child4Strike + " strajki");

if(child4Strike >=3)

{ Serial.println("Dziecko 4 jest uziemione!"); ton (brzęczyk, 5000, 500); } opóźnienie(3000); } } }

Krok 5: Dodaj ekran LCD

Image
Image
Dodaj ekran LCD
Dodaj ekran LCD

Teraz pozwala ekran LCD na wyraźny i łatwy odczyt.

  1. Najpierw dodaj potencjometr do płytki prototypowej, aby sterować ekranem LCD. Uważaj na to, gdzie go kładziesz, ponieważ prawdopodobnie już brakuje Ci miejsca.
  2. Użyj przedniego lewego, aby podłączyć potencjometr do szyny zasilającej
  3. Użyj prawego przodu, aby uziemić potencjometr.
  4. Tył zostanie podłączony do ekranu lcd.
  5. Dodaj ekran LCD do płytki prototypowej
  6. Uziemić pierwszy pin ekranu do szyny uziemiającej
  7. Podłącz drugi pin do szyny zasilającej.
  8. Trzeci pin LCD idzie do pinu 8 w Arduino
  9. Czwarty pin LCD przechodzi do pinu 7 w Arduino
  10. Piąta idzie do Pin 6 na Arduino
  11. Szósty pin idzie do pinu 5 w Arduino
  12. Piny od 7 do 10 na ekranie LCD są puste
  13. Pin 11 idzie do Pin 5 na Arduino
  14. Pin 12 idzie do uziemionej szyny
  15. Pin 13 idzie do Pin 4 na Arduino
  16. Pin 14 idzie z tyłu potencjometru
  17. Pin 15 idzie do szyny zasilania
  18. Pin 16 idzie do szyny uziemiającej.

Teraz będziesz musiał zaktualizować swój kod, aby korzystać z ekranu lcd. Do tego użyjesz biblioteki Liquid Crystal. Uważaj na swoje instrukcje drukowania na lcd. Pamiętaj, aby wyczyścić ekran, gdy potrzebujesz nowej wiadomości. Pamiętaj też o ustawieniu kursora, gdy chcesz użyć dwóch linii.

#włączać

LCD LiquidCrystal (3, 4, 5, 6, 7, 8); //Ustawia ekran LCD

int child1ButtonPin = 13;//To jest pin, z którym jest połączony nasz przycisk int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0;//Odczytuje stan przycisku (on/off) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Poprzedni stan wciśniętego przycisku int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; //Ile uderzeń ma dziecko int child2Strike = 0; int dziecko3Strike = 0; int child4Strike = 0; const int brzęczyk = 9; // brzęczyk

// funkcja konfiguracji uruchamia się raz po naciśnięciu przycisku reset lub włączeniu zasilania płyty

void setup() { Serial.begin(9600); lcd.początek(16, 2); lcd.print("Dziecko"); lcd.setCursor(0, 1); lcd.print("Modyfikator zachowania"); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); pinMode(brzęczyk, WYJŚCIE); } // funkcja pętli działa w kółko w nieskończoność void loop() { lcd.setCursor(0, 0); //odczytaj stan przycisku (włączony lub wyłączony) child1ButtonState = digitalRead(child1ButtonPin);

child2ButtonState = digitalRead(child2ButtonPin);

child3ButtonState = digitalRead(child3ButtonPin);

child4ButtonState = digitalRead(child4ButtonPin);

if(child1ButtonState != child1PreviousState)

{ if(child1ButtonState == HIGH)//Przycisk jest wciśnięty { lcd.clear(); dziecko1Uderzenie ++; Serial.println(String("Dziecko 1 ma: ") + child1Strike + " strajki"); lcd.print("Dziecko 1 ma:"); lcd.setCursor(0, 1); lcd.print(child1Strike); lcd.print("Strajki!");

if(child1Strike >=3)

{ Serial.println("Dziecko 1 jest uziemione!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Dziecko 1 to"); lcd.setCursor(0, 1); lcd.print("Uziemiony!");

ton (brzęczyk, 5000, 500); // Wysyła dźwięk 5 Hz przez 5 milisekund

}

opóźnienie(3000); } } if(child2ButtonState != child2PreviousState) { lcd.clear(); if(child2ButtonState == HIGH)//Przycisk jest wciśnięty { child2Strike ++; Serial.println(String("Dziecko 2 ma:") + child2Strike + " strajki"); lcd.print("Dziecko 2 ma:"); lcd.setCursor(0, 1); lcd.print(child2Strike); lcd.print("Strajki!"); if(child2Strike >=3) { Serial.println("Dziecko 2 jest uziemione!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Dziecko 2 to"); lcd.setCursor(0, 1); lcd.print("Uziemiony!"); ton (brzęczyk, 5000, 500); } opóźnienie(3000); } }

if(child3ButtonState != child3PreviousState)

{ lcd.wyczyść(); if(child3ButtonState == HIGH)//Przycisk jest wciśnięty { child3Strike ++; Serial.println(String("Dziecko 3 ma:") + child3Strike + " strajki"); lcd.print("Dziecko 3 ma:"); lcd.setCursor(0, 1); lcd.print(child3Strike); lcd.print("Strajki!"); if(child3Strike >=3) { Serial.println("Dziecko 3 jest uziemione!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Dziecko 3 to"); lcd.setCursor(0, 1); lcd.print("Uziemiony!"); ton (brzęczyk, 5000, 500); } opóźnienie(3000); } }

if(child4ButtonState != child4PreviousState)

{ lcd.wyczyść(); if(child4ButtonState == HIGH)//Przycisk jest wciśnięty { child4Strike ++; Serial.println(String("Dziecko 4 ma:") + child4Strike + " strajki"); lcd.print("Dziecko 4 ma:"); lcd.setCursor(0, 1); lcd.print(child4Strike); lcd.print("Strajki!");

if(child4Strike >=3)

{ Serial.println("Dziecko 4 jest uziemione!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Dziecko 4 to"); lcd.setCursor(0, 1); lcd.print("Uziemiony!"); ton (brzęczyk, 5000, 500); } opóźnienie(3000); } } } I to wszystko, czego potrzebujesz, aby zbudować własny modyfikator zachowania dziecka

Zalecana: