Utente:Daniel Gostoli/Arduino: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Creata pagina con "== Incremento e decremento di un numero in un display a 7 segmenti in base a tasto == Il '''progetto''' che segue è pensato per questo e quello. Qui descrivete ''che cosa''..." Etichetta: Editor wikitesto 2017 |
|||
Riga 1:
== Incremento e decremento di un numero in un display a 7 segmenti in base a tasto ==
Il '''progetto''' che segue è pensato per la realizzazione di un conta-click, comandato da due pulsanti (uno per incrementare e uno per decrementare il numero), in grado di mostrare su uno schermo LCD a sette segmenti tutti i numeri naturali compresi tra 0 e 9.
de.
=== Descrizione del progetto ===
Il sistema è composto da:
* Pulsanti, hanno il compito di incrementare e decrementare il valore del contatore.
* Display LCD a sette segmenti a catodo comune, mostra i numeri compresi tra 0 e 9 del contatore.
=== Schema elettrico ===
Line 16 ⟶ 20:
=== Codice ===
int pinA = 2;
int pinB = 3;
int pinC = 4;
int pinD = 5;
int pinE = 6;
int pinF = 7; //definiamo le variabili
int pinG = 8;
int pinButton = 9;
int pinButton2 = 10;
int counter = 0;
int valButtonOld = LOW;
int valButtonOld2 = LOW;
void setup() {
pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(pinC, OUTPUT);
pinMode(pinD, OUTPUT);
pinMode(pinE, OUTPUT); //impostiamo i pin come OUTPUT o INPUT
pinMode(pinF, OUTPUT);
pinMode(pinG, OUTPUT);
pinMode(pinButton, INPUT);
pinMode(pinButton2, INPUT);
digitalWrite(pinA,HIGH);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,HIGH); //assegnamo lo stato dei pin
digitalWrite(pinE,HIGH);
digitalWrite(pinF,HIGH);
digitalWrite(pinG,HIGH);
}
void loop() {
int valButton = digitalRead(pinButton);
if(valButton==HIGH&&valButtonOld==LOW) //il pulsante è stato premuto
{
counter=counter+1; //incremento del contatore
}
valButtonOld=valButton; //aggiornamento del valore della variabile
int valButton2 = digitalRead(pinButton2);
if(valButton2==HIGH&&valButtonOld2==LOW) //il pulsante 2 è stato premuto
{
counter=counter-1; //decremento del contatore
}
valButtonOld2=valButton2; //aggiornamento del valore della variabile
if (counter==0)
{
digitalWrite(pinA,HIGH);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,HIGH); //scrittura numero 0
digitalWrite(pinE,HIGH);
digitalWrite(pinF,HIGH);
digitalWrite(pinG,LOW);
}
if (counter==1)
{
digitalWrite(pinA,LOW);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,LOW); //scrittura numero 1
digitalWrite(pinE,LOW);
digitalWrite(pinF,LOW);
digitalWrite(pinG,LOW);
}
if (counter==2)
{
digitalWrite(pinA,HIGH);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,LOW);
digitalWrite(pinD,HIGH); //scrittura numero 2
digitalWrite(pinE,HIGH);
digitalWrite(pinF,LOW);
digitalWrite(pinG,HIGH);
}
if (counter==3)
{
digitalWrite(pinA,HIGH);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,HIGH); //scrittura numero 3
digitalWrite(pinE,LOW);
digitalWrite(pinF,LOW);
digitalWrite(pinG,HIGH);
}
if (counter==4)
{
digitalWrite(pinA,LOW);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,LOW); //scrittura numero 4
digitalWrite(pinE,LOW);
digitalWrite(pinF,HIGH);
digitalWrite(pinG,HIGH);
}
if (counter==5)
{
digitalWrite(pinA,HIGH);
digitalWrite(pinB,LOW);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,HIGH); //scrittura numero 5
digitalWrite(pinE,LOW);
digitalWrite(pinF,HIGH);
digitalWrite(pinG,HIGH);
}
if (counter==6)
{
digitalWrite(pinA,HIGH);
digitalWrite(pinB,LOW);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,HIGH); //scrittura numero 6
digitalWrite(pinE,HIGH);
digitalWrite(pinF,HIGH);
digitalWrite(pinG,HIGH);
}
if (counter==7)
{
digitalWrite(pinA,HIGH);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,LOW); //scrittura numero 7
digitalWrite(pinE,LOW);
digitalWrite(pinF,LOW);
digitalWrite(pinG,LOW);
}
if (counter==8)
{
digitalWrite(pinA,HIGH);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,HIGH); //scrittura numero 8
digitalWrite(pinE,HIGH);
digitalWrite(pinF,HIGH);
digitalWrite(pinG,HIGH);
}
if (counter==9)
{
digitalWrite(pinA,HIGH);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,LOW); //scrittura numero 9
digitalWrite(pinE,LOW);
digitalWrite(pinF,HIGH);
digitalWrite(pinG,HIGH);
}
if (counter==10)
{ //reset del contatore
counter = 0;
}
if (counter==-1)
{ //reset del contatore
counter = 0;
}
}
</syntaxhighlight>
=== Conclusioni ===
riepilogando
<!-- Progetto generico -->
|