Arduino (L5): il pulsante (interruttore per led e campanello con buzzer)

In questi primi esempi abbiamo visto come programmare il microcontrollore Arduino per compiere vari azioni. Tuttavia tutte le operazioni programmate erano di tipo passivo, nel senso che una volta accesso il dispositivo effettuava l’operazione precedentemente definitiva. Tramite l’uso del pulsante è possibile creare una prima interazione indipendente.

Il pulsante può essere usato per agire solamente alla pressione (il tipico esempio è rappresentato dal campanello o il clacson che emette un suono solo nel momento in cui è premuto) o di interruttore vero e proprio (ad esempio per accendere/spegnere le luci).

Accendere led alla pressione

int led=2;
int puls=8;
int val=0;

void setup() {
pinMode(led, OUTPUT);
pinMode(puls, INPUT);

}

void loop() {
val=digitalRead(puls);

if (val==1) {
digitalWrite(led, HIGH);
}

else {
digitalWrite(led, LOW);
}

}

Interruttore per led

int led=2;
int puls=8;
int val=0;
int stato=0;
void setup() {
pinMode(led, OUTPUT);
pinMode(puls, INPUT);

}

void loop() {
val=digitalRead(puls);

if(val==1) {
stato=1-stato;
delay(300);
}

if (stato==1) {
digitalWrite(led, HIGH);
}

else {
digitalWrite(led, LOW);
}

}

Interruttore per led (a 3 modalità)

Con questo programma aggiungiamo una modalità in più al nostro pulsante. Infatti non si limiterà ad accendere e spegnere il led ma prevede una fase intermedia, alla seconda pressione, il led lampeggerà.

int led=6;
int puls=7;
int val=0;
int contatore=0;

void setup() {
pinMode(puls, INPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
}

void loop() {
val=digitalRead(puls);

if (val==1) {
contatore=contatore+1;
}

if (contatore==1) {
digitalWrite(led, LOW);
delay(100);
}

if (contatore==2) {
digitalWrite(led, HIGH);
delay(100);
}

if (contatore==3) {
digitalWrite(led, HIGH);
delay(100);
digitalWrite(led, LOW);
delay(100);
}

if (contatore==4) {
contatore=0;
}
Serial.println(contatore);

}

Campanello o clacson con buzzer

Il buzzer è un componente elettronico capace di generare toni. E’ utilizzato spesso in elettronica per attirare l’attenzione dell’utente. In informatica viene adoperato all’interno dei pc fissi come sistema per identificare eventuali errori. Per capire meglio è il classico cicalino che emette un suono – se tutto va bene – all’accensione del pc desktop.

Il funzionamento del buzzer è semplice. E’ fornito di due poli, il positivo da collegare ad un pin digitale di Arduino e l’altro a massa.

In questo esempio, riutilizziamo il codice precedente per adattarlo al buzzer. Le poche variazione riguardano: il nome della costante (buz abbreviazione di buzzer anziché led) e soprattutto l’indicazione della frequenza e del tempo del buzzer, avendo tramite l’istruzione,  tone(buz,1000,100);

int buz=7;

int puls=8;

int val=0;

 

void setup() {

pinMode(buz, OUTPUT);

pinMode(puls, INPUT);

 

}

 

void loop() {

val=digitalRead(puls);

 

if (val==1) {

digitalWrite(buz, HIGH);

tone(buz,1000,100);

}

}

 

else {

digitalWrite(buz, LOW);

}

Led e Buzzer si attivano insieme alla pressione

int led=6;
int puls=7;
int buz=8;
int val=0;

void setup() {
pinMode(led, OUTPUT);
pinMode(puls, INPUT);
pinMode(buz, OUTPUT);

}

void loop() {
val=digitalRead(puls);

if (val==1) {
digitalWrite(led, HIGH);
digitalWrite(buz, HIGH);
tone(buz,1000,100);
}

else {
digitalWrite(led, LOW);
digitalWrite(buz, LOW);
}

}

Pulsante per display lcd 16×2

#include <LiquidCrystal.h>
// inizializza la libreria con i numeri dei pin utilizzati
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
int puls1=8;
int val1=0;
void setup() {
// imposta il numero di colonne e righe del display utilizzato:
lcd.begin(16, 2);
// Stampa il messaggio sull’LCD.
lcd.print(“Computereweb.eu”);
}
void loop() {
val1=digitalRead(puls1);

if (val1==1) {
lcd.setCursor(0, 1);
lcd.print(” CIAO! “);
}
}

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *