Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Controllare Led con diversi pulsanti

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteMassimoB, Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[1] Controllare Led con diversi pulsanti

Messaggioda Foto Utentedadothebest » 29 giu 2017, 16:15

Ciao, ho una striscia led bianca la quale vorrei controllarla con arduno (parte hardware già costruita). Il mio scopo sarebbe quello di accendere e spegnere la striscia con 2 pulsanti (ognuno accende e spegne) e controllare la luminosità con altri due pulsanti, uno abbassa la luce mentre l'altro la alza. Per la prima parte dovrei esserci riuscito, per il controllo della luminosità invece non riesco a farla funzionare, non ho trovato neanche nessun esempio su internet.
Come potrei fare?
Avatar utente
Foto Utentedadothebest
24 2 7
Frequentatore
Frequentatore
 
Messaggi: 226
Iscritto il: 25 nov 2013, 17:13
Località: Ascoli Piceno

0
voti

[2] Re: Controllare Led con diversi pulsanti

Messaggioda Foto UtenteMarkyMark » 3 lug 2017, 22:06

Forse potresti usare le uscite PWM.
mark
Avatar utente
Foto UtenteMarkyMark
2.675 2 3 5
Master
Master
 
Messaggi: 436
Iscritto il: 11 giu 2016, 12:01

0
voti

[3] Re: Controllare Led con diversi pulsanti

Messaggioda Foto Utentedadothebest » 4 lug 2017, 9:06

E' proprio quello che sto facendo, ho collegato tali led all'uscita PWM e con un telecomando ir avevo in mente di abbassare la luminosità con un tasto e di alzarla con l'altro ma non riesco ad implementarlo via software.
Avatar utente
Foto Utentedadothebest
24 2 7
Frequentatore
Frequentatore
 
Messaggi: 226
Iscritto il: 25 nov 2013, 17:13
Località: Ascoli Piceno

0
voti

[4] Re: Controllare Led con diversi pulsanti

Messaggioda Foto UtenteMarkyMark » 5 lug 2017, 10:53

Puoi postare la parte di codice che fa il controllo PWM e/o il flow-chart che hai seguito? Ci sarebbe anche da verificare che il circuito sia montato correttamente. O_/

PS
Sai che non tutti i pin di uscita sono PWM?
mark
Avatar utente
Foto UtenteMarkyMark
2.675 2 3 5
Master
Master
 
Messaggi: 436
Iscritto il: 11 giu 2016, 12:01

0
voti

[5] Re: Controllare Led con diversi pulsanti

Messaggioda Foto Utentedadothebest » 5 lug 2017, 16:19

Preciso che non sono così ignorante in materia... ho collegato i led al pin 11 e ho già fatto delle prove di funzionamento accendendo e spegnendo i led ed a variare la luminosità modificando manualmente il valore del PWM dal codice e tutto funziona.
Allego tutto il codice che comprende anche il controllo dei led:
Codice: Seleziona tutto
#include <Time.h>
#include <TimeAlarms.h>
#include <DS3231.h>
#include <DS3232RTC.h>
#include <Wire.h>
#include <IRremote.h>
#include <LEDFader.h>
DS3231  rtc(SDA, SCL);
Time t;


//DEFINISCO RICEVITORE E TRASMETTITORE IR
int RECV_PIN = 13;
IRrecv irrecv(RECV_PIN);
IRsend irsend;
decode_results results;


//DEFINISCO I PIN UTILIZZATI
     #define router                  A0                                                           //RELE' 1
     #define voip                    A1                                                           //RELE' 2
     #define wii                     A3                                                           //RELE' 3
     //                              3                                                            //TRASMETTITORE IR
     #define PC                      4                                                            //RELE' 4
     #define led_sopra               11                                                            //TRANSISTOR GRANDE
     #define led_tv                  6                                                            //TRANSISTOR GRANDE                             
     #define stereo                  7                                                            //RELE' 5
     #define giradischi              8                                                            //RELE' 6
    // #define led_stato               5                                                            //TRANSISTOR PICCOLO                   
     #define ventola_alimentatore    10                                                           //TRANSISTOR GRANDE
     //                              13                                                           //RICEVITORE IR
     #define lampada                 12                                                           //RELE' 7                                                                                           
     #define ventola_generale        9                                                           //TRANSISTOR GRANDE                                       

     #define amp_giradischi          A2
     //#define SVILUPPI FUTURI                                                                    //RELE' 8, NON UTILIZZATO
     #define pulsante                A5
     #define interr_3luci            2


//FADE LED

LEDFader led_stato = LEDFader(5);


//COSTANTI VOIP E ROUTER
     unsigned long time;
     unsigned long tempoCorrente_Router_Voip;
     unsigned long tempo_Router_Voip=0;
     int stato_Router_Voip = 0;
     int Avvio_Router_Voip = 1;
     int Riavvio_Router_Voip = 0;


//FUNZIONE LED
     int stato_led_fade = 0;
     int contatore_led_fade = 0;     
     int numero_fade = 0;
     int stato_led_blink = 0;
     int contatore_led_blink = 0;
     int numero_blink = 0;

//INTERRUTTORE E PULSANTE
     int lettura_interruttore_3luci;



//PULSANTI IR
     #define ritardo_pulsante 500

     int stato_wii = 0;
     int lettura_pulsante_wii;
     int valore_precedente_pulsante_wii = LOW;
     unsigned long tempo_wii = 0;
     unsigned long tempoCorrente_wii;

     int stato_pc = 0;
     int lettura_pulsante_pc;
     int valore_precedente_pulsante_pc = LOW;
     unsigned long tempo_pc = 0;
     unsigned long tempoCorrente_pc;

     int stato_stereo = 0;
     int lettura_pulsante_stereo;
     int valore_precedente_pulsante_stereo = LOW;
     unsigned long tempo_stereo = 0;
     unsigned long tempoCorrente_stereo;
     unsigned long tempo_ir_stereo;

     int stato_giradischi = 1;
     int lettura_pulsante_giradischi;
     int valore_precedente_pulsante_giradischi = LOW;
     unsigned long tempo_giradischi = 0;
     unsigned long tempoCorrente_giradischi;


     int stato_riavvio_router_voip = 1;
     int lettura_pulsante_riavvio_router_voip;
     int lettura_pulsante_conferma_azione;
     int valore_precedente_pulsante_conferma_azione = LOW;
     unsigned long tempo_riavvio_router_voip = 0;
     unsigned long tempoCorrente_riavvio_router_voip;

     int stato_router = 0;
     int stato_pulsante_modem = 1;
     int lettura_pulsante_modem;
     unsigned long tempo_riavvio_modem = 0;
     unsigned long tempoCorrente_riavvio_modem;

     int stato_voip = 0;
     int stato_pulsante_voip = 1;
     int lettura_pulsante_voip;
     unsigned long tempo_riavvio_voip = 0;
     unsigned long tempoCorrente_riavvio_voip;

     int stato_riavvio = 1;
     int lettura_pulsante_riavvio;
     unsigned long tempo_riavvio= 0;
     unsigned long tempoCorrente_riavvio;

          int stato_led_sopra = 0;
     int lettura_pulsante_led_sopra;
     int valore_precedente_pulsante_led_sopra=LOW;
     unsigned long tempo_led_sopra = 0;
     unsigned long tempoCorrente_led_sopra;
     int luminosita=0;

     
//FUNZIONE PER RIAVVIARE ARDUINO
     void(* Riavvia)(void) = 0;


//--------------------------------------------------------------------------------------------------SETUP-------------------------------------------------------------------------------------------


void setup(){

TCCR1B = (TCCR1B & 0b11111000) | 0X01;

//AVVIO IR
     irrecv.enableIRIn();


//IMPOSTAZIONE LE VARIABILI TEMPO 
     rtc.begin();
     tempoCorrente_Router_Voip=millis();
     tempoCorrente_wii=millis();
     tempoCorrente_pc=millis();
     tempoCorrente_stereo=millis();
     tempoCorrente_giradischi=millis();

 
//IMPOSTAZIONE INGRESSI E USCITE 
      pinMode(router, OUTPUT);
      pinMode(voip, OUTPUT);
      pinMode(wii, OUTPUT);
      pinMode(PC, OUTPUT);
      pinMode(led_sopra, OUTPUT);
      pinMode(led_tv, OUTPUT);
      pinMode(stereo, OUTPUT);
      pinMode(giradischi, OUTPUT);
      pinMode(ventola_alimentatore, OUTPUT);
      //pinMode(led_stato, OUTPUT);
      pinMode(lampada, OUTPUT);
      pinMode(ventola_generale, OUTPUT);
      pinMode(amp_giradischi, OUTPUT);

      pinMode(pulsante, INPUT);
      pinMode(interr_3luci, INPUT);
   


//IMPOSTAZIONE DEI PIN ALL'AVVIO     
      digitalWrite(router, LOW );                                                   //RELE' 1 -------- LOW
      digitalWrite(voip, LOW );                                                     //RELE' 2 -------- LOW               
      digitalWrite(wii, LOW );                                                      //RELE' 3 -------- LOW
      digitalWrite(PC, LOW );                                                       //RELE' 4 -------- LOW
      analogWrite(led_sopra, 0 );
      analogWrite(led_tv, 0 );
      digitalWrite(stereo, LOW );                                                   //RELE' 5 -------- LOW
      digitalWrite(giradischi, HIGH );                                              //RELE' 6 -------- HIGH
      //analogWrite(led_stato, LOW );
      analogWrite(ventola_alimentatore, LOW );
      digitalWrite(lampada, HIGH );                                                 //RELE' 7 -------- HIGH
      analogWrite(ventola_generale, LOW );
      //digitalWrite(SVILUPPI FUTURI, HIGH );                                       //RELE' 8 -------- HIGH
      digitalWrite(amp_giradischi, LOW );
      digitalWrite(2, INPUT_PULLUP);
      digitalWrite(A5, INPUT_PULLUP);
     
}



void loop() {

//AVVIO RECEZIONE CODICI IR
     {if (irrecv.decode(&results)) {Serial.println(results.value, HEX); irrecv.resume();}}

     
//AVVIO DEI PROGRAMMI
     Router_Voip();
    Fade_led();
     Blink_led();
     Wii();
     Giradischi();
     PC();
     Stereo();
     Pulsante_riavvio_router_voip();
     Pulsante_modem();
     Pulsante_voip();
 
     Pulsante_riavvio();
//  Led_sopra();
     

 
//PROGRAMMA RIAVVIO E SPEGNIMENTO DISPOSITIVI
     t = rtc.getTime();
     if (t.date == 1 && t.hour == 05 && t.min == 00 && t.sec == 00) {Riavvia();}                                                                                               //Riavvia arduino il 1 alle 05:00:00
     if (t.date == 06 && t.hour == 13 && t.min == 33 && t.sec == 00) {Riavvio_Router_Voip = 1;}                                                                                //Riavvia router e voip il 15 alle 05:00:00
     if (t.date == 06 && t.hour == 13 && t.min == 32 && t.sec == 00) {stato_led_blink=1;numero_blink=1000;}                                                                                                 
     if (t.hour == 05 && t.min == 30 && t.sec == 00) {digitalWrite(PC, LOW ); digitalWrite(stereo, LOW ); digitalWrite(wii, LOW ); digitalWrite(giradischi, LOW );}            //Spegne alle 05:30:00

                                         
//VENTOLA GENERALE
     if (rtc.getTemp()<33)   {analogWrite(ventola_generale, 0);}
     if (rtc.getTemp()>33)   {analogWrite(ventola_generale, 250);}


//VENTOLA ALIMENTATORE
   if (stato_wii==0 & stato_giradischi==1){analogWrite(ventola_alimentatore, 0);}
     if (stato_wii==1 & stato_giradischi==1){analogWrite(ventola_alimentatore, 200);}
     if (stato_wii==0 & stato_giradischi==0){analogWrite(ventola_alimentatore, 150);}
     if (stato_wii==1 & stato_giradischi==0){analogWrite(ventola_alimentatore, 250);}
     

     
//PULSANTI
     lettura_interruttore_3luci = analogRead (interr_3luci);
     lettura_pulsante_giradischi = results.value == 0xFF22DD;
     lettura_pulsante_wii = results.value == 0xFFE21D;
     lettura_pulsante_pc = results.value == 0xFF629D;
     lettura_pulsante_stereo = results.value == 0xFFA25D;
     lettura_pulsante_conferma_azione = results.value == 0xFF38C7;
     lettura_pulsante_riavvio_router_voip = results.value == 0xFF906F;
     lettura_pulsante_led_sopra = results.value == 0xFF4AB5;
//     lettura_pulsante_DIMINUISCE_led_sopra = results.value == 0xFF4AB5;FF6897
     lettura_pulsante_modem = results.value == 0xFFE01F;
     lettura_pulsante_voip = results.value == 0xFFA857;
     lettura_pulsante_riavvio = results.value == 0xFFC23D;


    if (lettura_pulsante_led_sopra == 1)
        {
        if( luminosita<250)
            {
            luminosita=luminosita+5;
            delay(200);
            }
        }
    analogWrite(led_sopra, luminosita);
   

}




//---------------------------------------------------------------------------------------------------ALTRI PROGRAMMI---------------------------------------------------------------------------------------------

//PROGRAMMA AVVIO ROUTER E VOIP
  void Router_Voip()
     {if((Avvio_Router_Voip==1)||(Riavvio_Router_Voip==1)) {stato_Router_Voip=1; Avvio_Router_Voip=0; Riavvio_Router_Voip = 0; digitalWrite(router,LOW); digitalWrite(voip,LOW); stato_router = 0; stato_voip = 0; stato_led_fade=1;numero_fade=5;}
     tempoCorrente_Router_Voip=millis();
     if((tempoCorrente_Router_Voip-tempo_Router_Voip>=5000)&&stato_Router_Voip==1) {digitalWrite(router,HIGH); stato_router = 1; stato_Router_Voip=2; tempo_Router_Voip=millis();}
     else if (stato_Router_Voip==2) {if(tempoCorrente_Router_Voip-tempo_Router_Voip>=2000) {digitalWrite(voip,HIGH); stato_voip = 1; stato_Router_Voip=0;}}}


//PROGRAMMA FADE LED DI STATO
  void Fade_led()
     {led_stato.update();
     if ((led_stato.is_fading() == false)&&(stato_led_fade == 1))
     {if (led_stato.get_value() == 255) {led_stato.fade(0, 1000);contatore_led_fade++;}
     else {led_stato.fade(255, 1000);}}
     if (contatore_led_fade == numero_fade){stato_led_fade = 0; contatore_led_fade = 0;}}

  void Blink_led()
     {led_stato.update();
     if ((led_stato.is_fading() == false)&&(stato_led_blink == 1))
     {if (led_stato.get_value() == 255) {led_stato.fade(0, 100);contatore_led_blink++;}
     else {led_stato.fade(255, 100);}}
     if (contatore_led_blink == numero_blink){stato_led_blink = 0; contatore_led_blink = 0;}}





void Wii()
     {tempoCorrente_wii=millis();
     if (lettura_pulsante_wii == HIGH && valore_precedente_pulsante_wii == LOW && tempoCorrente_wii - tempo_wii > ritardo_pulsante)
     {if (stato_wii == 1) stato_wii = 0; else stato_wii = 1; tempo_wii = millis(); }
     digitalWrite(wii, stato_wii);
     valore_precedente_pulsante_wii = lettura_pulsante_wii;}
     
void PC()
     {tempoCorrente_pc=millis();
     if (lettura_pulsante_pc == HIGH && valore_precedente_pulsante_pc == LOW && tempoCorrente_pc - tempo_pc > ritardo_pulsante)
     {if (stato_pc == 1) stato_pc = 0; else stato_pc = 1; tempo_pc = millis(); }
     digitalWrite(PC, stato_pc);
     valore_precedente_pulsante_pc = lettura_pulsante_pc;}
     
void Stereo()
     {tempoCorrente_stereo=millis();
     if (lettura_pulsante_stereo == HIGH && valore_precedente_pulsante_stereo == LOW && tempoCorrente_stereo - tempo_stereo > ritardo_pulsante)
     {if (stato_stereo == HIGH) stato_stereo = LOW; else stato_stereo = HIGH; tempo_stereo = millis(); }
     digitalWrite(stereo, stato_stereo);
     valore_precedente_pulsante_stereo = lettura_pulsante_stereo;}
     
void Giradischi()
     {tempoCorrente_giradischi=millis();
     if (lettura_pulsante_giradischi == HIGH && valore_precedente_pulsante_giradischi == LOW && tempoCorrente_giradischi - tempo_giradischi > ritardo_pulsante)
     {if (stato_giradischi == 1) stato_giradischi = 0; else stato_giradischi = 1; tempo_giradischi = millis(); }
     digitalWrite(giradischi, stato_giradischi);
     digitalWrite(amp_giradischi, !stato_giradischi);
     valore_precedente_pulsante_giradischi = lettura_pulsante_giradischi;}

void Pulsante_riavvio_router_voip()
     {if (stato_riavvio_router_voip == 1 && lettura_pulsante_riavvio_router_voip == HIGH){ tempo_riavvio_router_voip = millis() + 2000; stato_riavvio_router_voip = 2; led_stato.fade(255, 500);}
     if (stato_riavvio_router_voip == 2 && lettura_pulsante_conferma_azione == HIGH && millis() < tempo_riavvio_router_voip) {stato_riavvio_router_voip = 3;}
     if (stato_riavvio_router_voip == 2 &&  millis() > tempo_riavvio_router_voip) {stato_riavvio_router_voip = 4;}
     if (stato_riavvio_router_voip == 3) {Riavvio_Router_Voip=1; stato_riavvio_router_voip = 1;}
     if (stato_riavvio_router_voip == 4) {stato_riavvio_router_voip = 1; led_stato.fade(0, 500);}}

void Pulsante_modem()
     {if (stato_pulsante_modem == 1 && lettura_pulsante_modem == HIGH){ tempo_riavvio_modem = millis() + 2000; stato_pulsante_modem = 2; led_stato.fade(255, 500);}
     if (stato_pulsante_modem == 2 && lettura_pulsante_conferma_azione == HIGH && millis() < tempo_riavvio_modem) {stato_pulsante_modem = 3;}
     if (stato_pulsante_modem == 2 &&  millis() > tempo_riavvio_modem) {stato_pulsante_modem = 4;}
     if (stato_pulsante_modem == 3) {stato_pulsante_modem = 1;     
     {if (lettura_pulsante_conferma_azione == HIGH) {if (stato_router == 1) {digitalWrite(router, LOW); stato_router = 0;} else {digitalWrite(router, HIGH); stato_router = 1;}}}}
     if (stato_pulsante_modem == 4) {stato_pulsante_modem = 1; led_stato.fade(0, 500);}}

void Pulsante_voip()
     {if (stato_pulsante_voip == 1 && lettura_pulsante_voip == HIGH){ tempo_riavvio_voip = millis() + 2000; stato_pulsante_voip = 2; led_stato.fade(255, 500);}
     if (stato_pulsante_voip == 2 && lettura_pulsante_conferma_azione == HIGH && millis() < tempo_riavvio_voip) {stato_pulsante_voip = 3;}
     if (stato_pulsante_voip == 2 &&  millis() > tempo_riavvio_voip) {stato_pulsante_voip = 4;}
     if (stato_pulsante_voip == 3) {stato_pulsante_voip = 1;     
     {if (lettura_pulsante_conferma_azione == HIGH) {if (stato_voip == 1) {digitalWrite(voip, LOW); stato_voip = 0;} else {digitalWrite(voip, HIGH); stato_voip = 1;}}}}
     if (stato_pulsante_voip == 4) {stato_pulsante_voip = 1; led_stato.fade(0, 500);}}

void Pulsante_riavvio()
     {if (stato_riavvio == 1 && lettura_pulsante_riavvio == HIGH){ tempo_riavvio = millis() + 2000; stato_riavvio = 2;led_stato.fade(255, 500);}
     if (stato_riavvio == 2 && lettura_pulsante_conferma_azione == HIGH && millis() < tempo_riavvio) {stato_riavvio = 3;}
     if (stato_riavvio == 2 &&  millis() > tempo_riavvio) {stato_riavvio = 4;}
     if (stato_riavvio == 3) {Riavvia(); stato_riavvio = 1; led_stato.fade(0, 500);}
     if (stato_riavvio == 4) {stato_riavvio = 1; led_stato.fade(0, 500);}}



Tutto lo sketch funziona correttamente tranne questa parte del controllo dei led che riporto nello specifico:
Codice: Seleziona tutto
    if (lettura_pulsante_led_sopra == 1)
        {
        if( luminosita<250)
            {
            luminosita=luminosita+5;
            delay(200);
            }
        }
    analogWrite(led_sopra, luminosita);

Se premo il pulsante i led si accendono sembra a metà della luminosità, se premo un'altra volta il pulsante aumenta un po' di luce e se continuo a premere non succede più nulla, si blocca così
Avatar utente
Foto Utentedadothebest
24 2 7
Frequentatore
Frequentatore
 
Messaggi: 226
Iscritto il: 25 nov 2013, 17:13
Località: Ascoli Piceno

0
voti

[6] Re: Controllare Led con diversi pulsanti

Messaggioda Foto UtenteMarkyMark » 8 lug 2017, 12:22

Mi sembra che la parte che fa il controllo PWM sia scritta bene (non ho letto tutto il codice). Hai provato a mettere solo quel pezzo di codice in uno sketch nuovo e vedere se la regolazione PWM funziona? Magari il programma si inchioda da qualche altra parte.. :?
mark
Avatar utente
Foto UtenteMarkyMark
2.675 2 3 5
Master
Master
 
Messaggi: 436
Iscritto il: 11 giu 2016, 12:01

0
voti

[7] Re: Controllare Led con diversi pulsanti

Messaggioda Foto Utentedadothebest » 8 lug 2017, 14:10

Si ho già provato e da lo stesso risultato
Avatar utente
Foto Utentedadothebest
24 2 7
Frequentatore
Frequentatore
 
Messaggi: 226
Iscritto il: 25 nov 2013, 17:13
Località: Ascoli Piceno

0
voti

[8] Re: Controllare Led con diversi pulsanti

Messaggioda Foto UtenteMarkyMark » 8 lug 2017, 15:23

Io ho provato e pare che vada. Credo che il problema sia nella lettura del tasto ma non riesco a capire questa riga (non ho mai studiato Arduino seriamente #-o )
Codice: Seleziona tutto
     lettura_pulsante_led_sopra = results.value == 0xFF4AB5;

E' equivalente alla digitalRead?

Segue il codice che ho usato e lo schema
Codice: Seleziona tutto
#define led 11
#define pulsante 7

int lum = 100;

void setup() {
  pinMode(led,OUTPUT);        // Set pin 11 to be in output mode
  pinMode(pulsante,INPUT);   // Set pin 7 to be in input mode
}

void loop() {
  if(digitalRead(pulsante) == HIGH){
    if(lum<250){
      lum+=25;
    }
    else lum = 0;
    delay(200);
  }
  analogWrite(led,lum);
}




Buone prove O_/
mark
Avatar utente
Foto UtenteMarkyMark
2.675 2 3 5
Master
Master
 
Messaggi: 436
Iscritto il: 11 giu 2016, 12:01

0
voti

[9] Re: Controllare Led con diversi pulsanti

Messaggioda Foto UtenteGiulio28 » 12 lug 2017, 20:39

Ho scritto questo piccolo sketch, provato e funzionante. Ho aggiunto la seriale e ho messo i controlli nel caso il valore superasse il minimo e il massimo consentito dai pwn... sennò il valore va in negativo e succedono cose strane. Soprattutto devi mettere un delay di minimo 50 ogni lettura... se non lo fai appena tocchi il pulsante il valore sale alle stelle.
Codice: Seleziona tutto
int luminosita=500;
#define pulsante1 9
#define pulsante2 10
void setup() {
  pinMode(11,OUTPUT);
  Serial.begin(9600);
    pinMode(9,INPUT);
    pinMode(10,INPUT);
}

void loop() {
  if(digitalRead(pulsante1)==HIGH){luminosita=luminosita-5;}
  else if(digitalRead(pulsante2)==HIGH){luminosita=luminosita+5;}
  else;
  if(luminosita<0) luminosita=0;
  if(luminosita>1023) luminosita=1023;
  Serial.println(luminosita);
  analogWrite(11,luminosita);
  delay(50);
}

Ricordati sui pulsanti le resistenze da 10k collegate a massa.
Prova a mettere il contenuto del mio loop al posto di quello che ti da problemi e dovrebbe andare
Avatar utente
Foto UtenteGiulio28
0 2
 
Messaggi: 12
Iscritto il: 11 lug 2017, 20:00


Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite