Utente:Hackerino3/Arduino
Contaclick con led RGB
modificaIl progetto che segue è pensato per la realizzazione di un conta click in grado di contare da 0 a 9 grazie ad un pulsante e, ad ogni click il led RGB si accende.Quando il contatore raggiunge il numero 10 si resetta il led RGB lampeggia per 1,5 secondi.
Descrizione del progetto
modificaIl sistema ha questo funzionamento:
- in ingresso abbiamo un pulsante, che capta ogni click.
- in uscita abbiamo due segnali visivi, uno dato da un Display a 7 segmenti, l'altro è dato dal led RGB.
La realizzazione del progetto necessità di
- Arduino UNO (1);
- Breadboard (1);
- Resistenze 220Ω (12);
- Display LCD a 7 segmenti [Catodo Comune] (1);
- pulsante (1);
- Led RGB (1);
- Diversi cavetti;
Schema elettrico
modificaIl circuito utilizza un pulsante che se azionato incrementa il valore nel Display, e cambia colore al led RGB
Schema di montaggio
modificaCodice
modifica/*
PROGETTO
DI
_ _ _ _ _ _____
| \ | |(_)| | | | / ___|
| \| | _ | | __ ___ | | __ _ \ `--.
| . ` || || |/ // _ \ | | / _` | `--. \
| |\ || || <| (_) || || (_| | /\__/ /
\_| \_/|_||_|\_\\___/ |_| \__,_| \____/
________________
\\\\\SCHEMA/////
pinA
__________
/ /
pinF / / pinB
/_________/ <-------------------pinG
/ /
pinE / / pinC
/_________/
pinD
pin Arduino
(pinA); 2 //CENTRALE ALTO
(pinB); 3 //ALTO DESTRA
(pinC); 4 //BASSO DESTRA
(pinD); 5 //CENTRALE BASSO
(pinE); 6 //BASSO SINISTRA
(pinF); 7 //ALTO SINISTRA
(pinG); 8 //CENTRALE
Il display utilizzato è a Catodo Comune
\_______________________________________________________________________________/
///////////////////////////////////INIZIO CODICE\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
*/
int pinA = 2; //
int pinB = 3; //
int pinC = 4; //
int pinD = 5; //Display
int pinE = 6; //
int pinF = 7; //
int pinG = 8; //
int pinPulsante = 10; //Pulsante connesso al pin 9
int counter = 0; //Stato contatore
int valButtonOld = LOW; //Stato Pulsante
int Delay1 = 200; //Delay RGB
int pinLed1 = 9; //
int pinLed2 = 11; //Pin del LED RGB
int pinLed3 = 12; //
void RGB() {
digitalWrite(pinLed1,HIGH);
digitalWrite(pinLed2,LOW); // Led RGB YELLOW
digitalWrite(pinLed3,HIGH);
delay(Delay1);
digitalWrite(pinLed1,LOW);
digitalWrite(pinLed2,LOW); // Led RGB RED
digitalWrite(pinLed3,HIGH);
delay(Delay1);
digitalWrite(pinLed1,HIGH);
digitalWrite(pinLed2,LOW); // Led RGB GREEN
digitalWrite(pinLed3,LOW);
delay(Delay1);
digitalWrite(pinLed1,HIGH);
digitalWrite(pinLed2,LOW); // Led RGB YELLOW
digitalWrite(pinLed3,HIGH);
delay(Delay1);
digitalWrite(pinLed1,HIGH);
digitalWrite(pinLed2,HIGH); // Led RGB WHITE
digitalWrite(pinLed3,HIGH);
delay(Delay1);
digitalWrite(pinLed1,HIGH);
digitalWrite(pinLed2,HIGH); // Led RGB CYANO
digitalWrite(pinLed3,LOW);
delay(Delay1);
digitalWrite(pinLed1,LOW);
digitalWrite(pinLed2,HIGH); // Led RGB PINK
digitalWrite(pinLed3,HIGH);
delay(Delay1);
digitalWrite(pinLed1,LOW);
digitalWrite(pinLed2,HIGH); // Led RGB PURPLE
digitalWrite(pinLed3,LOW);
delay(Delay1);
digitalWrite(pinLed1,LOW);
digitalWrite(pinLed2,LOW); // Led RGB RED
digitalWrite(pinLed3,HIGH);
}
void zero(){
digitalWrite(pinA,HIGH);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,HIGH); // Stampa 0
digitalWrite(pinE,HIGH);
digitalWrite(pinF,HIGH);
digitalWrite(pinG,LOW);
}
void uno(){
digitalWrite(pinA,LOW);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,LOW); // Stampa 1
digitalWrite(pinE,LOW);
digitalWrite(pinF,LOW);
digitalWrite(pinG,LOW);
}
void due(){
digitalWrite(pinA,HIGH);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,LOW);
digitalWrite(pinD,HIGH); // Stampa 2
digitalWrite(pinE,HIGH);
digitalWrite(pinF,LOW);
digitalWrite(pinG,HIGH);
}
void tre(){
digitalWrite(pinA,HIGH);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,HIGH); // Stampa 3
digitalWrite(pinE,LOW);
digitalWrite(pinF,LOW);
digitalWrite(pinG,HIGH);
}
void quattro(){
digitalWrite(pinA,LOW);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,LOW); //Stampa 4
digitalWrite(pinE,LOW);
digitalWrite(pinF,HIGH);
digitalWrite(pinG,HIGH);
}
void cinque(){
digitalWrite(pinA,HIGH);
digitalWrite(pinB,LOW);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,HIGH); //Stampa 5
digitalWrite(pinE,LOW);
digitalWrite(pinF,HIGH);
digitalWrite(pinG,HIGH);
}
void seii() {
digitalWrite(pinA,HIGH);
digitalWrite(pinB,LOW);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,HIGH); // Stampa 6 sul display
digitalWrite(pinE,HIGH);
digitalWrite(pinF,HIGH);
digitalWrite(pinG,HIGH);
}
void sette(){
digitalWrite(pinA,HIGH);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,LOW); //Stampa 7
digitalWrite(pinE,LOW);
digitalWrite(pinF,LOW);
digitalWrite(pinG,LOW);
}
void otto(){
digitalWrite(pinA,HIGH);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,HIGH); //Stampa 8
digitalWrite(pinE,HIGH);
digitalWrite(pinF,HIGH);
digitalWrite(pinG,HIGH);
}
void nove(){
digitalWrite(pinA,HIGH);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,HIGH); //Stampa 9
digitalWrite(pinE,LOW);
digitalWrite(pinF,HIGH);
digitalWrite(pinG,HIGH);
}
void setup() {
pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(pinC, OUTPUT);
pinMode(pinD, OUTPUT);
pinMode(pinE, OUTPUT);
pinMode(pinF, OUTPUT);
pinMode(pinG, OUTPUT);
pinMode(pinPulsante, INPUT);
digitalWrite(pinA,LOW);
digitalWrite(pinB,LOW);
digitalWrite(pinC,LOW);
digitalWrite(pinD,LOW);
digitalWrite(pinE,LOW);
digitalWrite(pinF,LOW);
digitalWrite(pinG,LOW);
}
void loop() {
int valButton = digitalRead(pinPulsante);
if(valButton==HIGH && valButtonOld==LOW)
{
counter=counter+1;
}
valButtonOld = valButton ;
if (counter==0)
{
zero();
digitalWrite(pinLed1,HIGH);
digitalWrite(pinLed2,LOW); // Led RGB YELLOW
digitalWrite(pinLed3,HIGH);
}
if (counter==1)
{
uno();
digitalWrite(pinLed1,HIGH);
digitalWrite(pinLed2,LOW); // Led RGB YELLOW
digitalWrite(pinLed3,HIGH);
}
if (counter==2)
{
due();
digitalWrite(pinLed1,HIGH);
digitalWrite(pinLed2,LOW); // Led RGB GREEN
digitalWrite(pinLed3,LOW);
}
if (counter==3)
{
tre();
digitalWrite(pinLed1,HIGH);
digitalWrite(pinLed2,LOW); // Led RGB YELLOW
digitalWrite(pinLed3,HIGH);
}
if (counter==4)
{
quattro();
digitalWrite(pinLed1,HIGH);
digitalWrite(pinLed2,HIGH); // Led RGB WHITE
digitalWrite(pinLed3,HIGH);
}
if (counter==5)
{
cinque();
digitalWrite(pinLed1,HIGH);
digitalWrite(pinLed2,HIGH); // Led RGB CYANO
digitalWrite(pinLed3,LOW);
}
if (counter==6)
{
seii();
digitalWrite(pinLed1,LOW);
digitalWrite(pinLed2,HIGH); // Led RGB PINK
digitalWrite(pinLed3,HIGH);
}
if (counter==7)
{
sette();
digitalWrite(pinLed1,LOW);
digitalWrite(pinLed2,LOW); // Led RGB RED
digitalWrite(pinLed3,HIGH);
}
if (counter==8)
{
otto();
digitalWrite(pinLed1,HIGH);
digitalWrite(pinLed2,HIGH); // Led RGB CYANO
digitalWrite(pinLed3,LOW);
}
if (counter==9)
{
nove();
if (counter==9)
{
digitalWrite(pinLed1,LOW);
digitalWrite(pinLed2,LOW); // Led RGB SPENTO
digitalWrite(pinLed3,LOW);
}
if (counter >9)
{
counter = 10;
}
if (counter =10)
{
RGB();
delay(2000);
}
if (counter == 10)
{
counter = 0 ;
}
}
}
Conclusioni
modificaIl Conta Click è pronto e funzionante, la realizzazione di questo circuito permette di visualizzare sul display a 7 segmenti ogni click che facciamo, ogni click cambia il colore del led RGB e al raggiungimento del decimo click il led lampeggia per 1,5 secondi. In conclusione il progetto è riuscito.