wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

arduino_terze

Total questions: 84

Worksheet time: 2hrs 49mins

Name
Class
Date
1.

const int ledPin = 13;

void setup()

{ pinMode(ledPin, OUTPUT); }

void loop()

{ digitalWrite(ledPin, HIGH);

delay(1000);

digitalWrite(ledPin, LOW);

delay(1000);

}

Qual è la funzione del comando pinMode(ledPin, OUTPUT); nello sketch?

https://www.tinkercad.com/things/kU216mhywTC-domanda2?sharecode=7kho8t6IQYEkHAbYTgnVw6iBY84HaH2431Ax1-iPaFw

a)

A) Legge il valore di un pin digitale.

b)
  • B) Imposta il pin del LED come uscita.

c)
  • C) Imposta il pin del LED come ingresso.

d)
  • D) Scrive un valore analogico su un pin.

2.

const int ledPin = 13;

void setup()

{ pinMode(ledPin, OUTPUT); }

void loop()

{ digitalWrite(ledPin, HIGH);

delay(1000);

digitalWrite(ledPin, LOW);

delay(1000);

}

Cosa fa la funzione digitalWrite(ledPin, HIGH);?

https://www.tinkercad.com/things/kU216mhywTC-domanda2?sharecode=7kho8t6IQYEkHAbYTgnVw6iBY84HaH2431Ax1-iPaFw

a)

A) Imposta il LED in uno stato di bassa luminosità.

b)
  • C) Accende il LED.

c)
  • D) Non fa nulla al LED.

d)
  • B) Spegne il LED.

3.

const int ledPin = 13;

void setup()

{ pinMode(ledPin, OUTPUT); }

void loop()

{ digitalWrite(ledPin, HIGH);

delay(1000);

digitalWrite(ledPin, LOW);

delay(1000);

}

Quanto tempo il LED rimane acceso o spento con il valore di delay(1000);?

https://www.tinkercad.com/things/kU216mhywTC-domanda2?sharecode=7kho8t6IQYEkHAbYTgnVw6iBY84HaH2431Ax1-iPaFw

a)
  • A) 100 millisecondi.

b)
  • B) 500 millisecondi.

c)
  • C) 1000 millisecondi.

d)
  • D) 2000 millisecondi.

4.

const int ledPin = 13;

void setup()

{ pinMode(ledPin, OUTPUT); }

void loop()

{ digitalWrite(ledPin, HIGH);

delay(1000);

digitalWrite(ledPin, LOW);

delay(1000);

}

Se vuoi che il LED lampeggi ogni mezzo secondo, quale valore dovresti impostare per delay()?

https://www.tinkercad.com/things/kU216mhywTC-domanda2?sharecode=7kho8t6IQYEkHAbYTgnVw6iBY84HaH2431Ax1-iPaFw

a)

A) delay(250);

b)
  • B) delay(500);

c)
  • C) delay(1000);

d)
  • D) delay(2000);

5.

const int ledPin = 13;

setup()

{ pinMode(ledPin, OUTPUT);}

void loop()

{ digitalWrite(ledPin, HIGH);

delay(1000);

digitalWrite(ledPin, LOW);

delay(1000);

}

Qual è il risultato di modificare il valore di delay() da 1000 a 500?

a)
  • A) Il LED lampeggerà più lentamente.

b)
  • B) Il LED lampeggerà alla stessa velocità.

c)
  • C) Il LED lampeggerà più velocemente.

d)
  • D) Il LED rimarrà acceso in modo continuo.

6.

const int ledPin = 9;

void setup() {

pinMode(ledPin, OUTPUT);

Serial.begin(9600);

}

void loop() {

// Fade in from min to max in increments of 5 points:

for (int i = 0; i <= 255; i += 5) {

analogWrite (ledPin, i);

delay(10);

}

// Fade out from max to min in increments of 5 points:

for (int i = 255; i >= 0; i -= 5) {

Serial.println(i);

analogWrite(ledPin, i);

delay(10);

}

}

Cosa fa la funzione analogWrite(ledPin, i); nello sketch?

https://www.tinkercad.com/things/c4aCP6wKnpf-ledlampeggiante?sharecode=epbomLGbWU1MhFuPh3HpPIhN1WyhP7rGa-ZdIIyDD5U

a)
  • A) Accende il LED a piena luminosità.

b)
  • B) Spegne il LED.

c)
  • C) Imposta la luminosità del LED a un valore tra 0 e 255.

d)
  • D) Legge il valore di luminosità del LED.

7.

const int ledPin = 9;

void setup() {

pinMode(ledPin, OUTPUT);

}

void loop() {

for (int i = 0; i <= 255; i += 5) {

analogWrite(ledPin, i);

delay(10);

}

for (int i = 255; i >= 0; i -= 5) {

analogWrite(ledPin, i);

delay(10);

}

}

Qual è lo scopo del ciclo for nello sketch?

https://www.tinkercad.com/things/c4aCP6wKnpf-ledlampeggiante?sharecode=epbomLGbWU1MhFuPh3HpPIhN1WyhP7rGa-ZdIIyDD5U

a)
  • A) Eseguire un’azione una sola volta.

b)
  • B) Eseguire un’azione per un numero indefinito di volte.

c)
  • C) Eseguire un’azione per un numero definito di volte.

d)
  • D) Impedire che il codice venga eseguito.

8.

const int ledPin = 9;

void setup() {

pinMode(ledPin, OUTPUT);

Serial.begin(9600);

}

void loop() {

// Fade in from min to max in increments of 5 points:

for (int i = 0; i <= 255; i += 5) {

analogWrite (ledPin, i);

delay(10);

}

// Fade out from max to min in increments of 5 points:

for (int i = 255; i >= 0; i -= 5) {

Serial.println(i);

analogWrite(ledPin, i);

delay(10);

}

}

Se si desidera aumentare la velocità della dissolvenza del LED, quale parametro si dovrebbe modificare? sono possibili più possibilità di risposta individuarle tutte.

https://www.tinkercad.com/things/c4aCP6wKnpf-ledlampeggiante?sharecode=epbomLGbWU1MhFuPh3HpPIhN1WyhP7rGa-ZdIIyDD5U

a)
  • A) Il valore di i in analogWrite(ledPin, i);

b)
  • B) Il numero di cicli nel ciclo for.

c)
  • C) Il valore di delay(10);

d)
  • D) Il numero del pin in const int ledPin = 9;

9.

const int ledPin = 9;

void setup() {

pinMode(ledPin, OUTPUT);

Serial.begin(9600);

}

void loop() {

// Fade in from min to max in increments of 5 points:

for (int i = 0; i <= 255; i += 5) {

analogWrite (ledPin, i);

delay(10);

}

// Fade out from max to min in increments of 5 points:

for (int i = 255; i >= 0; i -= 5) {

Serial.println(i);

analogWrite(ledPin, i);

delay(10);

}

}

Quale affermazione descrive correttamente il comportamento del LED con lo sketch fornito?

https://www.tinkercad.com/things/c4aCP6wKnpf-ledlampeggiante?sharecode=epbomLGbWU1MhFuPh3HpPIhN1WyhP7rGa-ZdIIyDD5U

a)
  • A) Il LED rimarrà acceso in modo continuo.

b)
  • B) Il LED lampeggerà rapidamente.

c)
  • C) Il LED aumenterà e diminuirà di luminosità gradualmente.

d)
  • D) Il LED cambierà colore.

10.

const int ledPin = 9;

void setup() {

pinMode(ledPin, OUTPUT);

Serial.begin(9600);

}

void loop() {

// Fade in from min to max in increments of 5 points:

for (int i = 0; i <= 255; i += 5) {

analogWrite (ledPin, i);

delay(10);

}

// Fade out from max to min in increments of 5 points:

for (int i = 255; i >= 0; i -= 5) {

Serial.println(i);

analogWrite(ledPin, i);

delay(10);

}

}

Quale modifica allo sketch farebbe lampeggiare il LED invece di farlo dissolvere?

https://www.tinkercad.com/things/c4aCP6wKnpf-ledlampeggiante?sharecode=epbomLGbWU1MhFuPh3HpPIhN1WyhP7rGa-ZdIIyDD5U

a)
  • A) Sostituire analogWrite con digitalWrite.

b)
  • B) Rimuovere i cicli for.

c)
  • C) Cambiare il valore di ledPin.

d)
  • D) Aumentare il valore di delay.

11.

// C++ code

//

#define PULSANTE 2

#define LED_STATO0 3

#define LED_STATO1 4

#define LED_STATO2 5

int stato=0;

int tempo=0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED_STATO0, OUTPUT);

pinMode(LED_STATO1, OUTPUT);

pinMode(LED_STATO2, OUTPUT);

Serial.begin(9600);

}

void loop()

{

switch(stato){

case 0:

Serial.print("stato=0 sto aspettando un comando ");

Serial.println(millis());

digitalWrite(LED_STATO2,0);//quale dei due lavora?

if(digitalRead(PULSANTE)==LOW)

{

stato=1;

digitalWrite(LED_STATO2,0);//quale dei due lavora?

digitalWrite(LED_STATO0,1);

tempo=millis();

}

break;

case 1:

Serial.print("stato=1 sto aspettando il tempo definito");

Serial.println(millis());

if((millis()-tempo)>=50 ){

stato=2;

digitalWrite(LED_STATO0,0);

digitalWrite(LED_STATO1,1);}

break;

case 2:

Serial.println("stato=2 sto aspettando il rilascio del pulsante");

if (digitalRead(PULSANTE)==HIGH) stato=0 ;

digitalWrite(LED_STATO2,1);

digitalWrite(LED_STATO1,0);

break;

}

}

Cosa fa la funzione pinMode(PULSANTE, INPUT_PULLUP); nel setup()?

https://www.tinkercad.com/things/b9PXyeJaBgu-pag126?sharecode=B2NSRNrA0URKtbuUx74U__8pju5GZZVz0HS4B9Tcbdw

a)
  • A) Configura il pulsante per generare un output.

b)
  • B) Configura il pulsante come input con una resistenza di pull-up.

c)
  • C) Configura il pulsante per ricevere un segnale analogico.

d)
  • D) Configura il pulsante per disabilitare l’input.

12.

// C++ code

//

#define PULSANTE 2

#define LED_STATO0 3

#define LED_STATO1 4

#define LED_STATO2 5

int stato=0;

int tempo=0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED_STATO0, OUTPUT);

pinMode(LED_STATO1, OUTPUT);

pinMode(LED_STATO2, OUTPUT);

Serial.begin(9600);

}

void loop()

{

switch(stato){

case 0:

Serial.print("stato=0 sto aspettando un comando ");

Serial.println(millis());

digitalWrite(LED_STATO2,0);//quale dei due lavora?

if(digitalRead(PULSANTE)==LOW)

{

stato=1;

digitalWrite(LED_STATO2,0);//quale dei due lavora?

digitalWrite(LED_STATO0,1);

tempo=millis();

}

break;

case 1:

Serial.print("stato=1 sto aspettando il tempo definito");

Serial.println(millis());

if((millis()-tempo)>=50 ){

stato=2;

digitalWrite(LED_STATO0,0);

digitalWrite(LED_STATO1,1);}

break;

case 2:

Serial.println("stato=2 sto aspettando il rilascio del pulsante");

if (digitalRead(PULSANTE)==HIGH) stato=0 ;

digitalWrite(LED_STATO2,1);

digitalWrite(LED_STATO1,0);

break;

}

}

Qual è lo scopo della funzione Serial.begin(9600);?

https://www.tinkercad.com/things/b9PXyeJaBgu-pag126?sharecode=B2NSRNrA0URKtbuUx74U__8pju5GZZVz0HS4B9Tcbdw

a)
  • A) Imposta la velocità di trasmissione dei dati a 9600 bit per secondo.

b)
  • B) Inizia un conto alla rovescia di 9600 millisecondi.

c)
  • C) Accende tutti i LED contemporaneamente.

d)
  • D) Configura il pulsante per essere premuto ogni 9600 millisecondi.

13.

// C++ code

//

#define PULSANTE 2

#define LED_STATO0 3

#define LED_STATO1 4

#define LED_STATO2 5

int stato=0;

int tempo=0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED_STATO0, OUTPUT);

pinMode(LED_STATO1, OUTPUT);

pinMode(LED_STATO2, OUTPUT);

Serial.begin(9600);

}

void loop()

{

switch(stato){

case 0:

Serial.print("stato=0 sto aspettando un comando ");

Serial.println(millis());

digitalWrite(LED_STATO2,0);//quale dei due lavora?

if(digitalRead(PULSANTE)==LOW)

{

stato=1;

digitalWrite(LED_STATO2,0);//quale dei due lavora?

digitalWrite(LED_STATO0,1);

tempo=millis();

}

break;

case 1:

Serial.print("stato=1 sto aspettando il tempo definito");

Serial.println(millis());

if((millis()-tempo)>=50 ){

stato=2;

digitalWrite(LED_STATO0,0);

digitalWrite(LED_STATO1,1);}

break;

case 2:

Serial.println("stato=2 sto aspettando il rilascio del pulsante");

if (digitalRead(PULSANTE)==HIGH) stato=0 ;

digitalWrite(LED_STATO2,1);

digitalWrite(LED_STATO1,0);

break;

}

}

Che cosa indica if(digitalRead(PULSANTE)==LOW)?

https://www.tinkercad.com/things/b9PXyeJaBgu-pag126?sharecode=B2NSRNrA0URKtbuUx74U__8pju5GZZVz0HS4B9Tcbdw

a)
  • A) Controlla se il pulsante non è premuto.

b)
  • B) Controlla se il pulsante è premuto.

c)
  • C) Imposta il pulsante su uno stato basso.

d)
  • D) Legge un valore analogico dal pulsante.

14.

// C++ code

//

#define PULSANTE 2

#define LED_STATO0 3

#define LED_STATO1 4

#define LED_STATO2 5

int stato=0;

int tempo=0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED_STATO0, OUTPUT);

pinMode(LED_STATO1, OUTPUT);

pinMode(LED_STATO2, OUTPUT);

Serial.begin(9600);

}

void loop()

{

switch(stato){

case 0:

Serial.print("stato=0 sto aspettando un comando ");

Serial.println(millis());

digitalWrite(LED_STATO2,0);//quale dei due lavora?

if(digitalRead(PULSANTE)==LOW)

{

stato=1;

digitalWrite(LED_STATO2,0);//quale dei due lavora?

digitalWrite(LED_STATO0,1);

tempo=millis();

}

break;

case 1:

Serial.print("stato=1 sto aspettando il tempo definito");

Serial.println(millis());

if((millis()-tempo)>=50 ){

stato=2;

digitalWrite(LED_STATO0,0);

digitalWrite(LED_STATO1,1);}

break;

case 2:

Serial.println("stato=2 sto aspettando il rilascio del pulsante");

if (digitalRead(PULSANTE)==HIGH) stato=0 ;

digitalWrite(LED_STATO2,1);

digitalWrite(LED_STATO1,0);

break;

}

}

Nel caso stato=1, cosa succede dopo che il tempo definito è trascorso?

https://www.tinkercad.com/things/b9PXyeJaBgu-pag126?sharecode=B2NSRNrA0URKtbuUx74U__8pju5GZZVz0HS4B9Tcbdw

a)
  • A) Il LED_STATO0 si spegne e il LED_STATO1 si accende.

b)
  • B) Tutti i LED si accendono.

c)
  • C) Il programma si resetta.

d)
  • D) Il LED_STATO2 inizia a lampeggiare.

15.

// C++ code

//

#define PULSANTE 2

#define LED_STATO0 3

#define LED_STATO1 4

#define LED_STATO2 5

int stato=0;

int tempo=0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED_STATO0, OUTPUT);

pinMode(LED_STATO1, OUTPUT);

pinMode(LED_STATO2, OUTPUT);

Serial.begin(9600);

}

void loop()

{

switch(stato){

case 0:

Serial.print("stato=0 sto aspettando un comando ");

Serial.println(millis());

digitalWrite(LED_STATO2,0);//quale dei due lavora?

if(digitalRead(PULSANTE)==LOW)

{

stato=1;

digitalWrite(LED_STATO2,0);//quale dei due lavora?

digitalWrite(LED_STATO0,1);

tempo=millis();

}

break;

case 1:

Serial.print("stato=1 sto aspettando il tempo definito");

Serial.println(millis());

if((millis()-tempo)>=50 ){

stato=2;

digitalWrite(LED_STATO0,0);

digitalWrite(LED_STATO1,1);}

break;

case 2:

Serial.println("stato=2 sto aspettando il rilascio del pulsante");

if (digitalRead(PULSANTE)==HIGH) stato=0 ;

digitalWrite(LED_STATO2,1);

digitalWrite(LED_STATO1,0);

break;

}

}

Cosa rappresenta la variabile tempo?

https://www.tinkercad.com/things/b9PXyeJaBgu-pag126?sharecode=B2NSRNrA0URKtbuUx74U__8pju5GZZVz0HS4B9Tcbdw

a)
  • A) Il numero di volte che il pulsante è stato premuto.

b)
  • B) Il tempo trascorso dall’inizio del programma.

c)
  • C) Il momento in cui il pulsante è stato premuto.

d)
  • D) La durata del lampeggio dei LED.


16.

// C++ code

//

#define PULSANTE 2

#define LED_STATO0 3

#define LED_STATO1 4

#define LED_STATO2 5

int stato=0;

int tempo=0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED_STATO0, OUTPUT);

pinMode(LED_STATO1, OUTPUT);

pinMode(LED_STATO2, OUTPUT);

Serial.begin(9600);

}

void loop()

{

switch(stato){

case 0:

Serial.print("stato=0 sto aspettando un comando ");

Serial.println(millis());

digitalWrite(LED_STATO2,0);//quale dei due lavora?

if(digitalRead(PULSANTE)==LOW)

{

stato=1;

digitalWrite(LED_STATO2,0);//quale dei due lavora?

digitalWrite(LED_STATO0,1);

tempo=millis();

}

break;

case 1:

Serial.print("stato=1 sto aspettando il tempo definito");

Serial.println(millis());

Serial.print("tempo invece vale ");

Serial.println(tempo);

if((millis()-tempo)>=50 ){

stato=2;

digitalWrite(LED_STATO0,0);

digitalWrite(LED_STATO1,1);}

break;

case 2:

Serial.print("stato=2 sto aspettando il rilascio del pulsante");

if(digitalRead(PULSANTE)==HIGH){

stato=0;

digitalWrite(LED_STATO1,0);

digitalWrite(LED_STATO2,1);}

break;

}

}

Cosa succede quando stato=0 e il pulsante viene premuto?

https://www.tinkercad.com/things/b9PXyeJaBgu-pag126?sharecode=B2NSRNrA0URKtbuUx74U__8pju5GZZVz0HS4B9Tcbdw

a)
  • A) Il LED_STATO0 si accende

  • LED_STATO2 si spegne e stato diventa 1.

b)
  • B) Il LED_STATO1 si

  • accende, LED_STATO2 si spegne e stato diventa 1.

c)
  • C) Il LED_STATO2 inizia a lampeggiare.

d)
  • D) Tutti i LED si spengono.

17.

// C++ code

//

#define PULSANTE 2

#define LED_STATO0 3

#define LED_STATO1 4

#define LED_STATO2 5

int stato=0;

int tempo=0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED_STATO0, OUTPUT);

pinMode(LED_STATO1, OUTPUT);

pinMode(LED_STATO2, OUTPUT);

Serial.begin(9600);

}

void loop()

{

switch(stato){

case 0:

Serial.print("stato=0 sto aspettando un comando ");

Serial.println(millis());

digitalWrite(LED_STATO2,0);//quale dei due lavora?

if(digitalRead(PULSANTE)==LOW)

{

stato=1;

digitalWrite(LED_STATO2,0);//quale dei due lavora?

digitalWrite(LED_STATO0,1);

tempo=millis();

}

break;

case 1:

Serial.print("stato=1 sto aspettando il tempo definito");

Serial.println(millis());

if((millis()-tempo)>=50 ){

stato=2;

digitalWrite(LED_STATO0,0);

digitalWrite(LED_STATO1,1);}

break;

case 2:

Serial.println("stato=2 sto aspettando il rilascio del pulsante");

if (digitalRead(PULSANTE)==HIGH) stato=0 ;

digitalWrite(LED_STATO2,1);

digitalWrite(LED_STATO1,0);

break;

}

}

Qual è il ruolo della funzione millis() nel programma?

https://www.tinkercad.com/things/kU216mhywTC-domanda2?sharecode=7kho8t6IQYEkHAbYTgnVw6iBY84HaH2431Ax1-iPaFw


a)
  • A) Genera un numero casuale ogni volta che viene chiamata.

b)
  • B) Restituisce il numero di millisecondi trascorsi dall’avvio del programma Arduino.

c)
  • C) Imposta un ritardo di un numero specifico di millisecondi.

d)
  • D) Controlla la luminosità dei LED.

18.

// C++ code

//

#define PULSANTE 2

#define LED_STATO0 3

#define LED_STATO1 4

#define LED_STATO2 5

int stato=0;

int tempo=0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED_STATO0, OUTPUT);

pinMode(LED_STATO1, OUTPUT);

pinMode(LED_STATO2, OUTPUT);

Serial.begin(9600);

}

void loop()

{

switch(stato){

case 0:

Serial.print("stato=0 sto aspettando un comando ");

Serial.println(millis());

digitalWrite(LED_STATO2,0);//quale dei due lavora?

if(digitalRead(PULSANTE)==LOW)

{

stato=1;

digitalWrite(LED_STATO2,0);//quale dei due lavora?

digitalWrite(LED_STATO0,1);

tempo=millis();

}

break;

case 1:

Serial.print("stato=1 sto aspettando il tempo definito");

Serial.println(millis());

if((millis()-tempo)>=50 ){

stato=2;

digitalWrite(LED_STATO0,0);

digitalWrite(LED_STATO1,1);}

break;

case 2:

Serial.println("stato=2 sto aspettando il rilascio del pulsante");

if (digitalRead(PULSANTE)==HIGH) stato=0 ;

digitalWrite(LED_STATO2,1);

digitalWrite(LED_STATO1,0);

break;

}

}

Nel caso stato=2, cosa aspetta il programma per cambiare stato?

https://www.tinkercad.com/things/b9PXyeJaBgu-pag126?sharecode=B2NSRNrA0URKtbuUx74U__8pju5GZZVz0HS4B9Tcbdw

a)
  • A) Che il pulsante venga premuto di nuovo.

b)
  • B) Che il LED_STATO1 si spenga.

c)
  • C) Che il pulsante venga rilasciato.

d)
  • D) Che passino 50 millisecondi.

19.

// C++ code

//

#define PULSANTE 2

#define LED_STATO0 3

#define LED_STATO1 4

#define LED_STATO2 5

int stato=0;

int tempo=0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED_STATO0, OUTPUT);

pinMode(LED_STATO1, OUTPUT);

pinMode(LED_STATO2, OUTPUT);

Serial.begin(9600);

}

void loop()

{

switch(stato){

case 0:

Serial.print("stato=0 sto aspettando un comando ");

Serial.println(millis());

digitalWrite(LED_STATO2,0);//quale dei due lavora?

if(digitalRead(PULSANTE)==LOW)

{

stato=1;

digitalWrite(LED_STATO2,0);//quale dei due lavora?

digitalWrite(LED_STATO0,1);

tempo=millis();

}

break;

case 1:

Serial.print("stato=1 sto aspettando il tempo definito");

Serial.println(millis());

if((millis()-tempo)>=50 ){

stato=2;

digitalWrite(LED_STATO0,0);

digitalWrite(LED_STATO1,1);}

break;

case 2:

Serial.println("stato=2 sto aspettando il rilascio del pulsante");

if (digitalRead(PULSANTE)==HIGH) stato=0 ;

digitalWrite(LED_STATO2,1);

digitalWrite(LED_STATO1,0);

break;

}

}

Qual è lo scopo principale dello sketch?

https://www.tinkercad.com/things/b9PXyeJaBgu-pag126?sharecode=B2NSRNrA0URKtbuUx74U__8pju5GZZVz0HS4B9Tcbdw

a)
  • A. Generare numeri casuali.

b)
  • B. Controllare l'accensione e lo spegnimento di LED in base a un pulsante e a un timer.

c)
  • C. Effettuare calcoli matematici complessi.

d)
  • D. Comunicare con un sensore di temperatura.

20.

// C++ code

//

#define PULSANTE 2

#define LED_STATO0 3

#define LED_STATO1 4

#define LED_STATO2 5

int stato=0;

int tempo=0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED_STATO0, OUTPUT);

pinMode(LED_STATO1, OUTPUT);

pinMode(LED_STATO2, OUTPUT);

Serial.begin(9600);

}

void loop()

{

switch(stato){

case 0:

Serial.print("stato=0 sto aspettando un comando ");

Serial.println(millis());

digitalWrite(LED_STATO2,0);//quale dei due lavora?

if(digitalRead(PULSANTE)==LOW)

{

stato=1;

digitalWrite(LED_STATO2,0);//quale dei due lavora?

digitalWrite(LED_STATO0,1);

tempo=millis();

}

break;

case 1:

Serial.print("stato=1 sto aspettando il tempo definito");

Serial.println(millis());

if((millis()-tempo)>=50 ){

stato=2;

digitalWrite(LED_STATO0,0);

digitalWrite(LED_STATO1,1);}

break;

case 2:

Serial.println("stato=2 sto aspettando il rilascio del pulsante");

if (digitalRead(PULSANTE)==HIGH) stato=0 ;

digitalWrite(LED_STATO2,1);

digitalWrite(LED_STATO1,0);

break;

}

}

Quale funzione svolge la variabile "stato" nello sketch?

https://www.tinkercad.com/things/b9PXyeJaBgu-pag126?sharecode=B2NSRNrA0URKtbuUx74U__8pju5GZZVz0HS4B9Tcbdw

a)
  • A. Memorizza il valore analogico letto da un sensore.

b)
  • B. Tiene traccia dello stato corrente dell'automa.

c)
  • C. Calcola il tempo trascorso.

d)
  • D. Comunicare con un sensore di temperatura.D. Controlla la velocità di comunicazione seriale.

21.

// C++ code

//

#define PULSANTE 2

#define LED_STATO0 3

#define LED_STATO1 4

#define LED_STATO2 5

int stato=0;

int tempo=0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED_STATO0, OUTPUT);

pinMode(LED_STATO1, OUTPUT);

pinMode(LED_STATO2, OUTPUT);

Serial.begin(9600);

}

void loop()

{

switch(stato){

case 0:

Serial.print("stato=0 sto aspettando un comando ");

Serial.println(millis());

digitalWrite(LED_STATO2,0);//quale dei due lavora?

if(digitalRead(PULSANTE)==LOW)

{

stato=1;

digitalWrite(LED_STATO2,0);//quale dei due lavora?

digitalWrite(LED_STATO0,1);

tempo=millis();

}

break;

case 1:

Serial.print("stato=1 sto aspettando il tempo definito");

Serial.println(millis());

if((millis()-tempo)>=50 ){

stato=2;

digitalWrite(LED_STATO0,0);

digitalWrite(LED_STATO1,1);}

break;

case 2:

Serial.println("stato=2 sto aspettando il rilascio del pulsante");

if (digitalRead(PULSANTE)==HIGH) stato=0 ;

digitalWrite(LED_STATO2,1);

digitalWrite(LED_STATO1,0);

break;

}

}

Cosa indica il LED_STATO2 quando è acceso?

https://www.tinkercad.com/things/b9PXyeJaBgu-pag126?sharecode=B2NSRNrA0URKtbuUx74U__8pju5GZZVz0HS4B9Tcbdw

4 lines
22.

// C++ code

//

#define PULSANTE 2

#define LED_STATO0 3

#define LED_STATO1 4

#define LED_STATO2 5

int stato=0;

int tempo=0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED_STATO0, OUTPUT);

pinMode(LED_STATO1, OUTPUT);

pinMode(LED_STATO2, OUTPUT);

Serial.begin(9600);

}

void loop()

{

switch(stato){

case 0:

Serial.print("stato=0 sto aspettando un comando ");

Serial.println(millis());

digitalWrite(LED_STATO2,0);//quale dei due lavora?

if(digitalRead(PULSANTE)==LOW)

{

stato=1;

digitalWrite(LED_STATO2,0);//quale dei due lavora?

digitalWrite(LED_STATO0,1);

tempo=millis();

}

break;

case 1:

Serial.print("stato=1 sto aspettando il tempo definito");

Serial.println(millis());

if((millis()-tempo)>=50 ){

stato=2;

digitalWrite(LED_STATO0,0);

digitalWrite(LED_STATO1,1);}

break;

case 2:

Serial.println("stato=2 sto aspettando il rilascio del pulsante");

if (digitalRead(PULSANTE)==HIGH) stato=0 ;

digitalWrite(LED_STATO2,1);

digitalWrite(LED_STATO1,0);

break;

}

}

lo schema proposto è una macchina sequenziale?

https://www.tinkercad.com/things/b9PXyeJaBgu-pag126?sharecode=B2NSRNrA0URKtbuUx74U__8pju5GZZVz0HS4B9Tcbdw

a)

SI

b)

NO

c)

A VOLTE

d)

ALCUNE PARTI SI ED ALCUNE PARTI NO

23.

Qual è la funzione utilizzata per accendere un LED collegato a un pin digitale?

a)
  • (a) digitalWrite()

b)
  • (b) analogWrite()

c)
  • (c) pinMode()

d)
  • (d) setup()

24.

Come si invia un valore a un pin PWM (Pulse Width Modulation) per controllare la luminosità di un LED?

const int ledPin = 9; // Pin del LED

int luminosita = 0; // Valore di luminosità

int incremento = 1; // Incremento per il fading

int attesa = 5; // Tempo di attesa tra le transizioni

void setup() {

pinMode(ledPin, OUTPUT); // Imposta il pin come uscita

}

void loop() {

analogWrite(ledPin, luminosita); // Scrive il valore di luminosità al LED

luminosita += incremento; // Aumenta gradualmente la luminosità

if (luminosita < 0 || luminosita > 255) {

incremento *= -1; // Inverti l'incremento per il fading

luminosita += incremento;

}

delay(attesa); // Aggiungi un ritardo per rendere visibile l'effetto

}

https://www.tinkercad.com/things/1koGaB6G1TD-pwmillustrazione?sharecode=GCCGcSrmlmGatj-0eIGJdQ1SOEwd3AMD8oUb4-qPmtA

a)

(a) Usando la funzione digitalWrite()

b)

(b) Usando la funzione analogWrite()

c)

(c) Usando la funzione pinMode()

d)

(d) Tutte le risposte precedenti

25.

Come si include una libreria in uno sketch Arduino?

a)

(a) Usando la direttiva #include

b)

(b) Caricando la libreria nella scheda Arduino

c)

(c) Creando una nuova libreria

d)

(d) Tutte le risposte precedenti

26.

Qual è la differenza tra una variabile locale e una variabile globale in Arduino?

a)

a) Le variabili locali sono visibili solo all'interno della funzione in cui sono dichiarate, mentre le variabili globali sono visibili in tutto lo sketch.

b)

(b) Le variabili locali sono memorizzate nella memoria RAM, mentre le variabili globali sono memorizzate nella memoria flash.

c)

(c) Le variabili locali possono essere utilizzate solo con i tipi di dati numerici, mentre le variabili globali possono essere utilizzate con qualsiasi tipo di dati.

d)

(d) Tutte le risposte precedenti

27.

#define PULSANTE 2

#define LED 3

int stato=0;

int tempo=0;

int statoLed =0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED, OUTPUT);

Serial.begin(9600);}

void loop()

{

switch(stato)

{case 0:

Serial.println("stato=0");

Serial.println(tempo);

if(digitalRead(PULSANTE)==0)

{

statoLed = !statoLed;

digitalWrite (LED, statoLed);

stato=1;

}

break;

case 1:

tempo++;

if(tempo>=50)stato=2;

Serial.println("stato=1");

break;

case 2:

if(digitalRead(PULSANTE)==1)stato=0;

Serial.println("stato=2");

break;

}

delay(1);

}

Cosa fa la funzione digitalWrite (LED, statoLed); quando viene chiamata?

https://www.tinkercad.com/things/fAMFyEm05DC-statopulsantedidatt?sharecode=6SWBdXzAkPoTXYyFTxbWoXWUIJcOVqF7F6iz7fFn3aI

a)
  • A) Legge lo stato del pulsante.

b)
  • B) Cambia lo stato del LED da acceso a spento o viceversa.

c)
  • C) Imposta il LED su uno stato alto.

d)
  • D) Non cambia lo stato del LED.

28.

#define PULSANTE 2

#define LED 3

int stato=0;

int tempo=0;

int statoLed =0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED, OUTPUT);

Serial.begin(9600);}

void loop()

{

switch(stato)

{case 0:

Serial.println("stato=0");

Serial.println(tempo);

if(digitalRead(PULSANTE)==0)

{

statoLed = !statoLed;

digitalWrite (LED, statoLed);

stato=1;

}

break;

case 1:

tempo++;

if(tempo>=50)stato=2;

Serial.println("stato=1");

break;

case 2:

if(digitalRead(PULSANTE)==1)stato=0;

Serial.println("stato=2");

break;

}

delay(1);

}

Quando il programma passa allo stato 2?

https://www.tinkercad.com/things/fAMFyEm05DC-statopulsantedidatt?sharecode=6SWBdXzAkPoTXYyFTxbWoXWUIJcOVqF7F6iz7fFn3aI

a)
  • A) Quando il pulsante viene premuto

b)
  • B) Quando tempo raggiunge o supera 50

c)
  • C) Quando il pulsante viene rilasciato

d)
  • D) Non specificato

29.

#define PULSANTE 2

#define LED 3

int stato=0;

int tempo=0;

int statoLed =0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED, OUTPUT);

Serial.begin(9600);}

void loop()

{

switch(stato)

{case 0:

Serial.println("stato=0");

Serial.println(tempo);

if(digitalRead(PULSANTE)==0)

{

statoLed = !statoLed;

digitalWrite (LED, statoLed);

stato=1;

}

break;

case 1:

tempo++;

if(tempo>=50)stato=2;

Serial.println("stato=1");

break;

case 2:

if(digitalRead(PULSANTE)==1)stato=0;

Serial.println("stato=2");

break;

}

delay(1);

}

Qual è lo scopo della resistenza di pull-up interna sul pin PULSANTE?

a)
  • (a) Per proteggere il pin da sovratensioni.

b)

(b) Per garantire un livello logico alto (5V) quando il pulsante non viene premuto.

c)
  • (c) Per aumentare la sensibilità del pulsante.

d)
  • (d) Per diminuire il consumo energetico.


30.

#define PULSANTE 2

#define LED 3

int stato=0;

int tempo=0;

int statoLed =0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED, OUTPUT);

Serial.begin(9600);}

void loop()

{

switch(stato)

{case 0:

Serial.println("stato=0");

Serial.println(tempo);

if(digitalRead(PULSANTE)==0)

{

statoLed = !statoLed;

digitalWrite (LED, statoLed);

stato=1;

}

break;

case 1:

tempo++;

if(tempo>=tempoAccensioneDesiderato)stato=2;

Serial.println("stato=1");

break;

case 2:

if(digitalRead(PULSANTE)==1)stato=0;

Serial.println("stato=2");

break;

}

delay(1);

}

che succede se modifichiamo il controllo dell'istruzione if(tempo>=tempoAccensioneDesiderato)stato=2;

in

if(tempo==tempoAccensioneDesiderato)stato=2;

https://www.tinkercad.com/things/fAMFyEm05DC-statopulsantedidatt?sharecode=6SWBdXzAkPoTXYyFTxbWoXWUIJcOVqF7F6iz7fFn3aI

a)
  • (a) il programma smette di essere ciclico e viene eseguito una volta sola, dopodichè rimane sempre spento

b)

(b) il led rimane sempre acceso e non viene mai sentito il pulsante

c)
  • (c) .il led rimane sempre spentoe non viene mai sentito il pulsante

d)
  • (d) il led lampeggia ciclicamente

31.

#define PULSANTE 2

#define LED 3

int stato=0;

int tempo=0;

int statoLed =0;

int tempoAccensioneDesiderato = 50;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED, OUTPUT);

Serial.begin(9600);}

void loop()

{

switch(stato)

{case 0:

Serial.println("stato=0");

Serial.println(tempo);

if(digitalRead(PULSANTE)==0)

{

statoLed = !statoLed;

digitalWrite (LED, statoLed);

stato=1;

}

break;

case 1:

tempo++;

if(tempo>=tempoAccensioneDesiderato)stato=2;

Serial.println("stato=1");

break;

case 2:

if(digitalRead(PULSANTE)==1)stato=0;

Serial.println("stato=2");

break;

}

delay(1);

}

Cosa succede quando il pulsante viene rilasciato?

https://www.tinkercad.com/things/fAMFyEm05DC-statopulsantedidatt?sharecode=6SWBdXzAkPoTXYyFTxbWoXWUIJcOVqF7F6iz7fFn3aI

a)
  • (a) Il LED si accende.

b)
  • (b) Il LED si spegne.

c)
  • (c) Il programma passa allo stato di timeout.

d)

(d) Il programma ritorna allo stato di attesa di pressione del pulsante.

32.

#define PULSANTE 2

#define LED 3

int stato=0;

int tempo=0;

int statoLed =0;

void setup()

{

pinMode(PULSANTE, INPUT_PULLUP);

pinMode(LED, OUTPUT);

Serial.begin(9600);}

void loop()

{

switch(stato)

{case 0:

Serial.println("stato=0");

Serial.println(tempo);

if(digitalRead(PULSANTE)==0)

{

statoLed = !statoLed;

digitalWrite (LED, statoLed);

stato=1;

}

break;

case 1:

tempo++;

if(tempo>=50)stato=2;

Serial.println("stato=1");

break;

case 2:

if(digitalRead(PULSANTE)==1)stato=0;

Serial.println("stato=2");

break;

}

delay(1);

}

Qual è lo scopo della variabile statoLed nello sketch?

https://www.tinkercad.com/things/fAMFyEm05DC-statopulsantedidatt?sharecode=6SWBdXzAkPoTXYyFTxbWoXWUIJcOVqF7F6iz7fFn3aI

a)
  • A) Conta il numero di volte che il pulsante viene premuto.

b)
  • B) Memorizza il tempo trascorso dall’ultima pressione del pulsante.

c)
  • C) Tiene traccia dello stato corrente del LED.

d)
  • D) Determina se il pulsante è premuto o rilasciato.

33.

int sensorValue = 0;

int ledrosso = 6;

int ledblu = 7;

int stato = 0;

void setup()

{

pinMode(A0, INPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

Serial.begin(9600);

}

void loop()

{

sensorValue = analogRead(A0);

sensorValue=map(sensorValue,20,358,-40,125);

Serial.println(sensorValue);

delay(10);

if(sensorValue <= -20){

digitalWrite(ledrosso,1);

}

else{

digitalWrite(ledrosso,0);

}

if(sensorValue >= 30){

digitalWrite(ledblu,1);

}

else{

digitalWrite(ledblu,0);

}

}

In quali condizioni si accende il LED rosso?

a)
  • (a) Se il valore del sensore è maggiore di 30.

b)

(b) Se il valore del sensore è minore o uguale a -20.

c)
  • (c) Se il valore del sensore è compreso tra 20 e 358.

d)
  • (d) Sempre.

34.

int sensorValue = 0;

int ledrosso = 6;

int ledblu = 7;

int stato = 0;

void setup()

{

pinMode(A0, INPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

Serial.begin(9600);

}

void loop()

{

sensorValue = analogRead(A0);

sensorValue=map(sensorValue,20,358,-40,125);

Serial.println(sensorValue);

delay(10);

if(sensorValue <= -20){

digitalWrite(ledrosso,1);

}

else{

digitalWrite(ledrosso,0);

}

if(sensorValue >= 30){

digitalWrite(ledblu,1);

}

else{

digitalWrite(ledblu,0);

}

}

Cosa succede se il valore del sensore è compreso tra -20 e 30?

a)
  • (a) Entrambi i LED si accendono.

b)

(b) Entrambi i LED si spengono.

c)
  • (c) Si accende il LED rosso e si lampeggia il LED blu.

d)
  • (d) Si accende il LED blu e si lampeggia il LED rosso.

35.

int sensorValue = 0;

int ledrosso = 6;

int ledblu = 7;

int stato = 0;

void setup()

{

pinMode(A0, INPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

Serial.begin(9600);

}

void loop()

{

sensorValue = analogRead(A0);

sensorValue=map(sensorValue,20,358,-40,125);

Serial.println(sensorValue);

delay(10);

if(sensorValue <= -20){

digitalWrite(ledrosso,1);

}

else{

digitalWrite(ledrosso,0);

}

if(sensorValue >= 30){

digitalWrite(ledblu,1);

}

else{

digitalWrite(ledblu,0);

}

}

Perché la funzione map() viene utilizzata in questo codice?

a)
  • (a) Per convertire i valori analogici in valori digitali.

b)

(b) Per rimappare il valore del sensore in un intervallo specifico.

c)
  • (c) Per calibrare il sensore.

d)
  • (d) Per aumentare la precisione delle misurazioni.

36.
  1. #define SERVO9 9

  2. #define PULS4 4

    #include <Servo.h>

    int angolo9=60;

    int angolo10=90;// ampliamento futura

    int angolo11=45;// ampliamento futuro

    Servo myservo9;

    Servo myservo10;// ampliamento futuro

    Servo myservo11;//ampliamento futuro

    int scelta=0;

    bool condizione=0; //consenso per servo11

    #define BASE_TEMPO 10

    void setup()

    {

    myservo9.attach(SERVO9);

    myservo9.write(angolo9);

    pinMode(PULS4, INPUT_PULLUP);

    Serial.begin(9600);

    }

    void loop()

    {

    if(digitalRead(PULS4)==0)

    {angolo9++;

    myservo9.write(angolo9);

    }

    }


    A cosa serve la costante SERVO9?

https://www.tinkercad.com/things/4E7x0I9opd1-modello?sharecode=x6-deHE9FUlDCSCkEqFk0SS9Sl9kwugKhEz_USkmwgM

a)
  • (a) A definire il numero del pin a cui è collegato il LED.

b)

(b) A definire il numero del pin a cui è collegato il primo servomotore.

c)
  • (c) A impostare il pin PULS4 come input.

d)
  • (d) A controllare la velocità di rotazione dei servomotori.

37.

  1. #define SERVO9 9

  2. #define PULS4 4

    #include <Servo.h>

    int angolo9=60;

    int angolo10=90;// ampliamento futura

    int angolo11=45;// ampliamento futuro

    Servo myservo9;

    Servo myservo10;// ampliamento futuro

    Servo myservo11;//ampliamento futuro

    int scelta=0;

    bool condizione=0; //consenso per servo11

    #define BASE_TEMPO 10

    void setup()

    {

    myservo9.attach(SERVO9);

    myservo9.write(angolo9);

    pinMode(PULS4, INPUT_PULLUP);

    Serial.begin(9600);

    }

    void loop()

    {

    if(digitalRead(PULS4)==0)

    {angolo9++;

    myservo9.write(angolo9);

    }

    }

  3. Qual è la posizione iniziale del servomotore?

  4. https://www.tinkercad.com/things/4E7x0I9opd1-modello?sharecode=x6-deHE9FUlDCSCkEqFk0SS9Sl9kwugKhEz_USkmwgM

a)
  • (a) 0 gradi

b)
  • (b) 45 gradi

c)
  • (c) 60 gradi

d)
  • (d) 180 gradi

38.

  1. #define SERVO9 9

  2. #define PULS4 4

    #include <Servo.h>

    int angolo9=60;

    int angolo10=90;// ampliamento futura

    int angolo11=45;// ampliamento futuro

    Servo myservo9;

    Servo myservo10;// ampliamento futuro

    Servo myservo11;//ampliamento futuro

    int scelta=0;

    bool condizione=0; //consenso per servo11

    #define BASE_TEMPO 10

    void setup()

    {

    myservo9.attach(SERVO9);

    myservo9.write(angolo9);

    pinMode(PULS4, INPUT_PULLUP);

    Serial.begin(9600);

    }

    void loop()

    {

    if(digitalRead(PULS4)==0)

    {angolo9++;

    myservo9.write(angolo9);

    }

    }

  3. A cosa serve il pulsante PULS4?

  4. https://www.tinkercad.com/things/4E7x0I9opd1-modello?sharecode=x6-deHE9FUlDCSCkEqFk0SS9Sl9kwugKhEz_USkmwgM

a)
  • (a) Per accendere il LED.

b)

(b) Per far ruotare il servomotore in senso orario.

c)
  • (c) Per far ruotare il servomotore in senso antiorario.

d)
  • (d) Per registrare i valori del sensore su un file.

39.

#define SERVO9 9

#define PULS4 4

#include <Servo.h>

int angolo9=45;

int angolo10=90;// ampliamento futura

int angolo11=45;// ampliamento futuro

int scelta=0;

Servo myservo9; // dichiarazione del serrvo su pin 9

Servo myservo10;// ampliamento futuro

Servo myservo11;//ampliamento futuro

int stato=0;

bool condizione=0;

#define BASE_TEMPO 10

void setup()

{

//myservo.attach(9); // Associa il servo al pin 9

myservo9.attach(SERVO9); // Associa il servo al pin 9

pinMode(PULS4, INPUT_PULLUP);

Serial.begin(9600);

}

void loop()

{

switch(scelta){

case 0://attende un comando

myservo9.write(angolo9);

Serial.println("scelta=0 sto aspettando un comando ");

if(digitalRead(PULS4)==0){scelta=1;}

myservo9.write(angolo9);

break;

case 1:

Serial.println("scelta=1 ");

if(digitalRead(PULS4)==0 && angolo9<180){angolo9++;

myservo9.write(angolo9); }

if (digitalRead(PULS4)==1){ scelta=0;stato=1;angolo9=0;}

if(angolo9>= 180) scelta=2;

break;

case 2:

Serial.println("scelta=2 ");

myservo9.write(angolo9);

if(digitalRead(PULS4)==1) {stato=0;scelta=3;

break;}

case 3:

Serial.println("scelta=3 ");

if(digitalRead(PULS4)==1){angolo9=60;}

if(digitalRead(PULS4)==0)scelta=0;break;

}

}

Qual è la posizione iniziale del servomotore?

https://www.tinkercad.com/things/fAMFyEm05DC-statopulsantedidatt?sharecode=6SWBdXzAkPoTXYyFTxbWoXWUIJcOVqF7F6iz7fFn3aI

a)
  • (a) 0 gradi

b)

(b) 45 gradi

c)
  • (c) 60 gradi

d)
  • (d) 90 gradi

40.

#define SERVO9 9

#define PULS4 4

#include <Servo.h>

int angolo9=45;

int angolo10=90;// ampliamento futura

int angolo11=45;// ampliamento futuro

int scelta=0;

Servo myservo9; // dichiarazione del serrvo su pin 9

Servo myservo10;// ampliamento futuro

Servo myservo11;//ampliamento futuro

int stato=0;

bool condizione=0;

#define BASE_TEMPO 10

void setup()

{

//myservo.attach(9); // Associa il servo al pin 9

myservo9.attach(SERVO9); // Associa il servo al pin 9

pinMode(PULS4, INPUT_PULLUP);

Serial.begin(9600);

}

void loop()

{

switch(scelta){

case 0://attende un comando

myservo9.write(angolo9);

Serial.println("scelta=0 sto aspettando un comando ");

if(digitalRead(PULS4)==0){scelta=1;}

myservo9.write(angolo9);

break;

case 1:

Serial.println("scelta=1 ");

if(digitalRead(PULS4)==0 && angolo9<180){angolo9++;

myservo9.write(angolo9); }

if (digitalRead(PULS4)==1){ scelta=0;stato=1;angolo9=0;}

if(angolo9>= 180) scelta=2;

break;

case 2:

Serial.println("scelta=2 ");

myservo9.write(angolo9);

if(digitalRead(PULS4)==1) {stato=0;scelta=3;

break;}

case 3:

Serial.println("scelta=3 ");

if(digitalRead(PULS4)==1){angolo9=60;}

if(digitalRead(PULS4)==0)scelta=0;break;

}

}

Cosa fa il codice quando viene premuto il pulsante PULS4 in stato 0 (scelta=0)?

a)
  • (a) Fa ruotare il servomotore in senso antiorario.

b)

(b) Inizia la rotazione del servomotore in senso antiorario fino a 180 gradi.

c)
  • (c) Non fa nulla.

d)
  • (d) Aumenta la velocità di rotazione del servomotore.


41.

#define SERVO9 9

#define PULS4 4

#include <Servo.h>

int angolo9=45;

int angolo10=90;// ampliamento futura

int angolo11=45;// ampliamento futuro

int scelta=0;

Servo myservo9; // dichiarazione del serrvo su pin 9

Servo myservo10;// ampliamento futuro

Servo myservo11;//ampliamento futuro

int stato=0;

bool condizione=0;

#define BASE_TEMPO 10

void setup()

{

//myservo.attach(9); // Associa il servo al pin 9

myservo9.attach(SERVO9); // Associa il servo al pin 9

pinMode(PULS4, INPUT_PULLUP);

Serial.begin(9600);

}

void loop()

{

switch(scelta){

case 0://attende un comando

myservo9.write(angolo9);

Serial.println("scelta=0 sto aspettando un comando ");

if(digitalRead(PULS4)==0){scelta=1;}

myservo9.write(angolo9);

break;

case 1:

Serial.println("scelta=1 ");

if(digitalRead(PULS4)==0 && angolo9<180){angolo9++;

myservo9.write(angolo9); }

if (digitalRead(PULS4)==1){ scelta=0;stato=1;angolo9=0;}

if(angolo9>= 180) scelta=2;

break;

case 2:

Serial.println("scelta=2 ");

myservo9.write(angolo9);

if(digitalRead(PULS4)==1) {stato=0;scelta=3;

break;}

case 3:

Serial.println("scelta=3 ");

if(digitalRead(PULS4)==1){angolo9=60;}

if(digitalRead(PULS4)==0)scelta=0;break;

}

}

Qual è la condizione che fa sì che il servo motore 9 si muova alla massima posizione (180 gradi)?

https://www.tinkercad.com/things/4E7x0I9opd1-modello?sharecode=x6-deHE9FUlDCSCkEqFk0SS9Sl9kwugKhEz_USkmwgM

a)
  • (a) Il pulsante è premuto e angolo9 è inferiore a 180 gradi.

b)

(b) Il pulsante è rilasciato e stato è uguale a 1.

c)

(c) Il pulsante è premuto e scelta è uguale a 2.

d)

(d) Il pulsante è rilasciato e angolo9 è uguale a 60 gradi.

42.

#define SERVO9 9         

#define PULS4 4 

#include <Servo.h>   

int angolo9=60; 

int angolo10=90; 

int angolo11=45; 

int scelta=0;

Servo myservo9;   

Servo myservo10;  

Servo myservo11; 

int stato=0;

bool condizione=0;    

void setup()

{          

myservo9.attach(SERVO9); 

        pinMode(PULS4, INPUT_PULLUP);  

 Serial.begin(9600); 

}

void loop()

{   

switch(scelta){   

case 0:     myservo9.write(angolo9);    

Serial.println("scelta=0 sto aspettando un comando ");   

 if(digitalRead(PULS4)==0){scelta=1;}                                     

myservo9.write(angolo9);                                                                             

 break;

case 1:    

Serial.println("scelta=1   ");    

if(digitalRead(PULS4)==0 && angolo9<180)

{angolo9++;                              

myservo9.write(angolo9); }    

if (digitalRead(PULS4)==1){ scelta=0;stato=1;angolo9=0;}    

if(angolo9>= 180) scelta=2;

break;     

case 2:    

Serial.println("scelta=2   ");    

myservo9.write(angolo9);    

if(digitalRead(PULS4)==1) {stato=0;scelta=3;                               

break;}    

case 3:    

Serial.println("scelta=3   ");   

 if(digitalRead(PULS4)==1){angolo9=60;}   

 if(digitalRead(PULS4)==0)scelta=0;

break;  }

}

In quale stato del programma il servo motore 9 si muove nella direzione di incremento della posizione?

https://www.tinkercad.com/things/4E7x0I9opd1-modello?sharecode=x6-deHE9FUlDCSCkEqFk0SS9Sl9kwugKhEz_USkmwgM

a)

(a) scelta = 0 (attesa comando)

b)

(b) scelta = 1 (movimento servo)

c)

(c) scelta = 2 (mantenimento posizione)

d)

(d) scelta = 3 (ripristino posizione iniziale)

43.

#define SERVO9 9         

#define PULS4 4 

#include <Servo.h>   

int angolo9=60; 

int angolo10=90; 

int angolo11=45; 

int scelta=0;

Servo myservo9;   

Servo myservo10;  

Servo myservo11; 

int stato=0;

bool condizione=0;    

void setup()

{          

myservo9.attach(SERVO9); 

        pinMode(PULS4, INPUT_PULLUP);  

 Serial.begin(9600); 

}

void loop()

{   

switch(scelta){   

case 0:     myservo9.write(angolo9);    

Serial.println("scelta=0 sto aspettando un comando ");   

 if(digitalRead(PULS4)==0){scelta=1;}                                     

myservo9.write(angolo9);                                                                             

 break;

case 1:    

Serial.println("scelta=1   ");    

if(digitalRead(PULS4)==0 && angolo9<180)

{angolo9++;                              

myservo9.write(angolo9); }    

if (digitalRead(PULS4)==1){ scelta=0;stato=1;angolo9=0;}    

if(angolo9>= 180) scelta=2;

break;     

case 2:    

Serial.println("scelta=2   ");    

myservo9.write(angolo9);    

if(digitalRead(PULS4)==1) {stato=0;scelta=3;                               

break;}    

case 3:    

Serial.println("scelta=3   ");   

 if(digitalRead(PULS4)==1){angolo9=60;}   

 if(digitalRead(PULS4)==0)scelta=0;

break;  }

}

Quale funzione viene utilizzata per controllare il servo motore 9?

https://www.tinkercad.com/things/4E7x0I9opd1-modello?sharecode=x6-deHE9FUlDCSCkEqFk0SS9Sl9kwugKhEz_USkmwgM

a)

(a) pinMode()

b)

(b) setup()

c)

(c) loop()

d)

(d) myservo9.write()

44.

#define SERVO9 9         

#define PULS4 4 

#include <Servo.h>   

int angolo9=60; 

int angolo10=90; 

int angolo11=45; 

int scelta=0;

Servo myservo9;   

Servo myservo10;  

Servo myservo11; 

int stato=0;

bool condizione=0;    

void setup()

{          

myservo9.attach(SERVO9); 

        pinMode(PULS4, INPUT_PULLUP);  

 Serial.begin(9600); 

}

void loop()

{   

switch(scelta){   

case 0:    

 myservo9.write(angolo9);    

Serial.println("scelta=0 sto aspettando un comando ");   

 if(digitalRead(PULS4)==0){scelta=1;}                                      myservo9.write(angolo9);                                                                             

 break;

case 1:    

Serial.println("scelta=1   ");    

if(digitalRead(PULS4)==0 && angolo9<180)

{angolo9++;                              

myservo9.write(angolo9); }    

if (digitalRead(PULS4)==1){ scelta=0;stato=1;angolo9=0;}    

if(angolo9>= 180) scelta=2;

break;     

case 2:    

Serial.println("scelta=2   ");    

myservo9.write(angolo9);    

if(digitalRead(PULS4)==1) {stato=0;scelta=3;                               

break;}    

case 3:    

Serial.println("scelta=3   ");   

 if(digitalRead(PULS4)==1){angolo9=60;}   

 if(digitalRead(PULS4)==0)scelta=0;

break;  }

}

Quale variabile viene utilizzata per memorizzare la posizione attuale del servo motore 9?

https://www.tinkercad.com/things/4E7x0I9opd1-modello?sharecode=x6-deHE9FUlDCSCkEqFk0SS9Sl9kwugKhEz_USkmwgM

a)

(a) SERVO9

b)

(b) angolo9

c)

(c) myservo9

d)

(d) scelta

45.

#define SERVO9 9         

#define PULS4 4 

#include <Servo.h>   

int angolo9=60; 

int angolo10=90; 

int angolo11=45; 

int scelta=0;

Servo myservo9;   

Servo myservo10;  

Servo myservo11; 

int stato=0;

bool condizione=0;    

void setup()

{          

myservo9.attach(SERVO9); 

        pinMode(PULS4, INPUT_PULLUP);  

 Serial.begin(9600); 

}

void loop()

{   

switch(scelta){   

case 0:    

 myservo9.write(angolo9);    

Serial.println("scelta=0 sto aspettando un comando ");   

 if(digitalRead(PULS4)==0){scelta=1;}                                      myservo9.write(angolo9);                                                                             

 break;

case 1:    

Serial.println("scelta=1   ");    

if(digitalRead(PULS4)==0 && angolo9<180)

{angolo9++;                              

myservo9.write(angolo9); }    

if (digitalRead(PULS4)==1){ scelta=0;stato=1;angolo9=0;}    

if(angolo9>= 180) scelta=2;

break;     

case 2:    

Serial.println("scelta=2   ");    

myservo9.write(angolo9);    

if(digitalRead(PULS4)==1) {stato=0;scelta=3;                               

break;}    

case 3:    

Serial.println("scelta=3   ");   

 if(digitalRead(PULS4)==1){angolo9=60;}   

 if(digitalRead(PULS4)==0)scelta=0;

break;  }

}

  1. Cosa fa il servo motore 9 quando il pulsante viene rilasciato nello stato scelta = 1 (movimento servo)?

https://www.tinkercad.com/things/4E7x0I9opd1-modello?sharecode=x6-deHE9FUlDCSCkEqFk0SS9Sl9kwugKhEz_USkmwgM

a)

(a) Si muove alla massima posizione (180 gradi).

b)

(b) Mantiene la sua posizione attuale.

c)

(c) Si muove alla posizione iniziale (60 gradi).

d)

(d) Passa allo stato scelta = 0 (attesa comando).

46.

#define SERVO9 9         

#define PULS4 4 

#include <Servo.h>   

int angolo9=60; 

int angolo10=90; 

int angolo11=45; 

int scelta=0;

Servo myservo9;   

Servo myservo10;  

Servo myservo11; 

int stato=0;

bool condizione=0;    

void setup()

{          

myservo9.attach(SERVO9); 

        pinMode(PULS4, INPUT_PULLUP);  

 Serial.begin(9600); 

}

void loop()

{   

switch(scelta){   

case 0:    

 myservo9.write(angolo9);    

Serial.println("scelta=0 sto aspettando un comando ");   

 if(digitalRead(PULS4)==0){scelta=1;}                                      myservo9.write(angolo9);                                                                             

 break;

case 1:    

Serial.println("scelta=1   ");    

if(digitalRead(PULS4)==0 && angolo9<180)

{angolo9++;                              

myservo9.write(angolo9); }    

if (digitalRead(PULS4)==1){ scelta=0;stato=1;angolo9=0;}    

if(angolo9>= 180) scelta=2;

break;     

case 2:    

Serial.println("scelta=2   ");    

myservo9.write(angolo9);    

if(digitalRead(PULS4)==1) {stato=0;scelta=3;                               

break;}    

case 3:    

Serial.println("scelta=3   ");   

 if(digitalRead(PULS4)==1){angolo9=60;}   

 if(digitalRead(PULS4)==0)scelta=0;

break;  }

}

  1. A cosa serve la variabile stato?

https://www.tinkercad.com/things/4E7x0I9opd1-modello?sharecode=x6-deHE9FUlDCSCkEqFk0SS9Sl9kwugKhEz_USkmwgM

a)

(a) Memorizza lo stato attuale del pulsante (premuto o rilasciato almeno una volta)

b)

(b) Memorizza la posizione precedente del servo motore 9.

c)

(c) Controlla la velocità del servo motore 9.

d)

(d) Non è utilizzata nel programma.

47.

#define SERVO9 9         

#define PULS4 4 

#include <Servo.h>   

int angolo9=60; 

int angolo10=90; 

int angolo11=45; 

int scelta=0;

Servo myservo9;   

Servo myservo10;  

Servo myservo11; 

int stato=0;

bool condizione=0;    

void setup()

{          

myservo9.attach(SERVO9); 

        pinMode(PULS4, INPUT_PULLUP);  

 Serial.begin(9600); 

}

void loop()

{   

switch(scelta){   

case 0:    

 myservo9.write(angolo9);    

Serial.println("scelta=0 sto aspettando un comando ");   

 if(digitalRead(PULS4)==0){scelta=1;}                                      myservo9.write(angolo9);                                                                             

 break;

case 1:    

Serial.println("scelta=1   ");    

if(digitalRead(PULS4)==0 && angolo9<180)

{angolo9++;                              

myservo9.write(angolo9); }    

if (digitalRead(PULS4)==1){ scelta=0;stato=1;angolo9=0;}    

if(angolo9>= 180) scelta=2;

break;     

case 2:    

Serial.println("scelta=2   ");    

myservo9.write(angolo9);    

if(digitalRead(PULS4)==1) {stato=0;scelta=3;                               

break;}    

case 3:    

Serial.println("scelta=3   ");   

 if(digitalRead(PULS4)==1){angolo9=60;}   

 if(digitalRead(PULS4)==0)scelta=0;

break;  }

}

  1. Cosa fa la funzione setup()?

https://www.tinkercad.com/things/4E7x0I9opd1-modello?sharecode=x6-deHE9FUlDCSCkEqFk0SS9Sl9kwugKhEz_USkmwgM

a)

(a) Controlla il movimento del servo motore 9.

b)

(b) Inizializza la comunicazione seriale e configura il pin del pulsante.

c)

(c) Definisce le variabili globali del programma.

d)

(d) Esegue un ciclo infinito di istruzioni.

e)

e) non è utilizzata nel programma

48.

// C++ code

//

// Definizione dei pin per i dispositivi

#define frullatore 2

#define mescolatore 3

#define impastatore 4

#define motore 11

int velocitaMassima = 255;

void setup() {

// Imposta i pin come input o output

pinMode(frullatore, INPUT);

pinMode(mescolatore, INPUT);

pinMode(impastatore, INPUT);

pinMode(motore, OUTPUT);

// Inizializza la comunicazione seriale per debug

Serial.begin(9600);

}

void loop() {

// Verifica se il frullatore è attivo

if (digitalRead(frullatore) == HIGH) {

Serial.println("Frullare in corso...");

frullare(); // Chiama la funzione per frullare

}

// Verifica se il mescolatore è attivo

if (digitalRead(mescolatore) == HIGH) {

Serial.println("Mescolare in corso...");

mescolare(); // Chiama la funzione per mescolare

}

// Verifica se l'impastatore è attivo

if (digitalRead(impastatore) == HIGH) {

Serial.println("Impastare in corso...");

impastare(); // Chiama la funzione per impastare

}

}

// Funzione per eseguire l'operazione di frullare

void frullare() {

analogWrite(motore, 0);

// Aumenta gradualmente la velocità del motore

for (int i = 0; i <= velocitaMassima; i++) {

analogWrite(motore, i);

delay(2000 / 255);

}

// Attendi che il frullatore sia ancora attivo

while (digitalRead(frullatore) == HIGH) {

// Attesa

}

analogWrite(motore, 0);

Serial.println("Frullare completato.");

}

// Funzione per eseguire l'operazione di mescolare

void mescolare() {

analogWrite(motore, 0);

// Aumenta gradualmente la velocità del motore (30% della velocità massima)

for (int i = 0; i <= velocitaMassima * 0.3; i++) {

analogWrite(motore, i);

delay(9000 / 255);

}

// Attendi che il mescolatore sia ancora attivo

while (digitalRead(mescolatore) == HIGH) {

// Attesa

}

analogWrite(motore, 0);

Serial.println("Mescolare completato.");

}

// Funzione per eseguire l'operazione di impastare

void impastare() {

// Ripeti l'operazione di impastare per 5 cicli

for (int j = 0; j < 5; j++) {

analogWrite(motore, 0);

// Aumenta gradualmente la velocità del motore (20% della velocità massima)

for (int i = 0; i <= velocitaMassima * 0.2; i++) {

analogWrite(motore, i);

delay(8000 / 255);

}

delay(1000); // Attendi 1 secondo

// Riduci gradualmente la velocità del motore

for (int i = velocitaMassima * 0.2; i >= 0; i--) {

analogWrite(motore, i);

delay(8000 / 255);

}

analogWrite(motore, 0);

Serial.println("Impastare completato.");

if (j < 4) {

delay(1000); // Attendi 1 secondo tra i cicli

}

}

}

Quale percentuale della velocità massima viene utilizzata per la funzione di mescolare?

https://www.tinkercad.com/things/fZGDZUrmssR-copy-of-recupero-verifica-2?sharecode=moaCOUofp-CC_JwLDlIvOGUoBYvIiN5gMLc93QbPwe0

a)

(a) 100%

b)

(b) 50%

c)

(c) 30%

d)

(d) 20%

49.

// C++ code

//

// Definizione dei pin per i dispositivi

#define frullatore 2

#define mescolatore 3

#define impastatore 4

#define motore 11

int velocitaMassima = 255;

void setup() {

// Imposta i pin come input o output

pinMode(frullatore, INPUT);

pinMode(mescolatore, INPUT);

pinMode(impastatore, INPUT);

pinMode(motore, OUTPUT);

// Inizializza la comunicazione seriale per debug

Serial.begin(9600);

}

void loop() {

// Verifica se il frullatore è attivo

if (digitalRead(frullatore) == HIGH) {

Serial.println("Frullare in corso...");

frullare(); // Chiama la funzione per frullare

}

// Verifica se il mescolatore è attivo

if (digitalRead(mescolatore) == HIGH) {

Serial.println("Mescolare in corso...");

mescolare(); // Chiama la funzione per mescolare

}

// Verifica se l'impastatore è attivo

if (digitalRead(impastatore) == HIGH) {

Serial.println("Impastare in corso...");

impastare(); // Chiama la funzione per impastare

}

}

// Funzione per eseguire l'operazione di frullare

void frullare() {

analogWrite(motore, 0);

// Aumenta gradualmente la velocità del motore

for (int i = 0; i <= velocitaMassima; i++) {

analogWrite(motore, i);

delay(2000 / 255);

}

// Attendi che il frullatore sia ancora attivo

while (digitalRead(frullatore) == HIGH) {

// Attesa

}

analogWrite(motore, 0);

Serial.println("Frullare completato.");

}

// Funzione per eseguire l'operazione di mescolare

void mescolare() {

analogWrite(motore, 0);

// Aumenta gradualmente la velocità del motore (30% della velocità massima)

for (int i = 0; i <= velocitaMassima * 0.3; i++) {

analogWrite(motore, i);

delay(9000 / 255);

}

// Attendi che il mescolatore sia ancora attivo

while (digitalRead(mescolatore) == HIGH) {

// Attesa

}

analogWrite(motore, 0);

Serial.println("Mescolare completato.");

}

// Funzione per eseguire l'operazione di impastare

void impastare() {

// Ripeti l'operazione di impastare per 5 cicli

for (int j = 0; j < 5; j++) {

analogWrite(motore, 0);

// Aumenta gradualmente la velocità del motore (20% della velocità massima)

for (int i = 0; i <= velocitaMassima * 0.2; i++) {

analogWrite(motore, i);

delay(8000 / 255);

}

delay(1000); // Attendi 1 secondo

// Riduci gradualmente la velocità del motore

for (int i = velocitaMassima * 0.2; i >= 0; i--) {

analogWrite(motore, i);

delay(8000 / 255);

}

analogWrite(motore, 0);

Serial.println("Impastare completato.");

if (j < 4) {

delay(1000); // Attendi 1 secondo tra i cicli

}

}

}

Quante volte viene ripetuto il ciclo di aumento e diminuzione della velocità del motore durante la funzione di impastare?

https://www.tinkercad.com/things/fZGDZUrmssR-copy-of-recupero-verifica-2?sharecode=moaCOUofp-CC_JwLDlIvOGUoBYvIiN5gMLc93QbPwe0

a)

(a) 1

b)

(b) 3

c)

(c) 5

d)

(d) 4

50.

// C++ code

//

// Definizione dei pin per i dispositivi

#define frullatore 2

#define mescolatore 3

#define impastatore 4

#define motore 11

int velocitaMassima = 255;

void setup() {

// Imposta i pin come input o output

pinMode(frullatore, INPUT);

pinMode(mescolatore, INPUT);

pinMode(impastatore, INPUT);

pinMode(motore, OUTPUT);

// Inizializza la comunicazione seriale per debug

Serial.begin(9600);

}

void loop() {

// Verifica se il frullatore è attivo

if (digitalRead(frullatore) == HIGH) {

Serial.println("Frullare in corso...");

frullare(); // Chiama la funzione per frullare

}

// Verifica se il mescolatore è attivo

if (digitalRead(mescolatore) == HIGH) {

Serial.println("Mescolare in corso...");

mescolare(); // Chiama la funzione per mescolare

}

// Verifica se l'impastatore è attivo

if (digitalRead(impastatore) == HIGH) {

Serial.println("Impastare in corso...");

impastare(); // Chiama la funzione per impastare

}

}

// Funzione per eseguire l'operazione di frullare

void frullare() {

analogWrite(motore, 0);

// Aumenta gradualmente la velocità del motore

for (int i = 0; i <= velocitaMassima; i++) {

analogWrite(motore, i);

delay(2000 / 255);

}

// Attendi che il frullatore sia ancora attivo

while (digitalRead(frullatore) == HIGH) {

// Attesa

}

analogWrite(motore, 0);

Serial.println("Frullare completato.");

}

// Funzione per eseguire l'operazione di mescolare

void mescolare() {

analogWrite(motore, 0);

// Aumenta gradualmente la velocità del motore (30% della velocità massima)

for (int i = 0; i <= velocitaMassima * 0.3; i++) {

analogWrite(motore, i);

delay(9000 / 255);

}

// Attendi che il mescolatore sia ancora attivo

while (digitalRead(mescolatore) == HIGH) {

// Attesa

}

analogWrite(motore, 0);

Serial.println("Mescolare completato.");

}

// Funzione per eseguire l'operazione di impastare

void impastare() {

// Ripeti l'operazione di impastare per 5 cicli

for (int j = 0; j < 5; j++) {

analogWrite(motore, 0);

// Aumenta gradualmente la velocità del motore (20% della velocità massima)

for (int i = 0; i <= velocitaMassima * 0.2; i++) {

analogWrite(motore, i);

delay(8000 / 255);

}

delay(1000); // Attendi 1 secondo

// Riduci gradualmente la velocità del motore

for (int i = velocitaMassima * 0.2; i >= 0; i--) {

analogWrite(motore, i);

delay(8000 / 255);

}

analogWrite(motore, 0);

Serial.println("Impastare completato.");

if (j < 4) {

delay(1000); // Attendi 1 secondo tra i cicli

}

}

}

https://www.tinkercad.com/things/fZGDZUrmssR-copy-of-recupero-verifica-2?sharecode=moaCOUofp-CC_JwLDlIvOGUoBYvIiN5gMLc93QbPwe0

Cosa succede se si tiene premuto il pulsante del frullatore dopo che il processo di frullamento è terminato?

a)

(a) Il motore continua a frullare alla massima velocità.

b)

(b) Il motore si ferma e il programma attende il successivo comando.

c)

(c) Il motore inverte la direzione di rotazione.

d)

(d) Il programma si blocca.

51.

// C++ code

//

// Definizione dei pin per i dispositivi

#define frullatore 2

#define mescolatore 3

#define impastatore 4

#define motore 11

int velocitaMassima = 255;

void setup() {

// Imposta i pin come input o output

pinMode(frullatore, INPUT);

pinMode(mescolatore, INPUT);

pinMode(impastatore, INPUT);

pinMode(motore, OUTPUT);

// Inizializza la comunicazione seriale per debug

Serial.begin(9600);

}

void loop() {

// Verifica se il frullatore è attivo

if (digitalRead(frullatore) == HIGH) {

Serial.println("Frullare in corso...");

frullare(); // Chiama la funzione per frullare

}

// Verifica se il mescolatore è attivo

if (digitalRead(mescolatore) == HIGH) {

Serial.println("Mescolare in corso...");

mescolare(); // Chiama la funzione per mescolare

}

// Verifica se l'impastatore è attivo

if (digitalRead(impastatore) == HIGH) {

Serial.println("Impastare in corso...");

impastare(); // Chiama la funzione per impastare

}

}

// Funzione per eseguire l'operazione di frullare

void frullare() {

analogWrite(motore, 0);

// Aumenta gradualmente la velocità del motore

for (int i = 0; i <= velocitaMassima; i++) {

analogWrite(motore, i);

delay(2000 / 255);

}

// Attendi che il frullatore sia ancora attivo

while (digitalRead(frullatore) == HIGH) {

// Attesa

}

analogWrite(motore, 0);

Serial.println("Frullare completato.");

}

// Funzione per eseguire l'operazione di mescolare

void mescolare() {

analogWrite(motore, 0);

// Aumenta gradualmente la velocità del motore (30% della velocità massima)

for (int i = 0; i <= velocitaMassima * 0.3; i++) {

analogWrite(motore, i);

delay(9000 / 255);

}

// Attendi che il mescolatore sia ancora attivo

while (digitalRead(mescolatore) == HIGH) {

// Attesa

}

analogWrite(motore, 0);

Serial.println("Mescolare completato.");

}

// Funzione per eseguire l'operazione di impastare

void impastare() {

// Ripeti l'operazione di impastare per 5 cicli

for (int j = 0; j < 5; j++) {

analogWrite(motore, 0);

// Aumenta gradualmente la velocità del motore (20% della velocità massima)

for (int i = 0; i <= velocitaMassima * 0.2; i++) {

analogWrite(motore, i);

delay(8000 / 255);

}

delay(1000); // Attendi 1 secondo

// Riduci gradualmente la velocità del motore

for (int i = velocitaMassima * 0.2; i >= 0; i--) {

analogWrite(motore, i);

delay(8000 / 255);

}

analogWrite(motore, 0);

Serial.println("Impastare completato.");

if (j < 4) {

delay(1000); // Attendi 1 secondo tra i cicli

}

}

}

https://www.tinkercad.com/things/fZGDZUrmssR-copy-of-recupero-verifica-2?sharecode=moaCOUofp-CC_JwLDlIvOGUoBYvIiN5gMLc93QbPwe0

Qual è la funzione della variabile velocitaMassima?

a)

(a) Memorizza lo stato attuale del motore (acceso o spento).

b)

(b) Definisce la velocità massima di rotazione del motore.

c)

(c) Memorizza il numero di cicli di impastamento completati.

d)

(d) Controlla la direzione di rotazione del motore.

52.

const int Input1 = 2; // Comando 1 direzione rotazione diretta

const int Input2 = 3; // Comando 2 direzione rotazione inversa

int sensorValue = 0;

void setup() {

pinMode(Input1, OUTPUT); // Pin 2 output

pinMode(Input2, OUTPUT); // Pin 3 output

pinMode(A0, INPUT);

Serial.begin(9600);

}

void loop() {

// read the input on analog pin 0:

sensorValue = analogRead(A0);

Serial.println(sensorValue);

if(sensorValue>512){

digitalWrite(Input1, HIGH); // Rotazione in un verso

digitalWrite(Input2, LOW);}

else {

digitalWrite(Input1, LOW); // Rotazione verso opposto

digitalWrite(Input2, HIGH);

}

}

https://www.tinkercad.com/things/goL9KHheQsA-pilotaggiomotcc2?sharecode=0cxOt6BHfxwk4aDs05KKwZSZkGOdZK9LI1IFLfDbqZs

Qual è il compito del pin A0 nel codice fornito?

a)

A. Controllare la direzione di rotazione

b)

B. Leggere un valore di sensore

c)

C. Attivare un LED

d)

D. Eseguire un'operazione matematica

53.

const int Input1 = 2; // Comando 1 direzione rotazione diretta

const int Input2 = 3; // Comando 2 direzione rotazione inversa

int sensorValue = 0;

void setup() {

pinMode(Input1, OUTPUT); // Pin 2 output

pinMode(Input2, OUTPUT); // Pin 3 output

pinMode(A0, INPUT);

Serial.begin(9600);

}

void loop() {

// read the input on analog pin 0:

sensorValue = analogRead(A0);

Serial.println(sensorValue);

if(sensorValue>512){

digitalWrite(Input1, HIGH); // Rotazione in un verso

digitalWrite(Input2, LOW);}

else {

digitalWrite(Input1, LOW); // Rotazione verso opposto

digitalWrite(Input2, HIGH);

}

}

https://www.tinkercad.com/things/goL9KHheQsA-pilotaggiomotcc2?sharecode=0cxOt6BHfxwk4aDs05KKwZSZkGOdZK9LI1IFLfDbqZs

Cosa fa l'istruzione Serial.begin(9600) nel setup?

a)

A. Attiva il sensore di temperatura

b)

B. Apre la porta seriale ed imposta la velocità di trasmissione (baud rate) seriale

c)

C. Definisce una variabile di tipo seriale

d)

D. Imposta la velocità di rotazione del motore

54.

const int Input1 = 2; // Comando 1 direzione rotazione diretta

const int Input2 = 3; // Comando 2 direzione rotazione inversa

int sensorValue = 0;

void setup() {

pinMode(Input1, OUTPUT); // Pin 2 output

pinMode(Input2, OUTPUT); // Pin 3 output

pinMode(A0, INPUT);

Serial.begin(9600);

}

void loop() {

// read the input on analog pin 0:

sensorValue = analogRead(A0);

Serial.println(sensorValue);

if(sensorValue>512){

digitalWrite(Input1, HIGH); // Rotazione in verso anti orario

digitalWrite(Input2, LOW);}

else {

digitalWrite(Input1, LOW); // Rotazione verso orario

digitalWrite(Input2, HIGH);

}

}

https://www.tinkercad.com/things/goL9KHheQsA-pilotaggiomotcc2?sharecode=0cxOt6BHfxwk4aDs05KKwZSZkGOdZK9LI1IFLfDbqZs

Cosa succede se il valore del sensore è superiore a 512?

a)

A. Il motore ruota in verso orario

b)

B. Il motore si ferma

c)

C. Il motore ruota in verso antiorario

d)

D. Il sensore si disattiva

55.

const int Input1 = 2; // Comando 1 direzione rotazione diretta

const int Input2 = 3; // Comando 2 direzione rotazione inversa

int sensorValue = 0;

void setup() {

pinMode(Input1, OUTPUT); // Pin 2 output

pinMode(Input2, OUTPUT); // Pin 3 output

pinMode(A0, INPUT);

Serial.begin(9600);

}

void loop() {

// Leggi il valore dal potenziometro collegato al pin analogico A0:

sensorValue = analogRead(A0);

Serial.println(sensorValue);

// Mappa il valore letto (0-1023) a un intervallo di velocità (ad esempio, 0-255):

int speed = map(sensorValue, 0, 1023, 0, 255);

// Imposta la velocità del motore utilizzando PWM:

analogWrite(Input1, speed);

analogWrite(Input2, speed);

}

https://www.tinkercad.com/things/b1nJdWtFR4K-pilotaggiomotcc3?sharecode=5tpHnMT74yIAKBUyfuqS6vwiCD0q468fSbILDJLDDdI

In che modo la funzione map() viene utilizzata in questo codice?

a)

(a) Per convertire un valore analogico in un valore digitale

b)

(b) Per mappare un valore da un intervallo a un altro

c)

(c) Per generare un segnale PWM

d)

(d) Per leggere un valore da un pin digitale

56.

const int Input1 = 2; // Comando 1 direzione rotazione diretta

const int Input2 = 3; // Comando 2 direzione rotazione inversa

int sensorValue = 0;

void setup() {

pinMode(Input1, OUTPUT); // Pin 2 output

pinMode(Input2, OUTPUT); // Pin 3 output

pinMode(A0, INPUT);

Serial.begin(9600);

}

void loop() {

// Leggi il valore dal potenziometro collegato al pin analogico A0:

sensorValue = analogRead(A0);

Serial.println(sensorValue);

// Mappa il valore letto (0-1023) a un intervallo di velocità (ad esempio, 0-255):

int speed = map(sensorValue, 0, 1023, 0, 255);

// Imposta la velocità del motore utilizzando PWM:

analogWrite(Input1, speed);

analogWrite(Input2, speed);

}

https://www.tinkercad.com/things/b1nJdWtFR4K-pilotaggiomotcc3?sharecode=5tpHnMT74yIAKBUyfuqS6vwiCD0q468fSbILDJLDDdI

Cosa fa la funzione analogWrite(Input1, speed);?

riflettere sulle risposte che aggiungono informazioni

a)

(a) Imposta la velocità del motore collegato al pin Input1

b)

(b) Legge il valore dal pin Input1

c)

(c) Inverte la direzione del motore collegato al pin Input1

d)

(d) Fa lo stesso di analogWrite(Input2, speed);

57.

const int Input1 = 2; // Comando 1 direzione rotazione diretta

const int Input2 = 3; // Comando 2 direzione rotazione inversa

int sensorValue = 0;

void setup() {

pinMode(Input1, OUTPUT); // Pin 2 output

pinMode(Input2, OUTPUT); // Pin 3 output

pinMode(A0, INPUT);

Serial.begin(9600);

}

void loop() {

// Leggi il valore dal potenziometro collegato al pin analogico A0:

sensorValue = analogRead(A0);

Serial.println(sensorValue);

// Mappa il valore letto (0-1023) a un intervallo di velocità (ad esempio, 0-255):

int speed = map(sensorValue, 0, 1023, 0, 255);

// Imposta la velocità del motore utilizzando PWM:

analogWrite(Input1, speed);

analogWrite(Input2, speed);

}

https://www.tinkercad.com/things/b1nJdWtFR4K-pilotaggiomotcc3?sharecode=5tpHnMT74yIAKBUyfuqS6vwiCD0q468fSbILDJLDDdI

Cosa succede al motore se il valore sensorValue è 0?

a)

(a) Ruota alla massima velocità

b)

(b) Ruota alla minima velocità1

c)

(c) Non ruota

d)

(d) Inverte la direzione

58.

const int Input1 = 2; // Comando 1 direzione rotazione diretta

const int Input2 = 3; // Comando 2 direzione rotazione inversa

int sensorValue = 0;

void setup() {

pinMode(Input1, OUTPUT); // Pin 2 output

pinMode(Input2, OUTPUT); // Pin 3 output

pinMode(A0, INPUT);

Serial.begin(9600);

}

void loop() {

// Leggi il valore dal potenziometro collegato al pin analogico A0:

sensorValue = analogRead(A0);

Serial.println(sensorValue);

// Mappa il valore letto (0-1023) a un intervallo di velocità (ad esempio, 0-255):

int speed = map(sensorValue, 0, 1023, 0, 255);

// Imposta la velocità del motore utilizzando PWM:

analogWrite(Input1, speed);

analogWrite(Input2, speed);

}

https://www.tinkercad.com/things/b1nJdWtFR4K-pilotaggiomotcc3?sharecode=5tpHnMT74yIAKBUyfuqS6vwiCD0q468fSbILDJLDDdI

Descrivi il concetto di Duty cycle applicato in questo programma

Duty cycle - Wikipedia

4 lines
59.

esempio di utilizzo di una funzione

#define TEMPO 250

void setup() {

pinMode(LED_BUILTIN, OUTPUT);

}

void loop() {

// chiamiamo la funzione lampeggia passando il valore

// specificato all'interno delle parentesi tonde

lampeggia(TEMPO);

}

// blink LED una volta

// per far si che la funzione accetti un parametro in input

// bisogna dichiarare il tipo del parametro in ingresso

// nella funzione lampeggia: int pausa

void lampeggia(int pausa)

{

digitalWrite(LED_BUILTIN, HIGH); // accende il LED

delay(pausa); // pausa: valore inserito nella variabile "pausa"

digitalWrite(LED_BUILTIN, LOW); // spegne il LED

delay(pausa); // pausa: valore inserito nella variabile "pausa"

}

Quale comando devo modificare per rallentare il lampeggio a 500 msec ?

https://www.tinkercad.com/things/jPEiEkwMxSy-funzionevalori 

a)

#define TEMPO 1000

b)

digitalWrite(LED_BUILTIN, HIGH);

c)

digitalWrite(LED_BUILTIN, LOW);

d)

pinMode(LED_BUILTIN, OUTPUT);

60.

#define TEMPO1 250

#define TEMPO2 750

void setup() {

pinMode(LED_BUILTIN, OUTPUT);

}

void loop() {

// chiamiamo la funzione lampeggia passando il valore

// specificato all'interno delle parentesi tonde

lampeggia(TEMPO1, TEMPO2);

}

// blink LED una volta

// per far si che la funzione accetti duen parametri in input

// bisogna dichiarare il tipo per ogni parametro in ingresso

// nella funzione lampeggia: int pausaOn e int pausaOff

void lampeggia(int pausaOn, int pausaOff)

{

digitalWrite(LED_BUILTIN, HIGH); // accende il LED

delay(pausaOn); // delay LED ON

digitalWrite(LED_BUILTIN, LOW); // spegne il LED

delay(pausaOff); // delay LED OFF

}

https://www.tinkercad.com/things/atUearFkcYm-funzionevalori2?sharecode=HKqGT7BOpDPk63C2gJPBo6D0Cg7Gi2_m_D8iP8WYZlQ

Qual è il tempo di spegnimento del LED?

a)

(a) 250 millisecondi

b)

(b) 750 millisecondi

c)

(c) Il tempo di accensione varia in base ai valori di TEMPO1 e TEMPO2. ed è la differenza tra i due valori

d)

(d) Il tempo di accensione non è definito nello sketch.

61.

#define TEMPO1 250

#define TEMPO2 750

void setup() {

pinMode(LED_BUILTIN, OUTPUT);

}

void loop() {

// chiamiamo la funzione lampeggia passando il valore

// specificato all'interno delle parentesi tonde

lampeggia(TEMPO1, TEMPO2);

}

// blink LED una volta

// per far si che la funzione accetti duen parametri in input

// bisogna dichiarare il tipo per ogni parametro in ingresso

// nella funzione lampeggia: int pausaOn e int pausaOff

void lampeggia(int pausaOn, int pausaOff)

{

digitalWrite(LED_BUILTIN, HIGH); // accende il LED

delay(pausaOn); // delay LED ON

digitalWrite(LED_BUILTIN, LOW); // spegne il LED

delay(pausaOff); // delay LED OFF

}

https://www.tinkercad.com/things/atUearFkcYm-funzionevalori2?sharecode=HKqGT7BOpDPk63C2gJPBo6D0Cg7Gi2_m_D8iP8WYZlQ

Qual è il tempo di accensione del LED?

a)

(a) 250 millisecondi

b)

(b) 750 millisecondi

c)

(c) Il tempo di accensione varia in base ai valori di TEMPO1 e TEMPO2 ed è la somma dei due tempi

d)

(d) Il tempo di accensione non è definito nello sketch.

62.

https://www.tinkercad.com/things/8O8sRnGLym6-funzionevalori3?sharecode=36A0GXTJUHSGTIXei2pphgE7Gy5wOUc6vhqVeDMRh1Y

#define TEMPO1 250

#define TEMPO2 750

#define NUM_LAMPEGGI 5

#define SELETTORE 12

// chiave e la variabile che consente l'esecuzione della

// chiamata della funzione lampegga una sola volta

bool chiave = 0;

void setup() {

pinMode(LED_BUILTIN, OUTPUT);

pinMode(SELETTORE , INPUT_PULLUP);

Serial.begin (115200);

}

void loop() {

// chiamiamo la funzione lampeggia passando il valore

// specificato all'interno delle parentesi tonde

chiave=digitalRead(SELETTORE);

if (chiave == 0) {Serial.println (chiave);

digitalWrite(LED_BUILTIN,1);}

if (chiave == 1) {Serial.println (chiave);

lampeggia(TEMPO1, TEMPO2, NUM_LAMPEGGI);}

}

// blink LED una volta

// per far si che la funzione accetti tre parametri in input

// bisogna dichiarare il tipo per ogni parametro in ingresso

// nella funzione lampeggia: int pausaOn, int pausaOff, int contatore

// la variabile contatore definisce il numero di cicli di lampeggio

void lampeggia(int pausaOn, int pausaOff, int contatore)

{

for (int i = 0; i < contatore; i++) {

digitalWrite(LED_BUILTIN, HIGH); // accende il LED

delay(pausaOn); // delay LED ON

digitalWrite(LED_BUILTIN, LOW); // spegne il LED

delay(pausaOff); // delay LED OFF

}

}

che cosa gestisce il SELETTORE nella posizione di figura ?

a)

spegne o mantiene spento il LED

b)

accende o mantiene acceso il LED

c)

Non esegue nessuna azione sul LED

d)

comanda la funzione che poi permette al LED di lampeggiare

63.

https://www.tinkercad.com/things/8O8sRnGLym6-funzionevalori3?sharecode=36A0GXTJUHSGTIXei2pphgE7Gy5wOUc6vhqVeDMRh1Y

#define TEMPO1 250

#define TEMPO2 750

#define NUM_LAMPEGGI 5

#define SELETTORE 12

// chiave e la variabile che consente l'esecuzione della

// chiamata della funzione lampegga una sola volta

bool chiave = 0;

void setup() {

pinMode(LED_BUILTIN, OUTPUT);

pinMode(SELETTORE , INPUT_PULLUP);

Serial.begin (115200);

}

void loop() {

// chiamiamo la funzione lampeggia passando il valore

// specificato all'interno delle parentesi tonde

chiave=digitalRead(SELETTORE);

if (chiave == 0) {Serial.println (chiave);

digitalWrite(LED_BUILTIN,1);}

if (chiave == 1) {Serial.println (chiave);

lampeggia(TEMPO1, TEMPO2, NUM_LAMPEGGI);}

}

// blink LED una volta

// per far si che la funzione accetti tre parametri in input

// bisogna dichiarare il tipo per ogni parametro in ingresso

// nella funzione lampeggia: int pausaOn, int pausaOff, int contatore

// la variabile contatore definisce il numero di cicli di lampeggio

void lampeggia(int pausaOn, int pausaOff, int contatore)

{

for (int i = 0; i < contatore; i++) {

digitalWrite(LED_BUILTIN, HIGH); // accende il LED

delay(pausaOn); // delay LED ON

digitalWrite(LED_BUILTIN, LOW); // spegne il LED

delay(pausaOff); // delay LED OFF

}

}

che cosa gestisce il SELETTORE quando commuta dalla posizione di figura alla nuova posizione ?

a)

spegne o mantiene spento il LED

b)

accende o mantiene acceso il LED

c)

Non esegue nessuna azione sul LED

d)

comanda la funzione che poi permette al LED di lampeggiare

64.

https://www.tinkercad.com/things/8O8sRnGLym6-funzionevalori3?sharecode=36A0GXTJUHSGTIXei2pphgE7Gy5wOUc6vhqVeDMRh1Y

#define TEMPO1 250

#define TEMPO2 750

#define NUM_LAMPEGGI 5

#define SELETTORE 12

// chiave e la variabile che consente l'esecuzione della

// chiamata della funzione lampegga una sola volta

bool chiave = 0;

void setup() {

pinMode(LED_BUILTIN, OUTPUT);

pinMode(SELETTORE , INPUT_PULLUP);

Serial.begin (115200);

}

void loop() {

// chiamiamo la funzione lampeggia passando il valore

// specificato all'interno delle parentesi tonde

chiave=digitalRead(SELETTORE);

if (chiave == 0) {Serial.println (chiave);

digitalWrite(LED_BUILTIN,1);}

if (chiave == 1) {Serial.println (chiave);

lampeggia(TEMPO1, TEMPO2, NUM_LAMPEGGI);}

}

// blink LED una volta

// per far si che la funzione accetti tre parametri in input

// bisogna dichiarare il tipo per ogni parametro in ingresso

// nella funzione lampeggia: int pausaOn, int pausaOff, int contatore

// la variabile contatore definisce il numero di cicli di lampeggio

void lampeggia(int pausaOn, int pausaOff, int contatore)

{

for (int i = 0; i < contatore; i++) {

digitalWrite(LED_BUILTIN, HIGH); // accende il LED

delay(pausaOn); // delay LED ON

digitalWrite(LED_BUILTIN, LOW); // spegne il LED

delay(pausaOff); // delay LED OFF

}

}

che cosa gestisce il SELETTORE quando commuta dalla posizione di figura alla nuova posizione ?

a)

spegne o mantiene spento il LED

b)

accende o mantiene acceso il LED

c)

Non esegue nessuna azione sul LED

d)

comanda la funzione che poi permette al LED di lampeggiare

65.

https://www.tinkercad.com/things/ahO5P5ueiTS-3giudicimaggio?sharecode=sRlPP1igB9GDj7R8Hgirdd0LgFrt3JWV6y7Ia9UtqSc

// C++ code

//

int maria = digitalRead(5);

int mario = digitalRead(6);

int gennaro = digitalRead(4);

#define no 8

#define si 9

int x=0;

int y=0;

void setup()

{

pinMode(4, INPUT);

pinMode(5, INPUT);

pinMode(6, INPUT);

pinMode(si, OUTPUT);

pinMode(no, OUTPUT);

Serial.begin(9600);

}

void loop()//

{

delay(10); // Delay a little bit to improve simulation performance

switch(x){

case 0:

Serial.println(" nessuno è a favore");

digitalWrite(si,0);

digitalWrite(no,1);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

case 1:

Serial.println(" 1 è a favore");

digitalWrite(si,0);

digitalWrite(no,1);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario ;

break;

case 2:

Serial.println(" 2 sono a favore");

digitalWrite(si,1);

digitalWrite(no,0);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

case 3:

Serial.println(" tutti sono a favore");

digitalWrite(si,1);

digitalWrite(no,0);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

case 5:

Serial.print("calcolo ");

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

}

}

Qual è il valore iniziale di x?

a)

0

b)

2

c)

2

d)

3

66.

https://www.tinkercad.com/things/ahO5P5ueiTS-3giudicimaggio?sharecode=sRlPP1igB9GDj7R8Hgirdd0LgFrt3JWV6y7Ia9UtqSc

// C++ code

//

int maria = digitalRead(5);

int mario = digitalRead(6);

int gennaro = digitalRead(4);

#define no 8

#define si 9

int x=0;

int y=0;

void setup()

{

pinMode(4, INPUT);

pinMode(5, INPUT);

pinMode(6, INPUT);

pinMode(si, OUTPUT);

pinMode(no, OUTPUT);

Serial.begin(9600);

}

void loop()//

{

delay(10); // Delay a little bit to improve simulation performance

switch(x){

case 0:

Serial.println(" nessuno è a favore");

digitalWrite(si,0);

digitalWrite(no,1);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

case 1:

Serial.println(" 1 è a favore");

digitalWrite(si,0);

digitalWrite(no,1);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario ;

break;

case 2:

Serial.println(" 2 sono a favore");

digitalWrite(si,1);

digitalWrite(no,0);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

case 3:

Serial.println(" tutti sono a favore");

digitalWrite(si,1);

digitalWrite(no,0);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

case 5:

Serial.print("calcolo ");

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

}

}

Cosa rappresenta la variabile x nel codice?

a)

Il numero totale di sensori attivi.

b)

Lo stato di un sensore specifico.

c)

La somma di tre variabili.

d)

La frequenza di campionamento.

67.

https://www.tinkercad.com/things/ahO5P5ueiTS-3giudicimaggio?sharecode=sRlPP1igB9GDj7R8Hgirdd0LgFrt3JWV6y7Ia9UtqSc

// C++ code

//

int maria = digitalRead(5);

int mario = digitalRead(6);

int gennaro = digitalRead(4);

#define no 8

#define si 9

int x=0;

int y=0;

void setup()

{

pinMode(4, INPUT);

pinMode(5, INPUT);

pinMode(6, INPUT);

pinMode(si, OUTPUT);

pinMode(no, OUTPUT);

Serial.begin(9600);

}

void loop()//

{

delay(10); // Delay a little bit to improve simulation performance

switch(x){

case 0:

Serial.println(" nessuno è a favore");

digitalWrite(si,0);

digitalWrite(no,1);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

case 1:

Serial.println(" 1 è a favore");

digitalWrite(si,0);

digitalWrite(no,1);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario ;

break;

case 2:

Serial.println(" 2 sono a favore");

digitalWrite(si,1);

digitalWrite(no,0);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

case 3:

Serial.println(" tutti sono a favore");

digitalWrite(si,1);

digitalWrite(no,0);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

case 5:

Serial.print("calcolo ");

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

}

}

Qual è lo scopo delle costanti no e si?

a)

Definire i nomi dei sensori.

b)

Impostare lo stato dei pin di output.

c)
  • Calcolare la potenza del segnale.

d)

Limitare la corrente dei LED.

68.

https://www.tinkercad.com/things/ahO5P5ueiTS-3giudicimaggio?sharecode=sRlPP1igB9GDj7R8Hgirdd0LgFrt3JWV6y7Ia9UtqSc

// C++ code

//

int maria = digitalRead(5);

int mario = digitalRead(6);

int gennaro = digitalRead(4);

#define no 8

#define si 9

int x=0;

int y=0;

void setup()

{

pinMode(4, INPUT);

pinMode(5, INPUT);

pinMode(6, INPUT);

pinMode(si, OUTPUT);

pinMode(no, OUTPUT);

Serial.begin(9600);

}

void loop()//

{

delay(10); // Delay a little bit to improve simulation performance

switch(x){

case 0:

Serial.println(" nessuno è a favore");

digitalWrite(si,0);

digitalWrite(no,1);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

case 1:

Serial.println(" 1 è a favore");

digitalWrite(si,0);

digitalWrite(no,1);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario ;

break;

case 2:

Serial.println(" 2 sono a favore");

digitalWrite(si,1);

digitalWrite(no,0);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

case 3:

Serial.println(" tutti sono a favore");

digitalWrite(si,1);

digitalWrite(no,0);

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

case 5:

Serial.print("calcolo ");

gennaro = digitalRead(4);

maria = digitalRead(5);

mario = digitalRead(6);

x=gennaro+maria+mario;

break;

}

}

Una delle possibili scelte dell'istruzione case è inutilizzata?

a)

case 5

b)

case 0

c)

case 3

d)

case 2

e)

case 1

69.

https://www.tinkercad.com/things/3bpWaCZTLVQ-espag1232?sharecode=Oq6Vxla74ufBoPh1BvJXVAtZUOYtYK_V7sxurUAfuro

#define PULSANTE 2

#define LED 13

int stato = 0;

int tempo = 0;

int statoLed = LOW;

void setup ()

{

pinMode(LED,OUTPUT); //led uscita

pinMode (PULSANTE, INPUT_PULLUP);

}

void loop ()

{

switch (stato)

{

case 0:

if (digitalRead(PULSANTE) == LOW) // attendo pressione

{

statoLed = !statoLed; // inverto stato LED

digitalWrite(LED, statoLed);

stato = 1;

}

break;

case 1: // antirimbalzo

tempo ++;

if (tempo >= 50) stato = 2;

break;

case 2: // attendo rilascio

if (digitalRead(PULSANTE) == HIGH) stato = 0;

break;

}

delay (1);

}

Quando viene attivato il sistema di antirimbalzo?

a)

Quando il pulsante viene premuto.

b)

Quando il LED cambia stato.

c)

Dopo un certo intervallo di tempo (50 millisecondi).

d)

Quando il pulsante viene rilasciato.

70.

https://www.tinkercad.com/things/3bpWaCZTLVQ-espag1232?sharecode=Oq6Vxla74ufBoPh1BvJXVAtZUOYtYK_V7sxurUAfuro

#define PULSANTE 2

#define LED 13

int stato = 0;

int tempo = 0;

int statoLed = LOW;

void setup ()

{

pinMode(LED,OUTPUT); //led uscita

pinMode (PULSANTE, INPUT_PULLUP);

}

void loop ()

{

switch (stato)

{

case 0:

if (digitalRead(PULSANTE) == LOW) // attendo pressione

{

statoLed = !statoLed; // inverto stato LED

digitalWrite(LED, statoLed);

stato = 1;

}

break;

case 1: // antirimbalzo

tempo ++;

if (tempo >= 50) stato = 2;

break;

case 2: // attendo rilascio

if (digitalRead(PULSANTE) == HIGH) stato = 0;

break;

}

delay (1);

}

Qual è lo scopo della variabile tempo?

a)

Monitorare lo stato del LED.

b)

Monitorare il pulsante.

c)

Misurare il tempo di pressione del pulsante.

d)

Calcolare il tempo di pressione del pulsante.

71.

https://www.tinkercad.com/things/3bpWaCZTLVQ-espag1232?sharecode=Oq6Vxla74ufBoPh1BvJXVAtZUOYtYK_V7sxurUAfuro

#define PULSANTE 2

#define LED 13

int stato = 0;

int tempo = 0;

int statoLed = LOW;

void setup ()

{

pinMode(LED,OUTPUT); //led uscita

pinMode (PULSANTE, INPUT_PULLUP);

}

void loop ()

{

switch (stato)

{

case 0:

if (digitalRead(PULSANTE) == LOW) // attendo pressione

{

statoLed = !statoLed; // inverto stato LED

digitalWrite(LED, statoLed);

stato = 1;

}

break;

case 1: // antirimbalzo

tempo ++;

if (tempo >= 50) stato = 2;

break;

case 2: // attendo rilascio

if (digitalRead(PULSANTE) == HIGH) stato = 0;

break;

}

delay (1);

}

A cosa serve la definizione #define PULSANTE 2?

a)

Assegna il numero 2 al pin digitale 13.

b)

Definisce la costante PULSANTE associandola al pin digitale 2.

c)

Imposta il pin digitale 2 come uscita.

d)

Non fa nulla, è un commento.

72.

https://www.tinkercad.com/things/3bpWaCZTLVQ-espag1232?sharecode=Oq6Vxla74ufBoPh1BvJXVAtZUOYtYK_V7sxurUAfuro

#define PULSANTE 2

#define LED 13

int stato = 0;

int tempo = 0;

int statoLed = LOW;

void setup ()

{

pinMode(LED,OUTPUT); //led uscita

pinMode (PULSANTE, INPUT_PULLUP);

}

void loop ()

{

switch (stato)

{

case 0:

if (digitalRead(PULSANTE) == LOW) // attendo pressione

{

statoLed = !statoLed; // inverto stato LED

digitalWrite(LED, statoLed);

stato = 1;

}

break;

case 1: // antirimbalzo

tempo ++;

if (tempo >= 50) stato = 2;

break;

case 2: // attendo rilascio

if (digitalRead(PULSANTE) == HIGH) stato = 0;

break;

}

delay (1);

}

A cosa serve la definizione #define PULSANTE 2?

a)

Assegna il numero 2 al pin digitale 13.

b)

Definisce la costante PULSANTE associandola al pin digitale 2.

c)

Imposta il pin digitale 2 come uscita.

d)

Non fa nulla, è un commento.

73.

https://www.tinkercad.com/things/jLjpgSRRmim-smashing-inari-migelo?sharecode=Whr6pJkseWcST4YOFsDZ1nviBXBfidqy5_hZFjPABB0

// C++ code

//

#define ledR 13

#define ledG 12

#define ledV 11

#define SELE 10

int stato = 0;

void setup()

{

pinMode(ledR, OUTPUT);

pinMode(ledG, OUTPUT);

pinMode(ledV, OUTPUT);

pinMode(SELE, INPUT_PULLUP);

}

void loop()

{

switch (stato) {

case 0:

if(digitalRead(SELE)==0){

digitalWrite(ledR,1);

delay(5000);

digitalWrite(ledR,0);

digitalWrite(ledG,1);

delay(3000);

digitalWrite(ledG,0);

digitalWrite(ledV,1);

delay(2000);

digitalWrite(ledV,0);}

if(digitalRead(SELE)==1){ stato=1;}

break;

case 1:

digitalWrite(ledR,0);

digitalWrite(ledV,0);

digitalWrite(ledG,1);

delay(1000);

digitalWrite(ledG,0);

delay(1000);

break;}

if(digitalRead(SELE)==0){ stato=0;}

}

Quale pin è utilizzato per leggere lo stato del pulsante (BISTABILE) ?

a)

ledR

b)

ledG

c)

ledV

d)

SELE

74.

Studiare le stampe del monitor seriale dell'esempio di figura, dopo aver analizzato i due programmi, identificare e correggere il secondo programma affinchè nel monitor seriale appaia il valore di temperatura in gradi.

https://www.tinkercad.com/things/3P4bTTxWtzw-maptemperatura?sharecode=ekcGHER7Ncae9L_vTPTdcDDxJZ2ycxJqqCpNNdUGPJI

https://www.arduino.cc/reference/en/language/functions/math/map/

a)

void loop()

{

sensorValue = analogRead(A0);

Serial.println(sensorValue);

sensorValue=map(sensorValue,20,358,-40,125);

Serial.println(sensorValue);

}

b)

void loop()

{

sensorValue = analogRead(A0);

Serial.println(sensorValue);

sensorValue=map(sensorValue,20,-40,358,125);

Serial.println(sensorValue);

}

c)

void loop()

{

sensorValue = analogRead(A0);

Serial.println(sensorValue);

sensorValue=map(sensorValue,358,20,-40,125);

Serial.println(sensorValue);

}

d)

void loop()

{

sensorValue = analogRead(A0);

Serial.println(sensorValue);

sensorValue=map(sensorValue,20,358,40,125);

Serial.println(sensorValue);

}

76.
a)

A) Misurare la temperatura ambiente

b)

B) Leggere un valore analogico

c)

C) Controllare il LED integrato dell’Arduino

d)

D) Generare segnali PWM

77.

https://www.tinkercad.com/things/jYvlQ3qxmb9-lm293dspiegazione?sharecode=krWH_sgqt3tcPvC7DK5L-KPbF-ew3f4WbHyHkNFL8UQ

Come viene determinata la direzione di rotazione del motore in base al valore del sensore?

a)

A) Se il valore del sensore è superiore a 512, il motore ruota in un verso, se inferiore nel verso opposto

b)

B) Se il valore del sensore è inferiore a 512, il motore si ferma

c)

C) Il motore ruota sempre nella stessa direzione indipendentemente dal valore del sensore.

d)

D) La direzione del motore è casuale.

78.

https://www.tinkercad.com/things/2QA7M8nTG1K-montaggiopulsanti?sharecode=x0kZVqVT-Cj99ZYYy9NJSof7oLVfqhO5RtoQAolMbvU

Spiegare il funzionamento del pin PULSANTE_PULLUP. (Selezionare tutte le risposte corrette, due risposte)

Suggerimento quando è presente il link utilizzatelo.

a)

(a) Ha una resistenza interna di pull-up collegata a 5V.

b)

(b) Premendo il pulsante, il LED collegato a LEDpullup si accende.

c)

(c) Premendo il pulsante, il LED collegato a LEDpullup si spegne.

d)

(d) Non necessita di una resistenza esterna per funzionare correttamente.

79.
a)
  • A) PULSANTE_PULLUP e PULSANTE_inputPULLUP

b)
  • B) PULSANTE_DOWN e SELETTORE

c)
  • C) PULSANTE_PULLUP, PULSANTE_inputPULLUP e SELETTORE

d)
  • D) Solo PULSANTE_inputPULLUP

80.

https://www.tinkercad.com/things/17wWdYYkUqs-trattamento-termico?sharecode=dm4NzjciEsonEJCFDGOn4tLqs0v2-xgVqTZj-FlVEgI

Qual è la funzione del pin S1?

// C++ code

//

#define S1 3

#define B1 4

#define B2 5

#define B3 6

#define P1 2

#define TEMP_MIS A0

#define N_PEZZI_MAX 3 //anche il numero di pezzi è stato ridotto per esigenze di denug

#define TEMP_min 75

#define TEMP_max 110

#define TEMPO_FORNOon 150//il tempo è scelto piccolo per eseguire il debug del programma

int sensorValue = 0;

int stato=0;

int tempo=0;

int pezzi_lavorati=0;

void setup()

{

pinMode(P1, OUTPUT);

pinMode(7, OUTPUT);

pinMode(S1, INPUT_PULLUP);

pinMode(B1, INPUT);

pinMode(B2, INPUT);

pinMode(B3, INPUT);

Serial.begin(9600);

digitalWrite(7,0);

digitalWrite(2,0);

digitalWrite(8,0);

}

void loop ()

{

// for(int i=0; i<N_PEZZI_MAX; i++){ altra possibile strategia al posto del swuitch case

switch(stato){

case 0:

digitalWrite(7,0);

Serial.print(stato);

Serial.println(" stato=0 sto aspettando un comando ");

if(digitalRead(S1)==1){stato=0;digitalWrite(7,1);}else stato=10;

Serial.print(stato);

break;

case 1:

Serial.print(stato);

Serial.println(" stato=1 sto aspettando il pezzo successivo puoi caricare ");

controlloTEMP();

delay(20);

if (pezzi_lavorati<=N_PEZZI_MAX)stato=20;

else {stato=0;

pezzi_lavorati=0;

Serial.println("PRODUZIONE TERMINATA");

Serial.println("PREMERE S1 per avviare un nuovo ciclo");}

break;

case 10:

Serial.print("stato=10 sto aspettando la temperatura corretta");

sensorValue = analogRead(A0);

sensorValue=map(sensorValue,20,358,-40,125);

Serial.println(sensorValue);

if(sensorValue>=TEMP_min && sensorValue<=TEMP_max){

stato=20;}

Serial.print(stato);

break;

case 20:

Serial.print("stato=20 nastro non avviato ");

controlloTEMP();

if(digitalRead(B1)==1 && digitalRead(B2)==0 && digitalRead(B3)==0){

Serial.print(digitalRead(B1));

Serial.println(digitalRead(B2));

pezzi_lavorati++;

digitalWrite(2,1);

digitalWrite(8,0);

Serial.print("stato=20 nastro avviato ");

stato=30;}

Serial.print(stato);

break;

case 30:

Serial.print("stato=30 pezzo in ingresso al forno ");

controlloTEMP();

if(digitalRead(B1)==0 && digitalRead(B2)==1 && digitalRead(B3)==0){

digitalWrite(P1,0);

tempo=millis();

stato=31;

Serial.print(stato);

break;

case 31:

Serial.print(" sto aspettando il tempo definito ");

Serial.println(millis());Serial.print(tempo);Serial.print(" ");

if((millis()-tempo)>=TEMPO_FORNOon)stato=40;

else stato=stato;}

Serial.print(stato);

break;

case 40:

digitalWrite(P1,1);

if(digitalRead(B1)==0 && digitalRead(B2)==0 && digitalRead(B3)==1){

digitalWrite(P1,0);

digitalWrite(P1,0);

digitalWrite(8,0);

stato=1;}

break;

}

}

void controlloTEMP()

{

sensorValue = analogRead(A0);

sensorValue=map(sensorValue,20,358,-40,125);

Serial.println(sensorValue);

if(sensorValue>=TEMP_min && sensorValue<=TEMP_max){

stato=stato;

}

else stato=10;

}

void aspetta(int tempo_forno){

Serial.print(" sto aspettando il tempo definito");

Serial.println(millis());

if((millis()-tempo)>=tempo_forno)stato=stato;

}

a)

(a) Avvia il ciclo di produzione.

b)

(b) Arresta il ciclo di produzione.

c)

(c) Controlla la temperatura del forno

d)

(d) Non è utilizzato nello sketch.

81.

https://www.tinkercad.com/things/17wWdYYkUqs-trattamento-termico?sharecode=dm4NzjciEsonEJCFDGOn4tLqs0v2-xgVqTZj-FlVEgI

Qual è la funzione del pin B3?

// C++ code

//

#define S1 3

#define B1 4

#define B2 5

#define B3 6

#define P1 2

#define TEMP_MIS A0

#define N_PEZZI_MAX 3 //anche il numero di pezzi è stato ridotto per esigenze di denug

#define TEMP_min 75

#define TEMP_max 110

#define TEMPO_FORNOon 150//il tempo è scelto piccolo per eseguire il debug del programma

int sensorValue = 0;

int stato=0;

int tempo=0;

int pezzi_lavorati=0;

void setup()

{

pinMode(P1, OUTPUT);

pinMode(7, OUTPUT);

pinMode(S1, INPUT_PULLUP);

pinMode(B1, INPUT);

pinMode(B2, INPUT);

pinMode(B3, INPUT);

Serial.begin(9600);

digitalWrite(7,0);

digitalWrite(2,0);

digitalWrite(8,0);

}

void loop ()

{

// for(int i=0; i<N_PEZZI_MAX; i++){ altra possibile strategia al posto del swuitch case

switch(stato){

case 0:

digitalWrite(7,0);

Serial.print(stato);

Serial.println(" stato=0 sto aspettando un comando ");

if(digitalRead(S1)==1){stato=0;digitalWrite(7,1);}else stato=10;

Serial.print(stato);

break;

case 1:

Serial.print(stato);

Serial.println(" stato=1 sto aspettando il pezzo successivo puoi caricare ");

controlloTEMP();

delay(20);

if (pezzi_lavorati<=N_PEZZI_MAX)stato=20;

else {stato=0;

pezzi_lavorati=0;

Serial.println("PRODUZIONE TERMINATA");

Serial.println("PREMERE S1 per avviare un nuovo ciclo");}

break;

case 10:

Serial.print("stato=10 sto aspettando la temperatura corretta");

sensorValue = analogRead(A0);

sensorValue=map(sensorValue,20,358,-40,125);

Serial.println(sensorValue);

if(sensorValue>=TEMP_min && sensorValue<=TEMP_max){

stato=20;}

Serial.print(stato);

break;

case 20:

Serial.print("stato=20 nastro non avviato ");

controlloTEMP();

if(digitalRead(B1)==1 && digitalRead(B2)==0 && digitalRead(B3)==0){

Serial.print(digitalRead(B1));

Serial.println(digitalRead(B2));

pezzi_lavorati++;

digitalWrite(2,1);

digitalWrite(8,0);

Serial.print("stato=20 nastro avviato ");

stato=30;}

Serial.print(stato);

break;

case 30:

Serial.print("stato=30 pezzo in ingresso al forno ");

controlloTEMP();

if(digitalRead(B1)==0 && digitalRead(B2)==1 && digitalRead(B3)==0){

digitalWrite(P1,0);

tempo=millis();

stato=31;

Serial.print(stato);

break;

case 31:

Serial.print(" sto aspettando il tempo definito ");

Serial.println(millis());Serial.print(tempo);Serial.print(" ");

if((millis()-tempo)>=TEMPO_FORNOon)stato=40;

else stato=stato;}

Serial.print(stato);

break;

case 40:

digitalWrite(P1,1);

if(digitalRead(B1)==0 && digitalRead(B2)==0 && digitalRead(B3)==1){

digitalWrite(P1,0);

digitalWrite(P1,0);

digitalWrite(8,0);

stato=1;}

break;

}

}

void controlloTEMP()

{

sensorValue = analogRead(A0);

sensorValue=map(sensorValue,20,358,-40,125);

Serial.println(sensorValue);

if(sensorValue>=TEMP_min && sensorValue<=TEMP_max){

stato=stato;

}

else stato=10;

}

void aspetta(int tempo_forno){

Serial.print(" sto aspettando il tempo definito");

Serial.println(millis());

if((millis()-tempo)>=tempo_forno)stato=stato;

}

a)

(a) Rileva la presenza di un pezzo all'inizio del nastro trasportatore.

b)

(b) Rileva la presenza di un pezzo all'uscita del nastro trasportatore.

c)

(c) Controlla la temperatura del forno.

d)

(d) Indica se il pezzo è stato estratto dal forno.

82.

const int ledPin = 9;

void setup() {

pinMode(ledPin, OUTPUT);

Serial.begin(9600);

}

void loop() {

// Fade in from min to max in increments of 5 points:

for (int i = 0; i <= 255; i += 5) {

analogWrite (ledPin, i);

delay(10);

}

// Fade out from max to min in increments of 5 points:

for (int i = 255; i >= 0; i -= 5) {

Serial.println(i);

analogWrite(ledPin, i);

delay(10);

}

}

Se si desidera aumentare la velocità della dissolvenza del LED, quale parametro si dovrebbe modificare?

https://www.tinkercad.com/things/c4aCP6wKnpf-ledlampeggiante?sharecode=epbomLGbWU1MhFuPh3HpPIhN1WyhP7rGa-ZdIIyDD5U

a)
  • A) Il valore di i in analogWrite(ledPin, i);

b)


B) Il numero di cicli nel ciclo for.

c)
  • C) Il valore di delay(10);

d)


D) Il numero del pin in const int ledPin = 9;

83.
a)

A. Controllare un semaforo.

b)

B. Contare il numero di persone che entrano in un luogo.

c)

C. Simulare un gioco.

d)

D. Misurare la temperatura.

e)

E. Nessuna delle risposte è esatta

84.

https://www.tinkercad.com/things/4R35yMOMhvN-es8pag1123?sharecode=_otJrCMgzEhdLMLSRRvcUpgQ6kUg5M3mouHiH07DScs

Cosa accade quando il pulsante di reset viene premuto e mantenuto premuto per almeno 2 secondi?

programma ancora da finire

a)

A. Il conteggio delle persone viene incrementato

b)

B. Il conteggio delle persone viene azzerato.

c)

C. Il sistema si blocca.

d)

D. Il sistema passa allo stato di calibrazione.

e)

E. stampa sul monitor seriale il numero di volte che è stato premuto il pulsante

Similar Resources on Wayground