Sommario:
- Passaggio 1: inizia in modo semplice: aggiungi un pulsante
- Passaggio 2: modifica il codice per registrare le pressioni dei pulsanti
- Passaggio 3: aggiungi tanti pulsanti quanti sono i bambini
- Passaggio 4: aggiungi un cicalino
- Passaggio 5: aggiungere uno schermo LCD
Video: Modificatore del comportamento del bambino: 5 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-02-01 14:41
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
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.
- Collegare il 5V sul lato alimentazione alla riga positiva sulla breadboard
-
Collega il GND al lato negativo della breadboard
- Inserire il pulsante sulla breadboard
-
Collegare l'alimentazione sulla fila postive alla parte inferiore sinistra del pulsante
- Mettere a terra il pulsante utilizzando un resistore nella parte in basso a destra del pulsante sulla riga negativa della breadboard.
- 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 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
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:
- Collegare il 5V sul lato alimentazione alla riga positiva sulla breadboard
-
Collega il GND al lato negativo della breadboard
- Inserire il pulsante sulla breadboard Collegare l'alimentazione sulla fila postiva alla parte inferiore sinistra del pulsante
-
Mettere a terra il pulsante utilizzando un resistore nella parte in basso a destra del pulsante sulla riga negativa della breadboard.
- 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
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.
- Aggiungi un cicalino alla tua breadboard, pianifica lo spazio poiché è in arrivo uno schermo LCD.
- Collega il lato postivo (il cicalino dovrebbe avere un + sul lato postivo) al Pin di tua scelta. ho fatto 9.
- 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
Ora lascia uno schermo LCD per una lettura chiara e facile.
- Innanzitutto, aggiungi un potenziometro alla breadboard per controllare lo schermo lcd. Fai attenzione a dove lo metti poiché probabilmente stai esaurendo lo spazio ormai.
- Usa la parte anteriore sinistra per collegare il potenziometro alla barra di alimentazione
- Usa la parte anteriore destra per mettere a terra il tuo potenziometro.
- La parte posteriore sarà collegata allo schermo lcd.
- Aggiungi lo schermo LCD alla tua breadboard
- Mettere a terra il primo pin dello schermo al binario di messa a terra
- Collegare il secondo pin alla barra di alimentazione.
- Il terzo pin LCD va al Pin 8 su Arduino
- Il quarto pin LCD va al Pin 7 su Arduino
- Il quinto va al Pin 6 di Arduino
- Il sesto pin va al pin 5 di Arduino
- I pin da 7 a 10 sullo schermo LCD sono vuoti
- Il pin 11 va al pin 5 di Arduino
- Il pin 12 va al binario messo a terra
- Il pin 13 va al pin 4 di Arduino
- Il pin 14 va sul retro del potenziometro
- Il pin 15 va al Power rail
- 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:
No Pee Now, dispositivo di regolazione del comportamento degli animali domestici che impedisce ai gatti di fare pipì in casa: 4 passaggi
No Pee Now, dispositivo di regolazione del comportamento degli animali domestici che impedisce ai gatti di fare pipì in casa: ero così infastidito dal mio gattino che le piace fare pipì sul mio letto, ho controllato tutto ciò di cui aveva bisogno e l'ho anche portata dal veterinario. Dopo aver risolto tutto ciò che potevo pensare e aver ascoltato la parola del dottore, mi rendo conto che ha solo un cattivo comportamento. Quindi il
Indicatore del bambino di Halloween: 4 passaggi (con immagini)
Indicatore del bambino di Halloween: io e mia moglie stavamo cercando di capire cosa poteva indossare per Halloween. Questa sessione di brainstorming è stata un paio di notti prima che lei ne avesse bisogno, inutile dire che ero un po' frettoloso. Le è venuta l'idea di mostrare quanto lontano fosse
Mantenere il tuo bambino fresco quest'estate - Controllare i fan stupidi con cose intelligenti!: 6 passaggi (con immagini)
Mantenere il tuo bambino fresco quest'estate - Controllare i fan stupidi con cose intelligenti!: A partire da due settimane fa, al momento della stesura di questo articolo, sono diventato papà di un bambino incredibile! Con le stagioni che cambiano, le giornate che si allungano e le temperature che si fanno più calde, ho pensato che sarebbe stato bello avere una sorta di monitor in giro nel n
Auto fai da te di un bambino di 7 anni: 5 passaggi (con immagini)
Auto fai-da-te di un bambino di 7 anni: perché non creare i tuoi giocattoli e imparare mentre giochi? Impara a farlo da solo (fai da te) mentre Abzy di 7 anni ti insegna come realizzare una semplice auto a motore CC alimentata a batteria interamente da solo. C'è un sacco di rifiuti elettronici quando i giocattoli vengono gettati via. A
Il fiore sonoro e luminoso del bambino: 6 passaggi (con immagini)
Baby's Sound and Light Flower: un giocattolo per il nostro bambino di 3 mesi (Io sono il nonno) per attirare la sua attenzione utilizzando il suono e la luce incorporati in un fiore ikea. Questo era montato sulla sua bacinella. Utilizza una scheda microcontrollore arduino decimillia, bipolare (rosso e verde