Sommario:

Modificatore del comportamento del bambino: 5 passaggi (con immagini)
Modificatore del comportamento del bambino: 5 passaggi (con immagini)

Video: Modificatore del comportamento del bambino: 5 passaggi (con immagini)

Video: Modificatore del comportamento del bambino: 5 passaggi (con immagini)
Video: Maranza cerca di prendermi la moto 2024, Dicembre
Anonim
Modificatore del comportamento del bambino
Modificatore del comportamento del bambino

Il Child Behavior Modifier registra quante volte tuo figlio si è messo nei guai (noto anche come Strikes) e quando raggiungono i tre, un cicalino si attiva e uno schermo lcd annuncia che sono collegati a terra.

Passaggio 1: inizia in modo semplice: aggiungi un pulsante

Inizia semplice: aggiungi un pulsante
Inizia semplice: aggiungi un pulsante

Il primo passo in questo progetto è semplice. Aggiungi 1 pulsante. In questo passaggio sono necessari 4 fili maschio-maschio, 1 220 resistore e un pulsante.

  1. Collegare il 5V sul lato alimentazione alla riga positiva sulla breadboard
  2. Collega il GND al lato negativo della breadboard

  3. Inserire il pulsante sulla breadboard
  4. Collegare l'alimentazione sulla fila postive alla parte inferiore sinistra del pulsante

  5. Mettere a terra il pulsante utilizzando un resistore nella parte in basso a destra del pulsante sulla riga negativa della breadboard.
  6. Collega il numero 13 sul lato digitale di Arduino in alto a destra del pulsante.

Verifica con il tuo codice che il pulsante si stia registrando:

int child1ButtonPin = 13;//Questo è il pin a cui è connesso il nostro pulsante

int child1ButtonState = 0;//Legge lo stato del pulsante (on/off)

int child1Strike = 0; // Quanti colpi ha il bambino

// la funzione di configurazione viene eseguita una volta quando si preme reset o si alimenta la scheda

void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // la funzione loop viene eseguita più e più volte per sempre void loop() { //legge lo stato del pulsante (on o off) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState == HIGH) // Pulsante premuto { Serial.println("HIGH"); ritardo (5000); }

if(child1ButtonState == LOW)

{ Serial.println("BASSO"); ritardo (5000); } }

Passaggio 2: modifica il codice per registrare le pressioni dei pulsanti

Modifica il codice per registrare le pressioni dei pulsanti
Modifica il codice per registrare le pressioni dei pulsanti
Modifica il codice per registrare le pressioni dei pulsanti
Modifica il codice per registrare le pressioni dei pulsanti

Modifica il codice per registrare una pressione di un pulsante:

int child1ButtonPin = 13;//Questo è il pin a cui è connesso il nostro pulsante int child1ButtonState = 0;//Legge lo stato del pulsante (on/off) int child1PreviousState = 0; // Stato del pulsante precedente int child1Strike = 0;

// la funzione di configurazione viene eseguita una volta quando si preme reset o si alimenta la scheda

void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // la funzione loop viene eseguita più e più volte per sempre void loop() { //legge lo stato del pulsante (on o off) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState != child1PreviousState) { if(child1ButtonState == HIGH) // Pulsante premuto { child1Strike ++; Serial.println(child1Strike); ritardo(1000); } }

}

Quindi modifica il codice in modo che il bambino riceva 3 colpi dopo i quali riceverà un messaggio che è a terra:

int child1ButtonPin = 13;//Questo è il pin a cui è connesso il nostro pulsante int child1ButtonState = 0;//Legge lo stato del pulsante (on/off) int child1PreviousState = 0; int child1Strike = 0;

// la funzione di configurazione viene eseguita una volta quando si preme reset o si alimenta la scheda

void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); } // la funzione loop viene eseguita più e più volte per sempre void loop() { //legge lo stato del pulsante (on o off) child1ButtonState = digitalRead(child1ButtonPin); if(child1ButtonState != child1PreviousState) { if(child1ButtonState == HIGH) // Pulsante premuto { child1Strike ++; Serial.println(child1Strike);

if(child1Strike >=3)

{ Serial.println("Child 1 is grounded!"); } ritardo(3000); } }

}

Il monitor seriale dovrebbe assomigliare all'immagine sopra.

Nota: assicurati di essere a tuo agio con il ritardo. Basta un po' di ritardo e registrerà 1 pulsante premuto come più di uno!

Passaggio 3: aggiungi tanti pulsanti quanti sono i bambini

Aggiungi tanti pulsanti quanti sono i bambini
Aggiungi tanti pulsanti quanti sono i bambini
Aggiungi tanti pulsanti quanti sono i bambini
Aggiungi tanti pulsanti quanti sono i bambini

In questo passaggio, copiamo semplicemente gli ultimi due passaggi. Aggiungi tanti pulsanti quanti sono i bambini. Nel mio caso ne aggiungo quattro. Assicurati di cambiare il codice il pin digitale a cui è collegato il pulsante. Nel mio caso ho usato i pin da 12 a 10 per aggiungere i miei pulsanti. Nel caso in cui sia necessario ricordare, ecco il passaggio 1:

  1. Collegare il 5V sul lato alimentazione alla riga positiva sulla breadboard
  2. Collega il GND al lato negativo della breadboard

  3. Inserire il pulsante sulla breadboard Collegare l'alimentazione sulla fila postiva alla parte inferiore sinistra del pulsante
  4. Mettere a terra il pulsante utilizzando un resistore nella parte in basso a destra del pulsante sulla riga negativa della breadboard.

  5. Connetti (il tuo numero pin) sul lato digitale di Arduino in alto a destra del pulsante.

Dovrai anche modificare il codice per gestire tutti i tuoi pulsanti. Tieni presente che se hai bisogno di stare attento alle stringhe che hai usato. Non puoi aggiungere a lettere minuscole insieme. È meglio dichiarare 1 come oggetto String.

int child1ButtonPin = 13;//Questo è il pin a cui è collegato il nostro pulsante int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0;//Legge lo stato del pulsante (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 child3Strike = 0; int child4Strike = 0;

// la funzione di configurazione viene eseguita una volta quando si preme reset o si alimenta la scheda

void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); } // la funzione loop viene eseguita più e più volte per sempre void loop() { //legge lo stato del pulsante (on o off) child1ButtonState = digitalRead(child1ButtonPin);

child2ButtonState = digitalRead(child2ButtonPin);

child3ButtonState = digitalRead(child3ButtonPin);

child4ButtonState = digitalRead(child4ButtonPin);

if(child1ButtonState != child1PreviousState)

{ if(child1ButtonState == HIGH) // Pulsante premuto { child1Strike ++; Serial.println(String("Child 1 Has: ") + child1Strike + " strike");

if(child1Strike >=3)

{ Serial.println("Child 1 is grounded!"); } ritardo(3000); } } if(child2ButtonState != child2PreviousState) { if(child2ButtonState == HIGH) // Pulsante premuto { child2Strike ++; Serial.println(String("Child 2 has: ") + child2Strike + " strike");

if(child2Strike >=3)

{ Serial.println("Child 2 is grounded!"); } ritardo(3000); } }

if(child3ButtonState != child3PreviousState)

{ if(child3ButtonState == HIGH) // Pulsante premuto { child3Strike ++; Serial.println(String("Child 3 has: ") + child3Strike + " strike");

if(child3Strike >=3)

{ Serial.println("Child 3 is grounded!"); } ritardo(3000); } }

if(child4ButtonState != child4PreviousState)

{ if(child4ButtonState == HIGH) // Pulsante premuto { child4Strike ++; Serial.println(String("Child 4 has: ") + child4Strike + " strike");

if(child4Strike >=3)

{ Serial.println("Child 4 is grounded!"); } ritardo(3000); } } }

Passaggio 4: aggiungi un cicalino

Aggiungi un cicalino
Aggiungi un cicalino
Aggiungi un cicalino
Aggiungi un cicalino

Ora assicuriamoci che i tuoi figli sappiano che sono con i piedi per terra. Aggiungiamo un cicalino. Per collegare il cicalino, segui questi semplici passaggi.

  1. Aggiungi un cicalino alla tua breadboard, pianifica lo spazio poiché è in arrivo uno schermo LCD.
  2. Collega il lato postivo (il cicalino dovrebbe avere un + sul lato postivo) al Pin di tua scelta. ho fatto 9.
  3. Collega l'altro lato alla guida con messa a terra della breadboard.

Successivamente, modifica il codice per disattivare il cicalino quando un bambino viene messo a terra. Ci sono un paio di modi diversi per codificare il tuo buzzer, ma mi piace tone(buzzerName, hertz, duration) per la sua semplicità Quindi un esempio di questo sarebbe tone(buzzer, 4000, 300).

int child1ButtonPin = 13;//Questo è il pin a cui è collegato il nostro pulsante int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0;//Legge lo stato del pulsante (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 child3Strike = 0; int child4Strike = 0; const int cicalino = 2;

// la funzione di configurazione viene eseguita una volta quando si preme reset o si alimenta la scheda

void setup() { Serial.begin(9600); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); pinMode(cicalino, USCITA); } // la funzione loop viene eseguita più e più volte per sempre void loop() { //legge lo stato del pulsante (on o off) child1ButtonState = digitalRead(child1ButtonPin);

child2ButtonState = digitalRead(child2ButtonPin);

child3ButtonState = digitalRead(child3ButtonPin);

child4ButtonState = digitalRead(child4ButtonPin);

if(child1ButtonState != child1PreviousState)

{ if(child1ButtonState == HIGH) // Pulsante premuto { child1Strike ++; Serial.println(String("Child 1 Has: ") + child1Strike + " strike");

if(child1Strike >=3)

{ Serial.println("Child 1 is grounded!"); tono (cicalino, 5000, 500); // Invia un suono a 5 hertz per 5 millisecondi

}

ritardo (3000); } } if(child2ButtonState != child2PreviousState) { if(child2ButtonState == HIGH) // Pulsante premuto { child2Strike ++; Serial.println(String("Child 2 has: ") + child2Strike + " strike");

if(child2Strike >=3)

{ Serial.println("Child 2 is grounded!"); tono (cicalino, 5000, 500); } ritardo(3000); } }

if(child3ButtonState != child3PreviousState)

{ if(child3ButtonState == HIGH) // Pulsante premuto { child3Strike ++; Serial.println(String("Child 3 has: ") + child3Strike + " strike");

if(child3Strike >=3)

{ Serial.println("Child 3 is grounded!"); tono (cicalino, 5000, 500); } ritardo(3000); } }

if(child4ButtonState != child4PreviousState)

{ if(child4ButtonState == HIGH) // Pulsante premuto { child4Strike ++; Serial.println(String("Child 4 has: ") + child4Strike + " strike");

if(child4Strike >=3)

{ Serial.println("Child 4 is grounded!"); tono (cicalino, 5000, 500); } ritardo(3000); } } }

Passaggio 5: aggiungere uno schermo LCD

Image
Image
Aggiungi uno schermo LCD
Aggiungi uno schermo LCD

Ora lascia uno schermo LCD per una lettura chiara e facile.

  1. Innanzitutto, aggiungi un potenziometro alla breadboard per controllare lo schermo lcd. Fai attenzione a dove lo metti poiché probabilmente stai esaurendo lo spazio ormai.
  2. Usa la parte anteriore sinistra per collegare il potenziometro alla barra di alimentazione
  3. Usa la parte anteriore destra per mettere a terra il tuo potenziometro.
  4. La parte posteriore sarà collegata allo schermo lcd.
  5. Aggiungi lo schermo LCD alla tua breadboard
  6. Mettere a terra il primo pin dello schermo al binario di messa a terra
  7. Collegare il secondo pin alla barra di alimentazione.
  8. Il terzo pin LCD va al Pin 8 su Arduino
  9. Il quarto pin LCD va al Pin 7 su Arduino
  10. Il quinto va al Pin 6 di Arduino
  11. Il sesto pin va al pin 5 di Arduino
  12. I pin da 7 a 10 sullo schermo LCD sono vuoti
  13. Il pin 11 va al pin 5 di Arduino
  14. Il pin 12 va al binario messo a terra
  15. Il pin 13 va al pin 4 di Arduino
  16. Il pin 14 va sul retro del potenziometro
  17. Il pin 15 va al Power rail
  18. Il pin 16 va al binario di terra.

Ora dovrai aggiornare il tuo codice per utilizzare lo schermo lcd. Per questo utilizzerai la libreria Liquid Crystal. Fai attenzione alle tue dichiarazioni di stampa lcd. Ricorda di cancellare lo schermo quando hai bisogno di un nuovo messaggio. Ricordati anche di impostare il cursore quando vuoi usare due righe.

#includere

LCD a cristalli liquidi (3, 4, 5, 6, 7, 8); //Imposta lo schermo LCD

int child1ButtonPin = 13;//Questo è il pin a cui è connesso il nostro pulsante int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0;//Legge lo stato del pulsante (on/off) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Lo stato precedente del pulsante premuto int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; //Quanti colpi ha un bambino int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int cicalino = 9; // il cicalino

// la funzione di configurazione viene eseguita una volta quando si preme reset o si alimenta la scheda

void setup() { Serial.begin(9600); lcd.begin(16, 2); lcd.print("Il bambino"); lcd.setCursor(0, 1); lcd.print("Modificatore del comportamento"); pinMode(child1ButtonPin, INPUT); pinMode(child2ButtonPin, INPUT); pinMode(child3ButtonPin, INPUT); pinMode(child4ButtonPin, INPUT); pinMode(cicalino, USCITA); } // la funzione loop viene eseguita più e più volte per sempre void loop() { lcd.setCursor(0, 0); //legge lo stato del pulsante (on o off) child1ButtonState = digitalRead(child1ButtonPin);

child2ButtonState = digitalRead(child2ButtonPin);

child3ButtonState = digitalRead(child3ButtonPin);

child4ButtonState = digitalRead(child4ButtonPin);

if(child1ButtonState != child1PreviousState)

{ if(child1ButtonState == HIGH) // Pulsante premuto { lcd.clear(); bambino1Strike ++; Serial.println(String("Child 1 Has: ") + child1Strike + " strike"); lcd.print("Il bambino 1 ha:"); lcd.setCursor(0, 1); lcd.print(child1Strike); lcd.print("Colpisce!");

if(child1Strike >=3)

{ Serial.println("Child 1 is grounded!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Il bambino 1 è"); lcd.setCursor(0, 1); lcd.print("Messa a terra!");

tono (cicalino, 5000, 500); // Invia un suono a 5 hertz per 5 millisecondi

}

ritardo (3000); } } if(child2ButtonState != child2PreviousState) { lcd.clear(); if(child2ButtonState == HIGH) // Pulsante premuto { child2Strike ++; Serial.println(String("Child 2 has: ") + child2Strike + " strike"); lcd.print("Il bambino 2 ha:"); lcd.setCursor(0, 1); lcd.print(child2Strike); lcd.print("Colpisce!"); if(child2Strike >=3) { Serial.println("Child 2 Is Grounded!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Il bambino 2 è"); lcd.setCursor(0, 1); lcd.print("Messa a terra!"); tono (cicalino, 5000, 500); } ritardo(3000); } }

if(child3ButtonState != child3PreviousState)

{ lcd.clear(); if(child3ButtonState == HIGH) // Pulsante premuto { child3Strike ++; Serial.println(String("Child 3 has: ") + child3Strike + " strike"); lcd.print("Il bambino 3 ha:"); lcd.setCursor(0, 1); lcd.print(child3Strike); lcd.print("Colpisce!"); if(child3Strike >=3) { Serial.println("Child 3 Is Grounded!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Il bambino 3 è"); lcd.setCursor(0, 1); lcd.print("Messa a terra!"); tono (cicalino, 5000, 500); } ritardo(3000); } }

if(child4ButtonState != child4PreviousState)

{ lcd.clear(); if(child4ButtonState == HIGH) // Pulsante premuto { child4Strike ++; Serial.println(String("Child 4 has: ") + child4Strike + " strike"); lcd.print("Il bambino 4 ha:"); lcd.setCursor(0, 1); lcd.print(child4Strike); lcd.print("Colpisce!");

if(child4Strike >=3)

{ Serial.println("Child 4 is grounded!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Il bambino 4 è"); lcd.setCursor(0, 1); lcd.print("Messa a terra!"); tono (cicalino, 5000, 500); } ritardo(3000); } } } E questo è tutto, questo è tutto ciò di cui hai bisogno per costruire il tuo Child Behavior Modifer

Consigliato: